数据迁移又被称为分级存储管理,快速的数据迁移能够在很大程度上提高数据库工作中的效率,为大家的工作带来很大的便利,那么下文中就开始为大家介绍轻松实现快速数据迁移的方法。
如果只需将特定的表或表集合进行转移,那么Lora可以在expdp命令中使用TABLES=<tablelist>子句来只下载特定的表或表集合。
拖出表空间
作为第三种选择,Lora建议使用Oracle数据库10g中的新工具,它简化了可移动表空间的移动方法,因此只涉及执行一个打包过程。在这种方法中,用户利用所提供的DBMS_STREAMS_TABLESPACE_ADM包从源系统中"拖?quot;表空间。这个包使用数据泵转移表空间并将数据文件转换成目标系统的格式。 它还自动执行任何所需的字节顺序变换。
下面给出在最简单的情况下使用这种方法的过程--涉及单个简单表空间(更复杂的情况在下一节介绍)。 如果一个表空间只有一个数据文件,则这个表空间称为简单表空间。Lora演示了DBMS_STREAMS_TABLESPACE_ADM包中PULL_SIMPLE_TABLESPACE过程的使用方法:
1.在存放数据文件的目录所在的(远程)数据仓库数据库中创建一个目录对象。
CREATE DIRECTORY dbf_dir AS '/u01/oradata/dw';
2.设置远程数据库中的表空间TS1为只读。
ALTER TABLESPACE TS1 READ ONLY
剩下的一些步骤在本地(数据集市)数据库中完成。
3.创建一个连接到远程(数据仓库)数据库(在Lora的例子中是dwdb)的数据库链接。
4.创建一个数据文件将被转移到其中的目录对象。
CREATE DIRECTORY dbf_dir AS '/u01/oradata/mart';
5.从远程数据库中拖出表空间。
BEGIN
DBMS_STREAMS_TABLESPACE_ADM6 b;
.PULL_SIMPLE_TABLESPACE
tablespace_name => 'TS1',
database_link => 'dwdb'
directory_object => 'DBF_DIR',
conversion_extension => 'linux'
);
END;
该操作在后台完成了许多步骤:设置源表空间为只读;用数据泵导出工具进行一次表空间的元数据转储;用DBMS_FILE_TRANSFER包移动数据文件和转储的文件;把源表空间恢复到其最初的读写状态;使用数据泵导入工具将表空间插入到本地数据库中。由于源数据库运行在Linux上,而目标数据库运行在Solaris上,因此这一操作首先复制原始数据文件(Linux的文件格式),然后将它转换到目标平台上(Solaris)的文件格式。复制过程保持最初被转移的文件,而创建一个新文件用于转换。新文件与最初的文件同名,但具有CONVERSION_EXTENSION参数指定的linux扩展名。在目标数据库中创建的表空间为只读表空间。
关于实现快速数据迁移的内容就为大家介绍到这里, 相信上文中的内容会让大家觉得受益匪浅,希望大家都能够从中有所收获。
【编辑推荐】