可以使用RMAN跨不同endian格式的平台传输表空间。也可以使用RMAN传输整个数据库到不同的平台只要两个平台拥有相同的endian格式。
1.关于跨平台数据传输
跨平台可传输的表空间是普通的可传输表空间的一个变化。所有适用于可传输表空间的限制也在这里适用,比如需要确保所有被传输的对象完整地被包含在被传输的表空间集中。跨平台可传输表空间可以在具有相同或不同的endian格式的平台之间执行。
跨平台可传输数据库与可传输表空间不是同样的事情。在这种情况中,你拷贝整个数据库,包括SYSTEM表空间从一个平台到另外一个平台。包含检查是不相关的,因为SYSTEM表空间也要被拷贝,不需要export/import步骤。跨平台可传输的数据库只能在具有相同endian格式的平台之间执行。
1.1.跨平台数据传输的目的
可以传输运行在一个平台上的数据库中的表空间到运行在一个不同平台上的数据库中。跨平台可传输的表空间的典型使用包括以下:
1)作为可传输的表空间发布结构数据配送给客户,他们可以转换表空间整合到他们存在的数据库中不管平台的类型。
2)从大型数据仓库服务器中移动数据到更小的计算机上的数据集市比如基于Linux的工作站或服务器。
3)跨异类集群(其中的所有主机共享相同的endian格式)共享只读表空间
4)在最少的应用停机时间内跨平台迁移表空间
对可传输表空间,它们的使用和创建与使用它们的不同技术的全面讨论请参考《Oracle Database Administrator’s Guide》。
你也可以使用RMAN从一个平台传输整个数据库到另外的平台。例如,商业要求需要你运行数据库在使用不同平台的更廉价的服务器上。在这种情况中,你可以使用RMAN传输整个数据库而不是重建它和使用import工具或可传输表空间来导入数据。
可以在目的地主机或源主机上转换数据库。在目的地主机上转换的原因包括:
1)避免源主机上由于转换过程的性能消耗
2)从一个源系统分发数据库到几个不同平台上的多个接收者
3)评估迁移到新平台的路径
1.2.跨平台数据传输的方法
RMAN让你可以传输数据文件,表空间,或整个数据库从一个平台到另外的平台。当传输整个数据库到不同的平台时,目的地平台必须具有与源平台相同的endian格式。
使用以下一个方法跨平台传输数据:
1)使用映像副本传输数据
2)使用备份集传输数据
1.3.支持跨平台数据传输的平台
Oracle数据库为每个支持跨平台数据传输的平台维护一个内部名称的列表。这些名称存储在视图V$TRANSPORTABLE_PLATFORM中。使用这个视图确认源平台或目的地平台的内部名称。当跨平台传输数据时,你可能需要源或目的地平台的准确的名称。任何作为CONVERT或BACKUP命令的参数指定的平台名称必须如视图V$TRANSPORTABLE_PLATFORM中显示一样准确地输入。
使用以下查询获取连接的数据库的平台名称:
SELECT PLATFORM_NAME
FROM V$TRANSPORTABLE_PLATFORM
WHERE PLATFORM_ID =
( SELECT PLATFORM_ID FROM V$DATABASE );
使用以下查询获取Linux平台的名称:
COL PLATFORM_NAME FOR A40
SELECT PLATFORM_ID, PLATFORM_NAME, ENDIAN_FORMAT
FROM V$TRANSPORTABLE_PLATFORM
WHERE UPPER(PLATFORM_NAME) LIKE ‘%LINUX%’;
PLATFORM_ID PLATFORM_NAME ENDIAN_FORMAT
------------- ------------------------- --------------
10 Linux IA (32-bit) Little
11 Linux IA (64-bit) Little
9 IBM zSeries Based Linux Big
13 Linux x86 64-bit Little
18 IBM Power Based Linux Big
22 Linux OS (S64) Big
SELECT PLATFORM_ID, PLATFORM_NAME, ENDIAN_FORMAT
FROM V$TRANSPORTABLE_PLATFORM
PLATFORM_ID PLATFORM_NAME ENDIAN_FORMAT
------------- ------------------------- -------------------
1 Solaris[tm] OE (32-bit) Big
2 Solaris[tm] OE (64-bit) Big
7 Microsoft Windows IA (32-bit) Little
10 Linux IA (32-bit) Little
6 AIX-Based Systems (64-bit) Big
3 HP-UX (64-bit) Big
5 HP Tru64 UNIX Little
4 HP-UX IA (64-bit) Big
11 Linux IA (64-bit) Little
15 HP Open VMS Little
8 Microsoft Windows IA (64-bit) Little
9 IBM zSeries Based Linux Big
13 Linux x86 64-bit Little
16 Apple Mac OS Big
12 Microsoft Windows x86 64-bit Little
17 Solaris Operating System (x86) Little
18 IBM Power Based Linux Big
19 HP IA Open VMS Little
20 Solaris Operating System (x86-64) Little
21 Apple Mac OS (x86-64) Little
22 Linux OS (S64) Big
2.使用映像副本跨平台数据传输
2.1.使用映像副本跨平台数据传输概述
RMAN可以使用映像副本传输表空间,数据文件或整个数据库。使用RMAN的CONVERT命令执行使用映像副本的跨平台传输。表空间传输有时通过单独传输存储表空间数据的数据文件来执行。然而,不能只传输作为包含多个数据文件的表空间的一部分的一个单一的数据文件。
当源平台与目的地平台不同和endian格式不同时,你必须在可传输的表空间操作中使用RMAN的CONVERT命令。如果你在具有相同endian格式的平台之间转换数据库的一部分,你可以使用操作系统方法从源平台拷贝文件到目的地平台。如果你转换整个具有相同endian格式的数据库,任何具有undo信息的数据文件都必须进行转换。你不能直接从源平台拷贝这些文件到目的地平台。
2.1.1.使用映像副本的表空间和数据文件转换概述
可以在源主机但不是目的地主机上使用CONVERT TABLESPACE命令执行表空间转换。CONVERT TABLESPACE命令不是就地执行数据文件转换,而是产生在目的地平台上使用的正确格式的输出文件。命令不会更改源数据库中的数据文件的内容。
可以使用CONVERT DATAFILE命令转换文件。通常,CONVERT DATAFILE命令在目的地主机上使用,CONVERT TABLESPACE命令在源主机上使用。当你在源主机上使用CONVERT DATAFILE命令时,确保数据文件干净地脱机或包含数据文件的表空间是只读的。Data Pump Export工具生成export dump文件,与数据文件一起手动被拷贝到目的地主机,可以import到目的地数据库中。数据文件不与数据库中的表空间名称关联直到Data Pump export dump文件被import到目的地数据库为止。在这种情况中,RAMN不能将表空间名称转换为数据文件列表。因此,你必须使用CONVERT DATAFILE和通过文件名称标明数据文件。
2.1.2.使用映像副本的数据库转换概述
转换整个数据库到不同的平台,两个平台必须使用相同的endian格式。RMAN的CONVERT DATABASE命令自动从源平台移动整个数据库到目的地平台。传输的数据库包含与源数据库相同的数据,也有与源数据库相同的设置,除了一些例外之外。
自动被传输到目的地平台的文件包括:
1)属于永久表空间的数据文件
不像跨平台传输表空间,传输整个数据库要求某些类型的数据块,比如在undo段中的块,重新格式化来确保与目的地平台的兼容性。即使源和目的地平台的endian格式是相同的,某些类型的文件必须经历一个转换过程。
2)初始化参数文件或spfile
如果数据库使用基于文本的初始化参数文件,那么RMAN传输它。如果数据库使用spfile,那么RMAN基于spfile生成初始化参数文件,传输它和在目的地基于初始化参数文件中的设置创建新的spfile。
通常,要求为新的数据库手动更新初始化参数文件中的某些参数。例如,你可能更改DB_NAME和比如CONTROL_FILES参数来指示目的地主机上的文件的位置。
可以在源平台或目的地平台上转换数据文件的格式。命令CONVERT DATABASE ON DESTINATION PLATFORM不会转换数据文件的格式,而是生成可以手动运行来执行转换的脚本。CONVERT SCRIPT参数创建可以在目的地主机上手动执行在批量模式中转换数据文件副本的转换脚本。TRANSPORT参数生成包含在目的地平台上创建新数据库的SQL语句的传输脚本。
2.2.使用映像副本跨平台执行数据传输
2.2.1.使用映像副本执行跨平台的表空间转换
查看《Oracle Database Backup and Recovery Reference》中描述的CONVERT命令前提要求列表,在执行这个章节的步骤之前满足这些先决条件。
为了阐述的目的,假设你必须从运行在Sun Solaris主机上的源数据库prod_source传输表空间finance和hr。你计划传输它们到运行在Linux PC上的目的地数据库prod_test。你计划存储转换的数据文件在源主机上的临时目录/tmp/transport_linux/中。
使用映象副本执行跨平台的表空间转换:
1)启动SQL*Plus,使用管理员权限连接到源数据库prod_source。
2)在视图V$TRANSPORTABLE_PLATFORM中查看目的地平台的名称。
col platform_name for a40
SELECT PLATFORM_ID,PLATFORM_NAME,ENDIAN_FORMAT
FROM V$TRANSPORTABLE_PLATFORM ORDER BY PLATFORM_ID;
PLATFORM_ID PLATFORM_NAME ENDIAN_FORMAT
----------- ---------------------- --------------
1 Solaris[tm] OE (32-bit) Big
2 Solaris[tm] OE (64-bit) Big
3 HP-UX (64-bit) Big
4 HP-UX IA (64-bit)<

本文详细介绍了如何使用RMAN的备份集和映像副本跨平台传输数据库、表空间和数据文件。重点讨论了在不同endian格式的系统间传输时的转换步骤,包括先决条件、方法和具体操作。同时,提到了跨平台数据传输的用途,如结构数据分发、数据仓库迁移等。整个过程涉及备份、恢复、转换和导入等关键技术,确保数据在源和目标平台间的兼容性和完整性。
最低0.47元/天 解锁文章
131

被折叠的 条评论
为什么被折叠?



