RMAN to Transport Data Across Platforms
跨平台传输数据
RMAN(Recovery Manager)可以用于跨平台传输数据库、数据文件和表空间:
- 跨平台传输:支持不同字节序格式(endian formats)。
- 基于镜像副本和备份集:使用镜像副本和备份集进行数据传输。
- 使用不一致的表空间备份:允许使用不一致的表空间备份。
好处:
- 减少迁移平台的停机时间:有效减少迁移过程中的停机时间。
- 压缩和多段选项:提供压缩和多段选项以优化备份和恢复过程。
- 不在控制文件中编目:这些操作不在控制文件中编目,不用于常规的恢复操作。
2. RMAN CONVERT 命令
RMAN CONVERT命令
RMAN可以将表空间、数据文件或数据库转换为目标平台的格式:
- 转换表空间、数据文件或数据库:将文件格式转换为目标平台的格式。
- 不改变输入文件:转换过程中不改变原始输入文件。
- 将转换后的文件写入输出目的地:转换后的文件将被写入指定的输出目录。
- 可以在源平台或目标平台上转换:支持在源平台或目标平台上进行转换。
- 需要手动启动数据传输:假定你会手动启动数据传输。
示例:
rman target sys@orcl
RMAN> ALTER TABLESPACE bartbs READ ONLY;
RMAN> CONVERT TABLESPACE bartbs TO PLATFORM 'Solaris Operating System (x86-64)' FORMAT '/tmp/transport/%U';
最小化停机时间的数据传输
考虑所需的数据库打开模式和字节序格式:
- 数据库传输:只读模式,相同字节序格式。
- 表空间传输:读写模式,不同字节序格式。
步骤:
- 创建数据库增量0级备份并应用到目标。
- 创建增量备份并应用到目标。
- 重复:创建和应用增量备份。
- 执行最终的只读模式增量备份,应用它,并打开两个数据库,以确保它们一致。
使用镜像副本传输表空间
步骤:
- 将表空间设为只读。
- 使用Data Pump提取元数据。
检查目标平台是否使用相同的字节序格式:
- 如果是,则将数据文件和转储文件传输到目标。
- 如果不是,则使用RMAN转换数据文件。
- 在目标上使用Data Pump导入元数据。
- 将表空间设为读写模式。
确定平台的字节序格式
跨平台可传输表空间:
- 简化在数据仓库和数据集市之间移动数据。
- 允许数据库从一个平台迁移到另一个平台。
- 允许源和目标平台使用相同的字符集。
支持平台及其字节序格式的列表:
SELECT * FROM V$TRANSPORTABLE_PLATFORM;
确定源和目标平台的字节序格式:
SELECT tp.endian_format FROM v$transportable_platform tp, v$database sp WHERE tp.platform_name = sp.platform_name;
使用备份集传输数据
所需条件:
- COMPATIBLE=12.0或更高。
- 只读模式:用于创建跨平台数据库备份。
- 读写模式:用于创建跨平台表空间备份。
步骤:
- 检查前提条件。
- 确定目标。
- 进行字节序转换(如有必要)。
- 传输备份数据。
- 在目标数据库上应用元数据和数据。
传输表空间
步骤:
- 验证前提条件。
- 在源数据库中启动RMAN会话。
- 查询目标平台的确切名称。
- 将表空间改为只读模式:
RMAN> ALTER TABLESPACE test READ ONLY;
执行跨平台传输备份和Data Pump导出:
- 在目标主机上转换:
RMAN> BACKUP FOR TRANSPORT FORMAT '/bkp/test.bck' DATAPUMP FORMAT '/bkp/test_meta.bck' TABLESPACE test;
- 在源主机上转换:
RMAN> BACKUP TO PLATFORM 'HP Tru64 UNIX' FORMAT '/bkp/test.bck' DATAPUMP FORMAT '/bkp/test_meta.bck' TABLESPACE test;
- 移动备份集和Data Pump导出转储文件到目标主机。
- 连接到目标主机。
- 恢复跨平台传输的备份和Data Pump导出:
RMAN> RESTORE FOREIGN TABLESPACE test FORMAT '/oracle/test.dbf' FROM BACKUPSET '/bkp/test.bck' DUMP FILE FROM BACKUPSET '/bkp/test_meta.bck';
传输不一致的表空间
步骤:
- 创建跨平台不一致增量备份,使用
ALLOW INCONSISTENT
子句。 - 恢复不一致的跨平台表空间备份,使用
RESTORE FOREIGN TABLESPACE
命令。 - 使用跨平台增量备份恢复已恢复的数据文件副本,使用
RECOVER FOREIGN DATAFILECOPY
命令。
示例1:使用RMAN和Data Pump在不同平台之间传输表空间
将Oracle数据库中的一个表空间从Linux平台迁移到Solaris平台。
- 在源平台(Linux)上将表空间设为只读:
ALTER TABLESPACE example READ ONLY;
- 使用Data Pump导出元数据:
expdp system/password@orcl DIRECTORY=dump_dir DUMPFILE=example.dmp LOGFILE=example_exp.log TRANSPORT_TABLESPACES=example
- 使用RMAN转换数据文件格式:
rman target sys/password@orcl
RMAN> CONVERT TABLESPACE example TO PLATFORM 'Solaris Operating System (x86-64)' FORMAT '/tmp/example_%U';
- 将转换后的数据文件和转储文件复制到目标平台(Solaris)。
- 在目标平台(Solaris)上将表空间设为读写:
rman target sys/password@orcl
RMAN> ALTER TABLESPACE example READ WRITE;
- 使用Data Pump导入元数据:
impdp system/password@orcl DIRECTORY=dump_dir DUMPFILE=example.dmp LOGFILE=example_imp.log TRANSPORT_TABLESPACES=example
示例2:使用RMAN和Data Pump在不同平台之间传输数据库
将整个数据库从Linux平台迁移到Windows平台。
- 在源平台(Linux)上将数据库设为只读:
ALTER DATABASE OPEN READ ONLY;
- 使用Data Pump导出数据库:
expdp system/password@orcl FULL=Y DIRECTORY=dump_dir DUMPFILE=full_db.dmp LOGFILE=full_db_exp.log
- 使用RMAN转换数据文件格式:
rman target sys/password@orcl
RMAN> CONVERT DATABASE TO PLATFORM 'Microsoft Windows IA (32-bit)' FORMAT 'C:\oracle\datafile\%U';
- 将转换后的数据文件和转储文件复制到目标平台(Windows)。
- 在目标平台(Windows)上将数据库设为读写:
rman target sys/password@orcl
RMAN> ALTER DATABASE OPEN READ WRITE;
- 使用Data Pump导入数据库:
impdp system/password@orcl FULL=Y DIRECTORY=dump_dir DUMPFILE=full_db.dmp LOGFILE=full_db_imp.log
非常感谢您读到这里!如果您觉得这篇文章对您有帮助,可以关注一下博主。关注后,您将第一时间获得最新的AI、云计算、运维(Linux、数据库,容器等)技术,以及更多实用的技能干货。
像0-1的学习,提供全面的学习资源和社群,多种副业选择,总有一个适合你。
本文由mdnice多平台发布
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。