OGG单向复制

OGG工具简介

GoldenGate软件是一种基于日志的结构化数据复制软件,它通过解析源数据库在线日志或归档日志获得数据的增删改变化,再将这些变化应用到目标数据库,实现源数据库与目标数据库实时同步(real-time data synchronize)、双活(active-active high availability)。GoldenGate软件可以在异构的IT基础结构(包括几乎所有常用操作系统平台和数据库平台)之间实现大量数据亚秒一级的实时复制。

 

安装

1、环境准备

服务器

IP

数据库版本

系统

实例

OGG版本

(NCC正式库)源库

10.0.100.243

Oracle 11g

Windows server 2012 r2

Orcl

目标库(待准备)

Oracle 11g

Orcl

2、配置流程

1、源端

在源数据库上执行以下步骤

调整归档模式,如果数据库运行在非归档模式下,首先要修改成归档模式,用sqlplus执行

SQL>shutdown immediate;

SQL>startup mount;

SQL>alter database archivelog;

SQL>alter database open;

打开数据库级别的补充日志(supplemental log)

SQL>alter database add supplemental;

创建GoldenGate用户,为了简化流程,这里直接给ggs赋予了dba权限

SQL>create user ggs identified by ggs;

SQL>grant dba to ggs;

DDL复制

切换到goldengate软件目录下面登录数据库sqlplus / as sysdba

1.@marker_setup.sql
2.@ddl_setup.sql  #此处的输入goldengate管理用户ggs必须指定单独的表空间并且自动扩展。
3.@role_setup.sql
4.@ddl_enable.sql
5.@?/rdbms/admin/dbmspool.sql
6.@ddl_pin.sql ggs ##此处ggs为配置在goldnegate中的管理账户

添加表级别的补充日志,用GGSCI执行,GGSCI在GoldenGate目录下面

登录ggs用户

GGSCI> dblogin userid ggs,password ggs

添加要同步表的补充日志,可以用通配符来用户所有的表

GGSCI>add trandata NCC1130.*

配置源数据库的全局参数

GGSCI> edit params ./GLOBALS

在打开的文件中添加以下内容

MGRSERVNAME GGMGR

ggschemas  ggs

配置源数据库的Manager进程

创建名字为mgr的Manager 进程的参数文件

GGSCI> edit params mgr

在打开的文件里添加以下内容

PORT 7809

DYNAMICPORTLIST 7810-7820

AUTORESTART ER t*, RETRIES 4, WAITMINUTES 4

保存文件,参数说明

PORT:Manager进程通信端口G

DYNAMICPORTLIST:表示Manager进程可以为通信分配的动态端口列表

AUTORESTART:自动重启Extract进程,重启次数为4次,每次间隔4s,如果不成功就放弃

启动Manager进程

GGSCI> start mgr

配置源数据库的Extract进程

创建名字为extest的抽取进程的参数文件

GGSCI> edit params extest

在打开的文件里添加以下内容

extract extest

userid ggs,password ggs

exttrail G:\app\Administrator\product\11.2.0\ogg2\dirdat\et

Dynamicresolution

ddl include all

ddloptions addtrandata, report

table  NCC1130.* ;

保存文件,参数说明

exttrail:本地tail文件的保存目录

dynamicresolution:动态解析原端的表名

在GGSCI中添加extest进程

GGSCI>add extract  extest,tranlog,begin now

添加本地tail文件

GGSCI>add exttrail G:\app\Administrator\product\11.2.0\ogg2\dirdat\et, extract  extest

启动Extract进程

GGSCI>start extest

配置源数据库的PUMP进程

创建名字为dpump的pump进程的参数文件

GGSCI> edit params dpump

在打开的文件里添加以下内容

extract dpump

passthru

userid ggs,password ggs

rmthost 10.0.100.245,mgrport 7809,compress

rmttrail E:\app\Administrator\product\11.2.0\ogg2\dirdat\pt

table NCC1130.* ;

保存文件,参数说明

rmthost:目标数据库的IP和端口,端口为目标数据库Manager进程中配置的端口号。 rmttrail:目标数据库tail文件的保存路径

在GGSCI中添加PUMP进程

GGSCI>add extract dpump, exttrailsource G:\app\Administrator\product\11.2.0\ogg2\dirdat\et

注意:该地址应与extract进程中配置的trail文件地址一样

添加远程tail的保存路径

GGSCI>add rmttrail  E:\app\Administrator\product\11.2.0\ogg2\dirdat\pt ,extract dpump

注意:该地址应与目标数据库中trail文件的地址一样

启动PUMP进程

GGSCI>start dpump

2、目标端

在目标数据库上执行以下步骤

创建GoldenGate用户,为了简化流程,这里直接给ggs赋予了dba权限

SQL>create user ggs identified by ggs;

SQL>grant dba to ggs;

添加checkpoint表,checkpoint表的作用是为了从异常失败场景中恢复数据

在GLOBALS中添加checkpoint

GGSCI>edit params ./GLOBALS

在打开的文件中添加

checkpointtable ggs.checkpoint

保存文件,在目标数据库中添加checkpoint表

GGSCI>dblogin userid ggs,password ggs

GGSCI>add checkpointtable ggs.checkpoint

配置目标数据库的Manager进程

创建名字为mgr的Manager 进程的参数文件

GGSCI> edit params mgr

在打开的文件里添加以下内容

PORT 7809

DYNAMICPORTLIST 7810-7820

AUTOSTART ER *

AUTORESTART EXTRACT *,WAITMINUTES 2,RETRIES 5

LAGREPORTHOURS 1

LAGINFOMINUTES 10

LAGCRITICALMINUTES 30

PURGEOLDEXTRACTS E:\app\Administrator\product\11.2.0\ogg2\dirdat\rt*, USECHECKPOINTS, MINKEEPDAYS 5

保存文件,启动Manager进程

GGSCI>start mgr

配置目标数据库的replicat进程

创建Replicat进程

GGSCI> add replicat repl,exttrail C:\app\oracle\product\12.1.2\oggcore_1\dirdat\pt ,checkpointtable ggs.checkpoint

注意:该地址应为trail文件的地址

创建名字为repl的Replicat进程的参数文件

GGSCI> edit params  repl

在打开的文件里添加以下内容

replicat repl

userid ggs,password ggs

assumetargetdefs

reperror default,discard

discardfile E:\app\Administrator\product\11.2.0\ogg2\dirrpt\repl.dsc,append,megabytes 50

Dynamicresolution

DDL INCLUDE ALL

DDLERROR DEFAULT IGNORE RETRYOP MAXRETRIES 3 RETRYDELAY 5

DDLERROR DEFAULT DISCARD

DDLERROR DEFAULT IGNORE RETRYOP

MAP NCC1130.*,TARGET NCC1130.* ;

保存文件,参数说明

assumetargetdefs:说明源数据库和目标数据库有相同的表定义

reperror:遇到复制错误默认行为记录错误并继续处理

dynamicresolution:动态解析对象名称,加快解析效率

启动replicat进程

GGSCI>start repl

  1. 测试

GGSCI>info all  --查看所有进程,running表示允许

源端

 

目标端

 

  1. 常用指令

Info all:查询所有进程

view report +进程名称:查看进程详细状态,有助于排错

view ggsevt:查看警告日志

lag + 进程名称:查看延时,以及文件抽取应用情况

stats <进程名称>,<时间频度>,table : 可以查看进程处理的记录数。该报告会详细的列出处理的类型和记录数。

如:GGSCI> stats edr, total列出自进程启动以来处理的所有记录数。

GGSCI> stats edr, daily, table gg.test列出当天以来处理的有关gg.test表的所有记录数。

stats MGOUPEXT, daily, table group.t_f_records

info + 进程名称,showch:查看详细处理过的事物记录

info + 进程名称,detail:查看更详细的信息,包括所使用的trail文件,参数文件,报告文件,告警日志文件位置等

alter extract ext1,extseqno 0,extrba 0:重置抽取进程,本地文件序列号从0开始生成。

alter replicat rep1,extseqno 0,extrba 0:重置读取进程,重新从0号trial文件开始读取。

help, help add exttrail:查看帮助

启动和停止服务:

start mgr,stop mgr
start extract extest,stop extract extest
start replicat repl,stop replicat repl

edit params <group name>修改参数命令

DDL复制操作具体步骤

在源端执行marker_setup.sql脚本:


[oracle@goldengate]$ ls marker_setup.sql
marker_setup.sql
[oracle@goldengate]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Tue Mar 19 15:21:11 2019
Copyright (c) 1982, 2013, Oracle.  All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> @marker_setup.sql
Marker setup script
You will be prompted for the name of a schema for the Oracle GoldenGate database objects.
NOTE: The schema must be created prior to running this script.
NOTE: Stop all DDL replication before starting this installation.
Enter Oracle GoldenGate schema name:ggs##配置goldengate的管理用户
Marker setup table script complete, running verification script...
Please enter the name of a schema for the GoldenGate database objects:
Setting schema name to OGGADMIN
MARKER TABLE
-------------------------------
OK
MARKER SEQUENCE
-------------------------------
OK
Script complete.
SQL>

执行第二个脚本ddl_setup.sql:


SQL> @ddl_setup.sql
Oracle GoldenGate DDL Replication setup script
Verifying that current user has privileges to install DDL Replication...
You will be prompted for the name of a schema for the Oracle GoldenGate database objects.
NOTE: For an Oracle 10g source, the system recycle bin must be disabled. For Oracle 11g and later, it can be enabled.
NOTE: The schema must be created prior to running this script.
NOTE: Stop all DDL replication before starting this installation.
Enter Oracle GoldenGate schema name:ggs
Working, please wait ...
Spooling to file ddl_setup_spool.txt
Checking for sessions that are holding locks on Oracle Golden Gate metadata tables ...
Check complete.
declare
*
ERROR at line 1:
ORA-20783:
ORA-20783:
Oracle GoldenGate DDL Replication setup:
*** Please move OGGADMIN to its own tablespace
ORA-06512: at line 34

Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

解决:
alter user OGGADMIN default tablespace OGG_TBS;
alter user OGGADMIN quota unlimited on OGG_TBS;

执行第三个脚本@role_setup.sql

SQL> @role_setup.sql
GGS Role setup script
This script will drop and recreate the role GGS_GGSUSER_ROLE
To use a different role name, quit this script and then edit the params.sql script to change the gg_role parameter to the preferred name. (Do not run the script.)

You will be prompted for the name of a schema for the GoldenGate database objects.
NOTE: The schema must be created prior to running this script.
NOTE: Stop all DDL replication before starting this installation.
Enter GoldenGate schema name:ggs
Wrote file role_setup_set.txt
PL/SQL procedure successfully completed.
Role setup script complete
Grant this role to each user assigned to the Extract, GGSCI, and Manager processes, by using the following SQL command:
GRANT GGS_GGSUSER_ROLE TO <loggedUser>
where <loggedUser> is the user assigned to the GoldenGate processes.
SQL> grant GGS_GGSUSER_ROLE to oggadmin;
Grant succeeded.
执行其它的一些sql脚本:
SQL> @ddl_enable.sql

Trigger altered.

SQL> @?/rdbms/admin/dbmspool.sql

Package created.
Grant succeeded.
SQL>  @ddl_pin.sql ggs
PL/SQL procedure successfully completed.
PL/SQL procedure successfully completed.
PL/SQL procedure successfully completed.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值