OGG工具简介
GoldenGate软件是一种基于日志的结构化数据复制软件,它通过解析源数据库在线日志或归档日志获得数据的增删改变化,再将这些变化应用到目标数据库,实现源数据库与目标数据库实时同步(real-time data synchronize)、双活(active-active high availability)。GoldenGate软件可以在异构的IT基础结构(包括几乎所有常用操作系统平台和数据库平台)之间实现大量数据亚秒一级的实时复制。
安装
1、环境准备
服务器 | IP | 数据库版本 | 系统 | 实例 | OGG版本 |
(NCC正式库)源库 | 10.0.100.243 | Oracle 11g | Windows server 2012 r2 | Orcl | |
目标库(待准备) | Oracle 11g | Orcl |
2、配置流程
1、源端
在源数据库上执行以下步骤
调整归档模式,如果数据库运行在非归档模式下,首先要修改成归档模式,用sqlplus执行
SQL>shutdown immediate;
SQL>startup mount;
SQL>alter database archivelog;
SQL>alter database open;
打开数据库级别的补充日志(supplemental log)
SQL>alter database add supplemental;
创建GoldenGate用户,为了简化流程,这里直接给ggs赋予了dba权限
SQL>create user ggs identified by ggs;
SQL>grant dba to ggs;
DDL复制
切换到goldengate软件目录下面登录数据库sqlplus / as sysdba
1.@marker_setup.sql
2.@ddl_setup.sql #此处的输入goldengate管理用户ggs必须指定单独的表空间并且自动扩展。
3.@role_setup.sql
4.@ddl_enable.sql
5.@?/rdbms/admin/dbmspool.sql
6.@ddl_pin.sql ggs ##此处ggs为配置在goldnegate中的管理账户
添加表级别的补充日志,用GGSCI执行,GGSCI在GoldenGate目录下面
登录ggs用户
GGSCI> dblogin userid ggs,password ggs
添加要同步表的补充日志,可以用通配符来用户所有的表
GGSCI>add trandata NCC1130.*
配置源数据库的全局参数
GGSCI> edit params ./GLOBALS
在打开的文件中添加以下内容
MGRSERVNAME GGMGR
ggschemas ggs
配置源数据库的Manager进程
创建名字为mgr的Manager 进程的参数文件
GGSCI> edit params mgr
在打开的文件里添加以下内容
PORT 7809
DYNAMICPORTLIST 7810-7820
AUTORESTART ER t*, RETRIES 4, WAITMINUTES 4
保存文件,参数说明
PORT:Manager进程通信端口G
DYNAMICPORTLIST:表示Manager进程可以为通信分配的动态端口列表
AUTORESTART:自动重启Extract进程,重启次数为4次,每次间隔4s,如果不成功就放弃
启动Manager进程
GGSCI> start mgr
配置源数据库的Extract进程
创建名字为extest的抽取进程的参数文件
GGSCI> edit params extest
在打开的文件里添加以下内容
extract extest
userid ggs,password ggs
exttrail G:\app\Administrator\product\11.2.0\ogg2\dirdat\et
Dynamicresolution
ddl include all
ddloptions addtrandata, report
table NCC1130.* ;
保存文件,参数说明
exttrail:本地tail文件的保存目录
dynamicresolution:动态解析原端的表名
在GGSCI中添加extest进程
GGSCI>add extract extest,tranlog,begin now
添加本地tail文件
GGSCI>add exttrail G:\app\Administrator\product\11.2.0\ogg2\dirdat\et, extract extest
启动Extract进程
GGSCI>start extest
配置源数据库的PUMP进程
创建名字为dpump的pump进程的参数文件
GGSCI> edit params dpump
在打开的文件里添加以下内容
extract dpump
passthru
userid ggs,password ggs
rmthost 10.0.100.245,mgrport 7809,compress
rmttrail E:\app\Administrator\product\11.2.0\ogg2\dirdat\pt
table NCC1130.* ;
保存文件,参数说明
rmthost:目标数据库的IP和端口,端口为目标数据库Manager进程中配置的端口号。 rmttrail:目标数据库tail文件的保存路径
在GGSCI中添加PUMP进程
GGSCI>add extract dpump, exttrailsource G:\app\Administrator\product\11.2.0\ogg2\dirdat\et
注意:该地址应与extract进程中配置的trail文件地址一样
添加远程tail的保存路径
GGSCI>add rmttrail E:\app\Administrator\product\11.2.0\ogg2\dirdat\pt ,extract dpump
注意:该地址应与目标数据库中trail文件的地址一样
启动PUMP进程
GGSCI>start dpump
2、目标端
在目标数据库上执行以下步骤
创建GoldenGate用户,为了简化流程,这里直接给ggs赋予了dba权限
SQL>create user ggs identified by ggs;
SQL>grant dba to ggs;
添加checkpoint表,checkpoint表的作用是为了从异常失败场景中恢复数据
在GLOBALS中添加checkpoint
GGSCI>edit params ./GLOBALS
在打开的文件中添加
checkpointtable ggs.checkpoint
保存文件,在目标数据库中添加checkpoint表
GGSCI>dblogin userid ggs,password ggs
GGSCI>add checkpointtable ggs.checkpoint
配置目标数据库的Manager进程
创建名字为mgr的Manager 进程的参数文件
GGSCI> edit params mgr
在打开的文件里添加以下内容
PORT 7809
DYNAMICPORTLIST 7810-7820
AUTOSTART ER *
AUTORESTART EXTRACT *,WAITMINUTES 2,RETRIES 5
LAGREPORTHOURS 1
LAGINFOMINUTES 10
LAGCRITICALMINUTES 30
PURGEOLDEXTRACTS E:\app\Administrator\product\11.2.0\ogg2\dirdat\rt*, USECHECKPOINTS, MINKEEPDAYS 5
保存文件,启动Manager进程
GGSCI>start mgr
配置目标数据库的replicat进程
创建Replicat进程
GGSCI> add replicat repl,exttrail C:\app\oracle\product\12.1.2\oggcore_1\dirdat\pt ,checkpointtable ggs.checkpoint
注意:该地址应为trail文件的地址
创建名字为repl的Replicat进程的参数文件
GGSCI> edit params repl
在打开的文件里添加以下内容
replicat repl
userid ggs,password ggs
assumetargetdefs
reperror default,discard
discardfile E:\app\Administrator\product\11.2.0\ogg2\dirrpt\repl.dsc,append,megabytes 50
Dynamicresolution
DDL INCLUDE ALL
DDLERROR DEFAULT IGNORE RETRYOP MAXRETRIES 3 RETRYDELAY 5
DDLERROR DEFAULT DISCARD
DDLERROR DEFAULT IGNORE RETRYOP
MAP NCC1130.*,TARGET NCC1130.* ;
保存文件,参数说明
assumetargetdefs:说明源数据库和目标数据库有相同的表定义
reperror:遇到复制错误默认行为记录错误并继续处理
dynamicresolution:动态解析对象名称,加快解析效率
启动replicat进程
GGSCI>start repl
- 测试
GGSCI>info all --查看所有进程,running表示允许
源端
目标端
- 常用指令
Info all:查询所有进程
view report +进程名称:查看进程详细状态,有助于排错
view ggsevt:查看警告日志
lag + 进程名称:查看延时,以及文件抽取应用情况
stats <进程名称>,<时间频度>,table : 可以查看进程处理的记录数。该报告会详细的列出处理的类型和记录数。
如:GGSCI> stats edr, total列出自进程启动以来处理的所有记录数。
GGSCI> stats edr, daily, table gg.test列出当天以来处理的有关gg.test表的所有记录数。
stats MGOUPEXT, daily, table group.t_f_records
info + 进程名称,showch:查看详细处理过的事物记录
info + 进程名称,detail:查看更详细的信息,包括所使用的trail文件,参数文件,报告文件,告警日志文件位置等
alter extract ext1,extseqno 0,extrba 0:重置抽取进程,本地文件序列号从0开始生成。
alter replicat rep1,extseqno 0,extrba 0:重置读取进程,重新从0号trial文件开始读取。
help, help add exttrail:查看帮助
启动和停止服务:
start mgr,stop mgr
start extract extest,stop extract extest
start replicat repl,stop replicat repl
edit params <group name>:修改参数命令
DDL复制操作具体步骤
在源端执行marker_setup.sql脚本:
[oracle@goldengate]$ ls marker_setup.sql
marker_setup.sql
[oracle@goldengate]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Tue Mar 19 15:21:11 2019
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> @marker_setup.sql
Marker setup script
You will be prompted for the name of a schema for the Oracle GoldenGate database objects.
NOTE: The schema must be created prior to running this script.
NOTE: Stop all DDL replication before starting this installation.
Enter Oracle GoldenGate schema name:ggs##配置goldengate的管理用户
Marker setup table script complete, running verification script...
Please enter the name of a schema for the GoldenGate database objects:
Setting schema name to OGGADMIN
MARKER TABLE
-------------------------------
OK
MARKER SEQUENCE
-------------------------------
OK
Script complete.
SQL>
执行第二个脚本ddl_setup.sql:
SQL> @ddl_setup.sql
Oracle GoldenGate DDL Replication setup script
Verifying that current user has privileges to install DDL Replication...
You will be prompted for the name of a schema for the Oracle GoldenGate database objects.
NOTE: For an Oracle 10g source, the system recycle bin must be disabled. For Oracle 11g and later, it can be enabled.
NOTE: The schema must be created prior to running this script.
NOTE: Stop all DDL replication before starting this installation.
Enter Oracle GoldenGate schema name:ggs
Working, please wait ...
Spooling to file ddl_setup_spool.txt
Checking for sessions that are holding locks on Oracle Golden Gate metadata tables ...
Check complete.
declare
*
ERROR at line 1:
ORA-20783:
ORA-20783:
Oracle GoldenGate DDL Replication setup:
*** Please move OGGADMIN to its own tablespace
ORA-06512: at line 34
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
解决:
alter user OGGADMIN default tablespace OGG_TBS;
alter user OGGADMIN quota unlimited on OGG_TBS;
执行第三个脚本@role_setup.sql
SQL> @role_setup.sql
GGS Role setup script
This script will drop and recreate the role GGS_GGSUSER_ROLE
To use a different role name, quit this script and then edit the params.sql script to change the gg_role parameter to the preferred name. (Do not run the script.)
You will be prompted for the name of a schema for the GoldenGate database objects.
NOTE: The schema must be created prior to running this script.
NOTE: Stop all DDL replication before starting this installation.
Enter GoldenGate schema name:ggs
Wrote file role_setup_set.txt
PL/SQL procedure successfully completed.
Role setup script complete
Grant this role to each user assigned to the Extract, GGSCI, and Manager processes, by using the following SQL command:
GRANT GGS_GGSUSER_ROLE TO <loggedUser>
where <loggedUser> is the user assigned to the GoldenGate processes.
SQL> grant GGS_GGSUSER_ROLE to oggadmin;
Grant succeeded.
执行其它的一些sql脚本:
SQL> @ddl_enable.sql
Trigger altered.
SQL> @?/rdbms/admin/dbmspool.sql
Package created.
Grant succeeded.
SQL> @ddl_pin.sql ggs
PL/SQL procedure successfully completed.
PL/SQL procedure successfully completed.
PL/SQL procedure successfully completed.