我们现在的Oracle数据库数据量大概在1T左右(4年数据,超过20个表数据超过1亿),现在需要调整机房,需要将数据迁移到新的机房,要求:业务能连贯做(业务在白天做,8:00~~19:00, 能工作的时间大概为8小时左右,大概有40%的数据是可以提前导入,可以不计算到工作时间中),我也查找了一下,列了一下我们找到的方式,大家看看还有没更好的思路:
我这也查找了一下关于Oracle大数据迁移的常用方法
一、RMan Oracle备份还原方式
要求:数据有对应的备份
优点:使用Oracle的备份恢复机制,比较有保障
缺点: 备份文件的拷贝已经需要时间,另外恢复数据的时间可能会更长; 时间上不一定能满足要求
二、DB-Link
要求:迁移库与原始库必须在一个网段,必须保证网络的速度;
优点:可以同时都开多个导入语句,另外可以使用Oracle /*APPEND*/ hint 可以不产生REDO日志;
适用点:表数据量比较大的记录表
缺点:操作的步骤比较多些,还需要导入原始的ROW_ID数据; 另外网络对于数据导入的要求比较高;对应CLOB、BLOB与LONG字段不支持链接模式;
三、Expdp/Impdp
要求:Oracle自带的导出、导入工具;
优点: 基本所有的数据与类型都支持,支持并发导入;
适用点: 对应有CLOB,BOLB,LONG字段类型的可以支持导出、导入;
缺点: 导入时会产品REDO日志;
四、SQL/plus copy命令
要求:数据库版本要求一致
优点:可以定制一些SQL语句查询导入指定的数据内容
缺点: 支持的类型为:CHARDATELONGNUMBERVARCHAR2需要导入库与原始库必须在同一网络;
五、表空间迁移 –》只是表空间的元数据迁移 ,没有数据暂不符合我们的要求
六、Golden Gate, DataGurd 需License ,需要额外的费用,在目前暂不考虑;
七、 冷备份,就是直接拷贝数据文件到新的数据库,之后根据数据情况挂载;技术难度相对较高;