《goldendate(精品) .doc》由会员分享,可在线阅读,更多相关《goldendate(精品) .doc(26页珍藏版)》请在三一办公上搜索。
1、组件结构GoldenGate可以实现以下功能: * 高可用性 * 业务连续性 * 数据迁移 * 数据仓库GoldenGate不支持以下环境: * 长时间运行的事务 * 无法从日志获取列数据(如LOB)GoldenGate过滤数据的方法包括: * TABLE(抽取)或MAP(复制)语句的FILTER或WHERE子句 * SQL查询或过程 * 用户出口程序GoldenGate转换数据的方法包括: * 列转换函数 * 用户出口程序 * ETL引擎表:GoldenGate支持的处理模式数据库抽取复制DB2 LUWIngresMySQLOracleSQL ServerSybaseGeneric ODBC
2、图:GoldenGate组件结构抽取和复制进程实现以下功能: * 初始化装载 * 变更同步抽取进程的数据源包括: * 事务日志 * VAM(teredata)抽取进程的运行规则包括: * 抽取进程将提交的事务转储到跟踪文件 * 抽取进程与对象是一对一映射关系数据泵进程用于实现以下功能: * 将本地跟踪文件通过网络传输到远程跟踪文件 * 执行数据过滤、映射和转换复制进程参数:延迟复制 DEFERAPPLYINTERVAL跟踪文件分为以下3种类型: * 本地跟踪文件 * 远程跟踪文件 * 中间跟踪文件进程与跟踪文件的关系如下: * 抽取进程与跟踪文件是一对一映射关系 * 数据泵进程与跟踪文件是多对
3、一映射关系 * 复制进程与跟踪文件是多对一映射关系跟踪文件缺省目录: /dirdat抽取参数:自动清除过期的跟踪文件 PURGEOLDEXTRACTS抽取进程恢复方式有2种: * 追加(缺省) 抽取进程读取检查点,追加检查点提交的事务记录 * 覆盖 抽取进程覆盖最后一个写检查点后的所有事务记录抽取进程参数:恢复方式 RECOVERYOPTIONS函数:查看跟踪文件版本 GETENV(GGFILEHEADER)检查点可以存储到以下位置: * 检查点文件 /dirchk * 检查点表 仅用于复制进程,位于目标数据库创建检查点表的方法有2种: * 所有复制进程组共享1个缺省检查表 * 每个复制进程组
4、使用专用的检查表全局参数:缺省检查点表 CHECKPOINTTABLE .脚本:创建检查点表 /chkpt_create.sql管理进程实现以下功能: * 启动抽取、复制、收集进程 * 管理跟踪文件 * 创建事件、错误和阀值报表收集进程分为2种类型: * 动态 自动启动,与抽取进程是一对一映射关系 * 静态 手动启动,与抽取进程是多对一映射关系GoldenGate支持以下处理模式: * 联机有检查点 * 批量无检查点 * 任务无跟踪文件进程组包含以下对象: * 进程 * 参数文件 * 检查点文件 * 进程报告注:进程组名称不能使用“port”,且数字不能位于字符串尾部抽取进程将CSN存储到以下
5、位置: * 跟踪文件 * 检查点文件表:CSN数据库CSN格式Ingres:OracleSCNSybase.DB2 LUWLSNSQL Server.管理进程管理和监控GoldenGate的工具包括: * GGSCI * GoldenGate Director命令:快捷命令 GGSCIhistory=显示以前执行过的命令 GGSCI!=执行前一个命令 GGSCIfc=编辑前一个命令命令:执行脚本文件 GGSCIobey 参数文件分为2种类型: * 全局参数文件 /GLOBALS * 进程参数文件 /dirprm/参数分为2种类型: * 全局参数 影响所有对象,只能出现一次 * 对象参数 影响指
6、定的对象,可重复出现命令:校验参数文件 1. 在参数文件中添加参数“CHECKPARAMS” 2. 启动进程 GGSCIstart EXTRACT | REPLICAT 简化进程参数设置的方法包括: * 通配符 * 包含文件 * 宏 * 参数替代管理进程参数:管理进程监听端口 PORT(缺省为7809)管理进程参数:动态进程监听端口 DYNAMICPORTLIST -(缺省从7840开始) DYNAMICPORTREASSIGNDELAY 管理进程参数:自动启动抽取和复制进程 AUTOSTART AUTORESTART管理进程参数:自动清除跟踪日志 PURGEOLDEXTRACTS命令:启动管
7、理进程 $mgr paramfile reportfile GGSCIstart manager管理进程报表文件缺省目录: /dirrpt命令:关闭管理进程 GGSCIstop manager !单向复制进程组命名规则如下: * 最多8个ASCII字符 * 忽略大小写 * 不能使用单词“Port” * 不能将数字放在尾部,如:ext_1图:单向复制(直接)抽取进程参数:抽取进程组 EXTRACT 抽取进程参数:目标主机 RMTHOST , MGRPORT 抽取进程参数:远程跟踪文件 RMTTRAIL 抽取进程参数:捕获对象 TABLE .;命令:创建抽取进程组 GGSCIadd extract
8、 , tranlog, begin , threads 命令:创建远程跟踪文件 GGSCIadd rmttrail , extract 复制进程参数:复制进程组 REPLICAT 复制进程参数:源-目标表定义相同 ASSUMETARGETDEFS复制进程参数:复制延迟 DEFERAPPLYINTERVAL复制进程参数:错误处理规则 REPERROR (, )复制进程参数:对象映射 MAP ., TARGET ., DEF ;命令:创建复制进程组 GGSCIadd replicat , exttrail , begin 命令:启动进程组 GGSCISTART EXTRACT | REPLICAT
9、 命令:关闭进程组 GGSCISTOP EXTRACT | REPLICAT !图:单向复制(转发)抽取进程参数:本地跟踪文件 EXTTRAIL 命令:创建本地跟踪文件 GGSCIadd exttrail , extract 数据泵参数:不处理数据(源-目标对象定义必须相同) PASSTHRU命令:创建数据泵进程组 GGSCIadd extract , exttrailsource , begin 图:单向复制(中转)数据泵参数:源定义文件 SOURCEDEFS数据泵参数:目标定义文件 TARGETDEFS图:级联复制抽取进程参数:忽略本地DML IGNOREAPPLOPS抽取进程参数:获取复
10、制DML GETREPLICATES注:批量复制不记录检查点,中断后必须重新开始抽取进程参数:批量抽取 SPECIALRUN复制进程参数:批量复制 SPECIALRUN聚合复制图:广播复制图:集中复制双向复制图:单活复制建议在目标数据库创建以下脚本: * 数据库用户授权脚本 * 启用触发器和级联删除约束脚本 * 启动应用程序脚本抽取进程参数:捕获序列 SEQUENCE抽取进程参数:不捕获的表 TABLEEXCLUDE数据泵参数:捕获序列 SEQUENCE复制进程参数:冲突处理(rep_2) HANDLECOLLISIONS命令:查看跟踪文件与数据源的间隔 GGSCIlag extract 命令
11、:查看复制进程状态 GGSCIstatus replicat 图:双活复制注:双活复制不支持DDL复制实现双活复制的注意事项如下: * 每张表都必须有主键,用于冲突处理 * 禁用触发器和级联删除,避免潜在冲突 * 不能复制序列为了防止数据回路,必须采取以下措施: * 忽略复制进程产生的DML抽取进程参数:忽略复制DML IGNOREREPLICATES抽取进程参数:捕获本地DML GETAPPLOPS抽取进程参数:标识执行复制的数据库用户 TRANLOGOPTIONS EXCLUDEUSER TRANLOGOPTIONS EXCLUDEUSERID 抽取进程参数:捕获前映像 GETUPDATE
12、BEFORES抽取进程参数:获取不记录日志的列值(用于compressed updates) FETCHCOLS复制进程参数:冲突处理 99复制进程参数:记录异常表100全局参数:丢弃记录转储文件 DISCARDFILE双活复制潜在以下事务冲突: * 插入主键已存在(覆盖) * 更新前映像不匹配(插入) * 删除主键不存在(忽略)注:从ORACLE获取不记录日志的列值,建议使用“add trandata”命令冲突处理的方法包括: * 时间戳优先 99 * 站点优先 * 差值优先 101注:建议使用任务计划定期查询异常表并自动发送通知安全加固GoldenGate支持以下加密方式: * 跟踪文件
13、字节替换(256位) * 口令加密 Blowfish(128位) * 传输加密 Blowfish(128位)抽取进程参数:加密跟踪文件 ENCRYPTTRAIL复制进程参数:解密跟踪文件 DECRYPTTRAIL注:如果需要通过数据泵进程转换数据,可以解密处理后再加密命令:生成密钥 keygen 密钥文件目录: /ENCKEYS 命令:加密口令 GGSCIencrypt password encryptkey 抽取进程参数:传输加密 ENCRYPT BLOWFISH, KEYNAME 权限文件目录: /CMDSEC 注:GoldenGate自顶向下处理权限文件图:被动抽取命令:创建被动抽取进程
14、组 GGSCIadd extract , tranlog, passive, begin 命令:创建别名抽取进程组 GGSCIadd extract rmthost mgrport rmtname 命令:启动静态收集进程 server h -p 注:在被动抽取环境中,只能在目标系统设置自动启动抽取使用被动抽取的注意事项如下: * 别名抽取进程组没有参数文件 * 被动抽取参数文件不能使用“RMTTASK”参数错误处理抽取进程参数:错误处理 FETCHOPTIONS WARNLONGTRANS DBOPTIONS TRANLOGOPTIONS LFMMEMORY DDLERROR复制进程参数:异常
15、处理 REPERROR (DEFAULT, EXCEPTION) MAP , TARGET , EXCEPTIONSONLY“REPERROR”参数值包括: * ABEND回滚事务,停止处理 * DISCARD记录错误,继续处理 * EXCEPTION转储异常,继续处理 * IGNORE忽略错误,继续处理 * RETRYOP断点重试 * TRANSABORT起点重试 * RESET使用缺省值“ABEND”TCP错误处理指令文件目录: /TCPERRSGoldenGate错误日志文件目录: /ggmessage.dat数据定义以下情况需要使用数据定义文件: * 数据泵进程执行数据转换,需要指定目
16、标定义文件 * 复制进程执行数据转换,需要指定源定义文件 * 中间系统执行数据转换,需要执行源和目标文件数据定义文件目录: /dirdefDEFGEN参数文件: /dirprm/defgen.prmDEFGEN参数:定义模板 TABLE . DEF 命令:生成数据定义文件 $defgen paramfile dirprm/defgen.prm reportfile dirrpt/defgen.rpt抽取进程参数:目标定义文件 TARGETDEFS复制进程参数:源定义文件 SOURCEDEFS复制进程参数:源定义模板 MAP acct.cust*, TARGET acct.cust*, DEF
17、custdef;数据泵进程参数:目标定义模板 TABLE acct.cust*, TARGET acct.cust*, DEF custdef, TARGETDEF tcustdef;数据装载建议初始化装载前对目标表作如下处理: * 清空数据 * 创建主键(或使用KEYCOLS选项) * 禁用外键和检查约束 * 删除索引图:使用数据库复制工具命令:查看复制状态 info replicat 命令:终止冲突处理 send replicat , nohandlecollisions图:使用数据库装载工具抽取进程参数:直接从源表抽取数据 SOURCEISTABLE抽取进程参数:输出文件格式 FORMA
18、TASCII, SQLLOADER复制进程参数:生成装载工具的控制工具 GENLOADFILES 图:使用GoldenGate直接装载工具使用GoldenGate直接装载工具初始化目标表的约束如下: * 不能抽取LOB和LONG数据抽取进程参数:启动远程复制进程 RMTTASK replicat, GROUP 图:使用Oracle SQL*Loader装载工具使用Oracle SQL*Loader装载工具初始化目标表的约束如下: * 仅适用于Oracle数据库 * 不能抽取LOB和LONG数据 * 不支持包含LOB的实体视图复制进程参数:使用SQL*Loader接口 BULKLOAD数据转换G
19、oldenGate过滤数据的注意事项如下: * 使用主键作为选择条件 * 压缩更新需从数据表获取数据 * 测试数据列是否存在抽取进程参数:简单数据过滤 TABLE , WHERE ();复制进程参数:简单数据过滤 MAP , TARGET , WHERE ();实例:复制“数据列存在且不为空”的记录 WHERE (amount = PRESENT AND amount NULL)抽取进程参数:复杂数据过滤 TABLE , , FILTER ( , ON INSERT | ON UPDATE| ON DELETE , IGNORE INSERT | IGNORE UPDATE | IGNORE
20、DELETE , );复制进程参数:复杂数据过滤 MAP , TARGET , , FILTER ( , ON INSERT | ON UPDATE| ON DELETE , IGNORE INSERT | IGNORE UPDATE | IGNORE DELETE , RAISEERROR , );实例:复制“价格乘以数量大于10000”的记录 FILTER (COMPUTE (product_price*product_amount) 10000)实例:抽取“名字包含joe”的记录 FILTER (STRFIND (name, joe) 0)实例:抽取“更新或删除前,数量超过50”和新插入
21、的记录 FILTER (ON UPDATE, ON DELETE, amount 50)实例:复制“ID为1或2”的记录 FILTER (RANGE (1, 2, ID)抽取进程参数:返回过滤前的值 FETCHBEFOREFILTER保留字:前映像值 BEFORE.GoldenGate转换数据列的规则如下: * 数据类型兼容、列名称相同 * 大小写敏感(数据库支持) * 未匹配目标列使用缺省值表:未匹配目标列的缺省值数据类型值数字0字符空格日期当前日期空值NULL抽取进程参数:数据列转换 TABLE , TARGET , COLMAP (USEDEFAULTS, = )复制进程参数:数据列转换
22、 MAP , TARGET , COLMAP (USEDEFAULTS, = )全局参数:数据列转换 COLMATCH NAMES = | PREFIX | SUFFIX | RESET复制进程参数:替换不可识别字符 REPLACEBADCHAR REPLACEBADNUM全局参数:将NULL转换成空格 NOSPACESTONULL全局参数:截断尾部空格 TRIMSPACES全局参数:过滤DML GETINSERTS | IGNOREINSERTS GETUPDATES | IGNOREUPDATES GETDELETES | IGNOREDELETES复制进程参数:转换DML INSERTU
23、PDATES INSERTDELETES UPDATEDELETESGoldenGate实现事务审计日志的步骤如下: 1. 抽取进程参数:获取前映像 GETUPDATEBEFORES 2. 复制进程参数:将DML转换成Insert INSERTALLRECORDS 3. 使用列转换函数 GETENVGoldenGate转换函数包括: * 转换日期DATE * 算术运算COMPUTE * 逻辑运算IF * 数据测试COLTEST跟踪文件头部可存储用户标记,标记数据可用于: * 列映射 * 调用存储过程 * 用户出口程序 * 宏抽取进程参数:定义标记 TABLE , TOKENS ( = , .)
24、复制进程参数:读取标记 COLMAP ( = TOKEN (“”)GoldenGate支持以下escape sequence: * uFFFFUnicode * 377八进制 * xFF十六进制进程监控表:监控进程信息的常用命令命令说明INFO EXTRACT | REPLICAT状态、检查点、间隔、环境INFO MANAGER状态、端口INFO ALL所有进程信息STATS EXTRACT | REPLICAT处理数据量STATUS EXTRACT | REPLICAT | MANAGER状态LAG EXTRACT | REPLICAT处理延迟INFO EXTTRAIL | RMTTRAIL
25、关联进程、处理点、文件大小SEND MANAGER状态、子进程、端口、自动清除SEND EXTRACT | REPLICAT状态、内存池、延迟、长事务、恢复VIEW REPORT进程报告VIEW GGSEVTGoldenGate错误日志 ER 使用通配符数据处理延迟计算方式分为: * 抽取处理与数据源的时间差 * 复制处理与跟踪文件的时间差命令:查看进程处理延迟 GGSCILAG EXTRACT | REPLICAT | ER 或 GGSCISEND EXTRACT | REPLICAT , GETLAG管理进程参数:处理延迟检查间隔 LAGREPORTMINUTES LAGREPORTHOU
26、RS管理进程参数:处理延迟警告阀值 LAGCRITICALSECONDS LAGCRITICALMINUTES LAGCRITICALHOURS LAGINFOSECONDS LAGINFOMINUTES LAGINFOHOURS命令:查看数据处理量 GGSCISTATS EXTRACT | REPLICAT | ER 错误日志包含以下内容: * GGSCI执行命令 * 错误、警告、提示信息错误日志文件位于: /ggserr.log进程报表包含以下信息: * 进程参数 * 表和列映射 * 数据库信息 * 运行时消息 * 统计信息命令:查看进程报表 GGSCIVIEW REPORT | | MG
27、R进程报表文件位于: /dirrpt/.rpt全局参数:统计信息生成周期 REPORT全局参数:事务处理数量 REPORTCOUNT全局参数:报表文件分割阀值 REPORTROLLOVER全局参数:SQL错误报告阀值 WARNRATE丢弃记录转储文件包含以下信息: * 数据库错误信息 * 跟踪文件CSN * 跟踪文件字节地址 * 列值或DDL语句命令:查看丢弃记录转储文件 VIEW REPORT 全局参数:丢弃记录转储文件分割阀值 DISCARDROLLOVER抽取进程参数:修正源-目标时间差异 TCPSOURCETIMER系统管理在源系统添加抽取进程的步骤如下: 1. 从抽取进程I参数除去数
28、据表A 2. 在源数据库锁定数据表A,记录时间T 3. 停止抽取进程I 4. 在抽取进程II参数添加数据表A 5. 启动抽取进程II,指定时间T 6. 启动抽取进程I 7. 添加数据泵进程II 8. 添加远程复制进程II切换到数据泵复制模式的步骤如下: 1. 添加本地跟踪文件 2. 在抽取进程参数指定本地跟踪文件 3. 添加数据泵进程 4. 添加远程跟踪文件 5. 添加远程复制进程II 6. 重启抽取进程 7. 启动数据泵进程 8. 远程复制进程I处理结束后关闭 9. 启动远程复制进程II在目标系统添加复制进程的步骤如下: 1. 停止抽取进程 2. 复制进程I处理结束后关闭 3. 从复制进程I
29、参数除去数据表A 4. 添加复制进程II 5. 在复制进程II参数加入数据表A 6. 启动抽取进程 7. 启动复制进程I 8. 启动复制进程II命令:查看抽取进程是否处理完成 SEND EXTRACT LOGEND在源数据库添加数据表的步骤如下: 1. 停止抽取进程 2. 确保没有指定全局参数“WILDCARDRESOLVE” 3. 在抽取和复制进程参数加入数据表 4. 在源和目标数据库添加数据表 5. 重新生成数据定义文件 6. 授权用户访问数据表 7. 启动抽取进程注:在Oracle RAC环境中,修改重做日志线程号需要重建抽取进程组命令:查看CSN INFO EXTRACT , SHOW
30、CH命令:查看跟踪文件位置 INFO RMTTRAIL | EXTTRAIL *命令:强制跟踪文件切换 SEND EXTRACT , ROLLOVER回退操作回退工具可以实现以下功能: * 还原测试数据库 * 恢复物理和逻辑错误回退工具还原数据库的原理如下: * 反转跟踪文件的读取顺序 * 将删除转换成插入 * 将插入转换成删除 * 将更新后映像转换成前映像 * 反转事务执行顺序图:回退过程表:回退工具不支持的数据类型DB2OracleSQL ServerSybaseTeradataBLOBCLOBDBCLOBCLOBBLOBNCLOBLONGLONG RAWXMLTypeUDTNested
31、TablesVARRAYTEXTIMAGENTEXTVARCHAR (MAX)VARBINARYBINARYTEXTIMAGEALL抽取进程参数:抽取删除记录的所有列信息 NOCOMPRESSDELETES命令:生成回退文件 $/reverse 回退DML操作的步骤如下: 1. 使用REVERSE工具生成回退文件 2. 在复制进程参数指定回退文件 3. 在目标系统启动复制进程注:要取消回退,可重新复制跟踪文件复制方案生成目标数据库方案的步骤如下: 1. 使用DDLGEN工具生成脚本 2. 在目标数据库执行脚本脚本文件缺省目录: /dirsqlDDLGEN参数:脚本文件名 DDLFILE DDLGEN参数:模板文件名 DDLTEMPLATEFILE命令:生成脚本文件 $/ddlgen paramfile