項目 | 環境1 | 環境2 | 環境2 |
---|---|---|---|
操做系統 | CentOS release 6.5 | CentOS release 6.5 | win7 |
IP地址 | 130.9.46.19 | 130.9.46.220 | 130.9.46.110 |
數據庫及版本 | ORACLE 11.2.0.1.0 | ORACLE 11.2.0.1.0 | ORACLE 11.2.0.1.0 |
數據庫字符集 | ZHS16GBK | ZHS16GBK | ZHS16GBK |
ORACLE SID | ora11 | ora11 | ora11 |
Goldengate用戶 | ogg | ogg | ogg |
Goldengate 版本 | 122020 | 122020 | 122020 |
備註html
查看linux系統版本:cat /etc/redhat-release
java
查看數據庫字符集:``linux
oracle默認密碼sql
system默認:manager
shell
sys默認:change_on_install as sysdba
數據庫
linux系統若是沒有圖形界面的話,咱們採用靜默安裝的方式windows
# 建立目錄
[root@VTSXN-SHKF java]# mkdir -p /u01/install/ogg/
# 上傳解壓介質
[root@VTSXN-SHKF java]# unzip 123014_fbo_ggs_Linux_x64_shiphome.zip /u01/install/ogg/
# 進入目錄
[root@VTSXN-SHKF java]# cd /u01/install/ogg/fbo_ggs_Linux_x64_shiphome/Disk1/
# 建立goldengate目錄
[root@VTSXN-SHKF Disk1]# mkdir -p /u01/ogg/12.3.0/oggcore_1/
# root受權
[root@VTSXN-SHKF Disk1]# chown oracle.oinstall -R /u01/ogg/
# 啓動OUI安裝程序
[root@VTSXN-SHKF Disk1]# ./runInstaller
複製代碼
若是說出現monitor報錯緩存
[oracle@VTSXN-SHKF Disk1]$ ./runInstaller Starting Oracle Universal Installer... Checking Temp space: must be greater than 120 MB. Actual 34100 MB Passed Checking swap space: must be greater than 150 MB. Actual 8015 MB Passed Checking monitor: must be configured to display at least 256 colors >>> Could not execute auto check for display colors using command /usr/bin/xdpyinfo. Check if the DISPLAY variable is set. Failed <<<< Some requirement checks failed. You must fulfill these requirements before continuing with the installation, 複製代碼
解決方法bash
[oracle@VTSXN-SHKF Disk1]$ su
Password:
[root@VTSXN-SHKF Disk1]# export DISPLAY=:0.0
[root@VTSXN-SHKF Disk1]# xhost +
access control disabled, clients can connect from any host
[root@VTSXN-SHKF Disk1]# su oracle
複製代碼
# 編輯響應文件
[root@VTSXN-SHKF Disk1]# vi /u01/install/ogg/fbo_ggs_Linux_x64_shiphome/Disk1/response/oggcore.rsp
opyright(c) Oracle Corporation 2017. All rights reserved. ##
## ##
## Specify values for the variables listed below to customize ##
## your installation. ##
## ##
## Each variable is associated with a comment. The comment ##
## can help to populate the variables with the appropriate ##
## values. ##
## ##
## IMPORTANT NOTE: This file should be secured to have read ##
## permission only by the oracle user or an administrator who ##
## own this installation to protect any sensitive input values. ##
## ##
####################################################################
#-------------------------------------------------------------------------------
# Do not change the following system generated value.
#-------------------------------------------------------------------------------
oracle.install.responseFileVersion=/oracle/install/rspfmt_ogginstall_response_schema_v12_1_2
################################################################################
## ##
## Oracle GoldenGate installation option and details ##
## ##
################################################################################
#-------------------------------------------------------------------------------
# Specify the installation option.
# Specify ORA12c for installing Oracle GoldenGate for Oracle Database 12c and
# ORA11g for installing Oracle GoldenGate for Oracle Database 11g
#-------------------------------------------------------------------------------
INSTALL_OPTION=ORA11g
#-------------------------------------------------------------------------------
# Specify a location to install Oracle GoldenGate
#-------------------------------------------------------------------------------
SOFTWARE_LOCATION=/u01/ogg/12.3.0/oggcore_1/
#-------------------------------------------------------------------------------
# Specify true to start the manager after installation.
#-------------------------------------------------------------------------------
START_MANAGER=
#-------------------------------------------------------------------------------
# Specify a free port within the valid range for the manager process.
# Required only if START_MANAGER is true.
#-------------------------------------------------------------------------------
MANAGER_PORT=
#-------------------------------------------------------------------------------
# Specify the location of the Oracle Database.
# Required only if START_MANAGER is true.
#-------------------------------------------------------------------------------
DATABASE_LOCATION=/home/app/oracle/product/11.2.0/dbhome_1
################################################################################
## ##
## Specify details to Create inventory for Oracle installs ##
## Required only for the first Oracle product install on a system. ##
## ##
################################################################################
#-------------------------------------------------------------------------------
# Specify the location which holds the install inventory files.
# This is an optional parameter if installing on
# Windows based Operating System.
#-------------------------------------------------------------------------------
INVENTORY_LOCATION=/u01/app/oraInventory
#-------------------------------------------------------------------------------
# Unix group to be set for the inventory directory.
# This parameter is not applicable if installing on
# Windows based Operating System.
#-------------------------------------------------------------------------------
UNIX_GROUP_NAME=dba
複製代碼
請注意:UNIX_GROUP_NAME的內容經過id oracle就行查看服務器
[root@VTSXN-SHKF Disk1]# id oracle uid=501(oracle) gid=5001(dba) groups=5001(dba)
進行安裝
[oracle@VTSXN-SHKF Disk1]$ ./runInstaller -silent -responseFile /u01/install/ogg/fbo_ggs_Linux_x64_shiphome/Disk1/response/oggcore.rsp
Starting Oracle Universal Installer...
Checking Temp space: must be greater than 120 MB. Actual 32717 MB Passed
Checking swap space: must be greater than 150 MB. Actual 8015 MB Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2019-06-06_01-53-09PM. Please wait ...
複製代碼
環境變量配置
[root@VTSXN-SHKF ~]# cat /etc/profile
# /etc/profile
# System wide environment and startup programs, for login setup
# Functions and aliases go in /etc/bashrc
# It's NOT a good idea to change this file unless you know what you
# are doing. It's much better to create a custom.sh shell script in
# /etc/profile.d/ to make custom changes to your environment, as this
# will prevent the need for merging in future updates.
pathmunge () {
case ":${PATH}:" in
*:"$1":*)
;;
*)
if [ "$2" = "after" ] ; then
PATH=$PATH:$1
else
PATH=$1:$PATH
fi
esac
}
if [ -x /usr/bin/id ]; then
if [ -z "$EUID" ]; then
# ksh workaround
EUID=`id -u`
UID=`id -ru`
fi
USER="`id -un`"
LOGNAME=$USER
MAIL="/var/spool/mail/$USER"
fi
# Path manipulation
if [ "$EUID" = "0" ]; then
pathmunge /sbin
pathmunge /usr/sbin
pathmunge /usr/local/sbin
else
pathmunge /usr/local/sbin after
pathmunge /usr/sbin after
pathmunge /sbin after
fi
HOSTNAME=`/bin/hostname 2>/dev/null`
HISTSIZE=1000
if [ "$HISTCONTROL" = "ignorespace" ] ; then
export HISTCONTROL=ignoreboth
else
export HISTCONTROL=ignoredups
fi
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL
# By default, we want umask to get set. This sets it for login shell
# Current threshold for system reserved uid/gids is 200
# You could check uidgid reservation validity in
# /usr/share/doc/setup-*/uidgid file
if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
umask 002
else
umask 022
fi
for i in /etc/profile.d/*.sh ; do
if [ -r "$i" ]; then
if [ "${-#*i}" != "$-" ]; then
. "$i"
else
. "$i" >/dev/null 2>&1
fi
fi
done
unset i
unset -f pathmunge
JAVA_HOME=/usr/java/jdk1.8
ORACLE_HOME=/home/app/oracle/product/11.2.0/dbhome_1
ORACLE_SID=ora11
LD_LIBRARY_PATH=$ORACLE_HOME/lib
PATH=$JAVA_HOME/bin:$ORACLE_HOME/bin:$PATH
CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar
export PATH JAVA_HOME CLASSPATH ORACLE_HOME ORACLE_SID LD_LIBRARY_PATH
複製代碼
create user ogg identified by ogg;
grant all privileges to ogg;
複製代碼
[oracle@VTSXN-SHKF oggcore_1]$ ./ggsci
Oracle GoldenGate Command Interpreter for Oracle
Version 12.3.0.1.4 OGGCORE_12.3.0.1.0_PLATFORMS_180415.0359_FBO
Linux, x64, 64bit (optimized), Oracle 11g on Apr 15 2018 21:16:09
Operating system character set identified as UTF-8.
Copyright (C) 1995, 2018, Oracle and/or its affiliates. All rights reserved.
複製代碼
若是使用ogg登陸出現如下問題:
GGSCI (VTSXN-SHKF) 2> dblogin userid ogg,password ogg 2019-06-06 10:39:44 WARNING OGG-25108 Failed to set the Oracle session tag: ORA-04060: insufficient privileges to execute DBMS_STREAMS.SET_TAG ORA-06512: at "SYS.DBMS_STREAMS", line 16 ORA-06512: at line 1. ERROR: Unable to connect to database using user ogg. Ensure that the necessary privileges are granted to the user. OCI Error ORA (status = 942-ORA-00942: table or view does not exist 複製代碼
採起作法
grant dba to ogg;
grant all privileges to ogg;
複製代碼
WARNING OGG-01988 Could not find schematrandata function in source database: failed to find function.
輸入archive log list出現:ORA-01507: ??????
SQL> connect sys/admin as sysdba
Connected.
SQL> archive log list;
ORA-01507: ??????
SQL> shutdown immediate;
ORA-01507: ??????
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.
Total System Global Area 1620115456 bytes
Fixed Size 2213816 bytes
Variable Size 1291847752 bytes
Database Buffers 318767104 bytes
Redo Buffers 7286784 bytes
Database mounted.
SQL> alter database open;
Database altered.
SQL> shutdown;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 1620115456 bytes
Fixed Size 2213816 bytes
Variable Size 1291847752 bytes
Database Buffers 318767104 bytes
Redo Buffers 7286784 bytes
Database mounted.
Database opened.
SQL> archive log list;
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 1973
Current log sequence 1975
複製代碼
若是要讓OGG支持DDL操做,還須要額外運行幾個腳本,這些腳本是OGG帶的而不是ORACLE帶的,在OGG的安裝目錄均可以找到,若是在OGG的安裝目錄登陸數據庫,能夠直接@加腳本的名字,源端與目標端都須要運行,以下:
*** Could not open error log ggserr.log (error 13,Permission denied) ***
修改ggserr.log文件的組
chown oracle:dba ggserr.log
[oggcore_1]# ./ggsci ./ggsci: error while loading shared libraries: libnnz11.so: cannot open shared object file: No such file or directory
export LD_LIBRARY_PATH=/home/app/oracle/product/11.2.0/dbhome_1/lib
oracle默認sys密碼
connect sys/change_on_install as sysdba
查看數據庫字符集
SELECT * from nls_database_parameters
歸檔日誌爆了
[oracle@VTSXN-SHKF dbhome_1]$ sqlplus /nolog
SQL*Plus: Release 11.2.0.1.0 Production on Sat Aug 10 15:34:25 2019
Copyright (c) 1982, 2009, Oracle. All rights reserved.
SQL> connect /as sysdba
Connected to an idle instance.
SQL> create pfile from spfile
2 ;
File created.
SQL> startup mount;
ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance
ORACLE instance started.
Total System Global Area 1620115456 bytes
Fixed Size 2213816 bytes
Variable Size 1342179400 bytes
Database Buffers 268435456 bytes
Redo Buffers 7286784 bytes
Database mounted.
SQL> show parameter db_recovery_file_dest_size;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest_size big integer 3882M
SQL> select * from v$flash_recovery_area_usage f where f.file_type='ARCHIVE_LOG';
no rows selected
SQL> SELECT * FROM V$FLASH_RECOVERY_AREA_USAGE;
FILE_TYPE PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE
-------------------- ------------------ -------------------------
NUMBER_OF_FILES
---------------
CONTROL FILE 0 0
0
REDO LOG 0 0
0
ARCHIVED LOG 99.01 0
96
FILE_TYPE PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE
-------------------- ------------------ -------------------------
NUMBER_OF_FILES
---------------
BACKUP PIECE 0 0
0
IMAGE COPY 0 0
0
FLASHBACK LOG 0 0
0
FILE_TYPE PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE
-------------------- ------------------ -------------------------
NUMBER_OF_FILES
---------------
FOREIGN ARCHIVED LOG 0 0
0
7 rows selected.
SQL> select * from v$flash_recovery_area_usage f where f.file_type='ARCHIVED_LOG'
2 ;
no rows selected
SQL> select * from v$flash_recovery_area_usage f where f.file_type='ARCHIVED LOG';
FILE_TYPE PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE
-------------------- ------------------ -------------------------
NUMBER_OF_FILES
---------------
ARCHIVED LOG 99.01 0
96
複製代碼
傻瓜式的安裝,一步步進行操做便可
ogg相關進程簡單介紹
Oracle GoldenGate主要由以下組件組成
● Extract
● Data pump
● Trails
● Collector
● Replicat
● Manager
Oracle GoldenGate 數據複製過程以下:
利用抽取進程(Extract Process)在源端數據庫中讀取Online Redo Log或者Archive Log,而後進行解析,只提取其中數據的變化信息,好比DML操做——增、刪、改操做,將抽取的信息轉換爲GoldenGate自定義的中間格式存放在隊列文件(trail file)中。再利用傳輸進程將隊列文件(trail file)經過TCP/IP傳送到目標系統。
目標端有一個進程叫Server Collector,這個進程接受了從源端傳輸過來的數據變化信息,把信息緩存到GoldenGate 隊列文件(trail file)當中,等待目標端的複製進程讀取數據。
GoldenGate 複製進程(replicat process)從隊列文件(trail file)中讀取數據變化信息,並建立對應的SQL語句,經過數據庫的本地接口執行,提交到目標端數據庫,提交成功後更新本身的檢查點,記錄已經完成複製的位置,數據的複製過程最終完成。
注意:
GGSCI>EDIT PARAMS ./GLOBALS
在文件中添加如下內容(可選):
GGSCI>encrypt password ogg encryptkey default
Encrypted password: AACAAAAAAAAAAADAHBLDCCIIOIRFNEPB
記錄這個密文,將在如下進程參數的配置中使用。
添加表級的trandata能夠理解爲須要將哪些用戶的哪些表和目標庫同步,其實也是添加表級的supplemental log,可是隻有上文打開的minimal supplemental log後,這個才生效。
使用OGG用戶從OGG登陸源端數據庫。
GGSCI (dbdream) 2> DBLOGIN USERID ogg, PASSWORD ogg
Successfully logged into database.
複製代碼
源端添加表級TRANDATA,本案例使用EMP_OGG和DEPT_OGG表。
GGSCI (dbdream) 3> add trandata scott.emp_ogg
Logging of supplemental redo data enabled for table SCOTT.EMP_OGG.
GGSCI (dbdream) 4> add trandata scott.dept_ogg
Logging of supplemental redo data enabled for table SCOTT.DEPT_OGG.
複製代碼
成功添加表級TRANDATA後,能夠經過INFO命令查看哪些表被添加了TRANDATA.
GGSCI (dbdream) 5> INFO TRANDATA scott.*
Logging of supplemental redo log data is disabled for table SCOTT.BONUS.
Logging of supplemental redo log data is disabled for table SCOTT.DEPT.
Logging of supplemental redo log data is enabled for table SCOTT.DEPT_OGG.
Columns supplementally logged for table SCOTT.DEPT_OGG: DEPTNO.
Logging of supplemental redo log data is disabled for table SCOTT.EMP.
Logging of supplemental redo log data is enabled for table SCOTT.EMP_OGG.
Columns supplementally logged for table SCOTT.EMP_OGG: SAL, HIREDATE, MGR, COMM, DEPTNO, ENAME, EMPNO, JOB.
Logging of supplemental redo log data is disabled for table SCOTT.SALGRADE.
複製代碼
源端:
GGSCI (dbdream) 8> EDIT PARAMS MGR
# 加三行內容
PORT 7809
PURGEOLDEXTRACTS /ogg/dirdat, USECHECKPOINTS
userid ogg, password AACAAAAAAAAAAADAHBLDCCIIOIRFNEPB, ENCRYPTKY default
複製代碼
目標端:
GGSCI (stream) 2> EDIT PARAMS MGR
# 加入如下三行內容
PORT 7809
PURGEOLDEXTRACTS /ogg/dirdat, USECHECKPOINTS
userid ogg, password AACAAAAAAAAAAADAHBLDCCIIOIRFNEPB, ENCRYPTKY default
複製代碼
參數說明:
PORT 7809
:OGG管理進程監控端口。
PURGEOLDEXTRACTS
:清除不須要的trail文件。
/ogg/dirdat
:trail文件存放位置。
USECHECKPOINTS
:使用檢查點隊列。
password
:以前加密過的密碼
本實驗只用到上述參數,MGR其餘參數詳見下表,摘自OGG官方文檔。
Manager parameters: General
名字 | 用途 |
---|---|
CHARSET | Specifies a multibyte character set for the process to usinstead of the operating system default when reading theparameter file. |
COMMENT | Allows insertion of comments in a parameter file. |
SOURCEDB | Specifies a data source name as part of the login |
USERID | Provides login information for Manager when it needs toaccess the database. |
SYSLOG | Filters the types of Oracle GoldenGate messages that arewritten to the system logs. |
Manager parameters: Port management
名字 | 用途 |
---|---|
DYNAMICPORTLIST | Specifies the ports that Collector can dynamically allocate. |
PORT | Establishes the TCP/IP port number on which Manager listensfor requests. |
Manager parameters: Process management
名字 | 用途 |
---|---|
AUTORESTART | Specifies processes to be restarted by Manager after a |
AUTOSTART | Specifies processes to be started when Manager starts. |
BOOTDELAYMINUTES | Determines how long after system boot time Manager delaysuntil performing main processing activities. This parametersupports Windows. |
UPREPORT | Determines how often process heartbeat messages are reported. |
Manager parameters: Event management
名字 | 用途 |
---|---|
DOWNCRITICAL | Reports processes that stopped gracefully or abnormally. |
DOWNREPORT | Controls the frequency for reporting stopped processes. |
LAGCRITICAL | Specifies a lag threshold that is considered critical andgenerates a warning to the error log. |
LAGINFO | Specifies a lag threshold at which an informational messageis reported to the error log. |
LAGREPORT | Sets an interval for reporting lag time to the error log. |
Manager parameters: Maintenance
名字 | 用途 |
---|---|
CHECKMINUTES | Determines how often Manager cycles through maintenance |
PURGEDDLHISTORY | Purges rows from the Oracle DDL history table when they areno longer needed. |
PURGEDDLHISTORYALT | Purges rows from the alternate Oracle DDL history table thatkeeps track of partition IDs that are associated with atable ID. |
PURGEMARKERHISTORY | Purges Oracle marker table rows that are no longer needed. |
PURGEOLDEXTRACTS | Purges trail data that is no longer needed. |
PURGEOLDTASKS | Purges Extract and Replicat tasks after a specified periodof time. |
STARTUPVALIDATIONDELAY[CSECS] | Sets a delay time after which Manager checks that processesare still running after startup. |
配置完MGR管理進程後,就能夠啓動MGR管理進程(源端和目標端都須要啓動)。
GGSCI (dbdream) 9> start mgr
Manager started.
複製代碼
GGSCI (dbdream) 9> start mgr
Manager started.
能夠經過INFO命令查看進程的狀態(最好每次啓動時在兩端都查看下)。
GGSCI (dbdream) 10> info mgr
Manager is running (IP port dbdream.7809).
源端的測試表有數據,而目標端的測試表只有結構,沒有數據,因此須要初始化目標端的數據,所謂初始化,就是讓目標端的數據和源端的數據在這個時間點是如出一轍的,因此初始化工做並不須要必定使用OGG,也可使用EXP、EXPDP、SQLLOAD等其餘工具,本文主要介紹如何使用OGG進行數據初始化,下面在源端配置捕獲進程EINI_1。
GGSCI (dbdream) 11> ADD EXTRACT EINI_1, SOURCEISTABLE
EXTRACT added.
複製代碼
查看EINI_1進程狀態。
GGSCI (dbdream) 12> INFO EXTRACT *, TASKS
EXTRACT EINI_1 Initialized 2012-11-13 22:45 Status STOPPED
Checkpoint Lag Not Available
Log Read Checkpoint Not Available
First Record Record 0
Task SOURCEISTABLE
複製代碼
因爲只是添加了捕獲進程EINI_1,尚未進行配置和啓動這個進程,因此如今的狀態是STOPPED狀態。
源端編輯捕獲進程EINI_1。
GGSCI (dbdream) 13> EDIT PARAMS EINI_1
複製代碼
–加入如下內容
EXTRACT EINI_1
SETENV (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
USERID ogg, PASSWORD ogg
RMTHOST 192.168.249.99, MGRPORT 7809
RMTTASK REPLICAT, GROUP RINI_1
TABLE scott.EMP_OGG;
TABLE scott.DEPT_OGG;
複製代碼
參數介紹:
EXTRACT EINI_1
:說明這是EXTRACT進程,名字是EINI_1
SETENV
:環境變量,必定要設置和數據庫字符集同樣,不然可能會亂碼
USERID
:數據庫OGG用戶
PASSWORD
:數據庫用戶OGG的密碼
RMTHOST
:目標端地址,若是在/etc/hosts文件裏已經設置解析,能夠寫主機名
MGRPORT
:目標端MGR管理進程監聽的端口
RMTTASK REPLICAT
:目標端REPLICAT應用進程的組和名字
TABLE
:源端要初始化數據的表的名字
編輯好捕獲進程EINI_1後,還須要在目標端配置REPLICAT應用進程,名字要和源端的捕獲進程EINI_1裏面RMTTASK REPLICAT參數配置的同樣,也就是還須要在目標端配置RMTTASK REPLICAT RINI_1。
目標端:
GGSCI (stream) 7> EDIT PARAMS RINI_1
–加入如下內容
REPLICAT RINI_1
SETENV (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
ASSUMETARGETDEFS
USERID ogg, PASSWORD ogg
DISCARDFILE /ogg/dirrpt/RINIaa.dsc, PURGE
MAP scott., TARGET scott.;
參數介紹:
REPLICAT RINI_1:說明這是REPLICAT應用進程,名字叫RINI_1
SETENV:語言變量,同捕獲進程EINI_1
ASSUMETARGETDEFS:告訴OGG目標端和源端須要同步的表的結構徹底一致,不須要OGG去檢查表的結構,包括表名、字段名、字段類型、字段長度等,若是目標端和源端同步的表的結構不同,須要使用SOURCEDEFS參數,詳見OGG官方文檔。
USERID、PASSWORD:同捕獲進程EINI_1參數介紹
DISCARDFILE:錯誤信息存放位置及命名規則
MAP:源端捕獲的表的名字
TARGET:目標端同步的表的名字,能夠不在同一SCHEMA。
配置好目標端的應用進程RINI_1後,就能夠啓動源端的捕獲進程進行捕獲數據了,而目標端的應用進程RINI_1不須要手動去啓動,也就是說目標端RINI_1進程不須要管。
GGSCI (dbdream) 14> START EXTRACT EINI_1
Sending START request to MANAGER …
EXTRACT EINI_1 starting
啓動源端的捕獲進程EINI_1後,正常狀況下(若是配置沒問題),源端的數據已經傳送到目標端了,能夠經過VIEW命令查看源端捕獲進程EINI_1的工做狀態。
GGSCI (dbdream) 11> VIEW REPORT EINI_1
–在最後部分會看到
Output to RINI_1:
From Table SCOTT.EMP_OGG:
# inserts: 14
# updates: 0
# deletes: 0
# discards: 0
From Table SCOTT.DEPT_OGG:
# inserts: 4
# updates: 0
# deletes: 0
# discards: 0
REDO Log Statistics
Bytes parsed 0
Bytes output 3056
若是配置正確,會看到上面的日誌,日誌會告訴你在目標端SCOTT.EMP_OGG表INSERT了14條記錄,SCOTT.DEPT_OGG表INSERT了4條記錄。若是在上面日誌的最後部分出現ERROR,就須要去檢查OGG的安裝目錄下的ggserr.log日誌,這個日誌至關於數據庫的告警日誌。
登陸目標端數據庫,查看初始化是否成功。
初始化以後,上文提到的初始化進程(EINI_一、RINI_1)自動中止,由於一般狀況下初始化數據工做只會作一次。能夠經過INFO命令查看進程的狀態。
源端:
GGSCI (dbdream) 9> INFO EXTRACT EINI_1
EXTRACT EINI_1 Last Started 2012-11-14 02:03 Status STOPPED
Checkpoint Lag Not Available
Log Read Checkpoint Table SCOTT.DEPT_OGG
2012-11-14 02:03:22 Record 4
Task SOURCEISTABLE
目標端:
GGSCI (stream) 1> INFO REPLICAT RINI_1
REPLICAT RINI_1 Initialized 2012-11-14 20:30 Status STOPPED
Checkpoint Lag 00:00:00 (updated 03:16:37 ago)
Log Read Checkpoint Not Available
Task SPECIALRUN
目的:爲了讓ogg在網絡中斷、服務器宕機、斷電的狀況下可以正確斷電續傳
源端和目標端都需配置。
GGSCI (stream) 2> EDIT PARAMS ./GLOBALS
–加入如下信息
CHECKPOINTTABLE ogg.ggschkpt
這就告訴OGG檢查點存放到OGG用戶下的GGSCHKPT表中,可是還須要使用OGG用戶登陸數據庫,建立檢查點表,此時須要退出OGG,從新登陸,不然可能會遇到下面的錯誤。
GGSCI (stream) 4> ADD CHECKPOINTTABLE
ERROR: Missing checkpoint table specification.
退出OGG,從新登陸,並使用OGG用戶登陸數據庫,源端和目標端都須要執行。
GGSCI (stream) 5> exit
[ogg@stream ogg]$ ./ggsci
Oracle GoldenGate Command Interpreter for Oracle
Version 11.2.1.0.1 OGGCORE_11.2.1.0.1_PLATFORMS_120423.0230_FBO
Linux, x64, 64bit (optimized), Oracle 11g on Apr 23 2012 08:32:14
Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.
GGSCI (stream) 1> dblogin userid ogg,password ogg
Successfully logged into database.
只須要執行ADD CHECKPOINTTABLE命令,OGG會自動在ORACLE的OGG用戶下建立檢查點,源端和目標端都須要執行。
GGSCI (stream) 2> ADD CHECKPOINTTABLE
No checkpoint table specified, using GLOBALS specification (ogg.ggschkpt)…
Successfully created checkpoint table ogg.ggschkpt.
此時用OGG登陸數據庫,就能夠看到OGG建立的檢查點表。
下面在源端配置捕獲進程。
GGSCI (dbdream) 10> EDIT PARAMS EORA_1
–加入如下內容
EXTRACT EORA_1
SETENV (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
USERID ogg, PASSWORD ogg
EXTTRAIL /ogg/dirdat/aa
TABLE scott.EMP_OGG;
參數介紹:
以上參數基本都在上文提過,這裏不在重複,說下EXTTRAIL參數,EXTTRAIL參數是TRAIL隊列文件存放的路徑和命名格式,TRAIL文件能夠理解爲存放捕獲進程捕獲的日誌文件。此時還須要將捕獲進程EORA_1添加到OGG。
GGSCI (dbdream) 11> ADD EXTRACT EORA_1, TRANLOG, BEGIN NOW
EXTRACT added.
GGSCI (dbdream) 12> ADD EXTTRAIL /ogg/dirdat/aa, EXTRACT EORA_1, MEGABYTES 5
EXTTRAIL added.
上面的兩個命名告訴OGG,捕獲進程從啓動起開始捕獲,捕獲數據保存到TRAIL文件,及TRAIL文件的路徑、命名格式,單個TRAIL文件最大大小。
如今就能夠啓動源端捕獲進程EORA_1了。
GGSCI (dbdream) 13> START EXTRACT EORA_1
Sending START request to MANAGER …
EXTRACT EORA_1 starting
使用INFO命令查看EORA_1進程是不是RUNNING狀態。
GGSCI (dbdream) 14> INFO EXTRACT EORA_1
EXTRACT EORA_1 Last Started 2012-11-14 02:06 Status RUNNING
Checkpoint Lag 00:00:58 (updated 00:00:08 ago)
Log Read Checkpoint Oracle Redo Logs
2012-11-14 02:05:58 Seqno 19, RBA 38097424
SCN 0.0 (0)
不配置傳輸進程,OGG會經過EXTRACT進程傳輸TRAIL隊列文件,可是和檢查點隊列同樣,爲了保證斷點續傳ORACLE建議配置PUMP傳輸進程。
GGSCI (dbdream) 15> EDIT PARAMS PORA_1
–加入如下內容
EXTRACT PORA_1
SETENV (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
PASSTHRU
RMTHOST 192.168.249.99, MGRPORT 7809
RMTTRAIL /ogg/dirdat/pa
TABLE scott.EMP_OGG;
TABLE scott.DEPT_OGG;
添加PUMP進程PORA_1到OGG,並指定本地的TRAIL文件。
GGSCI (dbdream) 16> ADD EXTRACT PORA_1, EXTTRAILSOURCE /ogg/dirdat/aa
EXTRACT added.
此時用INFO命令能夠看到PUMP進程PORA_1的狀態。
GGSCI (dbdream) 17> INFO EXTRACT PORA_1
EXTRACT PORA_1 Initialized 2012-11-14 02:10 Status STOPPED
Checkpoint Lag 00:00:00 (updated 00:00:10 ago)
Log Read Checkpoint File /ogg/dirdat/aa000000
First Record RBA 0
爲PUMP進程PORA_1指定將本地TRAIL文件傳輸到目標端後保存成目標端TRAIL文件的名字。
GGSCI (dbdream) 18> ADD RMTTRAIL /ogg/dirdat/pa, EXTRACT PORA_1, MEGABYTES 5
RMTTRAIL added.
下面就能夠啓動PUMP進程PORA_1了,啓動後看下PORA_1的狀態。
GGSCI (dbdream) 19> START EXTRACT PORA_1
Sending START request to MANAGER …
EXTRACT PORA_1 starting
–查看狀態
GGSCI (dbdream) 20> INFO EXTRACT PORA_1
EXTRACT PORA_1 Last Started 2012-11-14 02:11 Status RUNNING
Checkpoint Lag 00:00:00 (updated 00:00:03 ago)
Log Read Checkpoint File /ogg/dirdat/aa000000
First Record RBA 0
此時在目標端/ogg/dirdat/目錄下,就會看到由源端PUMP進程PORA_1傳輸過來的TRAIL文件。
[ogg@stream dirdat]$ pwd
/ogg/dirdat
[ogg@stream dirdat]$ ls
pa000000
[ogg@stream dirdat]$
GGSCI (stream) 5> ADD REPLICAT RORA_1, SPECIALRUN
REPLICAT added.
目標端編輯RORA_1進程。
GGSCI (stream) 7> EDIT PARAMS RORA_1
–加入如下內容
REPLICAT RORA_1
SETENV (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
USERID ogg, PASSWORD ogg
HANDLECOLLISIONS
ASSUMETARGETDEFS
DISCARDFILE /ogg/dirrpt/RORA_aa.DSC, PURGE
MAP scott.emp_ogg, TARGET scott.emp_ogg;
目標端編輯同步進程RORA_1後,就能夠啓動RORA_1進程。
GGSCI (stream) 5> START REPLICAT RORA_1
Sending START request to MANAGER …
REPLICAT RORA_1 starting
啓動RORA_1進程後,查看進程狀態。
GGSCI (stream) 6> INFO REPLICAT RORA_1=
REPLICAT RORA_1 Last Started 2012-11-15 00:08 Status RUNNING
Checkpoint Lag 00:00:00 (updated 00:00:05 ago)
Log Read Checkpoint File /ogg/dirdat/pa000000
First Record RBA 0
ogg的安裝過程至關麻煩,可能會遇到各類各樣的問題,出現這些問題時,多去網上搜索官方文檔,查看官網介紹,可以更快解決本身的問題。
國內各個博客存在說明不清晰,操做遺漏等各類問題,不可輕信
以爲不錯,請點個贊吧