概述:根据国家电网公司运营监测(控)信息支撑系统建设统一安排,为支撑运监
项目全过程、物资供应链、资金收支、购售电、供电服务及分析模型等业务需求,需从相应业务系统接入需求明细数据。为满足明细数据实时接入的需求,特引进Oracle goldengate(以下简称数据复制)产品。
现阶段基于数据复制方式,总部层面完成规划计划信息管理应用、财务管控系统、输变电工程建设管理系统、特高压交流工程管理信息系统、中电财资金结算系统、电子商务平台及客户服务中心7个系统需求明细数据的横向复制,完成规划计划信息管理应用系统 、中电财资金结算系统、电子商务平台与ERP、客户服务中心及安监小时级(指标)需求明细数据下发27家省(市)公司(分别用以支撑省(市)项目全过程、物资供应链、资金收支、供电服务及电能质量专题需求),27家省市公司完成财务管控、基建管控、营销稽查(其中:3家单位做为试点由营销业务应用接入)需求明细数据的横向复制,完成财务管控、基建管控、营销稽查、ERP(横向由ETL接入) 需求明细数据纵向上传总部数据中心。
1 OGG常见问题处理:
1.1 问题一:OGG-01296;
关键字:Database error 1403 () 原因分析:源端与目标端数据不一致; 分析思路:
1. 表结构是否不一致;表中是否存在主键,是否重建过索引;
2. 确定目标端有没有与此关联的表有级联删除或触发器对此表相应记录做了操作; 3. 确认目标端是否有定时的dml相关的job操作此表;
4. 在目标段复制进程中,godengate从日志中解析出sql语句,根据 sql语句的where
条件,在目标数据库匹配不出相应的记录(可能是where字段在目标端不存在); 5. 存在不写日志的DML操作 ,将数据库设置为force logging状态; 6. 初始化造成两端的数据不一致;需要严格按照实施规范中的步骤进行; 7. 人为修改OGG的检查点,alter extract/replicat;
8. 人为修改了目标端的数据;
9. 没有添加表级附加日志,抽取进程在add trandata之前启动,本质上仍然是缺少了附
加日志信息造成的;
10. 根据对应的sql语句去logdump 查询队列文件中的record 里关于字段记录的情况,
是否key column没有记录相关值,这一般和附加日志有关;
11. 当资源表添加supplement log的列比REPLICAT的KEYCOLS里定义的列少,或者
extract的KEYCOLS比REPLICAT的KEYCOLS少时,备份端就会发生1403错误; 12. 核对进程参数
1.2 问题二:OGG-01296;
关键字:unique constraint
原因分析(1):空表分区清表,未开启DDL模式,源端无法捕获空表分区TRUNCATE操作,
导致目标端数据没有被同步清除,源端再次写入已被清除操作的数据,导致目标端报唯一约束错误。
处理办法:核实源端是否存在空表分区的语句如下:
查看抽取进程交易信息“写入记录数-删除记录数”是否大于远远大于源表现有记录数,同时交易没有显示truncate操作,说明存在空表分区清表操作。
满足以上条件,上报总部,并与本地业务系统项目组进行沟通,要求其进行整改。 --查看是否存在空分区的语句如下:
select count(1),partition_name from table_name partition(select PARTITION_NAME from all_tab_partitions where table_owner=‘用户名‘ and table_name=’表名’) group by partition_name 原因分析(2):唯一约束不一致原因造成
a) 源端无唯一约束,确实存在重复数据; b) 源端存在约束,当与目标不一致; 处理办法:
针对问题a),并反馈本地业务系统项目组,要求其进行整改,并将该问题及时反馈总部数据复制支持团队。
针对问题b),如果总部授权可以变更,同步修改目标唯一约束,重新添加源端表级附加日
志,重启复制进程即可,若不可以变更,反馈业务项目组整改,省市可依据实际情况制定解决方案。
原因分析(3):手动修改检查点,导致数据被重复抓取或投递;
处理办法:可以采用加上忽略报错方式将数据接入(将会导致数据丢失),重启复制进程,等待进程无延时,去除参数,重启进程,采用数据比对,核查是否有数据丢失,如有丢失,将丢失数据补齐即可。 原因分析(4):源端违规删除表
处理办法:针对此问题,只能采取单表重新同步来方案来解决,重新添加源表表级附加日志,是否进行重新初始化操作根据实际情况而定。
1.3 问题三:OGG-01296;
关键字:Database error 2292
原因分析:未禁用外键,会出现此错误 处理方法:禁止或删除外键,重启进程即可
1.4 问题四:OGG-01031(投递进程挂起)
原因分析(1):可能是网络出现过故障,源端的投递进程与目标断了联系,目标端管理进程为其启动的server进程一直还在运行,下次投递重启时目标管理进程会试图生成另外一个server进程,这样两个server进程会争同一个队列文件。
处理方法:是停掉源端的所有投递进程,使用ps –ef|grep server(或OGG安装目录)看看是不是还有OGG的server进程在跑,如果有,杀死它(一定要确认源端data pump全停掉,并且杀的是server进程,不要杀其它extract/replicat/mgr等),重启源端投递即可。
原因分析(2):可能是投递至目标端的队列文件损坏,前滚重新生成一个新的队列文件 处理方法:前滚投递进程。 --命令如下
Alter extract 投递进程,etrollover 当前投递进程队列号
1.5 问题五:OGG-01161与OGG-01163;
关键字: Bad column
原因分析(1):当源端表结构发生变化时,目标端复制进程会出现此错误
处理方法: 确定变更内容,如果同步变更,重启进程即可;如果不同步变更,需生成数据定义文件(涉及主键字段,重新添加最小附加日志),重启复制进程即可;
原因分析(2):源端抓取进程添加加密参数ENCRYPTTRAIL,复制进程中没有添加解密参数DECRYPTTRAIL,导致队列被投递到目标端,无法被解密,导致复制进程解析是出现源端和目标端结构不一致问题。
处理方法:在目标端的复制进程中加入解密参数DECRYPTTRAIL,重启复制进程即可。
1.6 问题六:OGG-00446;
关键字: Could not find archived log 原因分析:归档文件丢失 处理方法:
1. 如果能将丢失的归档日志找回,重启抓取进程可解决此问题;
2. 若归档日志无法找回,需设置从当前时间节点进行数据抓取,同时停止复制进程,
进行数据导出,在目标端进行相应数据初始化,按导出时间节点重启复制即可。
1.7 问题七:OGG-00423;
原因分析(1):参数文件配置中有问题 处理方法:核查参数配置是否错误; 原因分析(2):数据定义文件生成问题
处理方法:如有生成过数据定义文件需要重新生成
注意事项:
导入时加入TABLES(可以指定表名),忽略建表参数(IMP为ignore=y,IMPDP为
include=table_data),添加日志参数(IMP为log,IMPDP为logfile),不导入约束及触发器参数(IMP为CONSTRAINTS=N和TRIGGERS=N),指定用户参数(IMPDP
为remap_schema IMP为fromuser、touser),指定导入表空间参数(IMPDP为remap_tablespace)
IMP导出样例(系统用户导入为例):
SQL> imp 用户名/密码@实例 file=路径.dmp fromuser=源用户 touser=目标用户 log=日志.log TABLES=tablename1,tablename2 ignore=y CONSTRAINTS=N和TRIGGERS=N
IMPDP导出样例(系统用户导入为例):
SQL> impdp用户名/密码@实例 directory=导入路径 dumpfile=文件名.dmp logfile=c.log remap_schema=源用户:目标用户 remap_tablespace=源表空间:目标空间INCLUDE=TABLE_DATA
如果目标端与源端差异为UPDATETIME时,直接将源端数据导入目标端数据即可; 如果源端比目标端字段多是,或表名不同,直接导入会出现错误,导入方式有以下
几种:
将源端数据导入本地后,人工进行处理后,将字段或表名调整为与目标端一致后,
导出数据再导入目标数据库;
将源端数据导入本地后,采用ETL方式将相应数据抽取至目标数据库; 将源端数据导入本地后,采用SQL insert方式写入目标数据库; 数据导入完成后需检查是否生成外键及触发器,使用如下语句删除即可 --生成删除外键语句,将查询结果导出执行即可。
SQL> select ‘alter table ’ || table_name || ‘ drop constraint ’ || constraint_name || ‘;’ from user_constraints where constraint_type = ‘R‘ and table_name in(‘表名’); --生成删除触发器语句,将查询结果导出执行即可。
SQL> select 'drop trigger '||trigger_name||';' FROM user_triggers where table_name in ('表名');
2 数据对比
在确保数据复制链路稳定运行的同时,需保证数据接入的一致性,即确保所接入的流程明细数据与源端保持一致,为此总部OGG技术支持团队组织各省(市)开展横向及纵向数据比对工作。
主流的比对工具有三种:Veridata(外部)、Minus(函数)、国网自主研发比对工具(内
部),现25家单位采用Veridata工具进行横向数据比对及纵向数据比对,2家试点单位采用国网自主研发比对工具开展数据比对工作,后续国网自主研发比对工具将全网推广实施。
为实现数据资源管理工具与比对工具的功能融合,要求各单位需将比对服务器统一部署在数据资源管理工具服务器上,同时为实现各单位数据比对一致率的自动采集,各单位需在数据比对服务器知识库执行一致率采集视图脚本(各单位均以完成),同时需将该视图开放给数据资源管理工具访问,数据资源管理工具获取该视图信息,并将该信息同步至总部数据资源管理工具,在总部由数据资源管理工具统一生成各单位数据比对一致率报表。 注意事项:
采用Veridata及数据比对工具进行比较时,如果延迟时间较长,发现比对结果差距
较大,建议等延时较小的时候进行数据比对;
由于Minus是单向比对方式,进行数据比对的时候以源端为基准,当源端有记录而
目标端无记录时,能够识别出来,可是当目标端存在记录而源端不存在与源端相同的记录就不能够别识别,建议采用Minus比对的方式需要进行双向比对; 每次做完数据初始化时,需进行一次数据比对,保证初始化的质量,避免后续因初
始化原因导致失败挂起;
数据比对应选择业务系统较空闲的时间进行比对,否则进行大数据量的数据比对工
作,有可能影响业务系统的正常业务。
3 明细数据资源管理工具
3.1 数据质量核查工作 3.1.1 概述
在确保数据复制链路稳定运行、数据接入的一致性的同时,需保证各单位接入的明细数据质量满足需求,需开展单位明细数据质量核查工作。
现阶段总部层面开展总部横向接入及各单位纵向上报数据质量核查工作,总部OGG数据复制技术支持团队,负责规则SQL执行,执行结果生成通报结果,并将结果提交中心领导,由中心领导审核并发布通报工作。
目前总部OGG数据复制技术支持团队组织相关人员编写省(市)数据质量核查手册,预计将于3月下旬发放各省(市)公司开展手工数据质量核查工作,并将核查结果上报总部,同时,数据资源管理工具针对明细数据质量核查模块将会进一步完善,后续将替代手工数据质量核查工作,实现明细数据质量核查及通报的自动化
3.1.2 定义及验证方法
明细数据接入率 定义:反映明细数据接入的总体情况,是指在统计周期内各业务部门明细数据实际接入记录与应接记录的比例,由业务部门所有明细数据表的接入率构成 明细数据接入率验证方法:查看知识库中
明细数据及时率 定义:反映明细数据实时接入的总体情况,是指统计周期内各业务部门明细数据及时提供的总时长占监测总时长的比例,由业务部门的所有明细数据表及时率构成。
明细数据及时率验证方法:
计算及时率的存储过程.txt
明细数据准确率定义:反映明细数据符合准确性规则的情况,是指各业务部门明细数据的实际准确记录数占记录总数的比例,包括各种数据间业务逻辑准确、主外键关系准确和数据内字段间业务逻辑准确以及数据值准确等,由业务部门的所有明细数据表的准确率构成 明细数据完整率定义:反映明细数据记录内容完整情况,考察必填字段信息完整,是指各
业务部门明细数据的实际完整记录数占记录总数的比例,由业务部门所有明细数据表的完整率构成
明细数据完整率验证方法:
完整率.txt
明细数据准确率定义:反映明细数据符合准确性规则的情况,是指各业务部门明细数据的实际准确记录数占记录总数的比例,包括各种数据间业务逻辑准确、主外键关系准确和数据内字段间业务逻辑准确以及数据值准确等,由业务部门的所有明细数据表的准确率构成。
3.1.3 添加首页页面
使用系统管理员账户登录,点击菜单“系统管理/菜单管理/菜单” 点击主页,选择修改,菜单地址为:
com/ylkj/drmt/datadesk/portal/portletcustomize/view/DataManagementIndexModule.swf
3.1.4 数据库新增角色
新增业务部门查看角色,角色标识为“YWBMBX”。
增加的目的为:查看业务部门首页只有拥有勾选了业务部门查看角色才有该权限。 操作步骤大致如下:
使用系统管理员账户登录,点击菜单“系统管理/用户权限管理/角色管理”,在打开的页面中选中当前单位。
注意:角色标识必须为“YWBMBX”,不可更改为其他
在角色创建完成后,为”业务部门必选”角色分配菜单。
建议默认给该角色赋“主页”菜单。
给业务部门用户分配“业务部门必选”角色。
注:如果不给业务部门人员分配该角色,该用户登陆后的首页为“运监/运维人员首页”。 3.2 配置数据源 3.2.1 页面路径
质量监测—》基础信息配置—》接口资源管理 质量监测—》基础信息配置—》数据存储表管理
3.2.2 操作步骤
在明细数据操作之前,首先需要配置为明细数据配置数据源,该配置分为8步。 (1) 搜索“国家电网总部数据中心(运监域)”系统,并进行编辑
(2) 进入IO资源信息配置与管理
(3) 新增数据库资源
(4) 创建完成之后,在列表中可以查看
(5) 接下来开始从刚才创建的数据源(明细数据库)中抽取数据。选中“数据存储表管
理”菜单
(6) 抽取数据
(7) 选择数据源
点击选择之后会弹出选择数据源选取对话框如图所示
(8) 选择抽取的表,建议全量抽取。
3.3 二、明细数据资源库 3.3.1 页面路径
质量监测—》明细数据—》明细数据资源库
3.3.2 页面功能
3.3.2.1 明细数据删查改
3.3.2.2 明细数据导入
选择明细数据excel,确认导入
导入正在进行
导入成功:
再次导入,数据提示重复(表明数据已经导入成功):
3.3.2.3 明细数据卡
此页面包含四个TAB页,分别为详细信息、质量规则、数据质量、数据探查
3.3.2.4 详细信息:
此页面展示的数据为当前表基本信息与表中字段信息
表编号、表中文名称、表英文名称、责任部门、来源系统、来源单位、所属专业等。
包含字段英文名、字段中文名、字段类型、字段长度是否为主键、是否可为空、备注等信息
3.3.2.5 质量规则
完整性规则:包含字段中文名称、字段英文名称、是否可为空
准确性规则:包含业务流程名称、校验表名、表中文名称、校验字段名称、字段中文名、校验周期、频度名称、规则适用范围
3.3.2.6 数据质量
可根据表编号、起止时间进行查询
查询结果分按单位对比、按时间对比两个维度进行展示
按单位对比
首先根据表编号、起止时间查询出指定表的时间区间
然后根据查询出的时间段(显示在左边区域),点击要查询的月 结果中将展示网省+总部的校验结果的完整率、准确率、及时率
按时间对比
首先点击按时间对比单选
然后根据表编号、起止时间查询出指定表的时间区间
然后根据左边列出27家网省+总部的列表,选择点击需要查询的单位 结果中将展示当前单位在这个时间段的完整率、准确率、及时率
3.3.2.7 数据探查
此页面包含表的基本信息、表的字段信息、表中的数据
基本信息:
包含有表编号、表中文名称、表英文名称、责任部门等
列表信息(表字段信息)
包含有字段英文名称、中文名称、数据类型、长度、小数位、主键
表数据
包含表中所有数据的展示,可根据数据筛选项进行数据展示的筛选,如点击数据筛选下拉列表,显示的当前表中所有的数据列,可勾选需要展示的数据列过滤当前页面的数据
3.3.2.8 模型关联
点击模型关联,弹出模型选择框,选中其中一个模型,点击确定,完成模型关联
3.4 明细数据规则配置 3.4.1 页面路径
质量监测—》明细数据—》明细数据表规则配置
3.4.1.1 页面功能 3.4.1.2 规则导入导出
规则导入:
点击规则导入按钮,此时弹出窗口,左边为从Excel文件导入,右边为下载规则导入模板。建议在导入时,先下载模板,然后按要求填写相关数据项 填写数据时注意:
1) 模板中的数据列不可修改,正确应该保持在18列数据,如果缺少将不能正确导入数据 2) 模板中标题标红色*的为必填项,请按要求进行填写,如果缺失将不能正确导入数据
规则导出:
点击规则导出按钮,可导出当前查询条件结果数据所有关联的规则数据
注意,如果当前查询结果中没有关联规则,则会提示‘没有映射规则,无数据导出’
如果当前查询结果有关联规则数据,则会弹出继续导出的选择框,点击确定选择导出位置,即可导出规则数据,导出文件名会包含当前导出的时间
3.4.1.3 规则详细查看
点击完整性规则,弹出完整性规则窗口
点击准确性可以看到准确性规则的详细信息
3.4.1.4 校验对象目录添加
点击校验对象目录添加按钮,此时弹出窗口,左边为已经添加的校验对象目录,右边为添加校验对象目录的输入框。
点击左边节点,可对当前选中的节点进行修改、删除、添加子节点的操作
3.5 明细数据质量校验 3.5.1 页面路径
质量监测—》明细数据--》明细数据质量校验
3.5.2 页面功能
3.5.2.1 新增校验场景
操作:登录后点击菜单(质量监测明细数据明细数据质量校验); 选择对应目录节点后,点击新增按钮,填写场景信息后点击保存 新增校验场景操作页面
3.5.2.2 校验场景关联表
操作:登录后点击菜单(质量监测明细数据明细数据质量校验) 选择对应目录节点后,可根据条件查询出场景,选中要关联表的场景 点击关联表按钮后,在未关联表列表选中要添加的表,点击添加,或在已 关联表列表选中要删除的表点击删除; 明细数据校验场景关联表操作页面:
3.5.2.3 明细数据校验场景执行
操作:登录后点击菜单(质量监测明细数据明细数据质量校验)
选中要执行校验的场景点击“质量校验”
执行明细数据校验场景页面:
3.5.2.4 查看校验任务
操作:登录后点击菜单(质量监测明细数据明细数据质量校验)
点击“任务监控”按钮,打开查看任务窗口
查看任务页面:
3.5.3 定时任务配置
3.5.3.1 定时任务配置查询
点击定时任务配置按钮,此时弹出窗口。
上边为查询条件,可根据任务名称、启动状态进行查询
下边为查询列表,包含任务主题、任务名称、任务类型、任务流向、BEANID、触发方法名、创建者、创建时间、触发器当前状态
3.5.3.2 定时任务新增
点击新增按钮,可进行任务新增 填写相关项,然后点击保存
3.5.3.3 定时任务修改
首先选中需要修改的任务,然后点击修改按钮,可对任务进行修改 填写相关项,点击保存即可修改
3.5.3.4 任务启用/禁止
在选择的任务最右侧,有任务的启用禁止
如果显示为禁止,说明当前任务为禁止状态,点击后可进行启用 如果显示为启用,说明当前任务为启用状态,点击后可进行禁止
3.6 明细数据报表
3.6.1 总部横向数据接入情况
3.6.1.1 页面路径
质量监测—》明细数据--》明细数据报表--》总部横向数据接入情况
3.6.1.2 页面功能
总部横向数据接入情况-总部横向接入:
选择“导出Excel”按钮,导出报表。
总部横向数据接入情况-横向接入明细:
选择“导出Excel”按钮,导出报表。
3.6.2 省(市)公司按单位及部门查询
3.6.2.1 页面路径
质量监测—》明细数据--》明细数据报表--》省(市)公司按单位及部门查询
3.6.2.2 页面功能
选择“导出Excel”按钮,导出报表。
省(市)公司按单位及部门查询-省(市)公司按省市部门汇总:
选择“导出Excel”按钮,导出报表。
省(市)公司按单位及部门查询-省(市)公司按总部部门汇总:
选择“导出Excel”按钮,导出报表。
3.6.3 网省数据上报情况_纵向
3.6.3.1 页面路径
质量监测—》明细数据--》明细数据报表--》网省数据上报情况_纵向
3.6.3.2 页面功能
网省数据上报情况-纵向-汇总:
选择“导出Excel”按钮,导出报表。
网省数据上报情况-纵向-明细:
选择“导出Excel”按钮,导出报表。
3.6.4 省市横向报表
注意,该功能只有在网省用户登录时才能看到。
3.6.5 页面路径
质量监测—》明细数据--》明细数据报表--》省市横向报表
3.6.6 页面功能
省市横向报表-省市横向接入:
选择“导出Excel”按钮,导出报表。
省市横向报表-省市横向接入明细:
选择“导出Excel”按钮,导出报表。
3.6.7 总部下发数据报表
注意,该功能只有在网省用户登录时才能看到
3.6.8 页面路径
质量监测—》明细数据--》明细数据报表--》总部下发数据报表
3.6.9 页面功能
总部下发数据报表:
选择“导出Excel”按钮,导出报表。
3.7 分析模型配置
一、 首先必须先执行完“配置脚本”文件夹中脚本。 二、 登录数据资源管理工具,按照下面的步骤进行操作:
点击导航栏的“数据管理”;
点击左侧菜单“元数据管理”,点击“接口资源管理”;
找到组织机构中本网省公司,点击本网省电力公司名称。例如截图中新疆网省点击“新疆电力公司”;
在右侧页面的系统编码文本框中输入“01201”,点击“查询”; 选中查询到的系统后,点击“编辑”,弹出编辑信息系统窗口。
点击“IO资源订阅管理”
组织机构下拉列表选择本网省电力公司(例如截图中新疆网省选择“新疆电力公司”),信息系统下拉列表选择本网省电力公司数据资源管理工具(例如截图中新疆网省选择“新疆电力公司数据资源管理工具”),IO资源类型选择“数据库资源”。点击“查询”按钮:
展开服务场景,展开运营监测表号,找到“分析模型(BW)”,勾选“全选”多选框,点击“确定”
注:以上截图是以新疆网省为例,请各网省配置时选择各自网省电力公司。
因篇幅问题不能全部显示,请点此查看更多更全内容