zoukankan      html  css  js  c++  java
  • Unix备份与恢复 ... (转载) zhumao

    2004.02.11
    不要忘记mtime,atime,以及ctime.
    unix系统为每个文件都记录这三个不同的时间,第一个是mtime,即修改时间。无论何时,
    只要文件内容被改变,mtime的值就会被相应修改。第二个是atime,即访问时间。只要文
    件被访问(比如运行或读取),它就会被修改。第三个是ctime,即变更时间。当文件的属性
    发生变化(比如改变权限或者所有关系)时,ctime的值就会被改变。管理员用ctime来查
    找黑客。
    备份会改变atime,tar,cpio,dd都会这样做,dump通过原始设备来读取文件系统,因此它不
    会改变atime.
    
    dump的语法。
    dump levelunbdsf blkg-factor density size device-name file_system
    例子:
    把/home完全备份到一个称做/dev/rmt/0cbn的本地磁带驱动器上。
    # dump 0unbdsf 126 141000 11500 /dev/rmt/0cbn /home
    把/home完全备份到一个称做/backup/home.dump的光学CD驱动器上。
    # dump 0unbdsf 126 141000 11500 /backup/home.dump /home
    以上命令由三个不需要参数的选项(0,u and n)以及四个需要一个协作参数的选项(b,d,s and 
    f)组成。
    命令选项:
    0---9     指定DUMP应该进行的备份级别。
    b         指定DUMP就应该使用的块因子。
    u         指定DUMP更新dumpdates文件。
    n         完成操作时要通知操作员组的成员。
    d(密度) and s(大小)   告诉DUMP备份卷有多大,DUMP用这些数字来估计要使用
    何种磁带。
    f         告诉DUMP要使用什么设备。
    W,w       告诉DUMP执行一次空运行来告诉你什么文件系统需要备份。
    
    要避免跨卷DUMP。
    
    restore的语法
    restore [trxi]vbsfy blocking-factor file-number device-name
    例子:
    要恢复一个使用块因子32创建的DUMP磁带备份(位于/dev/rmt/0cbn)的全部内容。
    # restore rvbfy 32 /dev/rmt/0cbn
    有一个使用块因子32创建的位于/dev/rmt/0cbn中的DUMP磁带,如果想从该磁带中恢复文
    件/etc/hosts and /etc/passwd.
    # restore xvbfy 32 /dev/rmt/0cbn ./etc/hosts ./etc/passwd
    创建内容表
    # restore tfy device >/tmp/dump.list
    命令选项:
    决定restore的类型
    t       显示卷的内容。
    r       指明卷的整个内容应该被恢复到当前工作目录下。
    x	只提取命令后面所列的文件。
    i	允许执行交互式恢复。
    决定restore的行为
    v	指定详细输出
    s	读取之前跳过的磁带文件个数
    b	块因子
    f	备份驱动器的文件名。
    y	恢复过程禁止询问。
    
    
    
    使用cpio工具进行备份和恢复
    备份的语法
    cpio -o[aBcv]
    恢复的语法
    cpio -i[Btv][patterns]
    例子:
    在一个本地磁带上创建/home的一个完全备份。
    # cd /home
    # touch level.0.cpio.timestamp     使增量备份成为可能。建立时间参考点。
    # find . -print|cpio -oacvB > device   device可以是一个光学或CD设备。
    # touch level.1.cpio.timestamp     增量备份的时间参考点。
    # find . newer level.1.cpio.timestamp -print|cpio -oacvB >device
    在远程磁带上创建/home的一个完全备份。
    # cd /home
    # find . -print|cpio -oavB|(rsh remote_system dd of=device bs=5120)
    
    cpio备份用绝对路径(find  /home/file)会限制恢复时的灵活性。它只能恢复到/home/file。
    如果用相对路径(find home/file)就能把它恢复到任何地方。
    命令选项
    备份类
    o	创建一个备份
    a	把atime重置成备份前的值
    c	用ASCII首部格式
    v	用于详细信息输出
    B,C    指定块大小,它们是互斥的。
    恢复类
    i	指定输入模式,必须是命令列表的第一个。
    t	生成内容表,并不实际操作。
    k	跳过坏区
    d	在需要时创建目录
    m	恢复文件备份时的原始修改时间,否则的话,默认动作是把恢复后的文件的修改时间设
    为新修改时间
    u	无条件覆盖所有文件
    "*pattern"  恢复匹配该模式的文件
    f "*pattern"	恢复不匹配该模式的文件
    r	交互式重命名文件名
    
    2004/02/12
    tar命令的基本语法
    # tar -[cx]vf device pattern
    
    命令选项
    c	创建一个存档
    v	详细信息输出
    W	对存档文件进行校验
    b	块因子
    f	输出到DEVICE参数所指的设备,DEVICE可以是文件,光盘,磁带或者标准输出
    (stdout)
    pattern 模式匹配如“a*”
    x	恢复一个存档
    m	正常情况下,恢复后的文件会保留它们在存档前的修改时间,选用该选项把修改时间改
    成恢复时间,这与CPIO命令的行为完全相反。
    o	把恢复的文件的所有者设置成你。这是对于非root用户的默认行为,除非使用该选项,
    否则,root提取的文件都会归保存在tar文档中的用户和组所有。
    p	默认情况下,tar不会恢复所有的文件属性。文件的许可是由当前umask决定,而不是
    由原始文件的许可决定,包括setuid and sticky位。这个选项告诉tar用原始文件的许可。
    d	能够对存档和文件系统进行一个diff比较。
    a	重设置访问时间
    F	在卷结束时运行一个脚本,这可用于进行自动卷交换。
    Z z     自动调用compress and gzip程序
    
    dd命令基本语法
    # dd if=device of=device bs=blocksize
    if=	指定输入文件,即dd从中拷贝数据的文件。它可以是需要备份的文件或者原始分区,
    如果从stdin中读取数据,那么该参数不必指定。
    of=	指定输出文件,即dd发送数据的目的地。它可以是需要备份的文件或者原始分区,如
    果从stdout中读取数据,那么该参数不必指定。
    bs	指定块大小,即一次i/o操作中传输的数据量。
    
    使用dd和rsh and ssh进行远程备份(GNU tar and GNU cpio命令能读取远程设备)
    读取远程设备上的备份
    # rsh remote_host "dd if=device ibs=blocksize" |tar xvBf -
    # ssh remote_host "dd if=device bs=blocksize" |tar xvBf -
    # ssh remote_host "dd if=device bs=blocksize" |restore rvf -
    # ssh remote_host "dd if=device bs=blocksize" |cpio -itv
    
    把备份写到远程设备上
    # tar -cvf - . |(rsh remote_system dd of=device obs=block_size)
    # dump 0bdsf 64 100000 100000 - |ssh remote_host "dd if=device bs=64k"
    # tar -cvf - |ssh remote_host "dd if=device bs=10k"
    # cpio -oacvB |ssh remote_host "dd if=device bs=5k"
    
    
    LINUX裸机恢复方法:
    1、备份重要的元数据    # fdisk -l >/etc/fdisk-l.txt
    2、用本地工具备份系统  # cd / ; tar cf - . |gzip -c >/backup/xxx.tar.gz
    3、系统损坏,用其它介质引导系统(引导盘,KNOPPIX等)。
    4、用元数据对硬盘这行分区并格式化。  
    解出元数据文件 #gzip -dc /xxx/xxx.tar.gz|tar -xvf - ./etc/fstab ./etc/fdisk-l.txt 
    分区  # fdisk /dev/sda
    创建文件系统 # mke2fs /dev/sda1
    5、恢复操作系统信息 # gzip -dc /xxx/xxx.tar.gz|tar xf -
    6、在新根磁盘上恢复引导块 
    
    
    ORACLE(离线)冷备份
    1、关闭数据库,中止所有允许访问数据库的进程。
    2、通过备份工具对文件进行备份(TAR,DD,CPIO)
    
    
    
    ORACLE(在线)热备必要步骤
    1、请求ORACLE的所有表空间及数据文件的列表。
    2、请求存储ORACLE归档日志的位置。
    3、请求存储ORACLE控制文件的位置(可选)。
    4、将所有表空间置于备份模式,可且用ALTER TABLESPACE tablespace_name BEGIN 
    BACKUP命令。
    5、将每个表空间的数据文件复制到磁盘或磁带上。
    6、去除各个表空间的备份模式,可使用ALTER TABLESPACE tablespace_name END 
    BACKUP命令。
    7、切换重做日志文件。
    8、备份控制文件,可使用BACKUP CONTROL file命令。
    9、手工复制控制文件(可选)。
    10、手工复制在线重做日志。
    11、确保所有在备份期间的归档重做日志均保存完好。
    
    说明:
    在表空间被置于备份模式时,会有以下事件发生:
    1、ORACLE检查点表空间,将所有改变从内存存储到磁盘上。
    2、表空间中各个数据文件的SCN标识都“冻结”在当前值,即使对数据文件进一步更新,
    SCN值都不会被更新,直到去除备份模式。
    3、ORACLE从记录完整的更改数据库块的映像转向记录重做日志。不再记录某特定的块是
    怎样改变的,而是记录整个改变后块的映像。这就是重做日志在热备份过程中迅速增长的原
    因。
    
    自动备份的ORABACK.SH脚本支持特性:
    1、备份磁盘或磁带。
    2、自动检测数据库配置。
    3、基于文件系统或原始分区备份数据库。
    4、多任务,可以将备份时间减少到75%。
    5、使用邮件发送成功或错误通知。
    6、备份ORATAB中的一个或多个实例。
    
    使用方法介绍
    1、备份所有实例;
    # ORABACK.SH
    2、备份一个或更多实例,要带上参数ORACLE_SID;
    # ORABACK.SH ORACLE_SID1 ORACLE_SIDn
    3、如果要在ORABACK.CONF中指定的某一时刻调度备份,则带上at:
    # ORABACK.SH at ORACLE_SID1 ORACLE_SIDn
    安装ORABACK.SH,首先将ORABACK.SH、CONFIG.GUESS以及LOCALPATH.SH放在一
    个目录下,然后核对脚本头部特定位置的下列值。
    BINDIR		安装ORABACK.SH的目录。
    ORATAB		设为ORACLE的ORATAB文件的名称和位置。
    ORACONF		设为ORABACK.CONF文件的名称和位置。
    
    ORABACK.CONF配置
    1、HOSTNAME.MASTER	系统主机名,去掉域名(如AAA.DOMAIN.COM 变成AAA)
    2、SKIP			如果今天晚上跳过该主机上的所有备份,可以在这里输入“SKIP”
    3、COLD DAY		进行冷备份的日期,可以是每周的某一天(FRI,即星期五),或每月
    的某一天(03,即第三天)。
    4、COLD TIME		进行冷备份的时间,采用24小时制。
    5、HOT TIME		一天中进行热备份的时间,采用24小时制。
    6、TYPE DEVICE		非回绕磁带设备,备份到磁带。(如只允许磁盘备份,则保持空白)。
    7、USERS		充许运行脚本的用户名列表,以|隔开,如ORACLE|DBA,空白表示仅允许
    ORACLE用户运行。
    8、PARALLELISM		同时运行数据文件拷贝数,空缺 = 1.
    9、BACKUP DIR		备份目录。
    10、Y			表示在写入磁盘前先对文件进行压缩。
    11、MAIL DS		邮件ID列表,用来发关备份成功与否的通知,之间用“,”号分开。
    
    进行完全逻辑备份时需要RESTRICT模式。关闭数据库,然后用STARTUP RESTRICT OPEN
    打开数据库,再进行完全导出。导出完成后用ALTER DATABASE DISABLE RESTRICTED 
    SESSION恢复连接。
    
    集萃
    
    镜像重做日志	一个ACTIVE或CURRENT日志组的所有成员均丢失,会造成数据丢失。
    镜像重做日志,所有日志组成员均丢失的可能性就极小。
    观察告警日志	镜像控制文件   使用ARCHIVELOG模式
    
  • 相关阅读:
    放假期间网站被挂马的解决办法
    放假期间网站被挂马的解决办法
    判断一个字符串中字母的个数(无视大小写)
    判断一个字符串中字母的个数(无视大小写)
    JSP 9 大内置对象详解
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    2019年企业数据生产力调研报告,90%的人都没看过
    2019年12月数据库流行度排行:前三甲高位收官 数据库重获增长趋势
  • 原文地址:https://www.cnblogs.com/zhumao/p/196820.html
Copyright © 2011-2022 走看看