源数据库模式配置
源端数据库必须开启归档模式
Alter database archivelog;
开启最小附加日志。最小附加日志是为logminer服务的。在这里不多说。
Alter database add supplemental log data;
配置操作系统环境变量(请确保环境变量配置了ORACLE_HOME和ORACLE_SID,这个一般大家都会配置的)
export LD_LIBRARY_PATH=/u01/app/ogg:$ORACLE_HOME/lib:$LD_LIBRARY_PATH
将压缩包解压到系统目录/u01/app/ogg (该路径可以根据需要自行选择)。这里需要两次。一次是unzip,一次是tar xvfz
进入/u01/app/ogg目录,运行./ggsci,进入ogg管理控制台
在ogg控制台输入命令: create subdirs,让ogg创建其需要用到的目录
源端数据库创建GoldenGate数据库用户并授权。虽然这个不是非常必须。但是建议创建单独的表空间。
create user ogg identified by oracle default tablespace ogg;
grant connect,resource,unlimited tablespace to ogg;
grant execute on utl_file to ogg;
grant select any dictionary,select any table to ogg;
grant alter any table to ogg;
grant flashback any table to ogg;
grant execute on DBMS_FLASHBACK to ogg;
这样的权限只能满足DML的配置。DDL还暂时不能满足。至于DDL所需要的配置,下次会更新。
添加表级transdata
GGSCI (NDSCDB1) 2>dblogin userid ogg,password ogg 这里需要在ogg里登陆数据库
Successfully logged intodatabase.
GGSCI(NDSCDB1) 3> add trandata wu.test
Logging of supplemental redo dataenabled for table WU.TEST.
为什么要添加这一步?前面不是已经开启了最小补充日志吗?前面已经说了最小附加日志是为logminer服务的,最小补充日志还不能保证update的唯一性。当然可以开启数据库级别的primary,unique,foreign key。但是我的理解是这么做动静太大了。可能你只是需要复制特定的几个表,没必要开启数据库级别的补充日志。所以就用add trandata wu.test来添加表级的补充日志。这个表级的补充日志就是primary,unique这种的补充日志,可以唯一的标示每一行。
GGSCI (NDSCDB1) 1> edit param mgr 这里写param 或者params都可以
(粘贴下面这段配置)
PORT 7809
DYNAMICPORTLIST 7800-7900
AUTORESTART EXTRACT *,RETRIES 5,WAITMINUTES 3
PURGEOLDEXTRACTS ./dirdat/*,usecheckpoints, minkeepdays 3
LAGREPORTHOURS 1
LAGINFOMINUTES 30
LAGCRITICALMINUTES 45
参数解释:
PORT:指定服务监听端口;这里以7839为例,默认端口为7809
DYNAMICPORTLIST:动态端口:可以制定最大256个可用端口的动态列表,当指定的端口不可用时,管理进程将会从列表中选择一个可用的端口,源端和目标段的Collector、Replicat、GGSCI进程通信也会使用这些端口;
AUTOSTART:指定在管理进程启动时自动启动哪些进程;
AUTORESTART:自动重启参数设置:本处设置表示每3分钟尝试重新启动所有EXTRACT进程,共尝试5次;
PURGEOLDEXTRACTS