点击上方"蓝字"
关注我们,享更多干货!
最近在某银行进行OGG迁移时,遇到一个超过1T的数据库,由于开始没有注意到一些细节,导致在导入过程中出现了一些问题。现在将这些问题总结记录下来,防止之后再发生类似问题。
目前在该银行的OGG迁移流程中,旧数据的迁移使用imp/impdp两种方式,对于源库:目标库字符集相同的情况使用expdp/impdp,字符集不同的情况使用exp/imp。
使用exp对大库迁移时,为提高导出导入效率,缩短导出导入时间,需要采用将旧数据拆分导出导入,并且针对每个拆分创建对应的OGG抽取,应用进程。
使用expdp对大库迁移时,就可以使用开多个并行的方式进行导出导入。
问题:
对于大库的impdp导入,最需要注意的就是数据量太大,导入时在目标库短时间产生大量归档日志,导致整个CDB的归档日志空间被撑满,影响CDB上的所有PDB。
解决方案:
检查目标库归档空间大小,如果可以提前清理出足够空间,则导入时不用人为干预,导完之后删除归档。如果目标库总归档空间依然不足,则需要人为干预,边导入边删归档清理空间,并且主库、备库都需要清理。
Step by Step 的实操和要点:
导出前检查:
查询用户:
select username from dba_users where account_status='OPEN' order by username;
查询字符集:
select property_value from database_properties where property_name='NLS_CHARACTERSET';
在目标库检查是否创建了对应的表空间:
select distinct tablespace_name from dba_tables where owner='MYUSER';
查询当前SCN号:
select current_scn from v$database;
配置OGG抽取流程:
&#x