如何安裝使用goldengate
一.環境:
OS:linux CentOS_Final_5.5(64bit)
DB:oracle11gR2(單機模式)
goldengate: ggs_Linux_x64_ora11g_64bit_v11_1_1_0_0_078.tar
網絡:局域網,源端IP 192.168.128.100 鏡像端IP 192.168.128.101
二.目標:
實現源端到鏡像端的數據同步(單向)
三.源端數據庫實施:
1數據庫準備
1.1開啓數據庫歸檔日誌
查看數據庫當前日誌模式
archive log list;
更改爲歸檔模式
shutdown immediate;
start mount;
alter database archivelog;
alter database open;
開啓第二歸檔路徑(可選)
alter system set log_archive_dest_2=’location=/archive_2OPTIONAL’ scope=spfile;
alter system archive log start tolog_archive_dest_2;
查看第二歸檔日誌是否生效(重啓數據庫)
show parameter archive;
1.2開啓supplemental logging和force logging
查看當前數據庫是否開啓supplementallogging
select SUPPLEMENTAL_LOG_DATA_MIN fromv$database;
開啓數據庫級別的最小supplementallogging
alter database add supplemental log data;
查看當前數據庫forcelogging的狀態
select force_logging from v$database;
開啓forcelogging
alter database force logging;
1.3創建goldengate管理用戶,並賦予相關權限
創建管理用戶的表空間
create tablespace tbs_ggmgr datafiel ‘/u01/app/oracle/goldengate/ggmgr.dbf’size 50M autoextend on;
創建goldengate管理用戶
create user ggmgr identified by oracledefault tablespace tbs_ggmgr temporary tablespace TEMP quota unlimited ontbs_ggmgr;
賦予ggmgr相關權限(想簡單的話,可以賦予DBA權限)
grant CONNECT,RESOURCE to ggmgr;
grant CREATE SESSION,ALTER SESSION toggmgr;
grant SELECT ANY DICTIONARY,SELECT ANYTABLE to ggmgr;
grant CREATE TABLE,ALTER ANY TABLE to ggmgr;
1.4創建測試用戶和表
create user test identified by test;
conn test/test;
create table test(
stuid number(8),
stuname varchar2(20),
stupasswd varchar2(20)
);
insert into test values(1,’test1’,’test1);
insert into test values(2,’test2’,’test2’);
commit;
2goldengate安裝及參數設置
2.1設置goldengate運行所需的環境變量
編輯oracle的home目錄下.bash_profile文件
vi .bash_profile
添加如下內容
exportLD_LIBRARY_PATH=$ORACLE_BASE/goldengate:$ORACLE_HOME/lib
2.2創建goldengate安裝目錄
通常將goldengate安裝在ORACLE_BASE目錄下
mkdir –p /u01/app/oracle/goldengate/
2.3解壓並初始化goldengate
將goldengate壓縮文件解壓到goldengate得安裝目錄
tar vxf ggs_Linux_x64_ora11g_64bit_v11_1_1_0_0_078.tar
執行./ggsci進入GGSCI
創建目錄結構
create subdirs --只在第一次啓動執行
2.4 添加trandata
在GGSCI中
dbloign userid ggmgr,password oracle
對要進行復制的表添加表級supplemental logging
add trandata test.*
查看
info trandata test.*
2.5添加並配置mgr進程
edit param mgr
添加如下內容
port 7809
purgeoldextracts ./dirdat/*,usecheckpoints, minkeepfiles 20
2.6添加並配置extract進程
添加一個extract進程
add extract exts100,tranlog,begin now
給extract進程指定trail文件
add exttrail ./dirdat/s1,extract exts100,megabytes 100
配置extract的參數
edit param exts100
添加如下內容(開啓第二歸檔的情況下)
extract exts100
userid ggmgr,password oracle
tranlogoptions archivedlogonly
tranlogoptions altarchivelogdest instanceorcl /archive_2
tranlogoptions altarchivedlogformat%t_%s_%r.dbf
gettruncates
reportcount every 30 minutes,rate
discardfile./dirrpt/exts100.dsc,APPEND,MEGABYTES 100
exttail ./dirdat/s1
table TEST.TEST;
2.7添加並配置pump進程
add extract dps100 exttrailsource./dirdat/s1
add rmttrail ./dirdat/t1,extract dps100
配置pump進程參數
edit param dps100
extract dps100
userid ggmgr,password oracle
rmthost 192.168.128.101,mgrport7809,compress
numfiles 5000
DYNAMICRESOLUTION
rmttrail ./dirdat/t1
table TEST.TEST;
2.8檢查進程是否能夠成功啓動
start <進程名>
start mgr
start exts100
start dps100
查看進程狀態
info all
四.鏡像端數據庫的初始化
1.從源端數據庫導出相關的數據和表結構(需要相關權限,可以使用有DBA權限的用戶)
exp username/password file=test_1203013.dmpowner=test triggers=n indexes=n log=test_120313.log;
2.將導出的數據文件傳到鏡像端
可以使用ftp
3.在鏡像端創建和源端對應的用戶和表空間,要保持表空間的名字一致
create user test identified by test;
4.在鏡像端導入數據文件(需要相關權限,可以使用有DBA權限的用戶)
imp username/password file=test_120313.dmpfromuser=test touser=test log=test_120313.log;
查看數據是否導入成功
五.鏡像端數據庫實施
1數據庫準備
創建管理用戶的表空間
create tablespace tbs_ggmgr datafiel ‘/u01/app/oracle/goldengate/ggmgr.dbf’size 50M autoextend on;
創建goldengate管理用戶
create user ggmgr identified by oracledefault tablespace tbs_ggmgr temporary tablespace TEMP quota unlimited ontbs_ggmgr;
賦予ggmgr相關權限(想簡單的話,可以賦予DBA權限)
grant CONNECT,RESOURCE to ggmgr;
grant CREATE SESSION,ALTER SESSION toggmgr;
grant SELECT ANY DICTIONARY,SELECT ANYTABLE to ggmgr;
grant CREATE TABLE to ggmgr;
2goldengate安裝及參數設置
2.1.設置goldengate運行所需的環境變量
編輯oracle的home目錄下.bash_profile文件
vi .bash_profile
添加如下內容
exportLD_LIBRARY_PATH=$ORACLE_BASE/goldengate:$ORACLE_HOME/lib
2.2.創建goldengate安裝目錄
通常將goldengate安裝在ORACLE_BASE目錄下
mkdir –p /u01/app/oracle/goldengate/
2.3.解壓並初始化goldengate
將goldengate壓縮文件解壓到goldengate得安裝目錄
tar vxf ggs_Linux_x64_ora11g_64bit_v11_1_1_0_0_078.tar
執行./ggsci進入GGSCI
創建目錄結構
create subdirs --只在第一次啓動執行
2.4編輯全局參數文件
dblogin userid ggmgr,password oracle
edit params ./GLOBALS
添加如下內容
checkpointtable ggmgr.ogg_checkpointtable
添加檢查點表
add checkpointtableggmgr.ogg_checkpointtable
2.5.添加並配置mgr進程
edit param mgr
添加如下內容
port 7809
(這裏沒有加入清除trail文件的設置)
2.6.添加並配置replicat進程
add replicat rept101,exttrail ./dirdat/t1
編輯replicat進程的參數文件
edit param rept101
添加如下內容
replicat rept101
userid ggmgr,password oracle
ASSUMETARGETDEFS
DISCARDFILE ./dirrpt/rept101.dsc,PURGE
MAP TEST.TEST, TARGET TEST.TEST;
2.7檢查進程能否成功啓動
start <進程名>
start mgr
start rept101
查看進程狀態
info all
六.測試
1.在源端數據庫插入數據
insert into test values(3,’test3,’test3’);
commit;
2.生成歸檔日誌
alter system switch logfile;
3.查看鏡像端數據庫
select * from test;