OGG配置

创建wallet

OGG中很多操作需要在登录Oracle数据库的前提下才能完成,登录账号就是之前创建的ogg用户,在12c之前登录数据库必须在命令行中指定用户名密码,这样很不安全,因为从12c开始,ogg可以通过创建登录凭证,以凭证的方式登录,密码被加密到凭证中,该方式在ogg中称之为alias

➜ cd $OGG_HOME
➜ ./ggsci
GGSCI (db-server) 1> CREATE WALLET
Created wallet.
Opened wallet.
GGSCI (db-server) 2> ADD CREDENTIALSTORE
Credential store created.
GGSCI (db-server) 3> ALTER CREDENTIALSTORE ADD USER ogg@ORCL ALIAS ORCL
Password: 
Credential store altered.
# 登录测试
GGSCI (SRSlinuxtest) 5> dblogin useridalias ORCL
Successfully logged into database.
GGSCI (SRSlinuxtest as ogg@ORCL) 6>

创建Extract参数

ogg中每个进程的启动都需要指定参数,参数名称和进程名称必须保持一致,参数本质上是一个以.prm结尾都文件,存储在dirprm文件夹中,所以你可以不通过ggsci,直接在dirprm文件夹中进行创建和编辑参数文件

./ggsci
GGSCI> edit params e1
EXTRACT e1
USERIDALIAS ORCL
LOGALLSUPCOLS
UPDATERECORDFORMAT COMPACT
EXTTRAIL ./dirdat/e1
TABLE hr.employee;

参数文件有一些必须的语法,比如第一行必须是进程名称,Table指令必须以;结尾,并且PDB和非PDB的语法还存在差异,主要是在PDB参数中往往要指定PDB名称,比如上面的参数在PDB数据库中需要改写成如下

EXTRACT e1
USERIDALIAS ORCL
LOGALLSUPCOLS
UPDATERECORDFORMAT COMPACT
EXTTRAIL ./dirdat/e1
SOURCECATALOG ORCLPDB
TABLE hr.employee;

主要是需要增加SOURCECATALOG指定PDB

  • EXTRACT:进程名称
  • USERIDALIAS:指定登录用户凭证
  • EXTTRAIL:指定抓取文件,一般和名称一样
  • TABLE:指定监控表,必须以;结尾,也可以使用通配符 hr.*,不建议使用通配符

创建Extract进程

GGSCI> add extract e1, integrated tranlog, begin now
EXTRACT (Integrated) added.
GGSCI (SRSlinuxtest) 11>  add exttrail ./dirdat/e1, extract e1
EXTTRAIL added.
GGSCI (SRSlinuxtest) 13> dblogin useridalias ORCL
Successfully logged into database.
GGSCI (SRSlinuxtest as ogg@ORCL) 3> REGISTER EXTRACT e1, DATABASE
2021-10-19 00:13:18  INFO    OGG-02003  Extract E1 successfully registered with database at SCN 217107164362.
GGSCI (SRSlinuxtest as oggadmin@EP2001) 14> add trandata hr.employee
2021-10-19 00:07:16  INFO    OGG-15132  Logging of supplemental redo data enabled for table OGGADMIN.OGG_TEST1.
2021-10-19 00:07:16  INFO    OGG-15133  TRANDATA for scheduling columns has been added on table OGGADMIN.OGG_TEST1.
2021-10-19 00:07:16  INFO    OGG-15135  TRANDATA for instantiation CSN has been added on table OGGADMIN.OGG_TEST1.
2021-10-19 00:07:17  INFO    OGG-10471  ***** Oracle Goldengate support information on table OGGADMIN.OGG_TEST1 ***** 
Oracle Goldengate support native capture on table OGGADMIN.OGG_TEST1.
Oracle Goldengate marked following column as key columns on table OGGADMIN.OGG_TEST1: ID.

这里面有几个重要的操作

  • add extract e1, integrated tranlog, begin now:创建了Extract进程e1,并且是以integrated方式进行数据抓取
  • add exttrail ./dirdat/e1, extract e1:配置了抓取数据文件路径
  • REGISTER EXTRACT e1, DATABASE:这个步骤很重要,integrated核心就是通过logminer进行数据抓取,extract必须要在注册中进行注册才能获取到数据,这里PDB和非PDB又有点不同,如果是PDB数据库,需要加上PDB名称
REGISTER EXTRACT e1 DATABASE CONTAINER (ORCLPDB)
  • add trandata hr.employee:这个是在表级别给表加上附加日志命令,如果需要schema下所有的表都自动加上附加日志,可以使用命令add trandata hr.*

启动Extract进程

GGSCI 4> start e1
Sending START request to MANAGER ...
EXTRACT E1 starting
GGSCI 5> info all
Program     Status      Group       Lag at Chkpt  Time Since Chkpt
MANAGER     RUNNING                                           
EXTRACT     RUNNING     E1          00:00:00      00:08:19

创建Pump进程参数

./ggsci
GGSCI> edit params p1
EXTRACT p1
USERIDALIAS ORCL
RMTHOST 192.168.1.23, MGRPORT 7909 TIMEOUT 30
RMTTRAIL ./dirdat/mq
PASSTHRU
TABLE hr.employee;
  • USERIDALIAS:指定登录用户凭证
  • RMTHOST:目标端地址和端口号(安装完目标端可以回来修改该参数)
  • RMTTRAIL:指定目标端存储文件,如果两边安装路径是一样的,可以直接用相对路径,如果两边路径不一致需要指定目标端绝对路径,并且RMTTRAIL文件名**必须是两个字母**,这一点很不理解Oracle的设计
  • TABLE:指定要抽取的表,必须以;结尾
如果是PDB数据库需要指定SOURCECATALOG ORCLPDB

创建Pump进程

./ggsci
GGSCI> add extract p1,exttrailsource ./dirdat/e1
GGSCI> add rmttrail ./dirdat/mq extract p1
GGSCI (db-server) 6> start extract p1
Sending START request to MANAGER ...
EXTRACT P1 starting
GGSCI (db-server) 7> info all
Program     Status      Group       Lag at Chkpt  Time Since Chkpt
MANAGER     RUNNING                                           
EXTRACT     RUNNING     E1          00:00:00      00:00:03    
EXTRACT     RUNNING     P1          00:00:00      00:04:53
  • add extract p1,exttrailsource ./dirdat/e1:创建Pump进程p1并且指定Extract进程为e1
  • add rmttrail ./dirdat/mq extract p1:创建远程抓取文件
  • start extract p1:启动pump进程,pump进程也是一个extract进程
rmttrail的文件名必须是两个字符,否则会报ERROR: file portion must be two characters。rmttrail指的是目标端的路径,如果目标端路径和源端一样可以直接用./如果不一样需要写绝对路径
Trackback

no comment untill now

Add your comment now