rman系列之进入rman

来源:互联网 发布:代办淘宝贷款骗局 编辑:程序博客网 时间:2024/05/22 06:07

    通过rman的方式无论是备份还是恢复,小生建议,大伙还是先预备两个东东:

    1)到mount阶段,因为,缺省下rman的元数据被存在目标数据库控制文件中

    2)如果数据库处于open read write状态,那么必须置于归档模式,否则会报ora-19602:错误无法按 NOARCHIVELOG 模式备份或复制活动文件。如何开启归档,请见:点击打开链接http://blog.csdn.net/linwaterbin/article/details/7735277

    连接数据库,可分本地和远程:

    本地:rman target /

    远程:rman target sys/oracle@orcl.oracle.com

    另外,在rman里面,启动和关闭数据库的命令跟SQL*PLUS环境下相比,完全一模一样

    可以通过,host+exit的黄金组合来执行os命令;通过sql '....'来执行sql语句,这种方式不能得到select的查询输出。但小生建议host+sqlplus /nolog+exit+exit,这种模式可以最大化sql的功能。

    我们也可以把rman的所有输出,全部指定到一个地方:

[oracle@localhost ~]$ rman  target / log /home/oracle/rman_log.txtRMAN> backup tablespace users;RMAN> 


 

    rman备份类型有二:

    1)镜像复制:这种类型out了

    2)备份集:备份集在逻辑上由一个或多个备份片组成,备份片物理上由一个或多个数据文件、控制文件、归档日志等组成。通过rman备份的优势在于,只读取数据库中已经使用的(注意:不是修改)的数据块。

    rman命令执行方式有三:单个执行、run块和脚本

    rman中所有的备份操作,都是通过backup命令(指创建备份集的备份)进行的。

    下面看几个例子:

    1)全库备份

    backup database;

    备份片在缺省下会被存储到flash_recovery_area中,但是我们可以通过format '/u01/app/.....'来指定备份片的名字。如:

    backup database format 'u01/app/oracle/think/bak_%U';

    如果想查看创建的全库备份:

    list backup of database;

    2)表空间的备份

    backup tablespace users

    查看表空间的备份:

    list backup of tablespace users;

    删除表空间的备份:

    delete backupset n;

    3)数据文件的备份

    先看一下数据文件的情况:

sys@ORCL> col file_name for a72 wrappedsys@ORCL> select file_id,file_name from dba_data_files;   FILE_ID FILE_NAME---------- ------------------------------------------------------------------------         4 /u01/app/oracle/oradata/ORCL/datafile/o1_mf_users_8050fkdh_.dbf         3 /u01/app/oracle/oradata/ORCL/datafile/o1_mf_sysaux_8050fk3w_.dbf         2 /u01/app/oracle/oradata/ORCL/datafile/o1_mf_undotbs1_8050fkc6_.dbf         1 /u01/app/oracle/oradata/ORCL/datafile/o1_mf_system_8050fk2z_.dbf         5 /u01/app/oracle/oradata/ORCL/datafile/o1_mf_example_8050jhm7_.dbf         6 /u01/app/oracle/oradata/ORCL/datafile/undotbsthi.dbf6 rows selected.


    backup datafile 2,3,4;

    查看数据文件的备份:

    list backup of datafile 2,3,4;

    4)控制文件的备份

    backup current controlfile;

    我们在执行backup语句时,也可以顺带指定include current controlfile子句,来备份控制文件。如果我们执行configure autobackup controlfile on;那么rman做任何备份操作,都会自动对控制文件做备份。当然,如果我们队数据文件1或者对system表空间备份时,也会触发controlfile的备份。

    查看控制文件的备份

    list backup of controlfile;

    5)归档文件的备份

    backup archivelog all;

    归档日志对于数据库的media recovery相当关键。all指备份当前所有可访问的归档文件,你还可以通过until、scn、time、sequence等参数指定要备份的归档区间。在完成归档日志文件的备份后,我们需要删除已备份的归档文件:delete all input,加在backup命令后,如:backup archivelog all delete all input,则会在完成备份后自动删除归档目录中已经备份的归档日志。

    也可以通过plus archivelog方式对控制文件进行备份,这种情况下,rman会对当前的归档日志自动进行归档。

    查看归档日志的备份

    list backup of archivelog all;

    6)对备份集的备份

    backup backupset all;

    backup backupset n;

    缺省情况都是从磁盘创建备份到磁盘,最佳应用备份集是创建备份集到磁带机。

    下面看一下常见的rman命令:

    show 命令:显示rman默认配置

    配置项后面加了#default的表示该项为初始配置,未被修改过。

    如:show all;

    list 命令:列出备份信息

    list backup:列出所有备份信息

    list backup of controlfile:列出控制文件的备份信息

    delete 命令:删除备份

    删除rman在控制文件里面的记录和相应的物理文件

    delete obsolete:删除过期备份

    delete expired:删除无效备份

    [注意:rman对于obsolete和expired的定义:

                物理上不存在的,即,磁盘上已经被删除的,执行crosscheck后,标志为expired;

                超出了备份保留策略的备份片段,则标志为obsolete

    ]

    delete backupset n:删除特定备份集

    delete backup:删除所有备份

    report 命令:分析备份信息

    用于对当前备份信息的分析,如哪些备份已经过期,哪些文件要备份,哪些备份不可用,哪些备份可以删除等。

    report need backup:查看所有需要备份的文件

    report need backup tablespace system:查看指定表空间是否需要备份

    report obsolete:查看过期备份

    crosscheck 命令:执行检查

    如果物理文件存在,并且,控制文件中有匹配记录,则该记录的状态为available(有效);如果文件已经不在了,则标志该对象的状态为expired

    检查所有归档文件

    crosscheck archivelog all;

    检查所有备份集

    crosscheck backup;

    如果上面的命令我们忘记了,可以逐渐打出匹配符来满足,list backup of tablespace忘了,可以先打list,让rman列出错误,然后再打list backup ....一步步接近命令的真相!