Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

22

积分

0

好友

12

主题
1#
发表于 2012-4-19 16:36:00 | 查看: 4744| 回复: 4
有几张大表需要从 A库 导入到 B库中。A  是 9I , B 是 10G

1:用exp /imp 的方法 从 A 库导出  再导入到 B库

2: 有人说 在A,B 间建 DBLINK ,用 Insert into  B.table_name select * from A.table_name@DB_LINK 的方法
    更快。

请问那种方法好呢?
5#
发表于 2012-4-20 12:14:30
多谢 LS 各位的经验分享。设备都是用通过光纤交换机连接的 带宽应不成问题,我就用 DBLINK 的方法吧

回复 只看该作者 道具 举报

4#
发表于 2012-4-19 17:09:23
exp的时候分成多个文件,逐个dmp文件copy到目标端进行imp;理论上是可以exp,imp同时进行,因为这个没有做过实验。如果跳出这两种方法的局限,可以考虑expdp,impdp,也是分成多个dmp文件的方式,曾经用过这个方法进行过数据库迁移。如果数据量十分大,又怕影响生产,可以考虑stream,gg,不过操作起来比较复杂。

回复 只看该作者 道具 举报

3#
发表于 2012-4-19 16:48:50
2种 方法的 适用 场景需要考虑

方法2 受限于网络带宽,如果有GB或10GB带宽 那么速度还是不错的, 如直接使用  

Insert into  B.table_name select from @DB_LINK

若导入的数据量较大, 需考虑 undo 否则可能出现 ORA-1555,建议使用append  方式

这种方式的缺点是 如果网络发生异常 导致中断 ,需要回滚rollback(非append)下 并重新开始

这种方式 需要手动 在B库创建索引



方法1 的问题是 exp 完成后需要将 dmp文件传输到 B库所在平台,  如果使用网络传输的话  那么效率往往不高, 如可以采用 存储挂盘的 方式 直接被 B库 imp使用,则较快。

一般建议 exp 时使用 direct=y recordlength=65535 以加快导出速度

这种方式可以选择 imp自动或者 手动 在B库创建索引

回复 只看该作者 道具 举报

2#
发表于 2012-4-19 16:43:21
我测试过 一张6千万的表
insert /*+append*/    。。。。   nologing 方式很快。相比exp/imp 至少能省一半时间  

我的前提是 表结构 exp/imp 过去,索引也停用,数据插入完成后再重建。

回复 只看该作者 道具 举报

您需要登录后才可以回帖 登录 | 注册

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-11-15 14:57 , Processed in 0.049731 second(s), 22 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569