zoukankan      html  css  js  c++  java
  • Oracle—RMAN备份(三)

    一.增量备份的相关概念


      1. 在前面说明了RMAN的完整备份,完整备份是备份所用使用过的块,不备份没有使用的过的块;增量备份只备份自上次备份以来更改过的块。


      2.即使RMAN的默认操作是在增量备份时扫描整个数据文件来确定哪些块已经更改,也仍然节省时间,因为在所有情况下,瓶颈都在于对磁盘的写操作 ,而不是文件的读取。如果再启用块变更跟踪,这样就不用扫描整个文件了,备份时间也大大减少了。


      3.用户管理的备份是不能实现增量备份的,RMAN可以实现。


      4.增量备份分为积累增量备份和差异增量备份,积累增量备份是自上次完整备份以来所有更改过的块;差异增量备份是自上次增量备份以来更改的所用块。


    二.增量备份的级别


      1.增量备份依赖于包含所有块的起点:这个称为增量级别0备份。然后,差异增量级别1备份将提取自上一个级别1备份以来所有更改过的块,如果没有介于其间的级别1备份,则提取自上一个级别0备份以来更改的所用块。积累增量备份将提取自上一个级别0备份以来更改过的所有块,不考虑期间是否存在任何级别1备份。


      2增量级别0备份和完整备份的效果是一样的,只是增量级别0备份可以作为增量备份起点而完整备份不可以。


    3.在较早的RMAN版本中增量的级别可以指定04个级别,

    Different incremental backups contain only modified blocks  from level n(1~4) or lower.

    Cumulative  incremental backups contain only modified blocks from level n(0~3) or lower.


    即差异增量备份是备份两个相同级别之间(指两个间隔的时间)所有变更的块或者没有和现在级别相同的备份则找到较低的级别,备份两者之间的变更块;积累增量备份是备份现在这个级别到比现在低一个级别所有变更的块或者找到比现在更低的级别之间更改块的备份。



    三.增量备份的实现


    1.对文件/u01/oradata/wilson/paul01.dbf进行增量备份,它的文件号是6,命令如下,


    RMAN> run{

    2> allocate channel d1 type disk;

    3> backup incremental level 0 datafile 6 format='/u01/backup/l0_%U';

    4> }


    这是增量0级备份,作用效果和完整备份一样,备份所用使用过的块,但它可以作为增量备份的基础,而完整备份不可以。


    2.对文件进行增量1级别备份,命令如下


    RMAN> run{

    2> allocate channel d1 device type disk;

    3> backup incremental  level 1  datafile 6 format='/u01/backup/l1_%U';} 

    它备份自上一个级别1备份(对于第一运行,是级别0)以来更改的所有块。


    3.对文件进行积累增量备份


    RMAN> run{

    2> allocate channel d1 type  disk;

    3> backup   incremental  level 1 cumulative datafile 6 format='/u01/backup/l1c_%U';

    4> }

    它备份自级别0备份以来更改的所有块。


    4.如果没有运行级别0备份,那么第一次级别1差异备份或者积累备份将实际执行级别0备份。


    5.如果备份时间较长可以用视图v$session_longops来查看时间,记录中超过6s以上的操作,


    SQL> select sid,sofar,totalwork  from  v$session_longops;

           SID      SOFAR  TOTALWORK

             ---------- ---------- ----------

            40          1          1

            40          2          2

            其中sofar是到目前为止所运行的时间,totalwork是总共需要运行的时间。



    四.变更块跟踪


    1. RMAN的默认操作是在增量备份时扫描整个数据文件来确定哪些块已经更改,这样做的优点是允许RMAN检查块的损坏,但这样花费的时间较长,所以开启变更块更踪,RMAN在执行增量备份时读取变更跟踪文件就可以确定需要备份的块,这样大大减少了时间。


    2.变更跟踪文件的默认位置是DB_CREATE_FILE_DEST目录(如果作了定义),也可以指定跟踪文件的名称和位置。


    3.启用块变更跟踪,指定文件名和位置,命令如下,

    SQL> alter database enable block change tracking using file '/u01/change_tracing.dbf';

    Database altered.


     关闭块变更跟踪,关闭后变更跟踪文件自动删除,命令如下,

    SQL> alter database disable block change tracking ;

    Database altered.


    五.标签

    给备份级一个逻辑的名字,方便管理。给备份级加上标签,


    RMAN> run{

    2> allocate channel d1 device type disk;

    3> backup incremental level  1  datafile 11 tag='sun';}


    直接查找

    RMAN> list backup tag='sun';


    六.相关视图

    1.视图v$session


    SQL> select sid,username,client_info from v$session;

            SID      USERNAME                                CLIENT_INFO

            ---------- ------------------------------          -----------------------------------

            36

            37          SYS

            38          SYS                            rman channel=ORA_DISK_1

            40          SYS


    可以看到启动的服务器进程,rman一旦连接上,就会默认启动2个服务器进程,pollingdefalut进程,备份时会需要第三个会话:通道。


    2.set command to 命令,命令如下


    RMAN> run{

    2> allocate channel d1 type disk;

    3> set command id to 'sunshine';

    4> backup datafile 6 format='/u01/backup/p_%U';}

    指定set command id  to  ‘sunshine’;


    可以在v$session会话中查到相关的进程,


    SQL> select sid,username,client_info from v$session;

     

        SID      USERNAME           CLIENT_INFO

    ---------- ------------------------------ -----------------------------------

            29     SYS

            38     SYS

            39     SYS                   id=sunshine


    3.视图v$process

    v$session可以查到哪个SID在哪个通道上工作,在通过和v$process关联查到SPID等进程信息,可以监控进程,命令如下,


    SQL> select sid,spid,client_info from v$process  p ,v$session s

      2  where p.addr=s.paddr

      3  and client_info like '%id=sun%';

           SID      SPID                     CLIENT_INFO

           ---------- ------------------------ -----------------------------------

            39         5081                     id=sunshine


    最后,当RMAN异常中断时,不会记录在控制文件上或者数据库中,但是磁盘上会有文件,要去删除它。


    相关文章:Oracle—RMAN备份(一)    Oracle—RMAN备份(二)

  • 相关阅读:
    使用JdbcTemplate访问数据库
    解决为什么每次打开Eclipse新的workspace需要更新nexus-maven-repository-index问题
    java内存设置
    Eclipse如何解决启动慢
    eclipse的包的加减号展开方式
    maven总结5
    maven总结4
    maven总结3
    maven总结2
    maven总结1
  • 原文地址:https://www.cnblogs.com/riskyer/p/3220284.html
Copyright © 2011-2022 走看看