欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Oracle数据迁移方案

程序员文章站 2024-01-24 21:54:34
...

以下所说方法,不考虑数据的增量更新、不考虑数据的实时同步、不考虑数据的逻辑转换。如果有这些需求,建议使用第三方ETL工具或使

数据迁移通俗的说就是将数据从一个地方转移到另一个地方。主要使用场景有:根据正式系统搭建测试环境、从内网复制到外网、数据库服务器硬件升级等。根据需要迁移的数据量大小、系统架构,可采取不同的迁移方法。

注:以下所说方法,不考虑数据的增量更新、不考虑数据的实时同步、不考虑数据的逻辑转换。如果有这些需求,建议使用第三方ETL工具或使用Oracle的其他数据同步技术。

一、常用示例

1.1 如何在客户现场搭建测试环境?

常规方案,使用imp/exp工具,先在源库执行直接路径导出操作,然后在目标库执行导入操作。IMP/EXP的执行速度主要受限于磁盘及网络。

数据量:1.5G

导出用时:5分钟

导入用时:23分钟

导出文件大小:641M

导出导入环境:单CPU,,700M内存。为力求最大速度,使用直接路径导出、设置最大I/O缓冲、导入导出文件都放在服务器上执行。

1.2 还有没有更快的办法?

有,仍然使用impdp/expdp。只是不再将数据导出后导入,而是直接将数据从源库导入到目的库。

CMD> Impdp testi@目标库 directory=DMPDIR schemas=TESTI

network_link=源库dblink remap_schema=TESTI:TESTA

上面语句的操作是将源库的TESTI用户的数据,导入到目标库的TESTA用户下。

这个操作是局域网内迁移数据最方便的工具,不过也可能是速度最慢的工具。

1.3 有没有还快一点的方法?

有,换用impdp/expdp。同样在源库执行导出,在目标库执行导入。操作速度能得到极大提升。IMPDP/EXPDP速度主要受限于磁盘,与网络无关。

原数据大小:1.5G

expdp导出操作用时:5分钟

impdp导入操作用时:22分钟

导出文件大小:588M

导出导入环境:单CPU,700M内存,并行度 = 1

??你不是说这个会更快么?为什么速度跟3.1的imp/exp差不多啊?

请看第四部分总结的解释。

1.4 你还敢再快一点么?

使用表空间迁移。将表空间的元数据导出,和数据文件一起,复制到新库。执行元数据导入。一般来说,整个导入导出的数据量不到5M。速度相当快,但使用限制比较多。

导出时间:1分钟

导入时间:3分钟

导出文件:60M + 数据文件1.5G

1.5 如何将数据从linux环境转到windows环境?

查看v$transportable_platform,如果数据编码一致,可尝试直接复制数据文件。否则使用rman或impdp/expdp或imp/exp。

1.6 如果你有一个excel格式的数据表,需要远程更新到客户数据库上,怎么更新?

使用pl/sql developer,复制、粘贴、提交。

1.6 如果你需要将正式库的几张表,迁移到测试库来,怎么弄快些?

用dblink+脚本,或者使用impdp远程导入。

Oracle数据迁移方案