Configure Oracle GoldenGate for Oracle to Oracle Database Synchronization-阿里云开发者社区

开发者社区> 数据库> 正文
登录阅读全文

Configure Oracle GoldenGate for Oracle to Oracle Database Synchronization

简介: <div id="content" class="bigfont mycontent" style="zoom:1; line-height:23px; font-size:14px; margin:18px 28px; font-family:'lucida Grande',Verdana,'Microsoft YaHei'; clear:both; min-height:200px;

环境介绍:

       两台装有Solaris10的虚拟机,主机名为GG01和GG02 ,对应的IP为192.168.1.91和192.168.1.92。目前已经安装了oracle database 10g软件,数据库已处于运行状态。GG01上的数据库实例是GGDB01,而GG02上的数据库实例是GGDB02。网上好多类似文档中的数据库的数据文件都是放在本地磁盘上的,做起来基本上没什么问题。可我这里使用了ASM,所以好几次都是失败,几经周折最后还是搞定了。

一、安装之前的准备工作:

在安装GG之前,必须确保满足以下几个条件:

1、创建GoldenGate系统用户,根据官方文档中的描述最好直接使用oracle用户进行安装配置。

2、在数据库中创建GoldenGate数据库用户,至少包含connect,resource,select any dictionary,select any table权限。

如果在Oracle 10g ASM处于运行状态,在ASM实例中你必须使用sys用户以sysdba的身份进行访问,Because GG不支持使用操作系统用户访问ASM实例。

3、数据库处于归档模式。

4、检查源端数据库是否打开附加日志。

5、如果数据文件是存放在ASM中,则还必须将ASM实例静态注册到监听器中,否则,在后续实验过程中会失败的。Listern.ora和tnsname.ora文件内容如下:

listen.ora内容如下:

tnsname.ora内容如下:

还有其他一些限制条件,请参考官方文档。

二、安装:

这里用的是ggs_solaris10_x86_64_ora10g_64bit_v10.4.0.19_002.tar版本。软件的下载地址是:http://edelivery.oracle.com

1、设置GG用户的环境变量:

由于这里直接使用的是oracle用户,之前已经设置好了环境变量,检查下述变量是否正确配置:

2、设置library paths for dynamic builds:

操作系统的不同,共享库的名称也不同,详见下图:

3、安装:

安装其实很简单,以oracle用户身份将压缩包解压到指定位置即可,这里的安装路径是/u01/app/oracle/gg

安装完成后,必须切换至GG的安装目录运行GGSCI命令,否则有些帮助信息是看不到的。

到此,GG的安装过程已经完成了。在另外一个节点执行上述步骤安装GG即可。

4、创建GG用户:

源数据库GGDB01:

目标数据库GGDB02:

这里为了做起来方便,所以直接赋予guser用户的dba权限。

三、源数据库(GGDB01)和目标数据库(GGDB02)上配置manager进程:

1、GG01上配置Manager process:

加入PORT 7809,保存退出。 这个端口号只要不重复即可。

2、启动Manager:

目标端(GG02)也配置MANAGER:

3、在源数据库端(GGDB01)创建表并载入数据:

以guser用户登录,然后创建测试表并载入数据:

创建并插入数据完成后,查看创建的表内容:

目标数据库端(GGDB02)也创建上述两张表,但不插入数据:

目标数据库(GGDB02)上已成功创建tcustmer和tcustord两张表,并且当前表中没有任何的记录可以查询到。

4、Add supplemental logging(源数据库GGDB01上执行):

在ggsci程序中将tcustmer和tcustord两张表的supplemental logging功能打开。

5、源数据库(GGDB01)中的数据导入目标数据库(GGDB02):

这步在异构数据库上是非常实用的,对于两端都是oracle的数据库,可以采用oracle自己的方式导入数据。

源(GG01)端执行:

目标(GG02)端执行以下命令:

接着源端启动:

启动了之后,就可以使用view report命令查看源端的einig1以及目标端的rinig1日志信息,在目标端使用sql查询下是否导入成功:

到此,已成功将源端数据导入目标端了。

四、抓取进程(capture)的配置:

源端GG01上进行设置:

添加一个eorag1进程,从数据库中抓取有效数据:

如果是RAC环境,则上面的threads后面的值就是2了。

配置抓取进程eorag1的参数:

由于这里使用了ASM,所以上述文件中必须加入ASMUSER以及ASMPASSWORD,并且ASM的用户必须是sys。如果没有编辑listen.ora文件和tnsname.ora文件,即使加上ASM选项,后续实验过程也是不会成功的。

五、目标数据库端上数据入库进程的配置:

目标端GG02上进行设置:

添加检查表:

添加入库进程rorag1并编辑其参数:

编辑完成后,启动rorag1进程:

最后在源端GG01上向表tcustmer上插入新数据,以测试下是否会实时同步数据:

完成以后一定要commit,否则数据是传不过去的。

目标端GG02上检查下,是否已经接收到数据:

向表tcustord中插入新数据:

未插入新记录之前的值:

源数据库(GGDB01)端插入新记录,然后提交:

目标数据库(GGDB02)端查询:

到此已经成功了,哈哈!!!后续还会增加GoldenGate高级内容,敬请期待!!!

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

其他文章