对于GG耳闻已久,由于公司业务涉及到数据同步,就在官网上下载了相应版本,搭建测试环境来进行初步使用。
测试环境如下:
操作系统: Red Hat RHEL 5.5 x86_64
数据库: Oracle 10g R2
一.安装
gg安装十分简单,将文件fbo_ggs_Linux_x64_ora10g_64bit,解压缩到指定目录,
我这里是解压到/opt/goldengate目录下。
/opt/goldengate/ggsci
Copyright (C) 1995, 2011, Oracle and/or its affiliates. All rights reserved.
GGSCI (ORACLE_SERVER) 1>
执行命令:CREATE SUBDIRS,如下
GGSCI (ORACLE_SERVER) 1> CREATE SUBDIRS
Creating subdirectories under current directory /opt/goldengate
Parameter files /opt/goldengate/dirprm
Report files /opt/goldengate/dirrpt
Checkpoint files /opt/goldengate/dirchk
Process status files /opt/goldengate/dirpcs
SQL script. files /opt/goldengate/dirsql
Database definitions files /opt/goldengate/dirdef
Extract data files /opt/goldengate/dirdat
Temporary files /opt/goldengate/dirtmp
Veridata files /opt/goldengate/dirver
Veridata Lock files /opt/goldengate/dirver/lock
Veridata Out-Of-Sync files /opt/goldengate/dirver/oos
Veridata Out-Of-Sync XML files /opt/goldengate/dirver/oosxml
Veridata Parameter files /opt/goldengate/dirver/params
Veridata Report files /opt/goldengate/dirver/report
Veridata Status files /opt/goldengate/dirver/status
Veridata Trace files /opt/goldengate/dirver/trace
Stdout files /opt/goldengate/dirout
以上是gg在初始化,建立了一系列的文件目录,用以存放其运行所产生的文件。
建立主进程
gg运行需要一个主进程,用来指定其运行的端口号和其他信息,在初始化之后,就要建立此主进程,如下:
Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONEGSCI>edit param mgr
Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE PORT 7801 --指定GoldenGate 主进程端口号
一般情况下,协商这2行参数即可,当然还有更加详细的配置可以写在里面用以控制gg的其他动作,这里就不详细描述了,具体见Oracle官方所提供的手册。
上面参数编辑完成之后,运行如下命令来启动mgr主进程。
Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONEGGSCI>start mgr
查看进程状态
GGSCI>info all
Program Status Group Lag Time Since Chkpt
MANAGER RUNNING
以上gg就安装完毕了。
二.配置一个简单的双向复制实例
在对gg进行设置之前,首先检查一下数据库的设置。
由于gg是通过解析Oracle的日志来对数据进行解析,那么Oracle数据库一定要处于归档模式下,并且要处于force logging模式。
同时数据库要打开了最小附加模式。
通过以下命令来检测:
Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONESQL> select supplemental_log_data_min from v$database;
如果返回的是NO,则需要执行以下命令:
Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONESQL> alter database add supplemental log data;
以上是最数据库的设置,一定要确保上面参数正确。
gg运行需要一个拥有 dba 权限的用户用来抽取系统日志,这里创建一个专门的用户goldengate用于同步数据。
此用户权限需要给予dba,在最新的11g版本中,要授予sysdba的权限,这样的话后期对于goldengate用户的管理就显得尤为重要了,用户和密码一定要控制好。
在设置了源数据库的模式后,就可以开始配置简单的复制了。
还是在源数据库进行操作,如下:
将要同步的数据表加入队列
ggsci>dblogin userid xxxx@tnsname,password xxxxxx --------oracle数据源
ggsci>dblogin source xxx -------------sqlserver数据源,xxx为配置的odbc数据源名
-------------------------------------------------------------------------------------------------------------
ggsci>add trandata username.table ---------------加入要同步的数据表名
新建一个抽取进程
ggsci>add extract extl,tranlog,begin now ----创建一个名为extl的抽取进程,基于日志模式,马上开始。
ggsci>add rmttrail /opt/goldengate/dirdat/hl,extract extl
-------这里是制定抽取进程将数据写入的位置,记住这里的文件hlxxx是位于目标机器上的,是告诉抽取进程将数据写入到目标机器上的文件便于目标机器抽取数据进行读取,后面的extract extl则是指定抽取进程。
ggsci>edit params extl
--编辑抽取进程的参数文件,一般来说常用的参数如下:
EXTRACT EXTL -------抽取进程名
SOURCEDB gg -------数据源名字,我这里是配置的sqlserver
TRANLOGOPTIONS MANAGESECONDARYTRUNCATIONPOINT --传输参数,此选项告诉 Extract 进程定期检查和删除 CDC 捕获作业,从而提高性能并减小捕获数据所占用的空间。
RMTHOST 192.168.1.1, MGRPORT 7801 --指定目标机器的地址和gg主进程的端口号
RMTTRAIL /u01/app/oracle/gg/dirdat/ms --指定远程队列地址,也就是抽取进程数据要写入的地方
TABLE HRSCHEMA.EMP; --------指定要抽取的数据表
ggsci>start extl ---------启动抽取进程
ggsci>info all -----------查看当前的GG服务所运行的任务
上面在源端设置完了之后,接着就要在目的端来配置复制进程replicat。
具体如下:
ggsci>add replicat repl exttrail /opt/goldengate/dirdat/hl,nocheckpoint,begin now
ggsci>edit param repl
Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE replicat repl -- 复制进程名
上面配置成功之后,则启动repl复制进程
ggsci>start repl
测试环境如下:
操作系统: Red Hat RHEL 5.5 x86_64
数据库: Oracle 10g R2
一.安装
gg安装十分简单,将文件fbo_ggs_Linux_x64_ora10g_64bit,解压缩到指定目录,
我这里是解压到/opt/goldengate目录下。
/opt/goldengate/ggsci
Copyright (C) 1995, 2011, Oracle and/or its affiliates. All rights reserved.
GGSCI (ORACLE_SERVER) 1>
执行命令:CREATE SUBDIRS,如下
GGSCI (ORACLE_SERVER) 1> CREATE SUBDIRS
Creating subdirectories under current directory /opt/goldengate
Parameter files /opt/goldengate/dirprm
Report files /opt/goldengate/dirrpt
Checkpoint files /opt/goldengate/dirchk
Process status files /opt/goldengate/dirpcs
SQL script. files /opt/goldengate/dirsql
Database definitions files /opt/goldengate/dirdef
Extract data files /opt/goldengate/dirdat
Temporary files /opt/goldengate/dirtmp
Veridata files /opt/goldengate/dirver
Veridata Lock files /opt/goldengate/dirver/lock
Veridata Out-Of-Sync files /opt/goldengate/dirver/oos
Veridata Out-Of-Sync XML files /opt/goldengate/dirver/oosxml
Veridata Parameter files /opt/goldengate/dirver/params
Veridata Report files /opt/goldengate/dirver/report
Veridata Status files /opt/goldengate/dirver/status
Veridata Trace files /opt/goldengate/dirver/trace
Stdout files /opt/goldengate/dirout
以上是gg在初始化,建立了一系列的文件目录,用以存放其运行所产生的文件。
建立主进程
gg运行需要一个主进程,用来指定其运行的端口号和其他信息,在初始化之后,就要建立此主进程,如下:
Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONEGSCI>edit param mgr
Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE PORT 7801 --指定GoldenGate 主进程端口号
DYNAMICPORTLIST 7802-7820 --GoldenGate为进程间通讯动态分配的端口段
一般情况下,协商这2行参数即可,当然还有更加详细的配置可以写在里面用以控制gg的其他动作,这里就不详细描述了,具体见Oracle官方所提供的手册。
上面参数编辑完成之后,运行如下命令来启动mgr主进程。
Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONEGGSCI>start mgr
查看进程状态
GGSCI>info all
Program Status Group Lag Time Since Chkpt
MANAGER RUNNING
以上gg就安装完毕了。
二.配置一个简单的双向复制实例
在对gg进行设置之前,首先检查一下数据库的设置。
由于gg是通过解析Oracle的日志来对数据进行解析,那么Oracle数据库一定要处于归档模式下,并且要处于force logging模式。
同时数据库要打开了最小附加模式。
通过以下命令来检测:
Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONESQL> select supplemental_log_data_min from v$database;
如果返回的是NO,则需要执行以下命令:
Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONESQL> alter database add supplemental log data;
以上是最数据库的设置,一定要确保上面参数正确。
gg运行需要一个拥有 dba 权限的用户用来抽取系统日志,这里创建一个专门的用户goldengate用于同步数据。
此用户权限需要给予dba,在最新的11g版本中,要授予sysdba的权限,这样的话后期对于goldengate用户的管理就显得尤为重要了,用户和密码一定要控制好。
在设置了源数据库的模式后,就可以开始配置简单的复制了。
还是在源数据库进行操作,如下:
将要同步的数据表加入队列
ggsci>dblogin userid xxxx@tnsname,password xxxxxx --------oracle数据源
ggsci>dblogin source xxx -------------sqlserver数据源,xxx为配置的odbc数据源名
-------------------------------------------------------------------------------------------------------------
ggsci>add trandata username.table ---------------加入要同步的数据表名
新建一个抽取进程
ggsci>add extract extl,tranlog,begin now ----创建一个名为extl的抽取进程,基于日志模式,马上开始。
ggsci>add rmttrail /opt/goldengate/dirdat/hl,extract extl
-------这里是制定抽取进程将数据写入的位置,记住这里的文件hlxxx是位于目标机器上的,是告诉抽取进程将数据写入到目标机器上的文件便于目标机器抽取数据进行读取,后面的extract extl则是指定抽取进程。
ggsci>edit params extl
--编辑抽取进程的参数文件,一般来说常用的参数如下:
EXTRACT EXTL -------抽取进程名
SOURCEDB gg -------数据源名字,我这里是配置的sqlserver
TRANLOGOPTIONS MANAGESECONDARYTRUNCATIONPOINT --传输参数,此选项告诉 Extract 进程定期检查和删除 CDC 捕获作业,从而提高性能并减小捕获数据所占用的空间。
RMTHOST 192.168.1.1, MGRPORT 7801 --指定目标机器的地址和gg主进程的端口号
RMTTRAIL /u01/app/oracle/gg/dirdat/ms --指定远程队列地址,也就是抽取进程数据要写入的地方
TABLE HRSCHEMA.EMP; --------指定要抽取的数据表
ggsci>start extl ---------启动抽取进程
ggsci>info all -----------查看当前的GG服务所运行的任务
上面在源端设置完了之后,接着就要在目的端来配置复制进程replicat。
具体如下:
ggsci>add replicat repl exttrail /opt/goldengate/dirdat/hl,nocheckpoint,begin now
ggsci>edit param repl
Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE replicat repl -- 复制进程名
userid ddw@orcl,password ddw --目标数据库的帐号密码oracle
assumetargetdefs --两台数据库数据结构一致则使用此参数
reperror default,discard --如果复制数据出错则忽略
discardfile D:\repsz.dsc,append,megabytes 100 --错误信息写入XXXX文件,追加模式,最大100m
gettruncates --复制truncate操作
map ddw.aatest, target ddw.aatest_1;上面配置成功之后,则启动repl复制进程
ggsci>start repl
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22166274/viewspace-732186/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/22166274/viewspace-732186/