ogg一般来说有4个进程,Manager进程,Extract进程,Pump进程,Replicat进程
Manager进程:
是GoldenGate的控制进程,它主要作用有以下几个方面:启动、监控、重启GoldenGate的其他进程,报告错误及时间,分配数据存储空间,发布阀值报告等。
Extract进程:
运行在数据库源端,负责从源端数据表或日志中捕获数据。Extract进程利用其内在的checkpoint机制,周期性地检查
并记录其读写的位置,通常是写入到本地的trail文件。这种机制是为了保证如果Extract进程终止或者操作系统宕机,我们重启Extract进程
后,GoldenGate能够恢复到以前的状态,从上一个断点处继续往下运行,而不会有任何数据损失。
Pump进程:(如果trail文件落本地才会用这个进程,一般OGG都会把traile文件落地)
运行在数据库源端,其作用非常简单。如果源端使用了本地trail文件,那么Pump进程就会把Trail文件以数据块的形式通过
TCP/IP协议发送到目标端,我们下面的配置都是这种方式。Pump进程本质是Extract进程的一种特殊形式,如果不使用Trail文件,那么
Extract进程在抽取完数据后,直接投递到目标端。与Pump进程相对应的叫Server
Collector进程,这个进程不需要引起我们关注,因为在实际操作过程中无需对其进行任何配置,它运行在目标端,任务就是把Extract/Pump进程投递过来的数据块重新组装成Trail文件。
Replicat进程:
运行在目标端,是数据投递的最后一站,负责读取目标端Trail文件中的内容,并将解析其解析为DML或DDL语句,然后应用到目标数据库中。
OGG和其他传统复制软件一样,也是通过源端捕获/挖掘ORACLE的日志信息,目标端根据源端传送过来的日志信息进行重塑,实现源端-目标端数据同步,只有commit之后的日志信息才会被Capture进程捕获,未提交的事务OGG不会捕获。
测试环境
源端:rhel5 存储ASM 单实例
IP:192.168.3.50 SID:orcl
目标; oracle linux 6.8
IP: 192.168.3.105 SID:ora11g
1、安装ogg软件,安装方式如下(两端均执行)
mkdir /u01/app/ggs
chown oracle:oinstall /u01/app/ggs
unzip ogg112101_fbo_ggs_Linux_x64_ora11g_64bit.zip
tar -xvf fbo_ggs_Linux_x64_ora11g_64bit.tar -C
/u01/app/ggs
设置LD_LIBRARY_PATH参数
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/jdk/bin:$PATH
source .bash_profile
2、数据库环境准备(两端均执行)
打开最小附加日志
SQL>alter database add supplemental log data;
SQL>select supplemental_log_data_min from v$database;
注:也有文章指明
SQL> select
NAME,OPEN_MODE,FORCE_LOGGING,SUPPLEMENTAL_LOG_DATA_MIN from
v$database;
数据库的附加日志和force log都没有开启,使用下面的命令开启
SQL> alter database force logging;
SQL> alter database add SUPPLEMENTAL log data;
注:运行OGG支持DDL脚本
如果要让OGG支持DDL操作,还需要额外运行几个脚本,这些脚本是OGG带的而不是ORACLE带的,在OGG的安装目录都可以找到,如果在OGG的安装目录登录数据库,可以直接@加脚本的名字,源端与目标端都需要运行,如下:
sqlplus / as sysdba
@marker_setup.sql
@ddl_setup.sql
@role_setup.sql
@ddl_enable.sql
如果没有在OGG的安装目录登录数据库,需要指定脚本的位置,比如OGG安装目录为/ogg。
sqlplus / as sysdba
@/ogg/marker_setup.sql
@/ogg/ddl_setup.sql
@/ogg/role_setup.sql
@/ogg/ddl_enable.sql
3、创建数据库ogg用户(两端均执行)
CREATE USER ogg IDENTIFIED BY ogg DEFAULT TABLESPACE USERS
;
授权ogg用户,如果对用户权限要求不严格可以直接授予dba权限,否则授予如下权限(ORACLE建议使用单独的表空间存放OGG数据,表空间大小50M就可以,但是最好设置数据文件的自动扩展,此处不做要求)
源端:
GRANT CONNECT TO OGG;
GRANT C