Cài đặt và cấu hình Oracle GoldenGate để đồng bộ dữ liệu


1. Tạo thư mục cài đặt cho Golden Gate :

* Nguồn:

root$node1>su – oracle
oracle$node1> mkdir /u01/app/oracle/product/gg

* Đích:

root$node2>su – oracle
oracle$node2> mkdir /u01/app/oracle/product/gg

2. Giải nén Golden Gate :

* Nguồn:

oracle$node1> unzip V 26188-01.zip

–>Sau khi đã giải nén:

Archive: V26188-01.zip
                inflating: fbo_ggs_Linux_x86_ora11g_32bit.tar
                inflating: OGG_WinUnix_Rel_Notes_11.1.1.1.0.pdf
                inflating: README.txt

oracle$node1> tar -xvf fbo_ggs_Linux*
oracle$node1>ls
--> Hiển ra cấu trúc file và thư mục như sau:
bcpfmt.tpl                 ddl_ora10upCommon.sql     demo_ora_insert.sql                 marker_setup.sql
bcrypt.txt                 ddl_ora11.sql             demo_ora_lob_create.sql             marker_status.sql
cfg                        ddl_ora9.sql              demo_ora_misc.sql                   mgr
chkpt_ora_create.sql       ddl_oracle.tpl            demo_ora_pk_befores_create.sql      notices.txt
cobgen                     ddl_pin.sql               demo_ora_pk_befores_insert.sql
OGG_WinUnix_Rel_Notes_11.1.1.1.0.pdf
convchk                    ddl_purgeRecyclebin.sql   demo_ora_pk_befores_updates.sql     params.sql
db2cntl.tpl                ddl_remove.sql            dirjar                              prvtclkm.plb
ddl_access.tpl             ddl_session1.sql          emsclnt                             pw_agent_util.sh
ddl_cleartrace.sql         ddl_session.sql           extract                             README.txt
ddlcob                     ddl_setup.sql             fbo_ggs_Linux_x86_ora11g_32bit.tar  remove_seq.sql
ddl_db2_os390.tpl          ddl_sqlmx.tpl             freeBSD.txt                         replicat
ddl_db2.tpl                ddl_status.sql            ggMessage.dat                       reverse
ddl_ddl2file.sql           ddl_staymetadata_off.sql  ggsci                               role_setup.sql
ddl_disable.sql            ddl_staymetadata_on.sql   help.txt                            sequence.sql
ddl_enable.sql             ddl_sybase.tpl            jagent.sh                           server
ddl_filter.sql             ddl_tandem.tpl            keygen                              sqlldr.tpl
ddlgen                     ddl_tracelevel.sql        libicudata.so.38                    tcperrs
ddl_informix.tpl           ddl_trace_off.sql         libicui18n.so.38                    UserExitExamples
ddl_mss.tpl                ddl_trace_on.sql          libicuuc.so.38                      usrdecs.h
ddl_mysql.tpl              defgen                    libxerces-c.so.28                   V26188-01.zip
ddl_nopurgeRecyclebin.sql  demo_more_ora_create.sql  libxml2.txt                         zlib.txt
ddl_nssql.tpl              demo_more_ora_insert.sql  logdump
ddl_ora10.sql              demo_ora_create.sql       marker_remove.sql

* Đích: (làm tương tự như trên)

3. Tạo các Subdirectory cho Golden Gate:
* Nguồn:
oracle$node1>cd /u01/app/oracle/product/gg
 oracle$node1 gg>./ggsci
 Oracle GoldenGate Command Interpreter for Oracle
 Version 11.1.1.1 OGGCORE_11.1.1_PLATFORMS_110421.2040
 Linux, x86, 32bit (optimized), Oracle 11g on Apr 21 2011 22:38:06
 Copyright (C) 1995, 2011, Oracle and/or its affiliates. All rights reserved.
 GGSCI (london.localdomain) 1> CREATE SUBDIRS
 Creating subdirectories under current directory /home/oracle/golden_gate
 Parameter files /home/oracle/golden_gate/dirprm: created
 Report files /home/oracle/golden_gate/dirrpt: created
 Checkpoint files /home/oracle/golden_gate/dirchk: created
 Process status files /home/oracle/golden_gate/dirpcs: created
 SQL script files /home/oracle/golden_gate/dirsql: created
 Database definitions files /home/oracle/golden_gate/dirdef: created
 Extract data files /home/oracle/golden_gate/dirdat: created
 Temporary files /home/oracle/golden_gate/dirtmp: created
 Veridata files /home/oracle/golden_gate/dirver: created
 Veridata Lock files /home/oracle/golden_gate/dirver/lock: created
 Veridata Out-Of-Sync files /home/oracle/golden_gate/dirver/oos: created
 Veridata Out-Of-Sync XML files /home/oracle/golden_gate/dirver/oosxml: created
 Veridata Parameter files /home/oracle/golden_gate/dirver/params: created
 Veridata Report files /home/oracle/golden_gate/dirver/report: created
 Veridata Status files /home/oracle/golden_gate/dirver/status: created
 Veridata Trace files /home/oracle/golden_gate/dirver/trace: created
 Stdout files /home/oracle/golden_gate/dirout: created

* Đích:(làm tương tự như trên)
4. Kiểm tra thông tin cấu hình trong file tnsname xem đã đúng chưa:
*Nguồn :
oracle$node1 > cat $ORACLE_HOME/network/admin/tnsnames.ora
 ASM = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL=TCP)
(HOST=G-Software)(PORT=1521)) )
 (CONNECT_DATA = (SERVICE_NAME=ASM) )
)

CMS = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL=TCP)
(HOST=G-Software)(PORT=1521)) )
(CONNECT_DATA = (SERVICE_NAME=ORCL) )
)

* Đích: (làm tương tự)
5. Để đồng bộ dữ liệu đã commit từ online redo log files trên database oracle nguồn, 
database phải được cấu hình supplemental logging trên primary key. Lúc này , 
mọi table phải có Primary key hoặc là goldengate sẽ gom tất cả các cột lại 
để xác định chỉ có 1 bản ghi giống nhau. Điều này sẽ cải thiện việc ghi dữ liệu xuống 
redo logs và subsequent trail files.
* Nguồn:
oracle$node1 gg>sqlplus / as sysdba
 SQL> alter database add supplemental log data (primary key) colums;
 Database altered.
 SQL> alter system switch logfile;
 System altered.

6. Tạo user để quản lý GoldenGate trên cả source và target:
* Nguồn:
oracle$node1 gg> sqlplus / as sysdba
 SQL> create user gg_admin identified by gg_admin
 User created.
 SQL> grant dba to gg_admin;
 Grant successed.
* Đích:(Làm tương tự)

7. Tạo user để extract dữ liệu trên source và user replicat dữ liệu trên target:
* Nguồn:
SQL> create user myuser identified by 123 quota unlimited on users;
 SQL> grant connect, resource to myuser;
 Tạo một bảng để ví dụ:
 SQL>conn myuser/123
 SQL>create table mytable(id number,firstname varchar2(100), birthday date);
 Table created.
 SQL> alter table mytable add constraint mytable_pk primary key(id);
 Table altered.
 SQL> insert into mytable values(1,'Linda','01-Jan-1999');
 SQL> insert into mytable values(2,'James','02-Mar-1960');
 SQL> insert into mytable values(3,'Maggy','05-Apr-2002');
 SQL> insert into mytable values(4,'Dylan','07-Jun-1985');
 SQL> commit;

* Đích:
SQL> create user myremuser identified by 123 quota unlimited on users;
 SQL> grant connect, resource to myremuser;
 SQL> create table mytable(id number, firstname varchar2(100), birthday date);
 SQL> alter table mytable add constraint mytable_pk primary key (id);

8. Cấu hình golden gate để thêm supplemental log data vào bảng nguồn:
* Nguồn:
oracle$node1 gg> ./ggsci
 GGSCI (node1) 1> dblogin userid gg_admin password gg_admin
 Successfully logged into database.
 GGSCI (node1) 2>add trandata myuser.mytable
 Logging of supplemental redo data enabled for table myuser.mytable.
 GGSCI (node1) 3> info trandata myuser.*
 Logging of supplemental redo log data is enabled for table myuser.mytable

9. Tiếp theo, chúng ta sẽ cấu hình manager process trên cả source và target:
* Nguồn:
oracle$node1 gg>./ggsci
 GGSCI (node1) 1> edit params mgr
 ấn phím i thêm dòng này vào:
PORT 7809
PURGEOLDEXTRACTS ./dirdat/sa*, USECHECKPOINTS, MINKEEPHOURS 2

sau đó ấn ESC rồi ân phím :wq (gõ cả dấu hai chấm nhé)
 GGSCI (node1) 3>start mgr
 Manager started.
 GGSCI (node1) 4>info mgr
 Manager is running (IP port node1.7809).

* Đích : (Làm tương tự)
10. Cấu hình Extract process trên source:
GGSCI (node1) 1> edit params ext01
 EXTRACT EXT01
 SETENV (ORACLE_SID = test)
 USERID gg_admin, PASSWORD gg_admin
 EXTTRAIL ./dirdat/sa
 TRANLOGOPTIONS ASMUSER SYS@ASM, ASMPASSWORD password
 TABLE MYUSER.MYTABLE;
 GGSCI (node1) 1> add extract ext01, tranlog, begin now, threads 1
 GGSCI (node1) 2> add exttrail ./dirdat/sa, extract ext01, megabytes 50
 GGSCI (node1) 3> start extract ext01
 Sending START request to MANAGER ...
 EXTRACT EXT01 starting
 GGSCI (node1) 4> info all

Nếu xảy ra lỗi, kiểm tra logfile: /u01/app/oracle/product/gg/ggserr.log
11. Cấu hình Datapump processs trên source:
GGSCI (node) 1>edit params epmp01
 EXTRACT EPMP01
 PASSTHRU
 RMTHOST 192.168.1.120, MGRPORT 7809
 RMTTRAIL ./dirdat/ta
 TABLE MYUSER.MYTABLE;
 GGSCI (node1) 2> add extract epmp01, exttrailsource ./dirdat/sa, begin now
 EXTRACT added.
 GGSCI (node1) 3> add rmttrail ./dirdat/ta, extract epmp01
 EXTRAIL added.
 GGSCI (node1) 4> start extract epmp01
 Sending START request to MANAGER ...
 EXTRACT EPMP01 starting
 GGSCI (node1) 5> info all

12. Initial Dataload sử dụng phương thức Direct load:
* Nguồn:
GGSCI (node1) 1> add extract eini01, sourceistable
GGSCI (node1) 2> info extract *, tasks

GGSCI (node1) 3> edit params eini01
 EXTRACT EINI01
 USERID gg_admin, PASSWORD gg_admin
 RMTHOST 192.168.1.120, MGRPORT 7809
 RMTTASK REPLICAT, GROUP RINI01
 TABLE MYUSER.MYTABLE;

* Đích:
GGSCI (node2) 1>add replicat rini01, specialrun
 GGSCI (node2) 2>info replicat *, TASKS

GGSCI (node2) 3> edit params RINI01
 REPLICAT RINI01
 ASSUMETARGETDEFS
 USERID gg_admin, PASSWORD gg_admin
 DISCARDFILE ./dirrpt/RINI01.dsc, PURGE
 MAP MYUSER.*, TARGET MYREMUSER.*;
 Chạy Initial Load Process trên source:
 GGSCI (node1) 1> start extract eini01

13. Kiểm tra kết quả:
* Đích:
Nhớ là trước khi đồng bộ nó không có một bản ghi nào
 oracle$node1 ggs> sqlplus myremuser/123@test
 SQL> select * from mytable;
     ID FIRSTNAME                      BIRTHDAY
---------- ------------------------------ ---------
         1 Linda                          01-JAN-99
         2 James                          02-MAR-60
         3 Maggy                          05-APR-02
         4 Dylan                          07-JUN-85

Chúc các bạn thành công!

Gửi phản hồi

Please log in using one of these methods to post your comment:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s