OGG配置的整个过程
1.1 复制数据库
使用RMAN 复制:
[oracle@dg1 ~]$ rman target sys/sa@db1 auxiliary sys/sa@db2 nocatalog
RMAN> duplicate target database to DB2 nofilenamecheck;
1.2 安装配置oracle GoldenGate
1.2.1 修改环境变量,LD_LIBRARY_PATH=/opt/app/ggs/11.2
vi ~/.bash_profile
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/opt/app/ggs/11.2; export LD_LIBRARY_PATH
1.2.2 安装goldengate
$ Su – oracle $ mkdir -p /ggs/11.2
$ chown -R oracle:oinstall /ggs/11.2 $ chmod -R 775 /ggs/11.2
$ cd /ggs/11.2
$ unzip ogg112101_fbo_ggs_Linux_x86_ora10g_32bit.zip $ tar xvf fbo_ggs_Linux_x86_ora10g_32bit.tar
cd /opt/app/ggs/11.2
[oracle@dg2 11.2]$./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 (dg1) 1> create subdirs
Creating subdirectories under current directory /opt/app/ggs/11.2
Parameter files /opt/app/ggs/11.2/dirprm: already exists
Report files /opt/app/ggs/11.2/dirrpt: created
Checkpoint files /opt/app/ggs/11.2/dirchk: created
Process status files /opt/app/ggs/11.2/dirpcs: created
SQL script files /opt/app/ggs/11.2/dirsql: created
Database definitions files /opt/app/ggs/11.2/dirdef: created
Extract data files /opt/app/ggs/11.2/dirdat: created
Temporary files /opt/app/ggs/11.2/dirtmp: created
Stdout files /opt/app/ggs/11.2/dirout: created
GGSCI (dg1) 2>
1.2.3 建立用户,并赋权限:
主库:
SQL> create tablespace ggs_tbs datafile '/opt/app/oracle/oradata/DB1/ggs_tbs01.dbf' size 50m;
SQL> create user ggs identified by ggs default tablespace ggs_tbs;
User created.
SQL> grant create session,alter session to ggs;
Grant succeeded.
SQL> grant execute on utl_file to ggs;
Grant succeeded.
SQL> grant select any dictionary, select any table to ggs;
SQL> grant alter any table to ggs;
Grant succeeded.
SQL> grant flashback any table to ggs;
Grant succeeded.
SQL> grant select any transaction to ggs;
Grant succeeded.
SQL> grant sysdba to ggs;
Grant succeeded.
SQL> grant create table,insert any table,lock any table to ggs;
Grant succeeded.
SQL> grant execute on dbms_flashback to ggs;
Grant succeeded.
备库:
SQL> create tablespace ggs_tbs datafile '/opt/app/oracle/oradata/DB1/ggs_tbs01.dbf' size 50m;
SQL> create user ggs identified by ggs default tablespace ggs_tbs;
User created.
SQL> grant create session,alter session to ggs;
Grant succeeded.
SQL> grant execute on utl_file to ggs;
Grant succeeded.
SQL> grant select any dictionary, select any table to ggs;
SQL> grant alter any table to ggs;
Grant succeeded.
SQL> grant flashback any table to ggs;
Grant succeeded.
SQL> grant select any transaction to ggs;
Grant succeeded.
SQL> grant sysdba to ggs;
Grant succeeded.
SQL> grant create table,insert any table,lock any table to ggs;
Grant succeeded.
SQL> grant execute on dbms_flashback to ggs;
Grant succeeded.
SQL> grant insert any table,update any table,delete any table to ggs;
Grant succeeded.
1.3 源、目标库打开辅助日志
SQL> alter database force logging;
alter database force logging
*
ERROR at line 1:
ORA-12920: database is already in force logging mode
SQL> alter database add supplemental log data;
Database altered.
SQL> select supplemental_log_data_min from v$database;
SUPPLEMENTAL_LOG_DATA_MI
------------------------
YES
1.4 源、目标库支持sequence
在源库、目标库上执行:
GGSCI (dg2) 2> edit params ./globals
在统计模式下输入并保存:ggschema ggs
在SQLPLUS 下去运行:
sql> @sequence.sql 根据提示输入:gg
1.5 支持ddl复制
1.2.5.1 主库配置
cd /ggs/11.2
sqlplus / as sysdba
sql> alter system set recyclebin=off deferred scope=both; #必须,针对ddl复制
sql> @marker_setup.sql prompt: ggs
sql> @ddl_setup.sql prompt: ggs
sql> @role_setup.sql
sql> grant GGS_GGSUSER_ROLE to ggs;
SQL> @ddl_enable.sql
10g需要安装dbms_share_pool包:
sql> @?/rdbms/admin/dbmspool.sql sql> @ddl_pin ggs;
1.6 目标库配置
sql> alter system set recyclebin=off deferred scope=both; #必须
sql> @marker_setup.sql prompt: ggs
sql> @ddl_setup.sql prompt: ggs
sql> @role_setup.sql
sql> grant GGS_GGSUSER_ROLE to ggs;
SQL> @ddl_enable.sql
10g需要安装dbms_share_pool包:
sql> @?/rdbms/admin/dbmspool.sql sql> @ddl_pin ggs;
1.7 配置MANAGER
主库、目标库配置:
[oracle@dg1 11.2]$ ./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 (dg1) 1> edit params mgr
GGSCI (dg1) 2> start mgr
Manager started.
GGSCI (dg1) 3> info mgr
Manager is running (IP port dg1.7809).
GGSCI (dg1) 4>
添加表级transdata (开始出现没有主键及权限问题)
GGSCI (dg1) 5> add trandata sys.test
2013-08-22 13:33:26 WARNING OGG-00869 No unique key is defined for table 'TEST'. All viable columns will be used to represent the key, but may not guarantee uniqueness. KEYCOLS may be used to define the key.
2013-08-22 13:33:27 WARNING OGG-00706 Failed to add supplemental log group on table SYS.TEST due to ORA-01031: insufficient privileges SQL ALTER TABLE "SYS"."TEST" ADD SUPPLEMENTAL LOG GROUP "GGS_73209" ("ID") ALWAYS /* GOLDENGATE_DDL_REPLICATION */.
GGSCI (dg1) 6> add trandata sys.test
2013-08-22 13:35:39 WARNING OGG-00869 No unique key is defined for table 'TEST'. All viable columns will be used to represent the key, but may not guarantee uniqueness. KEYCOLS may be used to define the key.
2013-08-22 13:35:39 WARNING OGG-00706 Failed to add supplemental log group on table SYS.TEST due to ORA-01031: insufficient privileges SQL ALTER TABLE "SYS"."TEST" ADD SUPPLEMENTAL LOG GROUP "GGS_73209" ("ID") ALWAYS /* GOLDENGATE_DDL_REPLICATION */.
GGSCI (dg1) 1> dblogin userid ggs,password ggs
Successfully logged into database.
GGSCI (dg1) 2> add trandata sys.test
2013-08-22 13:46:41 WARNING OGG-00706 Failed to add supplemental log group on table SYS.TEST due to ORA-01031: insufficient privileges SQL ALTER TABLE "SYS"."TEST" ADD SUPPLEMENTAL LOG GROUP "GGS_73209" ("ID") ALWAYS /* GOLDENGATE_DDL_REPLICATION */.
-------------------
GGSCI (dg1) 3> add trandata hr.employee
Logging of supplemental redo data enabled for table HR.EMPLOYEE.
GGSCI (dg1) 4> add trandata hr.department
Logging of supplemental redo data enabled for table HR.DEPARTMENT.
SQL>grant INSERT, UPDATE, DELETE on HR.department to GGS;
SQL>grant INSERT, UPDATE, DELETE on HR.employee to GGS;
1.8 配置抽取进程:
GGSCI (node1) 6> add extract extnd,tranlog,begin now,threads 2
EXTRACT added.
GGSCI (node1) 7> add exttrail ./dirdat/nd,extract extnd,megabytes 100
EXTTRAIL added.
GGSCI (node1) 8> edit params extnd
(下面为配置文件内容)
EXTRACT extnd
SETENV (NLS_LANG = "AMERICAN_AMERICA.UTF8")
SETENV (ORACLE_HOME = "/opt/app/oracle/product/11.2.0")
USERID ggs@db1, PASSWORD ggs
--GETTRUNCATES
REPORTCOUNT EVERY 1 MINUTES, RATE
DISCARDFILE ./dirrpt/extnd.dsc,APPEND,MEGABYTES 1024
--THREADOPTIONS MAXCOMMITPROPAGATIONDELAY 60000 IOLATENS 60000
DBOPTIONS ALLOWUNUSEDCOLUMN
WARNLONGTRANS 2h,CHECKINTERVAL 3m
EXTTRAIL ./dirdat/nd
--TRANLOGOPTIONS EXCLUDEUSER USERNAME
FETCHOPTIONS NOUSESNAPSHOT
TRANLOGOPTIONS CONVERTUCS2CLOBS
TABLE hr.employee;
TABLE hr.department;
添加传输进程,配置参数
GGSCI (dg1) 24> add extract dpend,exttrailsource ./dirdat/nd
EXTRACT added.
GGSCI (dg1) 1> add rmttrail /opt/app/ggs/11.2/dirdat/nd,EXTRACT DPEND
RMTTRAIL added.
GGSCI (dg1) 2>
GGSCI (dg1) 2> edit params dpend
EXTRACT dpend
SETENV (NLS_LANG = AMERICAN_AMERICA.UTF8)
USERID ggs@db1, PASSWORD ggs
PASSTHRU
RMTHOST 192.168.10.88, MGRPORT 7809, compress
RMTTRAIL /opt/app/ggs/11.2/dirdat/nd
TABLE hr.depoarment;
TABLE hr.employee;
1.8.2 在目标数据库上配置replicat进程
1.8.2.1 配置replicat
创建checkpoint表
ggsci>dblogin userid ggs,password ggs
ggsci>add checkpointtable ggs.checkpoint
ggsci> edit params ./GLOBALS #GLOBALS必须大写,编辑GLOBALS需要推出ggsci再进入,输入:
CHECKPOINTTABLE ggs.checkpoint
1.8.2.2 创建replicat:
GGSCI (dg2) 8> dblogin userid ggs,password ggs
Successfully logged into database.
GGSCI (dg2) 9> add checkpointtable ggs.checkpoint
Successfully created checkpoint table ggs.checkpoint.
GGSCI (dg2) 10> add replicat repnd,exttrail /opt/app/ggs/11.2/dirdat/nd,checkpointtable ggs.checkpoint
REPLICAT added.
1.8.2.3 启动extract及replicat
1.8.2.3.1、启动extract 保证mgr已启动。
GGSCI (dg1) 7> start dpend
EXTRACT DPEND is already running.
GGSCI (dg1) 8> start extnd
EXTRACT EXTND is already running.
GGSCI (dg1) 9> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
EXTRACT RUNNING DPEND 00:00:00 00:00:07
EXTRACT RUNNING EXTND 00:00:00 00:00:10
GGSCI (dg2) 16> start REPND
REPLICAT REPND is already running.
GGSCI (dg2) 17> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
REPLICAT RUNNING REPND 00:00:00 00:00:10