OGG单向复制搭建
1架构规划
操作系统:oraclelinux 5
Oracle版本:11.2.0.1
服务器主机名 | ogg_source | ogg_target |
IP | 192.168.127.100 | 192.168.127.101 |
Oracle sid | oggs | oggt |
goldengate版本:11.2.0.1
ogg112101_fbo_ggs_Linux_x64_ora11g_64bit.zip
2 两台机器安装ORACLE(省略)
3 ogg目录创建(源端和目标端执行,使用root用户)
[root@oggs ~]# mkdir -p /u01/ggs/11.2.0/
[root@oggs ~]# chown -R oracle:oinstall /u01/ggs/
4 编辑环境变量(源端和目标端执行,使用oracle用户)
--红色为添加部分
[oracle@oggs ~]$ vi .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startupprograms
ORACLE_HOSTNAME=oggs; exportORACLE_HOSTNAME
ORACLE_SID=oggs; export ORACLE_SID
#ORACLE_HOSTNAME= oggt; exportORACLE_HOSTNAME
#ORACLE_SID= oggt; export ORACLE_SID
ORACLE_UNQNAME=oggs; export ORACLE_UNQNAME
ORACLE_BASE=/u01/app/oracle; exportORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/11.2.0/db_1;export ORACLE_HOME
ORACLE_TERM=xterm; export ORACLE_TERM
BASE_PATH=/usr/sbin:$PATH; export BASE_PATH
PATH=$ORACLE_HOME/bin:$BASE_PATH; exportPATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/u01/ggs/11.2.0:/lib:/usr/lib;export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib;export CLASSPATH
OGG_PATH=/u01/ggs/11.2.0;exportOGG_PATH
if [ $USER = "oracle" ]; then
if[ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
5 安装OGG文件(源端和目标端执行,使用oracle用户)
[root@oggs ~]$ cd /u01/ggs/11.2.0/
[root@oggs 11.2.0]$ unzip ogg112101_fbo_ggs_Linux_x86_ora11g_32bit.zip
Archive:
ogg112101_fbo_ggs_Linux_x86_ora11g_32bit.zip
inflating: fbo_ggs_Linux_x86_ora11g_32bit.tar
inflating: OGG_WinUnix_Rel_Notes_11.2.1.0.1.pdf
inflating: Oracle GoldenGate 11.2.1.0.1 README.txt
inflating: Oracle GoldenGate 11.2.1.0.1 README.doc
[root@oggs11.2.0]$ tar -xvf fbo_ggs_Linux_x86_ora11g_32bit.tar
[oracle@GMDBA 11.2.0]$ ./ggsci
Oracle GoldenGate Command Interpreter for Oracle
Version 11.2.1.0.1 OGGCORE_11.2.1.0.1_PLATFORMS_120423.0230_FBO
Linux, x86, 32bit (optimized), Oracle 11g on Apr 23 2012 08:09:25
Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.
GGSCI (GMDBA) 1> create subdirs
6 源端配置
(1)开启归档
alter database archivelog;(数据库在Mount状态下)
(2)开启附加日志
alter database add supplemental log data; (数据库在Open状态下)
(3)创建用户并权限配置:
createuser ggs identified by ggs default tablespace uses temporary tablespace TEMP;
grant connect,resource to ggs;
grant execute on utl_file to ggs;
grant select any dictionary,select any table to ggs;
grant alter any table to ggs;
grant flashback any table to ggs;
grant execute on DBMS_FLASHBACK to ggs;
(4)配置mgr
[oracle@oggs11.2.0]$ ./ggsci
GGSCI(oggs) 1> dblogin userid ggs password ggs
Successfully logged into database.
--同步ggs下所有表
GGSCI(oggs) 2> add trandata ggs.*
GGSCI(oggs) 3> edit params mgr
port7500
dynamicportlist7501-7505
autorestartextract *,waitminutes 2,retries 5
GGSCI(oggs) 4> start mgr
(5) 配置Extract抽取进程组
GGSCI(oggs) 4> edit params ext1
extractext1
dynamicresolution
useridggs,password ggs
setenv(ORACLE_SID=oggs)
exttrail/u01/ggs/11.2.0/dirdat/et
tableggs.test_pri;
GGSCI(oggs) 5> add extract ext1,tranlog,begin now
GGSCI(oggs) 6> add exttrail /u01/ggs/11.2.0/dirdat/et,extractEXT1
GGSCI(oggs) 7> start EXT1
(6)配置pump投递进程
GGSCI(oggs) 7> edit params pump1
extractpump1
dynamicresolution
useridggs,password ggs
rmthost192.168.127.101,mgrport 7809,compress
rmttrail/u01/ggs/11.2.0/dirdat/pt
tableggs.test_pri;
GGSCI(oggs) 8> add extract pump1,exttrailsource /u01/ggs/11.2.0/dirdat/et
GGSCI(oggs) 8> ADD RMTTRAIL /u01/ggs/11.2.0/dirdat/pt,EXTRACT PUMP1
GGSCI(oggs) 8> start pump1
7 目标端配置
(1)开启归档
alter databasearchivelog;(数据库在Mount状态下)
(2)开启附加日志
alter database add supplemental log data; (数据库在Open状态下)
(3)创建用户并权限配置:
createuser ggs identified by ggs default tablespace uses temporary tablespace TEMP;
grant connect,resource to ggs;
grant execute on utl_file to ggs;
grant select any dictionary,select any table to ggs;
grant insert any table to ggs;
grant update any table to ggs;
grant delete any table to ggs;
grant altersession to ggs;
(4)添加checkpoint表
[oracle@oggt11.2.0]$ ./ggsci
GGSCI(oggt) 1> edit params ./GLOBALS
checkpointtableggs.checkpoint
GGSCI(oggt) 2> dblogin userid ggs password ggs
GGSCI(oggt) 3> add checkpointtable ggs.checkpoint
(5)配置mgr
GGSCI(oggt) 4> edit params mgr
port7809
dynamicportlist7800-8000
autostarter *
autorestartextract *,waitminutes 2,retries 5
lagreporthours1
laginfominutes3
lagcriticalminutes5
purgeoldextracts/u01/ggs/11.2.0/dirdat/rt*,usecheckpoints,minkeepdays3
GGSCI(oggt) 5> start mgr
(6)配置replicat
GGSCI(oggt) 4> edit params repl
replicatrepl
useridggs,password ggs
assumetargetdefs
reperrordefault,discard
discardfile/u01/ggs/11.2.0/dirrpt/repl.dsc,append,megabytes50
dynamicresolution
sourcedefs/u01/ggs/test_pri.p
mapggs.test_pri,target ggs.test_pri;
GGSCI(oggt) 5> start repl
配置完成!
上述只配置了表test_pri
8 OGG常用命令使用
--查看错误日期
[oracle@oggt11.2.0]$ more ggserr.log | grep ERROR
2016-02-1916:53:24 ERROR OGG-00014 Oracle GoldenGate Manager for Oracle: Unrecognized parameter: eckpointtable. Parameter could be misspelled orunsupported.
--进程的启动停止
Startmgr stop mgr
--查看所有进程
Infoall
--查看单个进程
infoextract ext1
infoextract pump1