jdxyzlh 发表于 2015-11-9 11:22:32

OCM备考 三. Managing Database Availability 之RMAN高级操作


下面列出关于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/oracle@test1 AS SYSDBA;

SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;

SQL> QUIT;

% rman TARGET SYS/oracle@test1 CATALOG test1/test1@catdb

RMAN> DROP DATABASE INCLUDING BACKUPS NOPROMPT;
页: [1]
查看完整版本: OCM备考 三. Managing Database Availability 之RMAN高级操作