11月
27
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指的是目标端的路径,如果目标端路径和源端一样可以直接用./
如果不一样需要写绝对路径
Address: https://zhengjianfeng.cn/?p=612
no comment untill now