在2月份,主要做了几次大批量数据的导出导入,总结了一些经验教训,这里记录一下。
1. 一定要确定要求。
有些导数要求所有导出的数据最后都在同一个时间点,这个时候,如果主库有dataguard, 我们可以先让dataguard停止应用归档,然后从dataguard进行导出; 如果没有,我们可以先将数据rman恢复到一个中间应急环境,然后将应急环境启动到read only状态,然后从这个应急环境进行导出。 也许我们还有其他的想法,如ogg,dsg等第三方工具,这些工具总会有一些时间差,导出的数据最后在同一个时间点这个不容易做到;而且,这些工具配置也比较麻烦,而且收费。
2. 确定好批次和目标库的表空间大小
由于数据量比较大,想一下子搞定是不可能的,我们必须在主库查询出各个表的大小,然后分批次导出,尽量每个批次的大小一致。
有的时候,目标库中已经存在相应的表,我们要将原库中的表中数据导入到目标库已经存在的表中,这时候,我们要根据原库中表和其索引的大小相对性的扩目标库中已经存在表和索引的表空间,这个一般是根据最大的几个大表。 注意,不要随意改变目标库中表和索引所在的表空间,要先根据原表进行扩表空间操作,不然会引起投诉的。
3. 确定数据导出导入方案
由于表数目众多,根据在原库查询出来的各个表的大小,我们要做针对性的处理。
小表部分: 一般4g以下的可以叫做小表,可以直接进行insert + dblink, 这样