rman备份之镜像备份
If you run a RESTORE command, then by default RMAN restores a datafile or control file to its original location by copying an image copy backup to that location. Image copies are chosen over backup sets because of the extra overhead of reading through an entire backup set in search of files to be restored.
-- 当同时有镜像备份和备份集时,Oracle会优选的选择镜像备份,因为这样可以省略从备份集中查找文件和释放文件的时间。
镜像备份特点
* 一个镜像备份只能写到一个disk上。当需要备份较大的files时,需要考虑复制时间可能会较长,但转储时间被降低。
* 如果file存储在disk上,可以被快速用于恢复,转储的速度相当于ALTER DATABASE RENAME FILE语句的速度
* 在镜像备份中,所有的blocks都将被复制,不管其是否包含了data。Oracle server进程会复制file并进行额外的操作如校验blocks是否corrupt并在control file中注册该备份。为了加速备份的速度,可以使用参数NOCHECKSUM参数。
* 镜像备份可以作为full备份或是level 0的增量备份的一部分。使用level 0选项使其能为后续增量备份集使用。
可以对datafiles、archived redo log files或是control files做镜像备份。如果要使用copy对database进行完全备份,需要对每个datafile分别进行copy。
CONFIGURE DEVICE TYPE DISK BACKUP TYPE TO COPY
备份命令
备份单个数据文件
RMAN> run {
2> allocate channel ch1 type disk;
3> copy
4> datafile 1 to '/data5/orabak/system01.dbf',
5> current controlfile to '/data5/orabak/control01.ctl';
6> }
COPY DATAFILE ‘/ORADATA/users_01_db01.dbf’ to ‘/BACKUP/users01.dbf’ tag=DF3,
ARCHIVELOG ‘arch_1060.arc’ to ‘arch_1060.bak’;
从Oracle10g开始,Oracle允许使用单条命令"backup as copy"进行全数据库镜像拷贝备份
RMAN> run {
2> backup as copy tag "03280501_copy" database;
3> }
进行备份的并发
默认情况下,RMAN在执行COPY命令时是串行的,但可以通过下面的方式执行:
* 使用CONFIGURE DEVICE TYPE disk Parallelism integer;,或是分配多个channel
* 给一个COPY命令指定多个files。
例如:
RMAN> CONFIGURE DEVICE TYPE disk parallelism 4;
RMAN>COPY # 3 files copied in parallel
2> datafile 1 TO ’/BACKUP/df1.dbf’,
3> datafile 2 TO ’/BACKUP/df2.dbf’,
4> datafile 3 TO ’/BACKUP/df3.dbf’;
增量备份
RMAN>run {
RMAN>BACKUP AS COPY DATABASE TAG ‘DB_COPY’;
RMAN>}
RMAN>run {
RMAN>BACKUP INCREMENTAL LEVEL 1 FOR RECOVER OF COPY WITH TAG ‘DB_COPY’ DATABASE PLUS ARCHIVELOG DELETE INPUT;
RMAN>copy current controlfile to ‘’;
RMAN>}
使用镜像备份进行恢复或切换不同的文件系统(filesystem ASM)
RUN
{
ALLOCATE CHANNEL dev1 DEVICE TYPE DISK;
ALLOCATE CHANNEL dev2 DEVICE TYPE sbt;
SQL "ALTER TABLESPACE tbs_1 OFFLINE IMMEDIATE";
SET NEWNAME FOR DATAFILE '/disk7/oracle/tbs11.f'
TO '/disk9/oracle/tbs11.f';
RESTORE TABLESPACE tbs_1;
SWITCH DATAFILE ALL;
RECOVER TABLESPACE tbs_1;
SQL "ALTER TABLESPACE tbs_1 ONLINE";
}
全库: switch database to copy;
查看镜像拷贝:
list copy;
list copy of datafile 4;
list copy of controlfile;
RMAN> copy datafile 1 to '/tmp/bk/system01.dbf';
RMAN> list copy
RMAN> list copy of datafile 4;
List of Datafile Copies
Key File S Completion Time Ckp SCN Ckp Time Name
------- ---- - --------------- ---------- --------------- ----
3 4 A 26-FEB-11 824124 26-FEB-11 /tmp/test/user01.db
不能对spfile进行备份
rman备份原理
在copy执行期间,Oracle server 进程会为每个block计算一个checksum,来检测其是否corrupt。RMAN会在转储时检测copy的checksum。可以使用NOCHECKSUM选项来加速copy进程的执行。可以使用CHECK LOGICAL选项来测试通过物理测试的data和index blocks是否存在逻辑的corrupt。例如row piece或是index记录的corrupt。如果检测到逻辑corrupt,block被记录到alter log中。
可以使用参数MAXCORRUPT设置一个逻辑和物理corrupt的阙值。如果所有逻辑和物理corruption低于该阙值,命令将成功完成并会填充视图V$COPY_CORRUPTION相应的记录,否则命令将会被终止,也不会填充视图。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/203348/viewspace-1338888/,如需转载,请注明出处,否则将追究法律责任。