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相关知识点补充

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 ./GLOBALScheckpointtable ggt_admin.chkptGGSCI (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 allProgram 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复制部署快速参考相关推荐

  1. linux查看ogg客户端版本,OGG学习笔记05-OGG的版本

    刚接触OGG的时候,很容易被众多的版本搞晕,虽然官方有提供各版本对应认证OS和DB的表格. 个人认为一个比较简单的方式,是直接去edelivery.oracle.com下载OGG,选定一个大版本后,这 ...

  2. flink1.12.0学习笔记第1篇-部署与入门

    flink1.12.0学习笔记第 1 篇-部署与入门 flink1.12.0学习笔记第1篇-部署与入门 flink1.12.0学习笔记第2篇-流批一体API flink1.12.0学习笔记第3篇-高级 ...

  3. TensorFlow学习笔记(二):快速理解Tutorial第一个例子-MNIST机器学习入门 标签: 机器学习SoftmaxTensorFlow教程 2016-08-02 22:12 3729人阅

    TensorFlow学习笔记(二):快速理解Tutorial第一个例子-MNIST机器学习入门 标签: 机器学习SoftmaxTensorFlow教程 2016-08-02 22:12 3729人阅读 ...

  4. 取得 Git 仓库 —— Git 学习笔记 04

    取得 Git 仓库 -- Git 学习笔记 04 我认为, Git 的学习分为两大块:一是工作区.索引.本地版本库之间的交互:二是本地版本库和远程版本库之间的交互.第一块是基础,第二块是难点. 下面, ...

  5. JavaWeb黑马旅游网-学习笔记04【BaseServlet抽取】

    Java后端 学习路线 笔记汇总表[黑马程序员] JavaWeb黑马旅游网-学习笔记01[准备工作] JavaWeb黑马旅游网-学习笔记02[注册功能] JavaWeb黑马旅游网-学习笔记03[登陆和 ...

  6. JavaWeb-综合案例(用户信息)-学习笔记04【删除选中功能】

    Java后端 学习路线 笔记汇总表[黑马程序员] JavaWeb-综合案例(用户信息)-学习笔记01[列表查询] JavaWeb-综合案例(用户信息)-学习笔记02[登录功能] JavaWeb-综合案 ...

  7. Tomcat学习笔记02【Tomcat部署项目】

    Java后端 学习路线 笔记汇总表[黑马程序员] Tomcat学习笔记01[Web相关概念.Tomcat基本操作][day01] Tomcat学习笔记02[Tomcat部署项目][day01] 目录 ...

  8. JavaScript学习笔记04【高级——DOM和事件的简单学习、BOM对象】

    w3school 在线教程:https://www.w3school.com.cn JavaScript学习笔记01[基础--简介.基础语法.运算符.特殊语法.流程控制语句][day01] JavaS ...

  9. MySQL学习笔记04【数据库的查询操作、今日内容、表的约束】

    MySQL 文档-黑马程序员(腾讯微云):https://share.weiyun.com/RaCdIwas 1-MySQL基础.pdf.2-MySQL约束与设计.pdf.3-MySQL多表查询与事务 ...

最新文章

  1. 生产热更新技术_Reifenh?user引入新一代PET热成型板材生产线
  2. JSP中应用MVC架构
  3. SAP发票校验前收货后是否能更改物料价格
  4. Android studio编译好的apk文件在哪里?
  5. redis的简单操作
  6. js动态时钟,倒计时,去掉数组中重复的元素,抽奖系统随机抽取5名不能重复
  7. 18个使用 jQuery 制作的创意网站欣赏
  8. word在线编辑 linux,Office Online Server 在线编辑Office文档,安装部署
  9. ps cc2019 安装教程
  10. CentOS 7报错:Failed to start xxx.service: Unit is masked
  11. Linux命令学习资料总结
  12. spring batch 通过配置文件的方法读文件
  13. Sprint(第二天11.15)
  14. Android实现弹出窗口(PopUpWindow)
  15. 解读基金—读书框架笔记①
  16. CLOUD云计算进阶(三)-云平台部署与管理
  17. extundelete工具恢复rm -rf 删除的目录(ext4、ext3)
  18. 为什么要做一款ERP软件——开源软件诞生7
  19. zbrush快捷键汇总【收藏版】
  20. Snapshot快照

热门文章

  1. 语义分割--Pixel Deconvolutional Networks
  2. 【numpy】np.genfromtxt非常的慢,并且需要读取文件的10倍内存
  3. pip安装包以后jupyter不能导入的解决办法
  4. mysql查看某个数据库下的所有视图
  5. linux mysql 操作命令_linux的mysql操作命令
  6. 查询距离两天的数据_一张图就可以管理城建数据?!实景城市三维平台来了
  7. php date 转换 string_php将时间差转换为字符串提示
  8. 全文搜索引擎Elasticsearch,这篇文章给讲透了
  9. macos big sur安装php扩展_用PHP构建基于swoole扩展的socket服务(附PHP扩展安装步骤)...
  10. Docker学习(6)——registry私有仓库工作原理(续)