分区表跨数据库移动数据惨重的教训

前几天 , 在移动分区表的数据时经历一次惨重的教训 , 先分享给大家 , 以便大家不要犯类似错误 , 并研究其原因 .
环境 :

ADB: oracle 8.1.7.4 , table name : component,  分区: M2,M3….M12

BDB: oracle 10.2.0.1 ,table name: component,  分区: M2,M3….M12

目的: 将ADB的 COMPONENT partition m2 的数据移动到 BDB的COMPONENT partition m2内

ADB的COMPONENT PARTITION M2大小为1536M

时间: 2007/3/11 星期日 上午 11:00 ,产线下午三点备线

经验: 上次移动数据库时,500M的table 需要移动30分钟

估计: 3个小时可以完成

    因为BDB 的UNDO是系统管理的,ADB的RBS 6G,没有人使用ADB,故在ADB上建立了DB LINK 名为tonew,为了速度,停止了原来转移数据的存储过程,改用一句SQL一次性转,SQL如下:

   Insert into component@ibm select * from component partition(m2)

时间: 15:00 仍然没有完成

时间: 16:00 仍然没有完成,ADB的M2 partition 1536m M3 partition 3600M,此时 BDB的M2已经 1536M ,BDB的M3 1200M

时间: 18:00 仍然没有完成, BDB的M2 1536M , BDB的M3 1600M

    从16:00开始,因虚拟内存耗尽,系统无法运作,监听器停止,Server上键盘,鼠标均无法操作,用toad看,用户session已经全部停止,为何M3的数据量仍在增加。这说明数据库执行的是Insert into component@tonew select * from component。连到ADB,发现执行的语句的确是Insert into component@ibm select * from component partition(m2),而BDB执行的却是INSERT INTO COMPONENT SELECT  * FROM " COMPONENT"@! "A2"   

  为了让产线立刻work起来,决定停止insert操作,因为如果要将M3的数据insert完,估计要到10点。

  因键盘鼠标失效,直接按电源开关,开机后系统正常起动,只是系统需要UNDO。

  以上,是我昨天遇到的一个问题,希望能够给大家一个经验,也希望大家能提供一个原因,因为我感到很疑惑。

转载于:https://www.cnblogs.com/kevinsun/archive/2007/03/15/675781.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值