Oracle GoldenGate 安裝配置
Oracle GoldenGate軟體可以實現異構平台資料的遷移和同步,它是基於資料庫日誌結構變化,通過解析源端線上日誌或歸檔日誌獲得資料增量,再將這些變化應用到目標資料庫,從而實現源庫和目標庫的資料同步。下面通過一個簡單的樣本,詳細介紹利用GoldenGate實現Oracle資料庫之間的同步。
1. 安裝
1.1 下載介質
GoldenGate的安裝介質可以從Oracle的官網上下載。
http://www.oracle.com/technetwork/middleware/goldengate/overview/index.html
1.2 配置GoldenGate使用者
下載完成後將其拷貝到源和目標的資料庫的相應位置解壓完成後,即可以開始進行配置。
# su – oracle
$ mkdir /u01/ogg
$ cd /u01/ogg
$ tar xvf ogg_for_oracle_linux_86.tar
注意,如果使用Oracle 11g的資料庫,需要建立一個link檔案。
$ ln -s /u01/app/oracle/product/11.2.0/db_1/lib/libnnz11.so -
/u01/app/oracle/product/11.2.0/db_1/lib/libnnz10.so
配置環境變數
$ vi ~/.bash_profile
添加如下的內容:
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/u01/ogg
export GGATE=/u01/app/oracle/ogg
1.3 配置ogg的應用目錄
使用ggsci工具,建立必要的目錄。
$ cd /u01/app/oracle/ogg
$ ./ggsci
Oracle GoldenGate Command Interpreter for Oracle
Version 11.1.1.0.0 Build 078
Linux, x86, 32bit (optimized), Oracle 10 on Jul 28 2015 10:20:18
Copyright (C) 1995, 2010, Oracle and/or its affiliates. All rights reserved.
GGSCI (gridcontrol) 1> create subdirs
至此,GoldenGate基本的安裝完成。
注意:此部分需要在源端和目標端完成。
2. 來源資料庫配置
GoldenGate主要通過抓取源端資料庫重做日誌進行分析,將擷取的資料應用到目標端,實現資料同步。因此,為了讓GoldenGate能夠正常工作,來源資料庫需要進行一定配置。
2.1配置來源資料庫必須是 歸檔模式、附加日誌、強制日誌
--查看
SQL> CONN / AS SYSDBA
SQL>select db.LOG_MODE, db.SUPPLEMENTAL_LOG_DATA_MIN, db.FORCE_LOGGING
from v$database db
SQL>--修改
SQL>--1)archivelog
SQL>shutdown immediate
SQL>startup mount
SQL>alter database archivelog;
SQL>alter database open;
SQL>--2)force logging
SQL>alter database force logging;
SQL>--3)supplemental log data
SQL>alter database add supplemental log data;
2.2 關閉資料庫的recyblebin
SQL>alter system set recyclebin=off scope=spfile;
如果資料庫是10g,需要關閉recyclebin並重啟;或者手工purge recyclebin。
2.3 配置複製的DDL支援
SQL>create user ogg identified by ogg default tablespace users temporary tablespace temp;
SQL>grant connect,resource,unlimited tablespace to ogg;
SQL>grant execute on utl_file to ogg;
SQL>@$GGATE/marker_setup.sql;
SQL>@$GGATE/ddl_setup.sql;
SQL>@$GGATE/role_setup.sql;
SQL>grant GGS_GGSUSER_ROLE to ogg;
SQL>@$GGATE/ddl_enable.sql;
2.4建立源端和目標端的測試使用者
--在源端執行
SQL>create user ss identified by oracle default tablespace users temporary tablespace temp;
SQL>grant connect,resource,unlimited tablespace to ss;
--在目標上執行
SQL>create user rr identified by oracle default tablespace users temporary tablespace temp;
SQL>grant connect,resource,unlimited tablespace to rr;
3. 配置manager
在源端和目標端分別執行下面的步驟。
3.1 源端建立manager
[ogg@node1 gg]$ ./ggsci
GGSCI (node1) 1> info all
Program Status Group Lag Time Since Chkpt
MANAGER STOPPED
GGSCI (node1) 2> edit params mgr
PORT 7809
GGSCI(node1) 3> start manager
Manager started.
在目標端
[ogg@node2 gg]$ ./ggsci
GGSCI (node2) 1> info all
Program Status Group Lag Time Since Chkpt
MANAGER STOPPED
GGSCI (node2) 2> edit params mgr
PORT 7809
GGSCI(node2) 3> start manager
Manager started.
4. 配置源端複製隊列
GGSCI (node1) 1> add extract ext1, tranlog, begin now
EXTRACT added.
GGSCI (node1) 2> add exttrail /u01/ogg/dirdat/lt, extract ext1
EXTTRAIL added.
GGSCI (node1) 3> edit params ext1
extract ext1
userid ogg@source, password ogg
rmthost node1, mgrport 7809
rmttrail /u01/ogg/dirdat/lt
ddl include mapped objname sender.*;
table sender.*;
GGSCI (node1) 6> info all
Program Status Group Lag Time Since Chkpt
MANAGER STOPPED
EXTRACT STOPPED EXT1 00:00:00 00:10:55
5. 配置目標端同步隊列
5.1 在目標端添加checkpoint表
[oracle@node2 ogg]$ ./ggsci
GGSCI (node2) 1> edit params ./GLOBAL –添加下列內容
GGSCHEMA ggate
CHECKPOINTTABLE ggate.checkpoint
GGSCI (node2) 2> dblogin userid ogg password ogg
Successfully logged into database.
GGSCI (node2) 3> add checkpointtable ogg.checkpoint
Successfully created checkpoint table GGATE.CHECKPOINT.
5.2 建立同步隊列
GGSCI (node2) 4> add replicat rep1, exttrail /u01/ogg/dirdat/lt, checkpointtable ogg.checkpoint
REPLICAT added.
GGSCI (node2) 5> edit params rep1
replicat rep1
ASSUMETARGETDEFS
userid ogg,password ogg
discardfile /u01/ogg/dirdat/rep1_discard.txt, append, megabytes 10
DDL
map ss.*, target rr.*;
6. 開啟同步
--源端
GGSCI (node1) 14> start extract ext1
GGSCI (nod1) 15> info all
Program Status Group Lag Time Since Chkpt
MANAGER RUNNING
EXTRACT RUNNING EXT1 00:00:00 00:00:05
--目標端
GGSCI (node2) 7> start replicat rep1
GGSCI (node2) 8> info all
Program Status Group Lag Time Since Chkpt
MANAGER RUNNING
REPLICAT RUNNING REP1 00:00:00 00:00:00
GoldenGate單向表DML同步
Oracle GoldenGate 系列:Extract 進程的恢複原理
Oracle GoldenGate安裝配置
Oracle goldengate的OGG-01004 OGG-1296錯誤
Oracle GoldenGate快速入門教程:基本概念和配置
搭建一個Oracle到Oracle的GoldenGate雙向複製環境