cross-Platform. Tranportable tablespace:convert
Oracle 10g支持手工跨平台移动数据库,即使这些数据库的尾数格式(endian format)不对。尾数格式分为两种:litter和big。如果尾数格式不同,则需要手动的利用rman convert tablespace或rman 的 convert datafile进行格式转换
只有尾数格式相同的可以利用rman convert database 跨平台迁移,
例:源db linux x84,目标 db AIX
1. 查看source db 尾数格式
SQL> select endian_format from v$transportable_platform. tp, v$database d where tp.platform_name=d.platform_name;
ENDIAN_FORMAT
--------------
Litter
查看目的db的尾数格式,为big.由于尾数格式不一样,则需要手动转换
2. 查看转换的类型
SQL>Select * from v$transportable_platform;
3. 转移前准备,查看该tablespace 与其他tablespace 是否有关联,在source db
SQL>execute dbms_tts.transport_set_check(‘test2’,incl_constraints=>true);
SQL>select * from transport_set_violations;
--查看test2表空间在外键属性上是否自我包含(没有数据)
SQL>execute dbms_tts.transport_set_check(‘test2’,full_check=>true);
SQL> select * from transport_set_violations;
SQL>execute dbms_tts.transport_set_check(‘test1,test2’,incl_constraints=>true);
--查看test1 test2表空间与其他表空间是否与关联
SQL> execute dbms_tts.transport_set_check(‘test1,test2’,full_check=>true);
SQL> select * from transport_set_violations;
4. Alter tablespace test2 read only;
5. 转换表空间格式为目标AIX格式
$rman target / nocatalog
RMAN> convert tablespace test2 to platform. 'AIX-Based Systems (64-bit)' db_file_name_convert='/oradata/test2.dbf','/tmp/test.dbf';
Format=’/tmp/test_%u.bak’;--或者利用format
Db_file_name_convert 文件路劲转换(可以用于使得在目的数据库中不需要利用convert datafile)
6. Exp metadata
Exp \’sys/oracle as sysdba\’ file=test.dmp transport_tablespace=y tablesapce_name=test
7. Cp metadata and datafile
ftp test.dmp to /ora105/oradata
ftp test.dbf to /tmp/test.dbf
利用format: ftp /tmp/xxx.bak /ora105/oradata/xxx.bak(ftp到任何目录,在转换)
8. Convert datafile on destination
$rman target /
RMAN> convert datafile '/tmp/test2.dbf' db_file_name_convert='/tmp/test2.dbf','/ora105/oradata/test2.dbf';
9. On destination
SQL>imp \’sys/oracle as sysdba\’ file=test.dmp fromuser=test2 touser=test2
Transport_tablespace=y datafiles=’ /ora105/oradata/test2.dbf’;
10. Alter tablespace test2 read write;
11. Select tablespace_name,file_name from dba_data_files where tablespace_name=’TEST2’;
TABLESPACE_NAME FILE_NAME
------------------------------ ------------------------------------
TEST2 /ora105/oradata/test2.dbf
--附加:conver tablespace在source转换
Rman>convert tablesapce tablesapce_name platform=’XXX’
Db_file_name_convert=’/XXX’,’/xxx’;
Format xxx
Conver datafile 在destination db转换
RMAN> convert datafile '/tmp/test2.dbf' db_file_name_convert='/tmp/test2.dbf','/ora105/oradata/test2.dbf';
Oracle 文檔:http://www.di.unipi.it/~ghelli/didattica/bdldoc/B19306_01/backup.102/b14194/rcmsynta018.htm#RCMRF192
Oracle® Database Backup and Recovery Advanced User's Guide
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/24849178/viewspace-710106/ ,如需转载,请注明出处,否则将追究法律责任。