美文网首页
Oracle 经典差异备份作业建立

Oracle 经典差异备份作业建立

作者: 角角_d216 | 来源:发表于2019-10-23 23:11 被阅读0次

    前言:

          所谓增量备份,顾名思义即是每次备份操作那些发生了“变化”的数据块。在RMAN增量备份中有两种:Differential(差异备份)和Cumulative(增量备份)方式。由于需求这里用到的备份方式则是差异增量备份。

    差异增量备份概念:

          是备份低级别或者同级别备份以来的所有数据块,也就是要备份前期备份以来的差异数据块。在实际的备份中必须存在基础备份也就是0级备份,若没有0级备份则没有比较的对象文件,从而无法实现增量备份,而0级备份便是数据库的全备份。(在Oracle10g之前的版本中,增量备份可以有n多个级别,从0级、1级…….这样的顺序直到n级,n为小于等于4的整数。而10g之后包括10g,Oracle的官方文档明确指出增量备份只有0和1两种级别,设置太多的级别没有太大的意义,不过在实际执行增量操作时,仍能能够指定多个级别,最大能够支持4级的增量备份)

        备份原则:

    (1)     若前面同时有n-1级别和同级别,则备份相同级别以来变化的数据;

    (2)     若前面没有同级别的备份,则备份n-x级别以来变化的数据;

     总的一点,差异增量触发的条件是:小于等于当前级别;

    下面是周备份差异增量备份策略:

    Rman备份基本命令:

    登录Rman:

    win+r 输入rman target/,或者先输入cmd,窗口打开后再输入rman  target/(建议用后者)

    登录进入的方式:

    Rman target system/newoa

    Rman target system/newoa nocatalog(控制文件方式)

    Rman target system/newoa catalog(恢复目录方式)

    数据库备份:

    Backup database format=’ D:/backup/%d_%T_%s’;(format备份到自己想要备份到的地方)

    备份表空间:

    Backup tablespace emp;

    备份数据文件:

    Backup datafile format’ D:/backup/%d_%T_%s’;

    备份归档日志:

    Backup archivelogall delete input format ‘D:/backup/%d_%T_%s.dbf’;

    备份控制文件:

    Backup current controlfile format ‘D:/backup/%d_%T_%s’;(current当前的)

    备份spfile(参数文件):

    Backup spfileformat=’ D:/backup/%d_%T_%s’;

    0级增量备份:(level 后是几就代表几级)

    backup incremental level 0 database format 'D:/backup/%d_%T_%s';

    1级增量备份:

    backup incremental level 1 database format 'D:/backup/%d_%T_%s';

    ---rman 维护命令:(登录rman后进行的操作)

    list backup                                   --列出全部的备份信息

    list backup ofdatabase                       --列出数据库备份

    list backup of tablespace emp                 --列出指定的表空间备份

    list backup of datafile5                     --列出指定的数据文件备份 

    list backup ofcontrolfile                    --列出控制文件备份

    list backup ofspfile                         --列出spfile备份 

    list archivelogall                           --列出归档日志

    list backup of archivelogall                 --列出归档日志的备份

    list backup of databasesummary               --列出可用的备份

    list backup of tablespace empsummary          --关于表空间的备份

    list backup byfile                           --按文件类型列出备份

    list expired backup of archivelog all summary  --失效的备份

    reportobsolete                               --查看过期的

    deleteobsolete                               --删除过期的

    list recoverable backup ofdatabase            --列出有效的备份

    list expiredbackup                           --列出失效的备份

    list expired backup of archivelogall          --列出失效的归档日志备份

    在开始操作前一定要将数据库设为归档模式,否则无法实现备份操作



    首先切换到服务器归档模式,如果已经是归档模式可以跳过此步骤:

    (1)     Win键+r打开cmd , sqlplus /nolog (启动sqlplus)

    (2)     SQL>conn  system/newoa  as sysdba;(以DBA身份连接数据库)

    (3)     SQL>archive log list;(查看是否处于归档模式)

    (4)     shutdown immediate;(立即关闭数据库)

    (5)     startup mount;(启动实例并加载数据库,但不打开)

    (6)     alter database archivelog;(更改数据库为归档模式)

    (7)     重复步骤(3)若出现下图,表示数据库已切换归档模式

    (8)     alter database open;(打开数据库)

    完整备份:

    1.      修改RMAN相关参数

    RMAN>show all;

    RMAN>CONFIGURE CONTROLFILE AUTOBACKUP ON;

    RMAN>CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO 'd:/backup/%F';

    RMAN>exit;

    按如上设置后,控制文件和spfile就会随着数据库备份自动备份到d:/backup下;

        备份脚本

      rmanbackup.txt文件,内容如下:

      RUN {

    allocate channel c1 type disk;

    backup database format 'D:/hotback/db_%U' plus archivelog delete all input format 'D:/hotback/arch_%U';

    release channel c1;

    }

    exit

        rmanbackup.bat文件,内容如下:

      rman target sys/admin@dba nocatalog CMDFILE 'd:/rmanbackup.txt'

    LOG 'd:/rman_backup_%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%.log'

      把rmanbackup.bat文件添加到计划任务里定时执行就可以了。备份完成后会在同一目录下生成 rman_backup_20100112.log 这种格式的log 文件。

    增量备份:

    新建四个文件分别是:rman0.bat,rman0.txt,rman1.bat,rman1.txt(文件的名字随便命名只要区分备份级别即可)

    Rman0.bat脚本内容:

    rman target system/newoa nocatalogCMDFILE 'd:/Rman0.txt' LOG  'd:/backup/rmanbackup_%DATE:~0,4%_%DATE:~5,2%_%DATE:~8,2%.log';----à(此地址为日志地址)

    Rman0.txt内容:

    run{ 

    backup incremental level 0 database format 'D:/backup/%d_%T_%s';

    backup archivelog all format 'D:/backup/archivelog_%d_%T_%s_%p' delete all input;

    }

    Rman1.bat脚本内容:

    rman target system/newoa nocatalogCMDFILE 'd:/Rman1.txt' LOG  'd:/backup/rmanbackup_%DATE:~0,4%_%DATE:~5,2%_%DATE:~8,2%.log';

    rman1.txt内容:

    run{ 

    backup incremental level 1database format 'D:/backup/%d_%T_%s_%p';

    backup archivelog all format'D:/backup/archivelog_%d_%T_%s_%p' delete all input;

    }

    在这里不需要再特意的写备份控制文件,在备份数据库时里面已经包含了控制文件的备份

    在开始备份前,需在D盘中新建一个名为backup的文件夹,由上面备份文件存放的路径可以看出;

    执行rman0.bat:

    出现这个窗口表示成功执行,若执行后没过几秒关闭则失败,具体失败原因在D盘backup文件夹的日志文件中可以查看;

    备份成功后到磁盘中可以看到已经备份好的文件;

    这样数据库0级备份便完成,接着进入到数据库,添加一些数据再进行1级数据库的备份(执行rman1.bat文件);

    这时可以登录rman查看已备份好的数据库具体信息:

    打开cmd 执行 rman target/

    接着执行 list backup; 会看到以下信息

    恢复数据库

      恢复数据库的方式:基于scn恢复

    选择scn恢复时,scn值为你选择中的备份片的控制文件scn值,使用 list backup命令去查看;

    开始恢复:

    (1)     登录到rman, --------rman target/

    (2)     shutdownimmediate;(立即关闭数据库)

    (3)      startup mount;(启动实例并加载数据库,但不打开)

    (4)      run{

    set untilscn 1041640;

    restoredatabase;

    recoverdatabase;

    alterdatabase open resetlogs;

    }

    结束之后便可进入数据库查看数据是否恢复。

    相关文章

      网友评论

          本文标题:Oracle 经典差异备份作业建立

          本文链接:https://www.haomeiwen.com/subject/zmtcvctx.html