【DB宝50】Oracle异构平台迁移之完全可传输导出导入(Full Transportable Export & Import)

0    4841    7

Tags:

👉 本文共约3711个字,系统预计阅读时间或需14分钟。

一、简介

完全可传输导出导入(Full Transportable Export & Import)可以认为是TTS的一个升级版,如下所示:

官网:

https://docs.oracle.com/en/database/oracle/oracle-database/21/upgrd/transporting-upgrading-database-full-transportable-export-import.html#GUID-E5765990-0A20-4AAC-8AFC-1930B929A172

1.1、使用场景

完全可传输导出/导入功能可以让数据库迁移更快、更容易,比exp更有效,可用于多种情形:
版本升级至新发行版Oracle DB:可以使用完全可传输导出/导入功能将数据库从11.2.0.3或更高版本升级至Oracle Database 12c。要执行上述升级操作,请安装Oracle Database 12c并创建一个空数据库。接着,使用完全可传输导出/导入功能将11.2.0.3数据库移动到Oracle Database 12c数据库。
将数据库移动到新计算机系统:可以使用完全可传输导出/导入功能将数据库从一个计算机系统移动到另一个计算机系统。您可能想要将数据库移动到新计算机系统以升级硬件,或将数据库移动到其他平台上。
将非CDB移动到非CDB或CDB:移动到CDB后,移动的数据库将成为与CDB关联的PDB。完全可传输导出/导入功能可以高效地将11.2.0.3或更高版本的数据库移动到Oracle Database 12c数据库。

1.2、限制条件

执行完全可传输导出时有以下限制:
•如果要导出的数据库包含加密表空间或具有加密列(透明数据加密(TDE)列或SecureFile LOB列)的表,则还必须提供ENCRYPTION_PASSWORD参数。
•如果源数据库中含有加密表空间,则源数据库和目标数据库必须位于具有相同字节排列顺序(endianness)的平台上。
•如果源平台和目标平台的字节排列顺序(endianness)不同,则必须转换要移动的数据,使其格式与目标平台的格式相同。使用DBMS_FILE_TRANSFER程序包或RMAN CONVERT命令。
•完全可传输导出无法重新启动。
•具有存储且已选定要导出的所有对象中的所有存储段,必须完全位于不可移动的管理表空间(SYSTEM/SYSAUX)中或完全位于用户定义的可移动表空间中。单个对象的存储不能跨越这两种表空间。
•使用完全可传输导出通过网络移动数据库时,含有LONG或LONG RAW列且位于管理表空间(例如SYSTEM或SYSAUX)中的表不受支持。
•使用完全可传输导出通过网络移动数据库时,如果审计线索信息本身存储在用户定义的表空间中,则无法为存储在管理表空间(例如SYSTEM和SYSAUX)中的表启用审计。
•如果源数据库和目标数据库都运行Oracle Database 12c发行版1(12.1),则必须至少将Oracle数据泵VERSION参数设置为12.0或将COMPATIBLE数据库初始化参数设置为12.0或更高版本,才能执行完全可传输导出。
•从11.2.0.3源数据库开始才支持完全可传输导出。完全可传输导出功能用于11.2.0.3或更高版本的数据库,完全可传输导入功能用于Oracle 12c数据库。

执行完全可传输导入时有以下要求:

•如果您使用的是网络链接,则在NETWORK_LINK参数中指定的数据库必须为Oracle Database 11g发行版2(11.2.0.3)或更高版本,且Oracle数据泵VERSION参数必须至少设置为12。(在非网络导入中,会从转储文件隐式确定VERSION=12。)

•如果源平台和目标平台的endian格式不同,则必须转换要移动的数据,使其格式与目标平台的格式相同。可使用DBMS_FILE_TRANSFER程序包或RMAN CONVERT命令转换数据。

•如果源平台和目标平台的endian格式不同,则在网络模式或转储文件模式下不支持对加密表空间进行完全可传输导入。

•使用完全可传输导入功能通过网络移动数据库时,含有LONG或LONG RAW列且位于管理表空间(例如SYSTEM或SYSAUX)中的表不受支持。

•使用完全可传输导入功能通过网络移动数据库时,如果审计线索信息本身存储在用户定义的表空间中,则无法为存储在管理表空间(例如SYSTEM和SYSAUX)中的表启用审计。

• 目标库字符集需要和源库保持一致。

二、完全可传输操作步骤

要执行完全可传输操作,请执行下列步骤:
1.在导出之前,将数据库中的所有用户定义的表空间置于只读状态,排除SYSTEM、SYSAUX、TEMP和Undo表空间。

2.以具有DATAPUMP_EXP_FULL_DATABASE角色的用户身份调用Oracle数据泵导出实用程序,并指定完全可传输导出选项:FULL=Y、TRANSPORTABLE=ALWAYS。LOGFILE参数很重要,因为它将包含导入操作需要移动的数据文件的列表。要在11.2.0.3数据库上执行该操作,请使用VERSION参数。只有Oracle Database 12c数据库才支持完全可传输导入。

3.将导出的转储文件拷贝到目标端。

4.将相关只读表空间的数据文件拷贝到目标端。

5.(可选)转换文件的字节序。如果要将数据库移动到与源平台不同的平台中,则请确定源平台和目标平台是否都支持跨平台数据库移动。如果两个平台的endian格式相同,则不必进行转换。否则,必须使用DBMS_FILE_TRANSFER或RMAN CONVERT命令转换源平台或目标平台中数据库内的每个表空间。

6.将源表空间置于读写状态。

7.以具有DATAPUMP_IMP_FULL_DATABASE角色的用户身份调用Oracle数据泵导入实用程序,并指定完全可传输导入选项:FULL=Y、TRANSPORT_DATAFILES。

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信dbaup66,谢谢!
AiDBA后续精彩内容已被站长无情隐藏,请输入验证码解锁本文!
验证码:
获取验证码: 请先关注本站微信公众号,然后回复“验证码”,获取验证码。在微信里搜索“AiDBA”或者“dbaup6”或者微信扫描右侧二维码都可以关注本站微信公众号。

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复