Oracle的官方文档中有rman命令的比较完整的说明,我们可以参考。下面是一些常用的命令的使用例子: Rman常用命令: 一、RMAN设置 1.显示RMAN默认配置 Rman中可以利用show命令来显示当前的配置参数。例如,通过SHOW ALL显示当前所有的配置。 RMAN> show all; RMAN 配置参数为: CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 3 DAYS; CONFIGURE BACKUP OPTIMIZATION OFF; # default CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default CONFIGURE CONTROLFILE AUTOBACKUP ON; CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO 'd:/backup/%F'; CONFIGURE DEVICE TYPE DISK PARALLELISM 1; # default CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default CONFIGURE MAXSETSIZE TO UNLIMITED; # default CONFIGURE SNAPSHOT CONTROLFILE NAME TO 'F:\ORAHOME1\DATABASE\SNCFJSSWEB.ORA'; # default RMAN> 注:配置项后面跟了# default的表示该项仍是初始配置,未被修改过。 该命令使用也相当灵活,其后跟上不同的类型的配置参数,即可以显示不同类型的配置,如: SHOW CHANNEL; SHOW DEVICE TYPE; SHOW DEFAULT DEVICE TYPE; 2.建立恢复目录: 第一步,在目录数据库中创建恢复目录所用表空间: SQL> create tablespace rman_ts datafile 'd:\Oracle\oradata\rman\rman_ts.dbf' size 20M; 第二步,在目录数据库中创建RMAN 用户并授权: SQL> create user rman identified by rman default tablespace rman_ts temporary tablespace temp quota unlimited on rman_ts; 用户已创建。 SQL> grant recovery_catalog_owner connect, resource to rman ; 授权成功。 第三步,在目录数据库中创建恢复目录 C:\>rman catalog rman/rman 恢复管理器:版本8.1.6.0.0 - Production RMAN-06008:连接到恢复目录数据库 RMAN-06428:未安装恢复目录 RMAN>create catalog tablespace rman_ts; RMAN-06431:恢复目录已创建 2. 启动RMAN 2.1.使用不带恢复目录的RMAN 设置目标数据库的 Oracle_SID ,执行: oracle@myserve:~$ rman target / 2.2.使用带恢复目录的RMAN oracle@myserve:~$ rman target / catalog rman/rman 2.3.在恢复目录中注册数据库: RMAN> register database; .注销目标数据库 为了能注销数据库,需要获得数据库的标识码(DB_ID)和数据库键值(DB_KEY)。其中连接目标数据库时将会获得DB_ID 连接到目标数据库,查询db表: SQL> select * from db; DB_KEY DB_ID CURR_DBINC_KEY ---------- ---------- -------------- 1 3021445076 2 SQL> execute dbms_rcvcat.unregisterdatabase(1,3021445076); PL/SQL 过程已成功完成。 3.使用rman备份数据库: 在指定备份片的文件名时可以使用以下匹配符: %c:当生成多重备份时,用于指定备份片的副本号 %d:用于指定数据库名 %e:用于指定归档日志的序列号 %p:用于指定在备份集内备份片的编号 %s:用于指定备份集的编号 %n:用于指定表空间的名称 %f:用于指定绝对文件号 为了防止建立备份集错误匹配符%s是必顺的;如果要建立多个备份片文件,则匹配符%p是必顺的;如果要建立多个备份片副本,则匹配符%c是必顺的. 完全数据库备份集 backup database 一至性备份: RMAN>shutdown immediate RMAN>startup mount RMAN>backup database format=’/opt/oracle/rmanbak/%d_%s.dbf’; RMAN>alter database open; RMAN>sql ‘alter system archive log current’ 非一至性备份(在open状态下): RMAN>backup database format=’/opt/oracle/rmanbak/%d_%s.dbf’; RMAN>sql ‘alter system archive log current’; 免除表空间: RMAN>configure exclude for tablespace ts_name; //设定在备份数据库的时候排除ts_name; RMAN>backup database format=’/opt/oracle/rmanbak/%d_%s.dbf’; RMAN>sql ‘alter system archive log current’; 查看数据库备份: RMAN>list backup of database; 表空间备份集(只适用于archivelog): RMAN>backup tablespace ts_name format=’/opt/oracle/rmanbak/%n_%s.pdf’; 查看表空间备份: RMAN>list backup of tablespace taplespace_name; 数据文件备份集 查询表空间对应的数据文件及其序号 Select file_name,file_id,tablespace_name from dba_data_file; 备份数据文件 RMAN>backup datafile 5 format=’/opt/oracle/rmanbak/%n_%f_%s.dbf’; 查看指定数据文件的备份 RMAN>LIST BACKUP OF DATAFILE n; RMAN>LIST BACKUP OF DATAFILE '/opt/oracle/rmanbak/JWEB.ORA'; 控制文件备份集 备份当前控制文件 RMAN>backup current controlfile format=’/opt/oracle/rmanbak/%d_%s.ctl ’ 在备份其它数据文件时,同时备份控制文件 RMAN>backup datafile 5 format=’/opt/oracle/rmanbak/%n_%f_%s.dbf’ 2>include current controlfile; 在备份时自动备份控制文件 RMAN>configure controlfile autobackup on; 如果要查看备份的控制文件,可以通过: RMAN>list backup of controlfile; 备份spfile RMAN>backup spfile format=’/opt/oracle/rmanbak/%d_%s.par’; 备份规档日志: 备份全部的规档日志: RMAN>backup archivelog all 2、在BACKUP过程中利用PLUS ARCHIVELOG参数备份,例如: RMAN>backup database plus archivelog 则在备份数据库的同时自动对所有归档文件进行备份。这种方式与上种有什么区别呢,区别太明显了,BACKUP.....PLUS ARCHIVELOG命令在备份过程中会依次执行下列步骤: 1>.运行ALTER SYSTEM ARCHIVE LOG CURRENT语句对当前redolog进行归档。 2>.执行BACKUP ARCHIVELOG ALL命令备份所有已归档日志。 3>.执行BA