oracle 传输数据库、表空间

      oracle 传输表空间自8i开始推出,用于同平台、跨平台间快速数据传输、迁移,11g 开始支持传输数据库特性。

1、查询数据库支持的平台、字节序,必须是受支持的平台、字节序才支持传输。

      select * from v$transportable_platform ;

2、传输数据库(oracle 11g及以上)

传输数据库的简要操作步骤

1) 确定平台的 Endian 格式(源平台和目标平台必须是相同的字节序)是否支持转换

--数据库必须只读打开模式

set serveroutput on

declare

db_ready boolean;

begin

db_ready := dbms_tdb.check_db('Linux x86 64-bit',0);

if (db_ready) then

dbms_output.put_line('True');

else

dbms_output.put_line('False');

end if;

end;

2)rman在源平台或者目标平台进行转换(数据库必须只读打开模式)

--源平台

CONVERT DATABASE NEW DATABASE 'newdb'

transport script '/tmp/convertdb/transportscript'

to platform 'Linux x86 64-bit'

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

        ;

--目标平台

CONVERT DATABASE ON TARGET PLATFORM

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

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

new database 'newdb'

FORMAT '/tmp/convertdb/%U'

3、传输表空间(8i支持同平台同数据块,9i支持同平台不同数据块,10g开始支持跨平台)

传输表空间的简要操作步骤(源数据库与目标数据库必须是相同的字符集、国家字符集)

1) 确定平台的 Endian 格式

2) 确保表空间为自包含并使其只读

EXECUTE DBMS_TTS.TRANSPORT_SET_CHECK('sales_1_tbs,sales_2_tbs',TRUE);

SELECT * FROM TRANSPORT_SET_VIOLATIONS;--确保查询结果为空

ALTER TABLESPACE sales_1_tbs READ ONLY;

ALTER TABLESPACE sales_2_tbs READ ONLY;

3) 用 exp、expdp等实用程序导出元数据

EXPDP system/password DUMPFILE=expdat.dmp logfile=expdp.log DIRECTORY=dpump_dir TRANSPORT_TABLESPACES = sales_1_tbs,sales_2_tbs

4) rman转换数据文件以匹配 Endian 格式 ( 若一致可跳过),可以在源平台使用convert TABLESPACE 转换,也可以在目标平台使用convert datafile转换

--源平台

CONVERT TABLESPACE sales_1_tbs,sales_2_tbs

TO PLATFORM 'Linux x86 64-bit'

FORMAT '/temp/%U';

5) 拷贝文件到目标系统,rman转换数据文件以匹配 Endian 格式( 若一致可跳过),可以在源平台使用convert TABLESPACE 转换,也可以在目标平台使用convert datafile转换

--目标平台

CONVERT DATAFILE

'/temp/sales_101.dbf',

'/temp/sales_201.dbf'

TO PLATFORM="Linux x86 64-bit"

FROM PLATFORM="AIX-Based Systems (64-bit)"

DBFILE_NAME_CONVERT=

"/temp/","/u01/app/oradata/testdb/"

PARALLELISM=5;

6) 使用 imp、impdp导入实用程序导入元数据

IMPDP system/password DUMPFILE=expdat.dmp DIRECTORY=dpump_dir

TRANSPORT_DATAFILES=/u01/app/oradata/testdb/sales_101.dbf,/u01/app/oradata/testdb/sales_201.dbf

ALTER TABLESPACE sales_1_tbs READ WRITE;

ALTER TABLESPACE sales_2_tbs READ WRITE;

posted @   踏雪无痕2017  阅读(262)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示