Golden Gate là công cụ tái tạo cái mà cho phép tái tạo các câu lệnh DDL và DML
Chúng ta có tài liệu chỉ rõ từng bước từng bước cài đặt oracle golden gate
Hy vọng sẽ giúp được bạn cài đặt được oracle golden gate
Source Server name – 192.168.3.***
Database name – db001 (11.2.0.3.0)
Golden Gate Version – 11.2.1.0.1
Destination Server name – 192.168.3.***
Database name – db002 (11.2.0.3.0)
Golden Gate Version – 11.2.1.0.1
Trước khi bắt đầu thì 2 database phải được tinh chỉnh như sau:
- các database phải chạy ở chế độ archive log mode.
SQL> shutdown immediate SQL> startup mount SQL> alter database archivelog; SQL> alter database open; SQL> select name,log_mode from v$database;SQL> ALTER DATABASE FORCE LOGGING; |
- Các bảng tái tạo đều phải có khóa chính KEY.
- Chế độ Recycle bin phải tắt turned off.
SQL> alter system set recyclebin=off scope=spfile; |
- Supplemental log phải được kích hoạt
SQL> alter database add supplemental log data; |
Với oracle 12c:
SQL > alter system set enable_goldengate_replication = true scope=both;
Ngoài ra tải các phiên bản cũ hơn của Golden Gate tại:
http://www.sscs.co.th/index.php?option=com_content&view=article&id=377&Itemid=1001
Lưu ý nhờ mở firewall port 7809 tuy nhiên không được nên để full cho riêng IP
Chúng ta bắt đầu:
1) Tạo Schema GGOWNER
SQL> create user ggowner identified by ggowner default tablespace users temporary tablespace temp;
Cho phép các quyền
SQL> grant connect,resource,unlimited tablespace to ggowner;
SQL> grant execute on utl_file to ggowner;
Tương tự tạo schema ggtest để kiểm tra tái tạo
2) Chạy các mã tập tin mã lệnh để tạo tái tạo ddl:
Lưu ý các tập tin này chạy trong thư mục của oracle golden gate
SQL> @$GGATE/marker_setup.sql SQL> @$GGATE/ddl_setup.sql SQL> @$GGATE/role_setup.sql SQL> grant GGS_GGSUSER_ROLE to ggowner; SQL> @$GGATE/ddl_enable.sql |
Lưu ý nên chạy tương tự ở cả 2 database.
Ngoài ra để database hỗ trợ sequence tái tạo, ta cần chạy thêm các lệnh sau, lưu ý vẫn ở cả 2 database
SQL>@sequence.sql
SQL> grant execute on ggowner.updateSequence to ggowner;
Tham khảo: http://orax.blog.sohu.com/248906759.html
3) Chạy golden gate:
ggsci -> thực thi
Đăng nhập, và thử một lệnh flush sequence
GGSCI (db001) 1> dblogin userid ggowner password ggowner
GGSCI (db001) 1> FLUSH SEQUENCE ggtest.sq*
4) Tạo các thư mục mặc định để chạy….
GGSCI (db001) 1> create subdirs
Parameter files /u002/app/gg/dirprm: already exists
Report files /u002/app/gg/dirrpt: created
Checkpoint files /u002/app/gg/dirchk: created
Process status files /u002/app/gg/dirpcs: created
SQL script files /u002/app/gg/dirsql: created
Database definitions files /u002/app/gg/dirdef: created
Extract data files /u002/app/gg/dirdat: created
Temporary files /u002/app/gg/dirtmp: created
Stdout files /u002/app/gg/dirout: created
5 ) Kiểm tra trạng thái
GGSCI (db001) 3> info all
6) Chỉnh globals và manager:
GGSCI (db001) 4> edit params .\GLOBALS
GGSCHEMA ggowner
Lưu tập tin.
GGSCI (db001) 5> edit param mgr
port 7809
Lưu tập tin.
7) chạy Mgr
GGSCI (db001) 6> start MANAGER
Manager started.
GGSCI (db001) 7> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
======================
8) Cài đặt extract và pump trên máy SOURCE
GGSCI (db001) 8> ADD EXTRACT ext1, TRANLOG, BEGIN NOW
EXTRACT added.
Lưu ý trong window và linux đều nên thực thi tại thư mục của golden gate
với window .\ là ở thư mục gốc, với linux thì là ./
GGSCI (db001) 9> ADD EXTTRAIL .\dirdat\se, EXTRACT EXT1
EXTTRAIL added.
GGSCI (db001) 10> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
EXTRACT STOPPED EXT1 00:00:00 00:02:40
GGSCI (db001) 11> edit param EXT1
extract EXT1
SETENV (ORACLE_SID="db001")
SETENV (NLS_LANG=AMERICAN_AMERICA.AL32UTF8)
userid ggowner, password ggowner
exttrail .\dirdat\se
discardfile .\dirrpt/ext1.dsc, append
ddl include all
TABLE GGTEST.*;
Lưu tập tin
GGSCI (db001) 12> ADD EXTRACT EPUMP, EXTTRAILSOURCE .\dirdat\se, begin now
EXTRACT added.
GGSCI (db001) 13> ADD RMTTRAIL .\dirdat\es, EXTRACT EPUMP
RMTTRAIL added.
GGSCI (gg1) 14> edit param EPUMP
EXTRACT EPUMP
SETENV (ORACLE_SID="db001")
SETENV (NLS_LANG=AMERICAN_AMERICA.AL32UTF8)
userid ggowner, password ggowner
RMTHOST 192.168.3.***, MGRPORT 7809
RMTTRAIL .\dirdat\es
PASSTHRU
TABLE ggtest.*;
Lưu tập tin
GGSCI (db001) 15> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
EXTRACT STOPPED EPUMP 00:00:00 00:00:15
EXTRACT STOPPED EXT1 00:00:00 00:24:56
GGSCI (db001) 17> start EXT1
Sending START request to MANAGER …
REPLICAT EXT1 starting
GGSCI (db001) 18> start EPUMP
Sending START request to MANAGER …
REPLICAT EPUMP starting
GGSCI (db001) 5> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
EXTRACT RUNNING EPUMP 00:00:00 00:00:08
EXTRACT RUNNING EXT1 00:00:00 00:00:06
9) cài đặt trên máy đích server ( 192.168.3.***)
Cũng cần cài đặt golden gate như source
Cũng cần tạo các dir default
GGSCI (db002) 1> create subdirs
Creating subdirectories under current directory …
Parameter files /u002/app/gg/dirprm: already exists
Report files /u002/app/gg/dirrpt: created
Checkpoint files /u002/app/gg/dirchk: created
Process status files /u002/app/gg/dirpcs: created
SQL script files /u002/app/gg/dirsql: created
Database definitions files /u002/app/gg/dirdef: created
Extract data files /u002/app/gg/dirdat: created
Temporary files /u002/app/gg/dirtmp: created
Stdout files /u002/app/gg/dirout: created
GGSCI (db002) 2> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER STOPPED
10) Cài đặt GLOBALS và MANAGER
GGSCI (db002) 3> edit params .\GLOBALS
GGSCHEMA ggowner
CHECKPOINTTABLE ggowner .CHECK_POINT_TABLE
lưu tập tin
GGSCI (db002) 4> edit param mgr
port 7809
Lưu tập tin.
GGSCI (db002) 5> start MANAGER
Manager started.
GGSCI (db002) 6> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
11) Thêm checkpoint.
GGSCI (db002) 8> dblogin USERID ggowner password ggowner
Successfully logged into database.
GGSCI (db002) 10> add checkpointtable CHECK_POINT_TABLE
Successfully created checkpoint table CHECK_POINT_TABLE.
12) Tạo tiến trình tái tạo replicate
GGSCI (db002)15> ADD REPLICAT REP1, EXTTRAIL .\dirdat\es, CHECKPOINTTABLE ggowner .CHECK_POINT_TABLE
REPLICAT added.
GGSCI (db002)16> alter REPLICAT REP1, begin now
REPLICAT altered.
GGSCI (db002)17> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
REPLICAT STOPPED REP1 00:00:00 00:00:05
GGSCI (db002)18> edit param REP1
REPLICAT REP1
SETENV (ORACLE_SID="db002")
SETENV (NLS_LANG=AMERICAN_AMERICA.AL32UTF8)
USERID ggowner, PASSWORD ggowner
ASSUMETARGETDEFS
DISCARDFILE .\dirrpt\REP1.dsc, APPEND
DDLOPTIONS REPORT
HANDLECOLLISIONS
APPLYNOOPUPDATES
DDL
MAP ggtest.*, TARGET ggtest.*;
lưu tập tin
GGSCI (db002)19> start REP1
Sending START request to MANAGER …
REPLICAT REP1 starting
GGSCI (db002) 20> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
REPLICAT RUNNING REP1 00:00:00 00:00:09
13) KIỂM TRA KẾT QUẢ – DDL Testing.
12:04:59 SQL> select INSTANCE_NAME,HOST_NAME from v$instance;
INSTANCE_NAME HOST_NAME
—————- —————————————————————-
PROD gg1
12:05:00 SQL> select * from tab;
no rows selected
12:05:10 SQL> create table t ( a number primary key, b varchar2(10))
12:05:25 2 ;
Table created.
12:05:26 SQL> select * from tab;
TNAME TABTYPE CLUSTERID
—————————— ——- ———-
T TABLE
12:05:29 SQL>
16:05:25 SQL> select INSTANCE_NAME,HOST_NAME from v$instance;
INSTANCE_NAME HOST_NAME
—————- —————————————————————-
TPROD gg2
16:05:28 SQL> select * from tab;
no rows selected
16:06:05 SQL> select * from tab;
no rows selected
16:06:17 SQL> select * from tab;
TNAME TABTYPE CLUSTERID
—————————— ——- ———-
T TABLE
Tài liệu:
https://www.pythian.com/blog/oracle-goldengate-installation-part-1/
http://khurramlogix.blogspot.com/2013/06/steps-by-step-install-oracle-goldengate.html
http://santoshgorte.blogspot.com/2012/11/golden-gate-step-by-steps-configuration.html