- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
CBPS七版数据库合并程序详细设计_1
CBPS七版数据库合并程序详细设计
本方案的目的是在CBPS 7版(含股份CBPS和集团CBPS)数据库基础上,实现地市级数据库的合并,逐步实现省级集中。其整理思路适用于OBPS的数据库合并。
假设由A库向B库合并。合并的基本原则是由小数据量向大数据量的库合并。
数据条件:A库与B库已上载(非独立文件形式)。 规定A库名称为picca,B库名称为piccb。
第一部分:总控模块
1、可执行程序:cbps_merge
程序名称:以merg开头
数据库升级包:patch_merge2005.sql。主要功能是在B库建立合并过程中用到的临时表及存储过程
t_merg_table_diff(库名,表名,记录数)记录A库多余的表
t_merg_column_diff(库名,表名,字段名)记录A库与B库字段不同的表
t_merg_dict_diff(库名,表名,B库记录数)记录A库中的字典表
t_merg_info(表名,tabid,B库记录数,B库rowid,转换完毕B库记录数,A库记录数量,是否有重复主键值记录(0 无 1有),转换标识(0 未转换 1 正转换 2 转换完毕 9 其它错误转换未成功 8 主键重复转换未成功),转换完毕的时间,是否有serial型字段标识(1有 0 无))该表存放A库中所有有数据、不属于字典表的数据表信息
t_merg_dict(表名,记录数,标识 1转换 0 不转换)记录A库中的字典表
t_merg_serial(表名,serial字段名,serial字段最大值)记录A库中有serial字段的表名,以及serial字段的最大值
t_merg_primary(表名,序号,主键字段)存放A库中有主键的表。根据这个表生成检查语句,看有无重值
t_merg_err_info(表名,A库rowid,sqlcode)记录转换错误记录
t_merg_constr_err(表名,约束名,sqlcode)记录重置约束时发生的错误
(10)t_merg_mod(表名,保单类型,对应i_info_appl_branch字段,对应i_info_date,对应i_info_appl_no,更新顺序)记录保单/客户三主键调整时对应的主键字段名称
(11)t_merg_mod_map。记录重复主键修改前后的对应值
(12)t_merg_chk_count。记录需要检查的计数器表。
2、界面设置:S 源数据库选择
A 转换前数据检查
B 卸载A库数据
C 上载A库数据
D 转换后数据检查
F 重置B库约束
E 退出
3、注意事项
要保证A库和B库的环境互相信任,能够跨库访问。
要保证并库环境有足够的存储空间存放数据文件。
第二部分 转换前数据检查
主要功能:合并前检查模块和数据准备
检查模块
取A库systables表中的表名,直接与B库比较。不检查表总数,即允许B库中存在A库以外的数据表。将A在B中不存在的表名记入t_merg_table_diff。循环取t_merg_table_diff表的数据,调用dbschema生成A库多余数据表的结构语句文本t_table_diff.sql。详见任务书《转换检查-001》
取A库systables,syscolumns表中的表名与字段名,直接与B库比较。将不一致的字段记入t_merg_column_diff。还要比较A与B中相同表的字段数量,不一致的情况同样记入t_merg_column_diff,字段名字段可以存为0。详见任务书《转换检查-002》
检查两库字典表数据是否一致。不一致的情况记入t_merg_dict_diff。详见《转换检查-003》。
根据检查情况,打印生成《数据库检查表(数据表部分)》,要求检查人员先对这些问题进行判断解决。对于缺失数据表,要求加入。对于字段不一样的数据表,不允许转换。转换前要求检查B库t_merg_table_diff和t_merg_column_diff表中有无数据,如果没有才允许转换。
数据准备
取出A库所有有数据的、不属于字典表的数据表名称、tabid、记录数、B库最大rowid、主键有无、转换状态、转换笔数等,置入转换中间表t_merg_info。(这张表最重要)
将所有字典表记入t_merg_dict
将所有包含serial字段的表记入t_merg_serial
将所有表的主键信息记入t_merg_primary
第三部分:A库数据卸载
针对t_merg_info中有主键重复的数据表查找原因,修复错误。保证以下步骤开始执行前t_merg_info中没有主键重复的数据表。
检查t_merg_info中各表,确定所有均为需要转换的表。对于确定不需要转换的表,可以将其从t_merg_info中去除。
使用alte
文档评论(0)