服务质量系统 e GoldenGate 实施方案
目录
一、 服务质量系统 GoldenGate 灾备设计方案 ..................................................................... 3 1.1 服务质量系统数据库情况 ........................................................................................... 3 1.2 服务质量系统采用 GoldenGate 灾备设计方案 ......................................................... 4 1.2.1 基础设施设计 ................................................................................................... 4 1.2.2 数据库设计 ....................................................................................................... 5 1.2.3 GoldenGate 设计 .............................................................................................. 5 二、 实施前准备 ....................................................................................................................... 6 三、 GoldenGate 进程配置清单 .............................................................................................. 7 四、 源端配置 ........................................................................................................................... 7 4.1 创建运行 GoldenGate 的用户 ..................................................................................... 7 4.2 安装 GoldenGate .......................................................................................................... 8 4.3 添加变量 ....................................................................................................................... 8 4.4 增加附加日志 ............................................................................................................... 8 4.5 配置源端 DDL ................................................................................................................ 9 4.6 Mgr 进程配置 .............................................................................................................. 10 4.7 抓取进程配置 ............................................................................................................. 10 4.8 传输进程配置 ............................................................................................................. 11 4.9 启动进程 ..................................................................................................................... 12 五、 同步历史数据 ................................................................................................................. 12 RMAN 备份 ............................................................................................................................. 12 六、 目标端配置 ..................................................................................................................... 12 6.1 创建运行 GoldenGate 的用户 ................................................................................... 12 6.2 安装 GoldenGate ........................................................................................................ 13 6.3 添加变量 ..................................................................................................................... 13 6.4 修改数据库 ................................................................................................................. 13 6.5 目标端 GLOBALS 配置 ................................................................................................. 14 6.6 Mgr 进程配置 .............................................................................................................. 14 6.7 数据入库进程配置 ..................................................................................................... 15 6.8 启动进程 ..................................................................................................................... 15
一、 服务质量系统 GoldenGate 灾备设计方案 1.1 项目背景与目标 基于服务质量系统 2013 年规划扩容建设,需要实现满足服务开通系统与服务质量系统的数据同步; 1.2 服务质量系统组网图 注:现网服务开通系统是 ORACLE 数据库、服务质量是 sybase 数据库; 1.3 服务质量系统数据库情况
1. 信息
内容
说明
数据量 大约在 2T 左右
需要复制的 Schema 21
需要复制的表数量
表的大小在 3T 左右 日志增量 高峰期增量在 100M 左右
现网数据库设备情况:
序号
设备名称
内容
单位
数量
备注
1 p6 570 单台:32 个 4.2GHz CPU,128GB 内存,4 个 300GB 硬盘,8 个 TX 类型局域网接口,8 个 SX 类型局域网接口,8 个4Gb/s FC 盘阵接口,1 个 DVD 光驱,1个磁带机,冗余电源模块,有 1 个机柜,有 1 个控制台(含鼠标/键盘/显示器)。
台 2 Sybase数据库
4 1.4 服务质量系统 采用 e GoldenGate 灾备设计方案
1.4.1 系统部署拓扑图
2 1.4.2 基础设施设计
a) 源端数据库主机和存储要求
GoldenGate 数据库灾备系统,对源端数据库主机的资源占用很小,主要如下:
资源
数量
设计
安装节点 RAC 节点一 可以安装任一节点(节点 2 的监听没有启动)
CPU 每个抽取进程GoldenGate 数据复制的原理是对数据库的日志采用优化的日志扫描算法进行扫描,对源端 CPU 占用率非常低。
DB Server1DB Storage系统A(Source)DB Server系统B(Target)DB Storage复制工具服务器DB Server2
<1% 内存 每个抽取进程<1G GoldenGate 对内存的需求取决于营销系统大长事务的数量以及并发的数据增量。如果大长事务特别多,那么建议内存适当增加。建议每个 GoldenGate 设置 1G 内存,运行过程中如果因为大长事务的原因导致内存需求加大,GoldenGate 会自动把内存交换到磁盘上去。
存储 >18G GoldenGate 对存储的需求主要是队列文件的存储需要。队列文件相对数据库日志文件,大约是其 1/4,同时建议队列文件保留 7天,考虑到数据库高峰期的日志生成率(10G/天),建议 GoldenGate队列文件的存储大小为:10*7/4 约为 18G
b) 目标端数据库主机要求
资源
数量
设计
安装节点 单机
CPU 4C 灾备目标系统上的 CPU 都可供 GoldenGate 使用,为了加快数据入库,建议采用多入库进程的方式来完成数据入库工作。
内存 每个入库进程<1G GoldenGate 对内存的需求取决于并发的数据增量。由于目标端有很多优化参数,在目标段入库进程对内存的需求并不高。一般建议也设置为 1G(现网配置 128G、空闲 10G)
存储 >18G GoldenGate 目标端对存储的需求等同于对源端的存储需要。建议GoldenGate 队列文件的存储大小不低于源端的 18G(空闲 100G)
说明:现网设备是 32C ,内存空闲 10G ,存储空闲 100G ,满足主机要求;
3 1.4.3 数据库设计
a) 源端数据库要求和设计
资源
数量
设计
数据库附加日志 打开 需要在数据库级别打开附加日志,最小附加日志级别就可以。
表附加日志 打开 在 GoldenGate 中添加和打开表一级的附件日志。
b) 目标端数据库要求和设计
资源
数量
设计
Trigger 关闭 为了避免数据反复插入,需要禁用目标端的 Trigger 外键 关闭 为了加快数据入库速度,建议禁用外键
e 1.4.4 GoldenGate 设计
a) 源端 r GoldenGate Manager 进程设计
资源
数量
设计
Manager 1 自动清楚过期无效 trail 文件,自动启动以及自动重启 goldengate进程
b) 源端数据库抽取进程设计
资源
数量
设计
Extract 2 XX 管控数据库的数据量比较小,但用户比较多,为了提高性能所以分为两个抽取进程 DataPump 2 每个 extract 使用一个 datapump 来对应往目标段传送数据。
c) 源端队列文件设计(节点 2 2 个)
资源
数量
设计
Exttrail 2 每个队列文件大小每 100M 切换一个,并且使用 Manager 自动清楚过期无用队列文件
d) 源端传输进程设计
资源
数量
设计
DataPump 2 每个 extract 使用一个 datapump 来对应往目标段传送数据,考虑到带宽限制,启用数据压缩传输。
e) 目标段端 r GoldenGate Manager 进程设计
资源
数量
设计
Manager 1 自动清楚过期无效 trail 文件,自动启动以及自动重启 goldengate进程
f) 目标端入库进程设计(分析库与应用库各一个)
资源
数量
设计
REPLICAT 2 每一抽取进程对应一个入库进程
二、 实施前准备 a. 为 GoldenGate 软件划分一定的共享存储空间(天数*每天数据变化量),并创建文件系统; b. 数据库必须处于归档模式,建议保留 7-10 天以上的归档日志; c. 由双方工程师共同确定所需要复制的表以及划分复制通道; d. 为 GoldenGate 分配端口 7809,7840-7845(在源和目标端)
e. 将数据库附加日志打开; f. 创建 goldengate 数据库用户; 备注说明:
1、检查源数据库与目标数据库是否配置时钟同步:没有的话,请先配置 NTP 服务; 2、经过项目组确认:服开服务器上的字符集和服务质量监控服务器上的字符集一致; 3、服务质量监控服务器数据库表有主键;
三、 GoldenGate 进程配置清单 序号 抽取进程 传输进程 入库进程 备注(数据库用户/表) 1 cw_ext1 cw_dump1 cw_rep1 BTMON
ER_DW
FMIS1100 2 cw_ext1 cw_dump1 cw_rep1 FMIS117E YGNBI 注:具体的数据需要跟服务开通系统核对(表、表的用户归属)
四、 源端配置
4.1
创建运行 e GoldenGate 的用户
1) 在源端采用 ORACLE 用户运行 GoldenGate 2) 安装位置:/goldengate
3) 创建 GoldenGate 数据库用户 goldengate
create tablespace goldengate datafile "/xx/goldengate01.dbf" size 100M autoextend on; -- Create the user
create user goldengate
identified by "hljorarz"
default tablespace goldengate
temporary tablespace TEMP
profile DEFAULT; ; -- Grant/Revoke role privileges
grant dba to goldengate; 4) 检查源端数据库是否为归档模式,若为非归档模式,将其改为归档模式 SQL>archive log list; 设置源库为归档模式:
SQL> shutdown immediate SQL> startup mount SQL> alter database archivelog;
SQL> alter database open; 5) 检查源端数据库附加日志是否打开 SQL>select supplemental_log_data_min from v$database; a) 将数据库附加日志打开 SQL>alter database add supplemental log data; b) 切换日志以使附加日志生效 SQL〉ALTER SYSTEM ARCHIVE LOG CURRENT;
4.2
安装 GoldenGate
通过 ftp 上传 GoldenGate 软件包道安装目录,并解压缩 gzip –d *.gz
tar -xvf *.tar
在 ggsci 环境下创建 GoldenGate 子目录,create subdirs 4.3
添加变量
export GG_HOME=/goldengate export
LD_LIBRARY_PATH=$ORACLE_HOME/lib 4.4
增加附加日志
在 GGSCI 命令行中登陆数据库,为需要复制的数据表添加 trandata(在源数据库)
a) 增加表的附加日志(定义需要复制的表,以及打开表的附加日志 trandata)
GGSCI>dblogin userid goldengate,password hljorarz 注:n dblogin 的后面是不能加标点符号的,否则登陆的时候,d password 会认为不对。而不能登陆;
GGSCI>add_trandata_cw.txt(具体的表名已服务开通系统为准)
b) 执行完毕通过下列 sql 检查,查看那些表已经添加了附加日志:
check_cw_user.sql
c) 如果发现尚有部分表未添加附加日志,需有手工添加,例:
Ggsci>dblogin userid goldengate,password hljorarz 如果该表有主键:
Ggsci>add trandata emp_hlj.table_name(添加日志组)
如果该表无主键,则需要制定主键或者多列的组合主键:
Ggsci>add trandata emp_hlj.table_name,cols(列名,列名…) 4.5
配置源端 DDL
在做该配置之前,请确认所有 extract 和 replicat 全部已停止。
在源端修改 GLOBALS 参数文件:
Shell> cd goldengate Shell> ggsci GGSCI> EDIT PARAMS ./GLOBALS GGSCHEMA goldengate
然后停止 manager:stop mgr。
然后退出 ggsci,接着重新进入 ggsci 让修改的 GLOBALS 参数生效。
关闭 recycle bin(针对 DDL 复制)
–将 RECYCLEBIN 初始化参数设置为 OFF. Shell> sqlplus <ddl_schema>/<password> as SYSDBA
SQL> ALTER SYSTEM SET RECYCLEBIN = OFF SCOPE = BOTH;
–将_RECYCLEBIN 初始化参数设置为 FALSE. SQL> ALTER SYSTEM SET "_recyclebin" = FALSE SCOPE = BOTH; SQL> exit
然后切换到 GoldenGate 目录下执行:
Sqlplus / as sysdba 创建 DDL 相关的对象 SQL> @marker_setup.sql –- 需要输入 goldengate 这个 schema
创建捕获 DDL 变化的触发器和包 SQL> @ddl_setup.sql -- 需要输入goldengate这个schema,然后输入INITIALSETUP,然后输入 yes
创建角色 SQL> @role_setup.sql -- 需要输入 goldengate 这个 schema 把角色的权限给 goldengate SQL> GRANT GGS_GGSUSER_ROLE, RESOURCE, DBA, CONNECT to goldengate; 启用 对象和触发器
SQL> @ddl_enable.sql -- 需要输入 goldengate 这个 schema
4.6
r Mgr 进程配置
编辑 mgr 进程参数
GGSCI>edit param mgr port 7809 DYNAMICPORTLIST
7840-7845 AUTOSTART EXTRACT * AUTORESTART EXTRACT *,RETRIES 5,WAITMINUTES 7 PURGEOLDEXTRACTS ./dirdat/*,usecheckpoints, minkeepdays 7 PURGEDDLHISTORY MINKEEPDAYS 7, MAXKEEPDAYS 10 PURGEMARKERHISTORY MINKEEPDAYS 7, MAXKEEPDAYS 10 LAGREPORTHOURS 1 LAGINFOMINUTES 30 LAGCRITICALMINUTES 45 4.7
抓取进程配置
1) cw_ext1 进程 添加 cw_ext1 进程,从数据库日志中抓取有效数据
GGSCI> ADD EXTRACT cw_ext1, tranlog, begin now, threads 2 添加本地队列 t1,cw_ext1 进程捕捉到的有效数据将写入本地队列 GGSCI> ADD EXTTRAIL ./dirdat/t1, EXTRACT cw_ext1,megabytes 100(100M 切
换)
为 cw_ext1 进程配置参数 GGSCI>edit param yx_ext1
cw_ext1.prm
2) cw_ext2 进程 添加 cw_ext2 进程,从数据库日志中抓取有效数据 GGSCI> ADD EXTRACT cw_ext2, tranlog, begin now, threads 2
添加本地队列 t2,cw_ext2 进程捕捉到的有效数据将写入本地队列 GGSCI> ADD EXTTRAIL ./dirdat/t2, EXTRACT cw_ext2,megabytes 100 为 cw_ext2 进程配置参数 GGSCI>edit param cw_ext2 cw_ext2.prm 4.8
传输进程配置
1) cw _dump1 传输进程 添加 cw_dump1 进程,将本地队列的数据抽取出来
GGSCI> ADD EXTRACT cw_dump1,EXTTRAILSOURCE ./dirdat/t1 添加远端队列,将 cw_dump1 进程捕捉到的数据将写入该队列 GGSCI> ADD RMTTRAIL ./dirdat/t1,EXTRACT cw_dump1,MEGABYTES 200 配置 cw_dump1 进程参数
GGSCI>edit param cw_dump1 cw_dump1.prm
2) cw _dump2 2 传输进程
添加 cw_dump2 进程,将本地队列的数据抽取出来
GGSCI> ADD EXTRACT cw_dump2,EXTTRAILSOURCE ./dirdat/t2 添加远端队列,将 cw_dump2 进程捕捉到的数据将写入该队列 GGSCI> ADD RMTTRAIL ./dirdat/t2,EXTRACT cw_dump2,MEGABYTES 200 配置 cw_dum2 进程参数
GGSCI>edit param cw_dump2 cw_dump2.prm 4.9
启动进程
启动源端管理进程 G GSCI>start mgr 启动源端抽取进程 GGSCI> start
cw_ext* 启动源端传输进程 GGSCI> start
cw_dump*
五、 同步历史数据
RMAN 备份 数据的初始化 TB_BA_NUM.sh 六、 目标端配置
6.1 创建运行 e GoldenGate 的用户
1) 在源端采用 goldengate
用户运行 GoldenGate 2) 安装位置:
/goldengate
3) 创建 GoldenGate 数据库用户 goldengate
create tablespace goldengate datafile "/xx/goldengate01.dbf" size 100M autoextend on; -- Create the user
create user goldengate
identified by "hljorarz"
default tablespace goldengate
temporary tablespace TEMP; -- Grant/Revoke role privileges
grant dba to goldengate; 6.2 安装 GoldenGate
通过 ftp 上传 GoldenGate 软件包道安装目录/goldengate,并解压缩 gzip –d *.gz
tar -xvf *.tar
在 ggsci 环境下创建 GoldenGate 子目录, create subdirs 6.3 添加变量
export GG_HOME=/goldengate
export
LD_LIBRARY_PATH=$ORACLE_HOME/lib
6.4 修改数据库
禁用触发器 declare v_sql varchar2(2000); CURSOR c_trigger IS SELECT "alter trigger "||owner||"."||trigger_name||" disable" from dba_triggers where owner in ("BTMON","ER_DW","FMIS1100","FMIS117E","YGNBI"); BEGIN OPEN c_trigger; LOOP FETCH c_trigger INTO v_sql; EXIT WHEN c_trigger%NOTFOUND; execute immediate v_sql; end loop;
close c_trigger; end;/ 禁用外键 declare v_sql varchar2(2000); CURSOR c_trigger IS SELECT "alter table "||owner||"."||table_name||" disable constraint "||constraint_name from dba_constraints where constraint_type="R" and owner in ( "BTMON","ER_DW","FMIS1100","FMIS117E","YGNBI" ); BEGIN OPEN c_trigger; LOOP FETCH c_trigger INTO v_sql; EXIT WHEN c_trigger%NOTFOUND; execute immediate v_sql; end loop; close c_trigger; end; / 6.5 目标端 S GLOBALS 配置
GGSCI> EDIT PARAMS ./GLOBALS CHECKPOINTTABLE goldengate.ggschkpt 6.6 r Mgr 进程配置
编辑 mgr 进程参数
GGSCI>edit param mgr port 7809 DYNAMICPORTLIST 7840-7845 AUTOSTART REPLICAT * AUTORESTART REPLICAT *,RETRIES 5,WAITMINUTES 1 PURGEOLDEXTRACTS ./dirdat/*,usecheckpoints, minkeepdays 7 LAGREPORTHOURS 1 LAGINFOMINUTES 30 LAGCRITICALMINUTES 45
6.7 数据入库进程配置
1) cw_rep1 进程 从 GG 登录 ORACLE dblogin userid goldengate,password hljorarz 在目标端添加检查表 GGSCI> ADD CHECKPOINTTABLE 添加 cw_rep1 进程,从数据库日志中抓取有效数据。
GGSCI> ADD REPLICAT cs_rep1,EXTTRAIL ./dirdat/t1 编辑 cw_rep1 进程参数 GGSCI>edit param cw_rep1 cw_rep1.prm
2) cw_rep2 进程 从 GG 登录 ORACLE dblogin userid goldengate,password hljorarz 在目标端添加检查表 GGSCI> ADD CHECKPOINTTABLE 添加 cw_rep2 进程,从数据库日志中抓取有效数据。
GGSCI> ADD REPLICAT cw_rep2,EXTTRAIL ./dirdat/t2
编辑 cw_rep2 进程参数 GGSCI>edit param cw_rep2 cw_rep2.prm 6.8 启动进程
启动目标端管理进程 GGSCI>start mgr
启动目标端入库进程 GGSCI>Start
cw_rep1
aftercsn
xxxxx GGSCI>Start
cw_rep2
aftercsn
xxxxx
七 、回退机制 Goldengate 升级操作不会对现网运行产生影响,故无需回退。