天天看点

OCM备考 三. Managing Database Availability 之RMAN高级操作 1 convert rman的convert命令,用于跨平台迁移数据库或表空间时,对数据文件进行格式转换,使得文件在目标操作系统中可读。 2 delete 4 drop

下面列出关于RMAN的一些高级操作。

1 convert

rman的convert命令,用于跨平台迁移数据库或表空间时,对数据文件进行格式转换,使得文件在目标操作系统中可读。

1.1 源库上convert tablespace

如将表空间从windows迁移到linux,可以在源平台上通过convert tablespace将表空间包含的数据文件转换成linux平台下的格式。

RMAN> CONVERT TABLESPACE finance,hr      
   TO PLATFORM ' Linux IA (32-bit)'      
   FORMAT='/tmp/transport_linux/%U';      

1.2 目标库上convert datafile

如将表空间从windows迁移到linux,可以在目标平台上通过convert datafile将表空间包含的数据文件转换成linux平台下的格式。

Rman> convert datafile '/tmp/ts5.dbf' to platform 'Linux IA (32-bit)' from platform 'Linux IA (32-bit)'  db_file_name_convert '/tmp','/home/oracle';

1.3 源主机上convert database

如将数据库从windows迁移到linux,可以在源平台上通过convert database进行转换

RMAN> CONVERT DATABASE NEW DATABASE 'newdb'

        transport script '/tmp/convertdb/transportscript'

        to platform 'Microsoft Windows IA (32-bit)'

        db_file_name_convert '/disk1/oracle/dbs' '/tmp/convertdb'

        ;

1.4 目标主机上convert database

如将数据库从windows迁移到linux,可以在目标平台上通过convert database进行转换

rman> CONVERT DATABASE ON TARGET PLATFORM

     CONVERT SCRIPT '/tmp/convertdb/convertscript.rman'

        TRANSPORT SCRIPT '/tmp/convertdb/transportscript.sql'

        new database 'newdb'

        FORMAT '/tmp/convertdb/%U'

2 delete

2.1 Expired

如果通过操作系统命令删除了rman备份,可以通过crosscheck找出这类备份文件,并通过delete expired删除。

从而使rman repository一致。

Rman> crosscheck backset

Rman> delete expired backupset;

删除不一致的备份集。

2.2 obsolete

根据rman备份保留策略,选择性删除过期的备份。

Rman> report obsolete;   #找出过期备份

Rman> delete obsolete;   #删除过期备份

3 switch

通过rman做恢复时,可以通过switch命令,将数据文件恢复到新的位置,或者修改数据文件的名称。

3.1 switch database

将数据库切换到copy备份上。

Rman> switch database to copy;

3.2 switch datafile

1、将表空间恢复到不同路径下

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"; 

}

3.3 switch tempfile

RUN

  SET NEWNAME FOR TEMPFILE 1 TO '/newdisk/dbs/temp1.f'; 

  SWITCH TEMPFILE 1; 

  RESTORE DATABASE; 

  RECOVER DATABASE; 

  ALTER DATABASE OPEN; 

}

4 drop

如果使用recovery catalog,可以通过rman删除数据库。

4.1 drop database

% sqlplus SYS/[email protected] AS SYSDBA;

SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;

SQL> QUIT;

% rman TARGET SYS/[email protected] CATALOG test1/[email protected]

RMAN> DROP DATABASE INCLUDING BACKUPS NOPROMPT;