RMAN RMAN只能在Archive log模式下进行,因为备份模式只能是热备份。 --经测试,非归档模式在mount 层次下,noarchive也可以备份。但open状态是不可以备份活动数据文件的。 RMAN只会备份有用的数据块。 通过以下方式连接目标库: C:\Users\anker>rman RMAN> connect target sys/system@orcl 连接到目标数据库: ORCL (DBID=1325028359) 备份整个数据库 backup database; 备份完成的文件存放在 %db_recovery_file_dest%\ORA_SID\BACKUPSET\YYYY-MM-DD\*.bkp 备份的内容包括: 数据文件(不包括临时文件) 控制文件 参数文件(SPFILE) --不会备份重做日志文件,因为此三个文件在open时是活动的。所以备份在线重做日志文件没有意义。 在备份时打印的文字描述,分配的通道对应Oracle的一个session,也就是一个进程/线程在执行。 使用run命令,实现多个功能顺序执行。 run { allocate channel cl device type disk;--备份的内容放在磁盘上 allocate channel c2 device type disk;--第二个通道也放在磁盘 backup as compressed backupset database;--以压缩的方式备份 } 当多个通道同时备份数据文件时,各个数据文件的scn会不一致。 打印的日志如下: 可以看出,此次指定的通道算是私有通道,执行之前先把上次的公有通道释放掉。两个私有通道并行执行。通道的执行数量要与磁盘驱动器(磁盘写头)相等,若大于也没有用处。 备份完成之后,私有通道也会释放掉。 释放的通道: ORA_DISK_1 分配的通道: cl 通道 cl: sid=158 devtype=DISK 分配的通道: c2 通道 c2: sid=139 devtype=DISK 启动 backup 于 23-6月 -13 通道 cl: 启动压缩的全部数据文件备份集 通道 cl: 正在指定备份集中的数据文件 输入数据文件 fno=00003 name=F:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF 输入数据文件 fno=00004 name=F:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF 输入数据文件 fno=00002 name=F:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF 通道 cl: 正在启动段 1 于 23-6月 -13 通道 c2: 启动压缩的全部数据文件备份集 通道 c2: 正在指定备份集中的数据文件 输入数据文件 fno=00001 name=F:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF 输入数据文件 fno=00005 name=F:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DBF 通道 c2: 正在启动段 1 于 23-6月 -13 通道 cl: 已完成段 1 于 23-6月 -13 释放的通道: cl 释放的通道: c2 --查看备份集 list backup; --以下是打印的结果,以下信息来自于控制文件 BS Key关键字指的Oracle本身产生的ID,标示备份集。 Type指的是全量备份(Full)还是增量备份。 LV指的增量备份的级别,全量(FUll)默认为空 Device Type指的备份机的存放位置 Elapsed Tie 指备份时花费的时间。 Completion TIme 指备份集完成的时间点。 BP Key指的备份片的关键字,一个备份集可以包含多个备份片 Status指的备份片状态 Compressed指是否备份了。 Tag: 用于标示被备份是否是一致性生产的。恢复的时候会用到tag Piece Name指备份文件的名称 Ckp SCN指最后checkpoint的 SCN号 Ckp TIme 最后的checkpoint SCN对应的时间 NAME 备份文件名称 BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ ------------------- 28 Full 104.72M DISK 00:00:42 2013/06/23 21:28:27 BP Key: 28 Status: AVAILABLE Compressed: YES Tag: TAG20130623T212745 Piece Name: F:\ORACLE\PRODUCT\10.2.0\DB_1\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2013_06_23\O1_MF_NNNDF_TAG20130623T212745_8WF List of Datafiles in backup set 28 File LV Type Ckp SCN Ckp Time Name ---- -- ---- ---------- ------------------- ---- 1 Full 12713208 2013/06/23 21:27:46 F:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF 5 Full 12713208 2013/06/23 21:27:46 F:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DBF --清掉已物理删除的备份集 crosscheck backupset; delete expired backupset; --清楚已物理删除的archivelog crosscheck archivelog all; delete expired archivelog all; --修改rman中,日期显示格式 export NLS_DATE_FORMAT='yyyymmdd hh24:mi:ss'; set nls_date_format=yyyy/mm/dd hh24:mi:ss--Windows环境设置(此处注意不能有引号) --设置英文模式格式,修改的是环境变量,注册表中也包含此信息 set nls_lang=american_ --备份恢复的过程 --查看备份的文件 list backup of database;--备份的数据文件 list backup of controlfile;--备份的数据文件 list backup of datafile;--备份的数据文件 RMAN> restore preview database;--预览oracle指定的恢复文件,默认是使用最近的备份文件。只是针对数据文件 RMAN> restore database;--恢复文件,注意若备份时包括多个数据文件,会全部重新覆盖掉。不会恢复控制文件及spfile等。 RMAN> recover database; --利用归档日志恢复数据,即可以打开数据库,需要注意的地方。rman恢复会优先使用重做归档日志。 RMAN> restore database from tag xxxxxxx;--指定恢复用的备份集文件 在rman中执行sql,但不返回结果。 sql'select * from table T'; --备份表空间 backup tablespace users,DW --备份数据文件 backup datafile 4,3 --备份控制文件,current指的controlfile的状态。 backup current controlfile; --备份spfile backup spfile; --备份归档日志 backup archivelog all;--备份所有归档日志。每次备份时,会先切换并归档下当前日志。 backup archivelog all not backed up;--备份尚未备份的日志文件。会跳过已备份的文件。 backup archivelog all delete all;--备份后,删除重做归档日志。 --rman 不能备份临时文件,不能备份在线重做日志文件。 --删除所有的备份文件 delete backup delete noprompt backup;--无提示确认直接删除所有的文件 删除备份集 delete backupset 19;--BS KEY show all;--显