linux下同步库的创建
A. 安裝需求
(1)內(nèi)存要求
GoldenGate對操作系統(tǒng)內(nèi)存的需求主要取決于Extract和Replicat進程數(shù),一般建議>2G。
(2)DISK空間需求
由于要數(shù)據(jù)庫必須設(shè)置為歸檔模式,所以要求至少保存7天以上的日志,建議剩余空間在10G~100G之間。
(3)對于RAC環(huán)境
GoldenGate的相關(guān)軟件和工作目錄需要配置在shared disk環(huán)境中,從而保證對所有node都是可用的,從任何一個node都可以啟動GoldenGate的進程,當(dāng)其中一個node出現(xiàn)異常時,可以在剩余的node啟動而無須修改任何配置參數(shù)。否則如果運行在單個node上的話,需要將剩余node中的歸檔日志通過一定的技術(shù)共享出來并加載到GoldenGate運行節(jié)點。
對于RAC環(huán)境,GoldenGate要求所有node必須保持時鐘同步,同時必須保持所有RAC node和運行extract進程的node節(jié)點保持時鐘同步。因為GoldenGate會比較本地的系統(tǒng)時間和commit的時間戳。所以不能忽略這個設(shè)置。否則可能導(dǎo)致數(shù)據(jù)復(fù)制的紊亂。
本次測試環(huán)境:
環(huán)境:RHEL5U4—64
Oracle:10.2.0.1.0-64,全部都開啟了歸檔,字符集一致
用戶:scott,表結(jié)構(gòu)都在,target表沒有數(shù)據(jù),源表有數(shù)據(jù)
Ogg也是64位的最新版本;
B. 安裝過程
1、 oracle用戶登錄
#su - oracle
2、 在/u01目錄下創(chuàng)建oraclegoldengate目錄
$ cd ?/u01/app/oracle
$ mkdir ?/u01/app/oracle/ogg11
3、 將解壓好的goldengate文件解壓到ogg11目錄中
$ cd ?/u01/app/oracle/ogg11
$ tar ?xvf ?/soft/fbo_ggs_Linux_x64_ora10g_64bit.tar ? //將其它目錄下的壓縮包中的文件,解壓到當(dāng)前目錄下
-------------------------------------------------------------------------------------------
上述操作可以概括為,圖形化取得,解壓的最終ogg安裝文件夾,放到一個位置,改變文件夾的擁有者為oracle.oinstall 就可以了。 這樣oracle用戶就可以操作了。。。
-------------------------------------------------------------------------------------------
4、 配置oracle用戶的環(huán)境變量.Bash_profile文件
TMP=/tmp;export TMP
TMPDIR=$TMP;export TMPDIR
ORACLE_BASE=/u01/app/oracle;export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1;export ORACLE_HOME
ORACLE_SID=ogg1;export ORACLE_SID
LD_LIBRARY_PATH=/ogg:$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
PATH=/ogg:$ORACLE_HOME/bin:$PATH; export PATH
注意:
除了紅字字體,皆為oracle用戶的原先環(huán)境變量,紅色字體是后加的,給ogg使用的環(huán)境變量。
紫色的為數(shù)據(jù)庫的sid ,這里是源端的數(shù)據(jù)庫SID,為了方便識別數(shù)據(jù)庫source端和target端。
5、 執(zhí)行ggsci命令(通常是在OGG11文件夾下執(zhí)行)
$ ggsci
GGSCI (localhost.localdomain) 1>create subdirs ? ?//創(chuàng)建初始化文件
GGSCI (localhost.localdomain) 1>quit ? ? ?//退出,安裝完成
C. 配置數(shù)據(jù)庫(2個數(shù)據(jù)庫都要配)
1、 創(chuàng)建ogg數(shù)據(jù)庫用戶(2個數(shù)據(jù)庫)
這里我們使用默認的SCOTT用戶所以不用創(chuàng)建用戶;
2、 Sql> @demo_ora_create ? 創(chuàng)建試驗表(在兩個scott用戶下執(zhí)行這腳本,各生成2個空表)
3、 Sql> @demo_ora_insert ? ?在源端導(dǎo)入數(shù)據(jù)(目標端不用執(zhí)行此腳本)
先進入/ogg目錄 ,然后再sqlplus,否則要在腳本前加上@/ogg/xxx.sql
4、 數(shù)據(jù)庫開啟redo額外信息功能(源端配置)
sys> alter database add supplemental log data; 將額外的信息(除了rowid之外的日志信息)添加到redo日志里面。
sys> alter system switch logfile; ?切換日志文件
sys> select supplemental_log_data_min from v$database; 檢查是否開啟(ogg必須開啟,ogg依靠這個額外信息來進行工作)
sys>exit
5、 Ogg配置(源)
Ggsci> dblogin userid system,password oracle ?登陸到oracle數(shù)據(jù)庫
*Ggsci> add trandatascott.tcustmer指定scott用戶schema下tcustmer表的額外信息添加到redo日志中,這樣ogg就能捕獲分析傳到遠端,否則數(shù)據(jù)庫開啟的附加信息也沒有意義,下同;
*Ggsci> add trandata scott.tcustord ? 指定scott用戶schema下tcustord表的額外信息添加到redo日志中
小提示: 如果所有表都要同步,可以使用SCOTT.*來表示哦^.^
添加完成之后可以看到完成狀態(tài)
GGSCI (ogg1) 4> 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 disabled for table SCOTT.EMP.
Logging of supplemental redo log data is disabled for table SCOTT.SALGRADE.
Logging of supplemental redo log data is enabled for table SCOTT.TCUSTMER
Logging of supplemental redo log data is enabled for table SCOTT.TCUSTORD
a、配置ogg管理進程(2個端都要執(zhí)行)
Ggsci> edit params mgr ?à ?
port 7809 ? ?編輯端口7809(默認)
GGSCI> START MGR ? ? ? ? ? ? ? ? ? ? ?啟動管理進程
GGSCI> INFO MGR ? ? ? ? ? ? ? ? ? ? ? 查看管理進程
b、增加extract進程(source端,初始化進程)
Ggsci> add extract einikk, sourceistable ?
增加抽取進程einixx,eini為規(guī)定格式XX隨便寫,sourceistable表示一次全部抽取出來,是初始化操作
c、編輯extract進程
?GGSCI> edit params einikk ?為這個抽取組增加一個配置文件(大小寫皆可)
extract einikk
userid system, password "111111"
rmthost 192.168.1.31, mgrport 7809
rmttask replicat,group rinikk
table scott.*;
d、 增加replicat進程(target端配置,接收進程)
Ggsci> add replicat rinikk, specialrun
e、 編輯replication進程(target端)
Ggsci> edit params rinikk
replicat rinikk
assumetargetdefs
userid system, password 111111
discardfile ./dirrpt/rinikk.dsc, purge
map scott.*, target scott.*;
f、 啟動replication進程(target端)
Ggsci> start replicat rinikk
g、 啟動extract進程(source端)
Ggsci> start extract einikk
注意:初始化進程,在info all里面是看不到進程狀態(tài)的,可以使用view report einikk來觀察初始化進程的執(zhí)行情況。當(dāng)然了,這個是需要等待一會的,立刻看是沒有東西的。
1、 新增extract進程(source端)
Ggsci>add extract eorakk, ?tranlog, ?begin now, ?threads 1
--ora表示聯(lián)機,tranlog表示 從日志抓取,begin now 現(xiàn)在就抓取,threads 1 表示只有1個實例源
2、 編輯extract進程參數(shù)文件(source端)
Ggsci> edit params eorakk
extract ?eorakk
userid system, password 111111
rmthost 192.168.1.31, mgrport 7809
rmttrail ./dirdat/kk這個是遠端的trail位置,不是本地
table scott.*;
3、 新增遠程trail文件(source端)
Ggsci> add rmttrail ./dirdat/kk, ?extract eorakk, ?megabytes 5 ?
./dirdat/kk遠程的trail文件路徑(需要執(zhí)行命令的時候,在/ogg目錄下)
extract eorakk 代表遠程trail文件對應(yīng)的本地extract進程
megabytes 5 代表每個文件大小為5M,不指定就是10M
4、 Start extract eorakk process(source node)
Ggsci> start extract eorakk
Tips: when start eorakk extract process ,wait a moment, you will see the rmttrail file from rmt_computer(command: ls /ogg/dirdat/). And there is not anything before start extract eorakk process ^.^
5、 Edit global params(target node)
Ggsci> edit ?params ?./GLOBALS ? ? ? ? ? ? ? ? ? 全局英文一定要大寫,否則必定出錯!
checkpointtable system.scottchkpttable如果權(quán)限足夠,最好放在對應(yīng)的用戶下
6、 Connect oracle from ggsci(target node)
Ggsci> dblogin userid system, password 111111連接數(shù)據(jù)庫
Ggsci> add checkpointtable增加專用檢查點表
7、 Add replicat rorakk process(target node)
Ggsci> add replicat rorakk, ?exttrail ?./dirdat/kk
exttrail ?./dirdat/kk指定本進程的本地的接收trail文件為 ./dirdat/kk
8、 Edit replicat rorakk params(target node)
Ggsci> edit params rorakk
replicat rorakk
userid system, password 111111
handlecollisions當(dāng)目標端已有數(shù)據(jù)時,略過重復(fù)數(shù)據(jù)錯誤
assumetargetdefs說明源和目標的表結(jié)構(gòu)完全相同
discardfile ./dirrpt/rorakk.dsc, purge
map scott.*, target scott.*;
9、 Start replicat rorakk process(target node)
Ggsci> start replicat rorakk
至此,ogg單向DML復(fù)制配置完成,去源端數(shù)據(jù)庫修改一下,再提交,然后再來target端看看數(shù)據(jù)庫里面的數(shù)據(jù)是不是被同步了,很簡單吧^o^
進階設(shè)置:
1、 Source端配置
配置MGR
Ggsci> edit params mgr ? ? ? ? ? ? ?source端和target端都要配置
port 7809
dynamicportlist 7800-8000當(dāng)端口無效的時候,自動切換其他端口。
purgeoldextracts./dirdat/*, usecheckpoints, minkeepdays 7自動清理過期(7天)的trail文件
autorestart extract *, waitminutes 2, retries 5
-- 指定Extract/Replicat進程的自動重啟(每次嘗試時間間隔為2秒,最多嘗試5次)
--會有警告出現(xiàn),但是沒有關(guān)系,以上設(shè)置正常可用;
啟動MGR
Ggsci> start mgr
新增extract進程
Ggsci> add extract eorakk, ?tranlog, ?begin now, ?threads 1
編輯Extract文件
Ggsci> edit extract eorakk
extract ?eorakk
userid system, password 111111
exttrail ./dirdat/dd
table scott.*;
增加本地trail文件
ggsci> add extrail ./dirdat/dd, extract eorakk ? ?本地trail文件名和遠程的不要一致,可能會導(dǎo)致異常
增加PUMP進程
Ggsci>add extract pumpkk, exttrailsource ./dirdat/dd, begin now
增加指定遠程trail文件位置
Ggsci> add rmttrail ./dirdat/kk, extract pumpkk
編輯pump進程參數(shù)
Ggsci> edit params pumpkk
extract pumpkk
userid system, password 111111
rmthost 192.168.1.31, mgrport 7809遠程主機信息
rmttrail ./dirdat/kk遠程trail
table scott.*; ? ? ? ? ? ? ? ? ? ? ? ? ? ?遠程scheme及對象
2、 Target端配置
配置MGR
Ggsci> edit params mgr ? ? ? ? ? ? ?source端和target端都要配置
port 7809
dynamicportlist 7800-8000當(dāng)端口無效的時候,自動切換其他端口。
purgeoldextracts./dirdat/*, usecheckpoints, minkeepdays 7自動清理過期(7天)的trail文件autorestart extract *, waitminutes 2, retries 5
-- 指定Extract/Replicat進程的自動重啟(每次嘗試時間間隔為2秒,最多嘗試5次)
--會有警告出現(xiàn),但是沒有關(guān)系,以上設(shè)置正常可用;
啟動MGR
Ggsci> start mgr
Edit global params(target node)
Ggsci> edit ?params ?./GLOBALS ? ? ? ? ? ? ? ? ? 全局英文一定要大寫,否則必定出錯!
checkpointtable ?system.scottchkpttable如果權(quán)限足夠,最好放在對應(yīng)的用戶下
Connect oracle from ggsci(target node)
Ggsci> dblogin userid system, password 111111連接數(shù)據(jù)庫
Ggsci> add checkpointtable增加專用檢查點表
Add replicat rorakk process(target node)
Ggsci> add replicat rorakk, ?exttrail ?./dirdat/kk ,begin now, checkpointtable ?system.checkpoint
exttrail ?./dirdat/kk ?指定本進程的本地的接收trail文件為 ./dirdat/kk
編輯參數(shù)文件
Ggsci> edit params rorakk
replicat rorakk
userid system, password 111111
handlecollisions當(dāng)目標端已有數(shù)據(jù)時,略過重復(fù)數(shù)據(jù)錯誤
assumetargetdefs說明源和目標的表結(jié)構(gòu)完全相同
discardfile ./dirrpt/rorakk.dsc, purge
map scott.*, target scott.*;
啟動接收進程
Ggsci> start replicat rorakk
轉(zhuǎn)載于:https://blog.51cto.com/lfansh/1332084
總結(jié)
以上是生活随笔為你收集整理的linux下同步库的创建的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 以感恩的心离职,站好最后一班岗
- 下一篇: 比特币、莱特币来一发?