海量数据迁移之冲突数据筛查(r2 第1天)
发布日期:2021-06-30 13:28:45 浏览次数:2 分类:技术文章

本文共 1816 字,大约阅读时间需要 6 分钟。

对于数据迁移来说,无论准备工作准备的多么充分,在测试和正式生产环境中,心里还是会对冲突的数据有一些疑虑,心里感觉没底,因为生产的数据也是在不断变化的,要迁移的数据也在做相应的改动,在这样的环境中,其实数据抽取的工作还是顾虑比较少的,只要侧重考虑性能的提升,而在于数据加载的过程中,如果出现主键冲突的字段,不仅会严重拖慢加载的速度,关键对于这些数据的处理,让开发和dba都很头疼,开发需要dba来提供详尽的信息,dba则需要多个team之间进行协调。可能会有一些紧急的数据更改任务,数据的稽核等等。。对于主键相关的数据排查,如果在数据迁移前能够发现,是最好的了,这样可以极大的减少dba的工作量。个人就是在这种窘境中这样设想了一个方法,首先通过查询主键信息,得到主键索引相关的列,然后通过Intersect来查询那些主键字段的数据在生产和迁移库上有冲突,这个过程可以创建一个临时的用户来加载外部表,所以省去了创建额外的数据空间,而且可以考虑在备库上执行。排查的过程中因为走了索引扫描,所以查询比较的时候速度还是比较可观的。基本思路就是通过如下的sql语句来找到冗余的数据。select xxxxx,xxxxx,xxxx from source_schema.table_01 --加载外部表数据的schemaintersectselect xxxx,xxxx,xxxx from target_schema.table_01 --目标数据的schema实现的脚本如下所示:echo check duplicate data between $1.$2 $3.$2_EXT2 >> intersect_result.logsqlplus -s n1/n1 <<EOFset pages 0set feedback offset linesize 300col intersect_sql format a1000spool intersect_result.sqlSELECT 'select '|| SUBSTR (MAX (SYS_CONNECT_BY_PATH (column_name, ',')), 2)||' from '||table_name||chr(10)||' intersect '||chr(10)||'select '|| SUBSTR (MAX (SYS_CONNECT_BY_PATH (column_name, ',')), 2)||' from $3.'||table_name||'_ext2;' intersect_sqlFROM (SELECT index_name, table_name,column_name, rn, LEAD (rn) OVER (PARTITION BY index_name ORDER BY rn) rn1 FROM (SELECT index_name, table_name,column_name, ROW_NUMBER () OVER (ORDER BY column_position desc) rn FROM all_ind_columns where table_name=upper('$2') and table_owner=upper('$1')))START WITH rn1 IS NULLCONNECT BY rn1 = PRIOR rnGROUP BY index_name,table_name;spool off;spool intersect_result.log append@intersect_result.sqlspool off;EOFexit在此基础上更近一步,可以通过如下的脚本来生成动态的执行脚本,直接执行tmp_compare.sh就可以了。其中tab_parall.lst是一个配置文件。里面包含了需要比较的表 cat ../parfile/tab_parall.lst|awk -v source_schema=$1 -v ext_schema=$2 '{print "ksh compare.sh " source_schema " " $1 " " ext_schema}' > tmp_compare.shtab_parall.lst的内容类似如下的格式:table01table02table03

转载地址:https://jeanron100.blog.csdn.net/article/details/102506831 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:sqlldr加载性能问题的排查 (r2第2天)
下一篇:海量数据迁移之外部表并行抽取(99天)

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月27日 06时49分32秒