(一)OGG的安装与配置,并实现单向DML复制操作
2015-07-28 14:20
417 查看
实验目的:在两台虚机模拟同平台同版本上面安装和配置OGG,并实现简单的DML复制。
实验环境:64位系统
操作系统:rhel6.6-x86_64
数据库:oracle_11.2-x86-64
goldengate:for_11g_x64
实验步骤:
1、
配置源端和目标端ip:
源端:
目标端:
2、
在操作系统中增加goldengate 用户,便于和oracle用户区分。
源端:
目标端:
3、
设置goldengate用户的环境变量,要注意LD_LIBRARY_PATH一定要设置,如果没有配置这个路径的话,在安装OGG的过程中会报找不到动态链接库的错误。
源端:
目标端:
3、
源端
创建goldengate专用的表空间、schema、并授权。
5、
源端
检查数据库是否在归档模式,建议在归档模式。
6、
源端:
设置附加日志
打开:
7、
源端:
建立ogg目录,便于goldengate的管理
8、
源端:
安装和配置goldengate。
解压就是安装,安装到/home/goldengate/ogg/目录下,然后修改目录权限。
9、
源端:
测试安装成功,只需进入命令行,就表明安装是成功的。
10、
在目标端也安装一遍(重复上面 7、8、9步骤)。
11、
配置源端和目标端的管理进程。
源端:
启动配置的管理进程
目标端:
PORT:指定服务监听端口;这里以7839为例,默认端口为7809
DYNAMICPORTLIST:动态端口:可以制定最大256个可用端口的动态列表,当指定的端口不可用时,管理进程将会从列表中选择一个可用的端口,源端和目标段的Collector、Replicat、GGSCI进程通信也会使用这些端口;
AUTOSTART:指定在管理进程启动时自动启动哪些进程;
AUTORESTART:自动重启参数设置;
PURGEOLDEXTRACTS:定期清理trail文件设置:本处设置表示对于超过7天的trail文件进行删除。
LAGREPORT、LAGINFO、LAGCRITICAL:
定义数据延迟的预警机制:本处设置表示MGR进程每隔1小时检查EXTRACT的延迟情况,如果超过了30分钟就把延迟作为信息记录到错误日志中,如果延迟超过了45分钟,则把它作为警告写到错误日志中。
12、
源端:
测试数据用的是OGG_USER用户的表数据(OGG_USER用户下只有T1一个表)。
查看要复制的表的日志信息是完整的,确保是logging。把nologing变成logging。
13、
源端:
配置ogg_user用户的表级附加日志。配置登陆用户。并检查日志是否添加成功。
以goldengate这个schema登陆数据库。
查看:
注意:发现是disabled,还没有添加成功,继续下一步。
添加:
注意:现在成功了,是enable的。
14、
源端:
配置抓取进程。
参数分析:
tranlog:表示数据抓取的来源是数据库的redo数据。
begin now:表示我们在启动这个抓取进程的就去抓取数据。
threads 1:表示我们数据库有多少个redo threads。
15、
源端:
添加队列文件。
分析:
./dirdat:表示trail文件的目录
r1:trail文件的前缀
extract ext_demo:值指定给那个进程用的(ext_demo)。
megabytes 100:文件大小是100m
16、
源端:
编辑我们刚刚配置的抓取进程的参数:
分析:
SETENV:配置系统环境变量
USERID/ PASSWORD:指定OGG连接数据库的用户名和密码;
REPORTCOUNT:报告已经处理的记录条数统计数字;
DISCARDFILE:定义discardfile文件位置,如果处理中油记录出错会写入到此文件中;
EXTTRAIL:指定写入到本地的哪个队列;
TRANLOGOPTIONS:指定在解析数据库日志时所需要的特殊参数,例如:对于裸设备,可能需要加入以下参数 rawdeviceoggset 0
17、
源端:
启动抓取进程:
18、
源端:
配置datapump进程,将抓取数据传到目标主机。负责TCPIP通讯。
输出:目标主机怎么写,也是定义datapumo进程的输出。
分析:
exttrailsource:抓取进程的来源,因为这个进程不否则到数据库中取抓取,所以抓取的来源
是通过抓取进程已经生成好的trail文件中的内容。
19、
源端:
配置datapump进程参数:
PASSTHRU:禁止extract进程与数据库交互,适用于Data Pump传输进程;
RMTHOST:指定目标系统及其GoldengateManager进程的端口号,还用于定义是否使用压缩进行传输;
mgrport:目标主机管理进程的端口号,我们上面已经配置了。
compress:在传输的过程中启用压缩。
RMTTRAIL:指定写入到目标断的哪个队列;
TABLE OGG_USER.*:上面说过,哪些表的redo信息传输。
启动,如果有问题,状态不能为running,可以查看相应的日志在自己安装的ogghome目录下。
日志所在地:
[goldengate@oggsource ogg]$ vi ggserr.log
20、
源端:
测试goldengate能否抓取数据:
查看源端是否生成文件:
查看目标端是否也生成:
21、
目标端:
创建golengate软件使用的schema,并授权一些必要的特殊权限,注意与源端有所区别,保证我们能DML。
22、
目标端:
为replicat进程创建checkpoint表:
23、
目标端:
配置目标端replicate进程:
分析:
exttrail:表示这个进程获取数据的来源是什么地方,是我们源端rmttrail所设置过的。
24、
目标端:
配置目标端replicate参数:
REPERROR:定义出错以后进程的响应,一般可以定义为两种:
ABEND,即一旦出现错误即停止复制,此为缺省配置;
DISCARD,出现错误后继续复制,只是把错误的数据放到discard文件中。
ASSUMETARGETDEFS:假定两端数据结构一致使用此参数;
MAP:用于指定源端与目标端表的映射关系;
25、
目标端:
启动并查看replicate进程是否运行:
26、 测试源端和目标端的数据。
源端:
目标端:
27、
测试数据同步,表明已经配置完成goldengate,并实现了单向DML复制。
实验环境:64位系统
操作系统:rhel6.6-x86_64
数据库:oracle_11.2-x86-64
goldengate:for_11g_x64
实验步骤:
1、
配置源端和目标端ip:
源端:
[root@oggsource ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.103.106 oggsource.localdomain oggsource
目标端:
[root@oggtarget ~]#cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.103.107 oggtarget.localdomain oggtarget
2、
在操作系统中增加goldengate 用户,便于和oracle用户区分。
源端:
[root@oggsource ~]# useradd -g oinstall goldengate
目标端:
[root@oggtarget ~]# useradd -g oinstall goldengate
3、
设置goldengate用户的环境变量,要注意LD_LIBRARY_PATH一定要设置,如果没有配置这个路径的话,在安装OGG的过程中会报找不到动态链接库的错误。
源端:
[root@oggsource ~]# su - goldengate [goldengate@oggsource ~]$ vi .bash_profile export ORACLE_BASE=/u02/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/gg_1 export PATH=$ORACLE_HOME/bin:$PATH export nls_lang=american_america.zhs16gbk export ORACLE_SID=oggs export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib [goldengate@oggsource ~]$ source .bash_profile
目标端:
[root@oggtarget ~]# su - goldengate [goldengate@oggtarget ~]$ vi .bash_profile export ORACLE_BASE=/u02/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/gg_1 export PATH=$ORACLE_HOME/bin:$PATH export nls_lang=american_america.zhs16gbk export ORACLE_SID=oggt export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib [goldengate@oggtarget ~]$ source.bash_profile
3、
源端
创建goldengate专用的表空间、schema、并授权。
SQL> create tablespace goldengate datafile '/u01/app/oracle/oradata/oggs/goldengate01.dbf'size 100m autoextend on; create user goldengate identified by goldengate default tablespace goldengate temporary tablespace temp; grant connect,resource to goldengate; grant dba to goldengate;
5、
源端
检查数据库是否在归档模式,建议在归档模式。
SQL> archive log list; Database log mode ArchiveMode Automatic archival Enabled Archive destination USE_DB_RECOVERY_FILE_DEST Oldest online log sequence 19 Next log sequence to archive 21 Current log sequence 21
6、
源端:
设置附加日志
SQL> select supplemental_log_data_min from v$database; SUPPLEME -------- NO
打开:
SQL> alter database add supplemental log data; Database altered.再次查看:
SQL> select supplemental_log_data_min from v$database; SUPPLEME -------- YES
7、
源端:
建立ogg目录,便于goldengate的管理
[root@oggsource oraclesetup]# cd /home/goldengate [root@oggsource goldengate]# mkdir ogg
8、
源端:
安装和配置goldengate。
解压就是安装,安装到/home/goldengate/ogg/目录下,然后修改目录权限。
[root@oggsource ogg]# unzip ogg112101_fbo_ggs_Linux_x64_ora11g_64bit.zip [root@oggsource ogg]# tar -xvf fbo_ggs_Linux_x64_ora11g_64bit.tar [root@oggsource ogg]# chown -R goldengate:oinstall /home/goldengate/ogg/
9、
源端:
测试安装成功,只需进入命令行,就表明安装是成功的。
[goldengate@oggsource ~]$ cd /home/goldengate/ogg/ [goldengate@oggsource ogg]$ ./ggsci Oracle GoldenGate Command Interpreter forOracle Version 11.2.1.0.1OGGCORE_11.2.1.0.1_PLATFORMS_120423.0230_FBO Linux, x64, 64bit (optimized), Oracle 11gon Apr 23 2012 08:32:14 Copyright (C) 1995, 2012, Oracle and/or itsaffiliates. All rights reserved. GGSCI (oggsource.localdomain) 1> info all Program Status Group Lag at Chkpt Time Since Chkpt MANAGER STOPPED
10、
在目标端也安装一遍(重复上面 7、8、9步骤)。
[root@oggtarget oraclesetup]# cd /home/goldengate [root@oggtarget goldengate]# mkdir ogg [root@oggtarget ogg]# unzip ogg112101_fbo_ggs_Linux_x64_ora11g_64bit.zip [root@oggtarget ogg]# tar -xvf fbo_ggs_Linux_x64_ora11g_64bit.tar [root@oggtarget ogg]# chown -R goldengate:oinstall /home/goldengate/ogg/ [root@oggtarget ~]# su - goldengate [goldengate@oggtarget ~]$ cd/home/goldengate/ogg/ [goldengate@oggtarget ogg]$ ./ggsci Oracle GoldenGate Command Interpreter forOracle Version 11.2.1.0.1OGGCORE_11.2.1.0.1_PLATFORMS_120423.0230_FBO Linux, x64, 64bit (optimized), Oracle 11gon Apr 23 2012 08:32:14 Copyright (C) 1995, 2012, Oracle and/or itsaffiliates. All rights reserved. GGSCI (oggtarget.localdomain) 1> info all Program Status Group Lag at Chkpt Time Since Chkpt MANAGER STOPPED
11、
配置源端和目标端的管理进程。
源端:
GGSCI (oggsource.localdomain) 2> create subdirs GGSCI (oggsource.localdomain) 3> edit params mgr port 7839 DYNAMICPORTLIST 7840-7850 AUTOSTART EXTRACT * AUTORESTART EXTRACT * PURGEOLDEXTRACTS ./dirdat/*,usecheckpoints, minkeepdays 7 LAGREPORTHOURS 1 LAGINFOMINUTES 30 LAGCRITICALMINUTES 45
启动配置的管理进程
GGSCI (oggtsource.localdomain) 4> start mgr Manager started. GGSCI (oggtsource.localdomain) 5> info all Program Status Group Lag at Chkpt Time Since Chkpt MANAGER RUNNING GGSCI (oggtsource.localdomain) 6> info mgr Manager is running (IP portoggtsource.localdomain.7839).
目标端:
GGSCI (oggtarget.localdomain) 2> create subdirs GGSCI (oggtarget.localdomain) 3> edit params mgr port 7839 DYNAMICPORTLIST 7840-7850 AUTOSTART EXTRACT * AUTORESTART EXTRACT * PURGEOLDEXTRACTS ./dirdat/*,usecheckpoints, minkeepdays 7 LAGREPORTHOURS 1 LAGINFOMINUTES 30 LAGCRITICALMINUTES 45启动配置的管理进程
GGSCI (oggtarget.localdomain) 4> start mgr Manager started. GGSCI (oggtarget.localdomain) 5> info all Program Status Group Lag at Chkpt Time Since Chkpt MANAGER RUNNING GGSCI (oggtarget.localdomain) 6> info mgr Manager is running (IP portoggtarget.localdomain.7839).参数分析:
PORT:指定服务监听端口;这里以7839为例,默认端口为7809
DYNAMICPORTLIST:动态端口:可以制定最大256个可用端口的动态列表,当指定的端口不可用时,管理进程将会从列表中选择一个可用的端口,源端和目标段的Collector、Replicat、GGSCI进程通信也会使用这些端口;
AUTOSTART:指定在管理进程启动时自动启动哪些进程;
AUTORESTART:自动重启参数设置;
PURGEOLDEXTRACTS:定期清理trail文件设置:本处设置表示对于超过7天的trail文件进行删除。
LAGREPORT、LAGINFO、LAGCRITICAL:
定义数据延迟的预警机制:本处设置表示MGR进程每隔1小时检查EXTRACT的延迟情况,如果超过了30分钟就把延迟作为信息记录到错误日志中,如果延迟超过了45分钟,则把它作为警告写到错误日志中。
12、
源端:
测试数据用的是OGG_USER用户的表数据(OGG_USER用户下只有T1一个表)。
查看要复制的表的日志信息是完整的,确保是logging。把nologing变成logging。
SQL> alter table ogg_user.t1 logging; Table altered.
13、
源端:
配置ogg_user用户的表级附加日志。配置登陆用户。并检查日志是否添加成功。
以goldengate这个schema登陆数据库。
GGSCI (oggsource.localdomain) 7> dblogin userid goldengate,password goldengate Successfully logged into database.
查看:
GGSCI (oggsource.localdomain) 3> info trandata ogg_user.* Logging of supplemental redo log data is disabled for table OGG_USER.T1.
注意:发现是disabled,还没有添加成功,继续下一步。
添加:
GGSCI (oggsource.localdomain) 12> add trandata ogg_user.* Logging of supplemental redo data enabled for table OGG_USER.T1.
注意:现在成功了,是enable的。
14、
源端:
配置抓取进程。
GGSCI (oggsource.localdomain) 13> add extract ext_demo, tranlog, begin now,threads 1 EXTRACT added. GGSCI (oggsource.localdomain) 14> info all Program Status Group Lag at Chkpt Time Since Chkpt MANAGER RUNNING EXTRACT STOPPED EXT_DEMO 00:00:00 00:00:13
参数分析:
tranlog:表示数据抓取的来源是数据库的redo数据。
begin now:表示我们在启动这个抓取进程的就去抓取数据。
threads 1:表示我们数据库有多少个redo threads。
15、
源端:
添加队列文件。
GGSCI (oggsource.localdomain) 15> add EXTTRAIL ./dirdat/r1, extract ext_demo,megabytes 100 EXTTRAIL added.
分析:
./dirdat:表示trail文件的目录
r1:trail文件的前缀
extract ext_demo:值指定给那个进程用的(ext_demo)。
megabytes 100:文件大小是100m
16、
源端:
编辑我们刚刚配置的抓取进程的参数:
GGSCI (oggsource.localdomain) 16> edit param ext_demo EXTRACT ext_demo setenv (ORACLE_SID=oggs) setenv (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK) userid goldengate,password goldengate REPORTCOUNT EVERY 1 MINUTES, RATE numfiles 5000 DISCARDFILE./dirrpt/ext_demo.dsc,APPEND,MEGABYTES 1000 DISCARDROLLOVER AT 3:00 exttrail ./dirdat/r1,megabytes 100 dynamicresolution TRANLOGOPTIONS EXCLUDEUSER goldengate TRANLOGOPTIONS convertucs2clobs TABLE OGG_USER.*;
分析:
SETENV:配置系统环境变量
USERID/ PASSWORD:指定OGG连接数据库的用户名和密码;
REPORTCOUNT:报告已经处理的记录条数统计数字;
DISCARDFILE:定义discardfile文件位置,如果处理中油记录出错会写入到此文件中;
EXTTRAIL:指定写入到本地的哪个队列;
TRANLOGOPTIONS:指定在解析数据库日志时所需要的特殊参数,例如:对于裸设备,可能需要加入以下参数 rawdeviceoggset 0
17、
源端:
启动抓取进程:
GGSCI (oggsource.localdomain) 17>info all Program Status Group Lag at Chkpt Time Since Chkpt MANAGER RUNNING EXTRACT STOPPED EXT_DEMO 00:00:00 00:02:22 GGSCI (oggsource.localdomain) 18> start ext_demo Sending START request to MANAGER ... EXTRACT EXT_DEMO starting GGSCI (oggsource.localdomain) 19> info all Program Status Group Lag at Chkpt Time Since Chkpt MANAGER RUNNING EXTRACT RUNNING EXT_DEMO 00:00:00 00:00:02
18、
源端:
配置datapump进程,将抓取数据传到目标主机。负责TCPIP通讯。
GGSCI (oggsource.localdomain) 20> add extract dpe_demo, exttrailsource./dirdat/r1 EXTRACT added.
输出:目标主机怎么写,也是定义datapumo进程的输出。
GGSCI (oggsource.localdomain) 21> add rmttrail ./dirdat/t1,EXTRACT dpe_demo,MEGABYTES 100 RMTTRAIL added.
分析:
exttrailsource:抓取进程的来源,因为这个进程不否则到数据库中取抓取,所以抓取的来源
是通过抓取进程已经生成好的trail文件中的内容。
19、
源端:
配置datapump进程参数:
GGSCI (oggsource.localdomain) 22> edit param dpe_demo extract dpe_demo dynamicresolution passthru rmthost 192.168.103.107, mgrport 7839,compress rmttrail ./dirdat/t1 numfiles 5000 TABLE OGG_USER.*; GGSCI (oggsource.localdomain) 23> start dpe_demo Sending START request to MANAGER ... EXTRACT DPE_DEMO starting GGSCI (oggsource.localdomain) 24> info all Program Status Group Lag at Chkpt Time Since Chkpt MANAGER RUNNING EXTRACT RUNNING DPE_DEMO 00:00:00 00:00:00 EXTRACT RUNNING EXT_DEMO 00:00:00 00:00:02分析:
PASSTHRU:禁止extract进程与数据库交互,适用于Data Pump传输进程;
RMTHOST:指定目标系统及其GoldengateManager进程的端口号,还用于定义是否使用压缩进行传输;
mgrport:目标主机管理进程的端口号,我们上面已经配置了。
compress:在传输的过程中启用压缩。
RMTTRAIL:指定写入到目标断的哪个队列;
TABLE OGG_USER.*:上面说过,哪些表的redo信息传输。
启动,如果有问题,状态不能为running,可以查看相应的日志在自己安装的ogghome目录下。
日志所在地:
[goldengate@oggsource ogg]$ vi ggserr.log
20、
源端:
测试goldengate能否抓取数据:
SQL> insert into ogg_user.t1 values(3,'c',30); SQL> commit; Commit complete. SQL> alter system switch logfile; Systemaltered.
查看源端是否生成文件:
[root@oggsource ~]# su - goldengate [goldengate@oggsource ~]$ cd/home/goldengate/ogg/dirdat [goldengate@oggsource dirdat]$ ll total 4 -rw-rw-rw- 1 goldengate oinstall 1330 Jul27 16:56 r1000000
查看目标端是否也生成:
[root@oggtarget ~]# su - goldengate [goldengate@oggtarget ~]$ cd /home/goldengate/ogg/dirdat [goldengate@oggtarget dirdat]$ ll total 4 -rw-rw-rw- 1 goldengate oinstall 1386 Jul27 16:56 t1000000
21、
目标端:
创建golengate软件使用的schema,并授权一些必要的特殊权限,注意与源端有所区别,保证我们能DML。
create tablespace goldengate datafile '/u01/app/oracle/oradata/oggt/goldengate01.dbf' size 100m autoextend on; create user goldengate identified by goldengate default tablespace goldengate temporary tablespace temp; grant connect,resource to goldengate; grant dba to goldengate;
22、
目标端:
为replicat进程创建checkpoint表:
GGSCI (oggtarget.localdomain) 7> dblogin userid goldengate,password goldengate Successfully logged into database. GGSCI (oggtarget.localdomain) 8> add checkpointtable goldengate.rep_demo_ckpt Successfully created checkpoint table goldengate.rep_demo_ckpt.
23、
目标端:
配置目标端replicate进程:
GGSCI (oggtarget.localdomain) 9> add replicat rep_demo,exttrail./dirdat/t1,checkpointtable goldengate.rep_demo_ckpt REPLICAT added.
分析:
exttrail:表示这个进程获取数据的来源是什么地方,是我们源端rmttrail所设置过的。
24、
目标端:
配置目标端replicate参数:
GGSCI (oggtarget.localdomain) 10> edit param rep_demo REPLICAT rep_demo SETENV (ORACLE_SID=oggt) SETENV (NLS_LANG ="AMERICAN_AMERICA.ZHS16GBK") USERID goldengate,PASSWORD goldengate REPORTCOUNT EVERY 30 MINUTES, RATE REPERROR DEFAULT, ABEND numfiles 5000 --HANDLECOLLISIONS assumetargetdefs DISCARDFILE ./dirrpt/rep_demo.dsc, APPEND,MEGABYTES 1000 ALLOWNOOPUPDATES MAP OGG_USER.*,TARGET OGG_USER.*;分析:
REPERROR:定义出错以后进程的响应,一般可以定义为两种:
ABEND,即一旦出现错误即停止复制,此为缺省配置;
DISCARD,出现错误后继续复制,只是把错误的数据放到discard文件中。
ASSUMETARGETDEFS:假定两端数据结构一致使用此参数;
MAP:用于指定源端与目标端表的映射关系;
25、
目标端:
启动并查看replicate进程是否运行:
GGSCI (oggtarget.localdomain) 11> start rep_demo Sending START request to MANAGER ... REPLICAT REP_DEMO starting GGSCI (oggtarget.localdomain) 12> info all Program Status Group Lag at Chkpt Time Since Chkpt MANAGER RUNNING REPLICAT RUNNING REP_DEMO 00:00:00 00:01:59
26、 测试源端和目标端的数据。
源端:
SQL> update ogg_user.t1 set salary=300 where id=3; 1 row updated. SQL> commit; Commit complete. SQL> alter system switch logfile; System altered. SQL> select * from ogg_user.t1; ID NAME SALARY ---------- ---------- ---------- 3 c 300 1 a 10 2 b 20
目标端:
SQL> select * from ogg_user.t1; ID NAME SALARY ---------- ---------- ---------- 3 c 300 1 a 10 2 b 20
27、
测试数据同步,表明已经配置完成goldengate,并实现了单向DML复制。
相关文章推荐
- JAVA AES加密算法实现代码
- ssh 反向隧道访问内网机器
- JAVA AES加密算法实现代码
- Android ADB server didn't ACK * failed to start daemon * 简单有效的解决方案
- google nfc 基础文档翻译 (上)
- 小韵游戏开发学习笔记——第三期:Unity工程创建及界面功能的基本介绍
- Unity笔记 脚本执行顺序 life and times
- SQL查询优化
- Java项目初学------满汉楼----人事管理数据模型
- 二叉排序树 SDUTOJ 2482
- OpenSSL编译方法
- hdu1978 How many ways 解题报告
- 一种面向对象的TCP/IP中间件
- jquery手册
- Oracle用户管理与安全
- Mysql 自动备份与恢复
- Code Blocks 集成 wxWidgets
- 【剑指offer】q50:树节点最近的祖先
- 查看oracle的sql语句历史记录和锁表的情况
- Odometer使用JavaScript和CSS制作数字滑动效果