初识Oracle Goldengate源数据库和目标数据库配置

说明

源端和目标端都是运行在Centos7上的Oracle11

准备工作

1.安装好Oracle 11 g
2.下载goldengate
网址1:http://www.oracle.com/technetwork/middleware/goldengate/downloads/index.html
网址2:edelivery.oracle.com
3.下载goldengate后解压,我解压到/home/oracle/goldengate11.2.1.0.3/ogg

打开数据库最小附加日志

SQL>select supplemental_log_data_min from v$database;

结果为NO,表示没有打开附加日志。使用以下命令将数据库附加日志打开:

SQL>alter database add supplemental log data;

切换日志以使附加日志生效:

SQL>ALTER SYSTEM ARCHIVE LOG CURRENT;

源库的准备

建立OGG数据库用户
– OGG需要从数据字典读取表结构
– 如Oracle日志中没有足够信息,则需通过flash back或者直接读取数据库记录(例如,
CLOB/BLOG/BINARY等)

OGG数据库用户权限

CREATE USER goldengate IDENTIFIED BY goldengate DEFAULT TABLESPACE 
USERS ;GRANT CONNECT TO goldengate;GRANT CREATE SESSION TO goldengate;GRANT ALTER SESSION TO goldengate;GRANT RESOURCE TO goldengate;GRANT SELECT ANY DICTIONARY TO goldengate;GRANT SELECT ANY TABLE TO goldengate;GRANT FLASHBACK ANY TABLE TO goldengate;GRANT ALTER ANY TABLE TO goldengate;

操作goldengate

1.进入安装goldengate的目录下,执行./ggsci进入入命令行界面,左侧提示出现GGSCI (myhost) 1>,表示进入成功。

注意:一定要在goldengate安装目录下执行./ggsci,因为它要调用安装目录下的一些其它文件内容,否则可能执行不成功。

2.如果ggsci进入出错,设置一下环境变量:

 export LD_LIBRARY_PATH=$ORACLE_HOME/lib

3.在ggsci环境下创建GoldenGate子目录

GGSCI>create subdirs

该命令会在OGG安装目录下建立若干子目录,其中几个主要目录如下所示:
dirchk:用于存放各个进程的检查点
dirdat:用于存放数据队列文件
dirprm:用于存放各进程参数文件
dirrpt:用于存放各进程报告
dirpcs:存放各个正在运行的进程信息

4.为mgr进程配置参数

GGSCI>edit param mgr

会打开一个编辑窗口,在其中输入以下内容然后保存退出。

PORT 7809

5.启动mgr进程

GGSCI>start mgr

用info all查看是否启动成功

6.在GGSCI命令行中登录数据库,为所有要复制的数据表添加trandata

ggsci>dblogin userid goldengate, password goldengate的密码
ggsci>add trandata 要复制的用户名.要复制的表名
比如add trandata guapi.employee

7.添加exta进程,从数据库日志中抓取有效数据

GGSCI> add ext exta, tranlog, begin now

exta为进程名,一般为ext开头表示是extract进程,后面可以加1-2位字符标识;
tranlog表示要抽取数据库日志;
begin now表示从当前时间点开始抽取

8.如果是异地复制或者网络不稳定,建议首先抽取到本地,然后再单独配一个进程传输到目标。

创建完exta进程后,使用本地队列时为exta进程配置队列如下:

GGSCI> add exttrail /home/oracle/goldengate11.2.1.0.3/ogg/dirdat/la, ext exta, MEGABYTES 20

由于此时exta复制到了本地,还需要配置一个传输进程负责将数据原封不动的搬运到目标端:

GGSCI> add extract dpea, EXTTRAILSOURCE /home/oracle/goldengate11.2.1.0.3/ogg/dirdat/la

注意此时exttrail指定的是本地队列位置。

然后为该传输进程配置远程队列:

GGSCI> add rmttrail /home/oracle/goldengate11.2.1.0.3/ogg/dirdat/ra, ext dpea, MEGABYTES 20

其中队列位置是在目标主机上的位置

PS:上方路径的前缀/home/oracle/goldengate11.2.1.0.3/ogg换成自己goldengate的安装目录

9.GGSCI>edit param exta
添加:

EXTRACT exta
setenv ( NLS_LANG = AMERICAN_AMERICA.AL32UTF8 )
setenv (ORACLE_SID = orcl)
USERID goldengate, PASSWORD goldengate的密码
EXTTRAIL /home/oracle/goldengate11.2.1.0.3/ogg/dirdat/la
dynamicresolution
table 要复制的用户名.该用户下的要复制的表名;
(如table guapi.employee;)

10.使用了data pump,还需要配置data pump进程dpea

GGSCI>edit param dpea

添加:

extract dpea
setenv ( NLS_LANG = AMERICAN_AMERICA.AL32UTF8 )
passthru
rmthost 目标库的ip地址,mgrport 7809, compress 
rmttrail /home/oracle/goldengate11.2.1.0.3/ogg/dirdat/ra
dynamicresolution
(目标库的路径前缀不一定是/home/oracle/goldengate11.2.1.0.3/ogg)
table 要复制的用户名.该用户下的要复制的表名;
(如table guapi.employee;)
TABLE hq.acct; 

其中:passthru表示本进程是一个传输进程data pump,无需跟数据库交互,只需要搬运数据即可;
因为data pump要传输数据到目标,所以需要配置rmthost和rmttrail指定目标主机和队列信息

11.启动源端所有进程
:此时应当保证目标端mgr已经启动,否则可能dpea进程无法启动。

GGSCI>start ext *

表示启动所有的extract进程。
也可以使用start直接加进程名,如 start dpea分别启动各个进程。
可以通过info all查看各进程状态,正常启动后应当是running状态。

目标库的准备

1.打开数据库最小附加日志

SQL>select supplemental_log_data_min from v$database;

结果为NO,表示没有打开附加日志。使用以下命令将数据库附加日志打开:

SQL>alter database add supplemental log data;

切换日志以使附加日志生效:

SQL>ALTER SYSTEM ARCHIVE LOG CURRENT;

2.建立OGG数据库用户
– 通过sql将数据写入数据库

OGG目标数据库用户权限

CREATE USER goldengate IDENTIFIED BY 密码 DEFAULT TABLESPACE USERS ;GRANT ALTER SESSION TO goldengate;GRANT CREATE SESSION TO goldengate;GRANT CONNECT TO goldengate;GRANT RESOURCE TO goldengate;GRANT SELECT ANY DICTIONARY TO goldengate;GRANT SELECT ANY TABLE TO goldengate;GRANT FLASHBACK ANY TABLE TO goldengate;GRANT INSERT ANY TABLE TO goldengate;GRANT UPDATE ANY TABLE TO goldengate;GRANT DELETE ANY TABLE TO goldengate;

3.进入安装goldengate的目录下,执行./ggsci进入入命令行界面,左侧提示出现GGSCI (myhost) 1>,表示进入成功。

注意:一定要在goldengate安装目录下执行./ggsci,因为它要调用安装目录下的一些其它文件内容,否则可能执行不成功。

4.如果ggsci进入出错,设置一下环境变量:

 export LD_LIBRARY_PATH=$ORACLE_HOME/lib

5.在ggsci环境下创建GoldenGate子目录

GGSCI>create subdirs

该命令会在OGG安装目录下建立若干子目录,其中几个主要目录如下所示:
dirchk:用于存放各个进程的检查点
dirdat:用于存放数据队列文件
dirprm:用于存放各进程参数文件
dirrpt:用于存放各进程报告
dirpcs:存放各个正在运行的进程信息

6.为mgr进程配置参数

GGSCI>edit param mgr

会打开一个编辑窗口,在其中输入以下内容然后保存退出。

PORT 7809

7.启动mgr进程

GGSCI>start mgr

用info all查看是否启动成功

8.添加repa进程,将队列中的数据应用到目标库

GGSCI> add rep repa, exttrail /home/oracle/goldengate11.2.1.0.3/ogg/dirdat/ra, nodbcheckpoint

repa为进程名,一般为rep开头表示是replicat进程,后面可以加1-2位字符标识,一般与ext进程对应;
exttrail表示要抽取的数据队列,注意是目标端的队列位置;
nodbcheckpoint表示不使用数据库检查点。

9.GGSCI>edit param repa
添加:

replicat repa
setenv (NLS_LANG = AMERICAN_AMERICA.AL32UTF8)
setenv (ORACLE_SID = orcl)
userid goldengate, password goldengate密码
reperror default,abend
discardfile /home/oracle/goldengate11.2.1.0.3/ogg/dirrpt/repa.dsc,append, megabytes 10
assumetargetdefs
--allownoopupdates
dynamicresolution
map guapi.employee, target guapi.employee;

10.启动目标端投递进程

GGSCI>start rep *

表示启动所有的replicat进程。
也可以使用start直接加进程名,如 start repa分别启动各个进程。
可以通过info all查看各进程状态,正常启动后应当是running状态。

检查是否成功

1.可以通过在源端对应的用户下的对应的表进行增删改查,然后commit,然后在目标端的数据库查看是否有同步。

2.也可以在源端的gssci窗口中输入stats dpea查看,目标端是stats repa

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值