rman系列之进入rman

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

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

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

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

本地:rman target /

远程:rman target sys/[email protected]

另外,在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.txt
RMAN> 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 wrapped
sys@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.dbf

6 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 ....一步步接近命令的真相!



你可能感兴趣的:(rman)