OGG学习笔记04-OGG复制部署快速参考
2017-03-13 15:42
316 查看
OGG学习笔记04-OGG复制部署快速参考
源端:Oracle 10.2.0.5 RAC + ASM
节点1 Public IP地址:192.168.1.27
目标端:Oracle 10.2.0.5
IP地址:192.168.1.30
操作目标:将源端数据库业务用户jy下两张表ogg同步到目标端数据库业务用户ludan下。
在源端配置OGG extract、data pump进程;数据初始化;目标端配置OGG replicat进程。
本文假设两端的OGG软件和环境变量已配置完成,即操作系统ogg用户登陆系统,确认ggsci可以正常使用,mgr管理进程正常启动,dblogin可以正常登陆到数据库。
本文意义:OGG复制快速参考,补充一些前面未提及的ogg相关知识点。
1. 配置源端OGG
2. 数据初始化
3. 配置目标端OGG
4. ogg相关知识点补充
在源端数据库上创建一个单独的数据库用户;
开启数据库最小附加日志,需要同步的表开启详细附加日志;
配置好extract进程lxjyrac1;
配置好data pump进程lpjyrac1;
1.1 在源端数据库上创建一个单独的数据库用户
1.2 开启数据库最小附加日志,需要同步的表开启详细附加日志
1.3 在源端配置extract进程
我这里将extract进程起名为:lxjyrac1
编辑lxjyrac1进程的配置文件:
GGSCI (oradb27) >
edit param lxjyrac1
当前数据库版本是10.2.0.5 RAC + ASM,由于数据库redo日志放在ASM上,所以extract进程需要配置TRANLOGOPTIONS选项,否则获取不到数据库日志。
上面的两种方式任意选择哪种都可以,使用“--” 注释其中一种。
添加lxjyrac1进程:
1.4 在源端配置datapump进程
我这里将datapump进程起名为:lpjyrac1
编辑lpjyrac1进程的配置文件:
GGSCI (oradb27) >
edit param lpjyrac1
添加lpjyrac1进程(本地datapump进程):
1.5 源端启动所有进程
启动extract进程lxjyrac1、datapump进程lpjyrac1:
源端需要同步的数据表导出;
目标端导入数据,完成初始化。
2.1 数据导出
导出业务用户jy并把导出文件传输到目标数据库所在主机:
2.2 数据导入
创建数据库业务用户ludan:
imp 导入数据:
在目标端数据库上创建一个单独的数据库用户;
在目标端数据库上创建checkpointtable;
3.1 在目标端数据库上创建一个单独的数据库用户
3.2 在目标端数据库上创建checkpointtable
注意配置文件GLOBALS是位于ogg当前目录下的,确认内容正确配置了checkpointtable。
这里配置的checkpointtable名字为chkpt
3.3 在目标端创建replicat进程
我这里将replicat进程起名为:rjyrac1
GGSCI (oradb30) >
edit param rjyrac1
添加rjyrac1进程(replicat进程):
3.4 目标端启动进程
启动replicat进程rjyrac1:
ogg连接到ASM实例的连接有三种方式:Net8、BEQ、DBLOGREADER,能否使用DBLOGREADER取决于使用的数据库版本。
上文在lxjyrac1进程配置中,如果选择BEQ这种连接方式
TRANLOGOPTIONS ASMUSER sys@asmbeq, ASMPASSWORD oracle
那么,源数据库对应的“tnsnames.ora”配置中别名"asmbeq"的内容:
目标数据库“tnsnames.ora”配置中别名"ora10"的内容,Net8连接方式类似这种配置:
使用DBLOGREADER相当于直接利用Oracle中的一个ASM API去访问文件,不需要配置TNS,也不需要用户名密码,是最简单的方式,但是需要要求数据库版本是“11.2.0.2”或“10.2.0.5”及以后的版本。
本文环境“10.2.0.5 RAC + ASM”,就是使用的这种最简单的方式,经测试可用。
4.2 OGG中的复杂结构运维经验
实际上无论是OGG的双向复制、广播复制、级联复制,都是由两个或多个单向复制组成的,难度相比单纯的单向复制并没有增长多少,只是维护的工作量多了,建议规范好各进程的名字,有助于提高管理效率。
可以看到本次作为目标端的oradb30。一眼就可以判断出,跟本次部署有关的只有RJYRAC1进程,其他的LXJY1,LPJY1,LPJY2进程,显然是其他OGG配置,oradb30作为源端端一些进程。
如果根据名字不能完全弄清楚,可以“view param 名字”看具体的配置文件,即可一目了然,比如查看进程lxjy1配置文件内容:
至此,OGG学习笔记基础部分的学习就已经结束。
源端:Oracle 10.2.0.5 RAC + ASM
节点1 Public IP地址:192.168.1.27
目标端:Oracle 10.2.0.5
IP地址:192.168.1.30
操作目标:将源端数据库业务用户jy下两张表ogg同步到目标端数据库业务用户ludan下。
在源端配置OGG extract、data pump进程;数据初始化;目标端配置OGG replicat进程。
本文假设两端的OGG软件和环境变量已配置完成,即操作系统ogg用户登陆系统,确认ggsci可以正常使用,mgr管理进程正常启动,dblogin可以正常登陆到数据库。
本文意义:OGG复制快速参考,补充一些前面未提及的ogg相关知识点。
1. 配置源端OGG
2. 数据初始化
3. 配置目标端OGG
4. ogg相关知识点补充
1. 配置源端OGG
这一步主要做的工作:在源端数据库上创建一个单独的数据库用户;
开启数据库最小附加日志,需要同步的表开启详细附加日志;
配置好extract进程lxjyrac1;
配置好data pump进程lpjyrac1;
1.1 在源端数据库上创建一个单独的数据库用户
create user ggs_admin identified by ggs_admin; grant dba to ggs_admin;
1.2 开启数据库最小附加日志,需要同步的表开启详细附加日志
--查看数据库附加日志开启状态: SQL> select SUPPLEMENTAL_LOG_DATA_MIN, SUPPLEMENTAL_LOG_DATA_PK, SUPPLEMENTAL_LOG_DATA_UI from v$database; --数据库级别开启最小附加日志: SQL> alter database add supplemental log data; --表级别开启详细附加日志: GGSCI (oradb27) > dblogin userid ggs_admin@racbeq, password ggs_admin add trandata jy.t_second add trandata jy.t_second_p
1.3 在源端配置extract进程
我这里将extract进程起名为:lxjyrac1
编辑lxjyrac1进程的配置文件:
GGSCI (oradb27) >
edit param lxjyrac1
--Local Extract lxjyrac1 --Author: Alfred Zhao -- EXTRACT lxjyrac1 SETENV(NLS_LANG=american_america.ZHS16GBK) SETENV(ORACLE_SID=jyrac1) USERID ggs_admin, PASSWORD ggs_admin --TRANLOGOPTIONS ASMUSER sys@asmbeq, ASMPASSWORD oracle TRANLOGOPTIONS DBLOGREADER EXTTRAIL ./dirdat/sa TABLE JY.T_SECOND; TABLE JY.T_SECOND_P;
当前数据库版本是10.2.0.5 RAC + ASM,由于数据库redo日志放在ASM上,所以extract进程需要配置TRANLOGOPTIONS选项,否则获取不到数据库日志。
上面的两种方式任意选择哪种都可以,使用“--” 注释其中一种。
添加lxjyrac1进程:
GGSCI (oradb27) 1> add extract lxjyrac1, tranlog, begin now, threads 2 EXTRACT added. GGSCI (oradb27) 2> add exttrail ./dirdat/sa, extract lxjyrac1, megabytes 50 EXTTRAIL added.
1.4 在源端配置datapump进程
我这里将datapump进程起名为:lpjyrac1
编辑lpjyrac1进程的配置文件:
GGSCI (oradb27) >
edit param lpjyrac1
--Local datapump lpjyrac1 --Author: Alfred Zhao -- EXTRACT lpjyrac1 PASSTHRU RMTHOST 192.168.1.30, MGRPORT 7777 RMTTRAIL ./dirdat/ta TABLE JY.T_SECOND; TABLE JY.T_SECOND_P;
添加lpjyrac1进程(本地datapump进程):
GGSCI (oradb27) 1> add extract lpjyrac1, exttrailsource ./dirdat/sa, begin now EXTRACT added. GGSCI (oradb27) 2> ADD RMTTRAIL ./dirdat/ta, EXTRACT LPJYRAC1, MEGABYTES 50 RMTTRAIL added.
1.5 源端启动所有进程
启动extract进程lxjyrac1、datapump进程lpjyrac1:
GGSCI (oradb27) > start extract lxjyrac1 start extract lpjyrac1
2. 数据初始化
这一步主要做的工作:源端需要同步的数据表导出;
目标端导入数据,完成初始化。
2.1 数据导出
导出业务用户jy并把导出文件传输到目标数据库所在主机:
[oracle@oradb27 ~]$ exp jy/jy file=exp_jy.dmp log=exp_jy.log [oracle@oradb27 ~]$ scp exp_jy.dmp 192.168.1.30:/home/oracle/
2.2 数据导入
创建数据库业务用户ludan:
SQL> create user ludan identified by ludan; grant connect, resource to ludan;
imp 导入数据:
[oracle@oradb30 ~]$ imp ludan/ludan fromuser=jy touser=ludan file=exp_jy.dmp log=imp_jy.log ignore=y
3. 配置目标端OGG
这一步主要做的工作:在目标端数据库上创建一个单独的数据库用户;
在目标端数据库上创建checkpointtable;
3.1 在目标端数据库上创建一个单独的数据库用户
SQL> create user ggt_admin identified by ggt_admin; grant dba to ggt_admin;
3.2 在目标端数据库上创建checkpointtable
注意配置文件GLOBALS是位于ogg当前目录下的,确认内容正确配置了checkpointtable。
这里配置的checkpointtable名字为chkpt
GGSCI (oradb30) > edit param ./GLOBALS checkpointtable ggt_admin.chkpt GGSCI (oradb30) > dblogin userid ggt_admin@ora10, password ggt_admin add checkpointtable
3.3 在目标端创建replicat进程
我这里将replicat进程起名为:rjyrac1
GGSCI (oradb30) >
edit param rjyrac1
--replicat rjyrac1 --Author: Alfred Zhao -- REPLICAT rjyrac1 SETENV (ORACLE_SID=ora10) USERID ggt_admin, PASSWORD ggt_admin DISCARDFILE ./dirrpt/rjy1.dsc, PURGE HandleCollisions AssumeTargetDefs Map jy.*,Target ludan.*;
添加rjyrac1进程(replicat进程):
GGSCI (oradb30) > add replicat rjyrac1, exttrail ./dirdat/ta
3.4 目标端启动进程
启动replicat进程rjyrac1:
GGSCI (oradb30) > start replicat rjyrac1
4. ogg相关知识点补充
4.1 OGG中ASM连接问题ogg连接到ASM实例的连接有三种方式:Net8、BEQ、DBLOGREADER,能否使用DBLOGREADER取决于使用的数据库版本。
上文在lxjyrac1进程配置中,如果选择BEQ这种连接方式
TRANLOGOPTIONS ASMUSER sys@asmbeq, ASMPASSWORD oracle
那么,源数据库对应的“tnsnames.ora”配置中别名"asmbeq"的内容:
ASMBEQ = (DESCRIPTION = (ADDRESS = (PROTOCOL = BEQ) (PROGRAM = /u01/app/oracle/product/10.2.0.5/dbhome_1/bin/oracle) (ARGV0 = oracle+ASM1) (ARGS = '(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=BEQ)))') (ENVS = 'ORACLE_HOME=/u01/app/oracle/product/10.2.0.5/dbhome_1,ORACLE_SID=+ASM1') ) (CONNECT_DATA = (SERVICE_NAME = +ASM) (INSTANCE_NAME = +ASM1) ) )
目标数据库“tnsnames.ora”配置中别名"ora10"的内容,Net8连接方式类似这种配置:
ORA10 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.30)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ora10) ) )
使用DBLOGREADER相当于直接利用Oracle中的一个ASM API去访问文件,不需要配置TNS,也不需要用户名密码,是最简单的方式,但是需要要求数据库版本是“11.2.0.2”或“10.2.0.5”及以后的版本。
本文环境“10.2.0.5 RAC + ASM”,就是使用的这种最简单的方式,经测试可用。
4.2 OGG中的复杂结构运维经验
实际上无论是OGG的双向复制、广播复制、级联复制,都是由两个或多个单向复制组成的,难度相比单纯的单向复制并没有增长多少,只是维护的工作量多了,建议规范好各进程的名字,有助于提高管理效率。
GGSCI (oradb30) 1> info all Program Status Group Lag at Chkpt Time Since Chkpt MANAGER RUNNING EXTRACT RUNNING LPJY1 00:00:00 00:00:04 EXTRACT RUNNING LPJY2 00:00:00 00:00:04 EXTRACT RUNNING LXJY1 00:00:00 00:00:07 REPLICAT RUNNING RJYRAC1 00:00:00 00:00:06
可以看到本次作为目标端的oradb30。一眼就可以判断出,跟本次部署有关的只有RJYRAC1进程,其他的LXJY1,LPJY1,LPJY2进程,显然是其他OGG配置,oradb30作为源端端一些进程。
如果根据名字不能完全弄清楚,可以“view param 名字”看具体的配置文件,即可一目了然,比如查看进程lxjy1配置文件内容:
GGSCI (oradb30) 3> view param lxjy1 --Local Extract lxjy1 --Author: Alfred Zhao -- EXTRACT lxjy1 SETENV(NLS_LANG=american_america.ZHS16GBK) SETENV(ORACLE_SID=ora10) USERID ggs_admin, PASSWORD ggs_admin EXTTRAIL ./dirdat/sa TABLE JY.T_SECOND; TABLE JY.T_SECOND_P;
至此,OGG学习笔记基础部分的学习就已经结束。
相关文章推荐
- OGG学习笔记04-OGG复制部署快速参考
- OGG学习笔记04-OGG复制部署快速参考
- HTML学习笔记(四)--URL/颜色/快速参考
- Mysql DBA 高级运维学习笔记-Mysql主从复制原理及实战部署
- OGG学习笔记02-单向复制配置实例
- OGG学习笔记03-单向复制简单故障处理
- 04、刘媛媛《普通人快速崛起31节修炼课》 第四讲 个人学习笔记
- OGG学习笔记02-单向复制配置实例
- OGG学习笔记02-单向复制配置实例
- HTML学习笔记-快速参考
- XML学习笔记,快速入门
- 老友记台词学习笔记 SE01EP04(二)
- Java IO 实现文件复制 -Java 学习笔记 (25)
- [学习笔记]快速开发Hibernate
- Struts2学习笔记-part1: 快速起步
- C#学习笔记(二十):Windows应用程序安装部署概念
- Hadoop学习笔记二 安装部署
- “ASP.Net快速入门”学习笔记
- TGE学习笔记04 - billboard
- php学习笔记-04