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

这一步主要做的工作:
在源端数据库上创建一个单独的数据库用户;
开启数据库最小附加日志,需要同步的表开启详细附加日志;
配置好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”及以后的版本。

--extract参数中加入:
TranLogOptions DBLOGREADER

本文环境“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学习笔记基础篇:

OGG学习笔记04-OGG复制部署快速参考的更多相关文章

  1. OGG学习笔记03-单向复制简单故障处理

    OGG学习笔记03-单向复制简单故障处理 环境:参考:OGG学习笔记02-单向复制配置实例 实验目的:了解OGG简单故障的基本处理思路. 1. 故障现象 故障现象:启动OGG源端的extract进程, ...

  2. OGG学习笔记02-单向复制配置实例

    OGG学习笔记02-单向复制配置实例 实验环境: 源端:192.168.1.30,Oracle 10.2.0.5 单实例 目标端:192.168.1.31,Oracle 10.2.0.5 单实例 1. ...

  3. OGG学习笔记03

    OGG学习笔记03-单向复制简单故障处理 环境:参考:OGG学习笔记02-单向复制配置实例实验目的:了解OGG简单故障的基本处理思路. 1. 故障现象故障现象:启动OGG源端的extract进程,da ...

  4. OGG学习笔记05-OGG的版本

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

  5. OGG学习笔记01-基础概述

    OGG学习笔记01-基础概述 OGG(Oracle Golden Gate),最近几年在数据同步.容灾领域特别火,甚至比Oracle自己的原生产品DataGuard还要风光,主要是因为其跨平台.跨数据 ...

  6. OGG学习笔记01

    OGG学习笔记01-基础概述OGG(Oracle Golden Gate),最近几年在数据同步.容灾领域特别火,甚至比Oracle自己的原生产品DataGuard还要风光,主要是因为其跨平台.跨数据库 ...

  7. Redis:学习笔记-04

    Redis:学习笔记-04 该部分内容,参考了 bilibili 上讲解 Redis 中,观看数最多的课程 Redis最新超详细版教程通俗易懂,来自 UP主 遇见狂神说 10. Redis主从复制 1 ...

  8. OGG学习笔记02

    实验环境:源端:192.168.1.30,Oracle 10.2.0.5 单实例目标端:192.168.1.31,Oracle 10.2.0.5 单实例 1.模拟源数据库业务持续运行 2.配置OGG前 ...

  9. Quartz学习笔记:集群部署&高可用

    Quartz学习笔记:集群部署&高可用 集群部署 一个Quartz集群中的每个节点是一个独立的Quartz应用,它又管理着其他的节点.这就意味着你必须对每个节点分别启动或停止.Quartz集群 ...

随机推荐

  1. 微信小程序开发入门教程

    做任何程序开发要首先找到其官方文档,微信小程序目前还在邀请内测阶段,目前官方放出了部分开发文档,经过笔者一天的查看和尝试,感觉文档并不全面,但是通过这些文档已经能够看出其大概面貌了.闲话不多说,我们先 ...

  2. office web apps部署(一)

    准备两台服务器,A服务器作为域控制器,B服务器安装owa 1.配置域服务器A 参考 2.B服务器加入A所创建的域 参考 3.B服务器安装owa 参考 注意: 1.B服务器加入域后,使用A服务器的管理员 ...

  3. HDU 4081 Qin Shi Huang's National Road System 次小生成树变种

    Qin Shi Huang's National Road System Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/3 ...

  4. seajs的常用api简易文档

    目前使用sea.js的公司越来越多, 比如朋友网,阿里巴巴,淘宝网,百姓网,支付宝,有道云笔记等.模块化的javascript开发带来了可维护,可扩展性,尤其在多人协作开发的时候不用再担心文件依赖和函 ...

  5. /etc/profile文件

    导读:Linux /etc/profile文件的改变会涉及到系统的环境,也就是有关Linux环境变量的东西,学习Linux要了解Linux profile文件的相关原理,这里对则以文件进行具体分析.这 ...

  6. window.location获取URL中各部分

    博客分类: JAVASCRIPT JavaScriptASP.netSchemeASP网络协议  URL即:统一资源定位符 (Uniform Resource Locator, URL) 完整的URL ...

  7. Ext实现简单计算器

    以下是本人原创,如若转载和使用请注明转载地址.本博客信息切勿用于商业,可以个人使用,若喜欢我的博客,请关注我,谢谢!少帅的博客 使用Ext实现简单计算器,网页版实现 1.页面部分calculator. ...

  8. HUST 1606 Naive

    预处理一下,然后o(1)询问. #include<cstdio> #include<cstring> #include<cmath> #include<str ...

  9. [无关IT]就这样在凌晨写一篇吧~

    由于新浪博客广告实在太嚣张,自己也都是转载,故决定搬家至此,一改只转不写的习惯T^T,争取记录一下自己的小成长~日后有时间把脑子里的小东西一点点写出来~(好可怕的说)... 好了,睡了!各位爷早睡~ ...

  10. Delphi中使用Dos窗口输出调试信息

    在项目文件 *.DPR (Project->View Source)  里加上{$APPTYPE   CONSOLE} 然后,在需要输出处加上 Writeln(‘your debug messa ...