You are on page 1of 46

Tìm hiểu về GoldenGate

Giới thiệu

- Tiến trình Extract thực hiện extract dữ liệu từ source database ra trail files
nằm trên chính server source database
- Tiến trình Data Pumps thực hiện đẩy dữ liệu trail files từ server source
database sang server destination database
- Tiến trình Replicate thực hiện khôi phục tái tạo lại dữ liệu trên destination
database từ trail files được data pumps đẩy sang

Hướng dẫn cài đặt

Chúng ta sẽ tiến hành cài đặt đồng bộ Goldengate thực tế cho 2 database sau:
Source Target
Hostname evs-app07 ins-tt1-pps
Database name selfcare dbv445

Chuẩn bị database
a. Bật Force Logging
- Kiểm tra FORCE_LOGGING đã được bật chưa ( trên DB nguồn)
SQL> SELECT force_logging FROM v$database;
FORCE_LOGGING
-------------
NO
- Nếu chưa bật thực hiện bật FORCE_LOGGING như sau:
SQL> ALTER DATABASE FORCE LOGGING;
Database altered.
- Sau đó kiểm tra lại xem FORCE_LOGGING đã bật thành công chưa
SQL> SELECT force_logging FROM v$database;
FORCE_LOGGING
-------------
YES
- Sau đó thực hiện switch redo log file để chắc chắn rằng thay đổi sẽ được
apply cho tất cả subsequence redo
SQL> ALTER SYSTEM SWITCH LOGFILE;
System altered.
Đúng ra phải làm như sau:
Step 1: Enable Archive log trên Primary
Primary database is in No Archive Mode, Enable it:
SQL> archive log list
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 1
Current log sequence 3
SQL> show parameter db_name -> test
SQL> show parameter db_unique_name -> test

SQL> SHUTDOWN IMMEDIATE;/srvctl stop database -d orcl

SQL> STARTUP MOUNT;


ALTER SYSTEM SET log_archive_dest_1='location=+DATA'
SCOPE=spfile;
SQL> ALTER DATABASE ARCHIVELOG;
SQL> ALTER DATABASE OPEN;
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 1
Next log sequence to archive 3
Current log sequence 3
b. Bật Minimal Supplemental Logging
- Kiểm tra xem Minimal Supplemental Logging đã được bật chưa ( trên cả
DB nguồn và DB đích)
SQL> SELECT supplemental_log_data_min FROM v$database;
SUPPLEMENTAL_LOG_DATA_MIN
-------------------------
NO
- Nếu chưa bật thì thực hiện bật add supplemental log data
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
Database altered.
- Kiểm tra lại việc cấu hình supplemental log data thành công chưa
SQL> SELECT supplemental_log_data_min FROM v$database;
SUPPLEMENTAL_LOG_DATA_MIN
-------------------------
YES
- Sau đó thực hiện switch redo log file để chắc chắn rằng thay đổi sẽ được
apply cho tất cả subsequence redo
SQL> ALTER SYSTEM SWITCH LOGFILE;
System altered.
Chuẩn bị môi trường test
a. Tạo user test
- Trên cả 2 DB nguồn và đích tạo user (schema) hungnm
SQL> CREATE USER hungnm IDENTIFIED BY hungnm;
User created.
- Trên cả 2 DB nguồn và đích thực hiện gán quyền cho user hungnm
SQL> GRANT CONNECT,RESOURCE,DBA TO hungnm;
Grant succeeded.
b. Tạo bảng test
- Trên DB nguồn, tạo bảng t1 với dữ liệu từ bảng dba_objects
oracle@evs-app07 #sqlplus hungnm/hungnm
SQL> CREATE TABLE t1 AS
SELECT object_id,owner,object_name,object_type
FROM dba_objects
WHERE object_id <= 100;
- Add primary key constraint và index cho bảng t1
SQL> ALTER TABLE t1 ADD CONSTRAINT t1_i1 PRIMARY KEY
(object_id);
Table altered
c. Cấu hình network
- Chắc chắn listener trên cả 2 DB đã được bật
Lsnrctl status/start
- Cấu hình tnsnames cho DB nguồn
vim $ORACLE_HOME/network/admin/tnsnames.ora
Thêm dòng sau vào tnsnames.ora
DES =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.50.12.124)(PORT =
1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = dbv445)
)
)
- Kiểm tra lại kết nối sử dụng SQL*Plus
sqlplus hungnm/hungnm@DES
SQL> SELECT name FROM v$database;
NAME
---------
DBV445
- Cấu hình tnsnamse cho DB đích
vim $ORACLE_HOME/network/admin/tnsnames.ora
Thêm dòng sau vào tnsnames.ora
SOU =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.50.12.68)(PORT =
1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = sef)
)
)
- Kiểm tra lại kết nối sử dụng SQL*Plus
sqlplus hungnm/hungnm@SOU
SQL> SELECT name FROM v$database;
NAME
---------
SEF
d. Tạo DBLink
- Tạo dblink trên DB nguồn
CREATE DATABASE LINK DES
CONNECT TO hungnm IDENTIFIED BY hungnm USING 'DES';
- Tạo dblink trên DB đích
CREATE DATABASE LINK SOU
CONNECT TO hungnm IDENTIFIED BY hungnm USING 'SOU';
e. Thử copy dữ liệu test từ DB nguồn sang DB đích qua dblink
- Trên DB đích tạo bản copy bảng t1 sử dụng SQL*Plus
Sqlplus hungnm/hungnm
CREATE TABLE t1 AS SELECT * FROM t1@SOU;
- Add primary key constraint và index cho bảng t1
SQL> ALTER TABLE t1 ADD CONSTRAINT t1_i1 PRIMARY KEY
(object_id);
Table altered
CREATE UNIQUE INDEX C_SYSTEM_CONFIGS_PK ON C_SYSTEM_CONFIGS
(PARAM_NAME)
NOLOGGING
TABLESPACE EXAMPLE
PCTFREE 10
INITRANS 2
MAXTRANS 255
STORAGE (
INITIAL 64K
NEXT 1M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
PCTINCREASE 0
BUFFER_POOL DEFAULT
)
PARALLEL ( DEGREE 16 INSTANCES 1 );

Nếu bảng ko có unique key có thể khi xóa dữ liệu nguồn, sẽ có lỗi trên đích:
2016-08-01 15:37:10 WARNING OGG-00869 Oracle GoldenGate Delivery for Oracle, rep_ic.prm: No unique key is
defined for table 'C_SYSTEM_CONFIGS'. All viable columns will be used to represent the key, but may not guarantee
uniqueness. KEYCOLS may be used to define the key.
2016-08-01 15:37:10 WARNING OGG-03504 Oracle GoldenGate Delivery for Oracle, rep_ic.prm: NLS_LANG
character set US7ASCII on the target is different from the source database character set AL32UTF8. Replication may not
be valid if the source data has an incompatible character for the target NLS_LANG character set.
2016-08-01 15:37:10 WARNING OGG-01431 Oracle GoldenGate Delivery for Oracle, rep_ic.prm: Aborted grouped
transaction on 'TEST_OWNER.C_SYSTEM_CONFIGS', Mapping error.
2016-08-01 15:37:10 WARNING OGG-01003 Oracle GoldenGate Delivery for Oracle, rep_ic.prm: Repositioning to rba
2268 in seqno 0.
2016-08-01 15:37:10 WARNING OGG-01151 Oracle GoldenGate Delivery for Oracle, rep_ic.prm: Error mapping from
KMTD5.C_SYSTEM_CONFIGS to TEST_OWNER.C_SYSTEM_CONFIGS.
2016-08-01 15:37:10 WARNING OGG-01003 Oracle GoldenGate Delivery for Oracle, rep_ic.prm: Repositioning to rba
2268 in seqno 0.
2016-08-01 15:37:10 ERROR OGG-01296 Oracle GoldenGate Delivery for Oracle, rep_ic.prm: Error mapping from
KMTD5.C_SYSTEM_CONFIGS to TEST_OWNER.C_SYSTEM_CONFIGS.
2016-08-01 15:37:10 ERROR OGG-01668 Oracle GoldenGate Delivery for Oracle, rep_ic.prm: PROCESS
ABENDING.
- Bây giờ kiểm tra lại dữ liệu bảng t1 trên DB nguồn
oracle@evs-app07 #sqlplus hungnm/hungnm
SQL> select count(*) from t1;
COUNT(*)
----------
98
- Kiểm tra lại dữ liệu bảng t1 trên DB đích
oracle@insp-hn-pps #sqlplus hungnm/hungnm
SQL> select count(*) from t1;
COUNT(*)
----------
98

Cài đặt cấu hình GoldenGate

- Việc này thực hiện cả trên DB nguồn và DB đích. Ở đây hướng dẫn trên 1
DB nguồn, còn DB đích cài đặt tương tự.

a. Download và giải nén phần mềm GoldenGate

- Tạo đường dẫn thư mục cài đặt


mkdir /db/ggate/sef
- Tải bộ cài đặt copy vào đường dẫn và giải nén
tar -xvf ggs_Solaris_sparc_ora11g_64bit_v11_1_1_0_0_078.tar
b. Cấu hình biến môi trường
- Cấu hình biến môi trường trong .profile

ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
ORACLE_SID=sef
GG_HOME=/db/ggate/sef
PATH=/usr/ccs/bin:$ORACLE_HOME/bin:/usr/bin:/usr/sbin:$GG_HOME
:$PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:$GG_HOME
export ORACLE_BASE ORACLE_HOME ORACLE_SID GG_HOME
PATH LD_LIBRARY_PATH
c. Cấu hình Goldengate subdirectory
bash-3.2$ ggsci
GGSCI (evs-app07) 1> create subdirs
Creating subdirectories under current directory /db/ggate/sef

Parameter files /db/ggate/sef/dirprm: created


Report files /db/ggate/sef/dirrpt: created
Checkpoint files /db/ggate/sef/dirchk: created
Process status files /db/ggate/sef/dirpcs: created
SQL script files /db/ggate/sef/dirsql: created
Database definitions files /db/ggate/sef/dirdef: created
Extract data files /db/ggate/sef/dirdat: created
Temporary files /db/ggate/sef/dirtmp: created
Veridata files /db/ggate/sef/dirver: created
Veridata Lock files /db/ggate/sef/dirver/lock: created
Veridata Out-Of-Sync files /db/ggate/sef/dirver/oos: created
Veridata Out-Of-Sync XML files /db/ggate/sef/dirver/oosxml: created
Veridata Parameter files /db/ggate/sef/dirver/params: created
Veridata Report files /db/ggate/sef/dirver/report: created
Veridata Status files /db/ggate/sef/dirver/status: created
Veridata Trace files /db/ggate/sef/dirver/trace: created
Stdout files /db/ggate/sef/dirout: created
d. Tạo user riêng phục vụ GoldenGate làm trên đích nguồn
- Tạo user goldgate phục vụ đồng bộ GoldenGate
CREATE USER goldgate IDENTIFIED BY goldgate;
- Grant quyền cho user đồng bộ goldgate
GRANT CONNECT, RESOURCE, DBA TO goldgate;
- Trên mỗi server cấu hình GGSCHEMA trong file thông số global
EDIT PARAMS ./GLOBALS
(file $GG_HOME/GLOBALS)
Add dòng sau vào file
GGSCHEMA goldgate
e. Tạo GoldenGate TableSpace
- Trên DB nguồn tạo tablepace mới cho đối tượng GoldenGate
CREATE TABLESPACE goldengate
DATAFILE '/u02/oradata/DATA_EVS2/goldengate01.dbf'
SIZE 100M
AUTOEXTEND ON;
- Set Tablespace mới là mặc định cho user Goldengate
ALTER USER goldgate DEFAULT TABLESPACE goldengate;

- Trên DB đích tạo tablepace mới cho đối tượng GoldenGate


CREATE TABLESPACE goldengate
DATAFILE '/opt/oracle/datafile/goldengate01.dbf'
SIZE 100M
AUTOEXTEND ON;
-Set Tablespace mới là mặc định cho user Goldengate
ALTER USER goldgate DEFAULT TABLESPACE goldengate;
f. Chạy Role setup script
- Trên DB nguồn thực hiện chạy role setup script. Sau đó nhập tên schema
phục vụ goldengate

SQL> @role_setup
GGS Role setup script

This script will drop and recreate the role GGS_GGSUSER_ROLE


To use a different role name, quit this script and then edit the params.sql
script to change the gg_role parameter to the preferred name. (Do not run
the script.)

You will be prompted for the name of a schema for the GoldenGate
database objects.
NOTE: The schema must be created prior to running this script.
NOTE: Stop all DDL replication before starting this installation.

Enter GoldenGate schema name:goldgate


Wrote file role_setup_set.txt

PL/SQL procedure successfully completed.

Role setup script complete

Grant this role to each user assigned to the Extract, GGSCI, and Manager
processes, by using the following SQL command:

GRANT GGS_GGSUSER_ROLE TO <loggedUser>

where <loggedUser> is the user assigned to the GoldenGate processes.

- Trên DB nguồn, thực hiện gán GGS_GGSUSER_ROLE cho user goldgate


sqlplus / as sysdba
GRANT GGS_GGSUSER_ROLE TO goldgate;
Grant succeeded

g. Cấu hình tham số Manager


Nhớ tạo các thư mục extract, trail trước.( /db/ggate/sef/dirdat/)
- Trên DB nguồn:
GGSCI (evs-app07) 1> edit params mgr

PORT 7809
PURGEOLDEXTRACTS /db/ggate/sef/dirdat/rh*, USECHECKPOINTS,
MINKEEPDAYS 15
AUTOSTART EXTRACT *
AUTORESTART EXTRACT EXT_IC, RETRIES 99999, WAITMINUTES 1,
RESETMINUTES 4320
AUTORESTART EXTRACT PUMP_IC, RETRIES 99999, WAITMINUTES
1, RESETMINUTES 4320

- Trên DB đích:
GGSCI (ins-tt1-pps) 1> edit params mgr

PORT 7809
PURGEOLDEXTRACTS /db/ggate/dbv445/dirdat/rh*,
USECHECKPOINTS, MINKEEPDAYS 15
AUTOSTART REPLICAT *
AUTORESTART REPLICAT *, RETRIES 99999, WAITMINUTES 1,
RESETMINUTES 4320

h. Cấu hình tham số Extract và Data Pump


- Cấu hình Extract EXT_IC
GGSCI (evs-app07) 2> edit params ext_ic

extract ext_ic
userid goldgate, password goldgate
exttrail /db/ggate/sef/dirdat/rh
table hungnm.t1;
Nếu extract trên database dùng ASM thì phải dùng option
TRANLOGOPTIONS, áp dụng cho version db từ 11.2.0.2
TRANLOGOPTIONS BUFSIZE 10000000
TRANLOGOPTIONS DBLOGREADER, DBLOGREADERBUFSIZE
4000000
1 ví dụ cho trường hợp này:
EXTRACT ext_ocsg
SETENV (NLS_LANG = "AMERICAN_AMERICA.AL32UTF8")
SETENV (NLS_CHARACTERSET = "AMERICAN_AMERICA.AL16UTF16")
USERID goldengate, PASSWORD goldengate
TRANLOGOPTIONS BUFSIZE 10000000
TRANLOGOPTIONS DBLOGREADER, DBLOGREADERBUFSIZE 4000000
THREADOPTIONS MAXCOMMITPROPAGATIONDELAY 90000 IOLATENCY
90000
NOTCPSOURCETIMER
DISCARDFILE /db/ggate/dirrpt/ext_ocsg.dsc,purge
REPORTCOUNT EVERY 15 MINUTES, RATE
EXTTRAIL /db/ggate/dirdat/oc
- Cấu hình Data Pump PUMP_IC
GGSCI (evs-app07) 3> view params pump_ic

extract pump_ic
passthru
rmthost 10.50.12.124,mgrport 7809,compress
rmttrail /db/ggate/dbv445/dirdat/rh
table hungnm.*;
i. Tạo bảng checkpoint
- Thực hiện tạo bảng checkpoint trên DB đích
GGSCI (ins-tt1-pps) 1> DBLOGIN USERID goldgate, PASSWORD
goldgate
Successfully logged into database.
--
GGSCI (ins-tt1-pps) 2> ADD CHECKPOINTTABLE
goldgate.checkpointtable
Successfully created checkpoint table GOLDGATE.CHECKPOINTTABLE.
- Trên DB đích thực hiện edit GLOBAL file
EDIT PARAMS ./GLOBALS

GGSCHEMA goldgate
CHECKPOINTTABLE goldgate.checkpointtable

j. Cấu hình tham số Replicat


- Cấu hình Replicat REP_IC

EDIT PARAMS REP_IC

REPLICAT REP_IC
USERID goldgate, PASSWORD goldgate
ASSUMETARGETDEFS
MAP hungnm.*, TARGET hungnm.*;
- Cấu hình Supplemental logging cho bảng replicate ( fai add trên db nguồn
mới đúng)
GGSCI (ins-tt1-pps) 2> DBLOGIN USERID goldgate, PASSWORD
goldgate
Successfully logged into database.

GGSCI (ins-tt1-pps) 2> ADD TRANDATA hungnm.t1;


Logging of supplemental redo data enabled for table hungnm.t1

Add Extract, extrail, pump,replicat


- Add tiến trình Extract trên DB nguồn
ADD EXTRACT EXT_IC, TRANLOG, BEGIN NOW
EXTRACT added.
Với golden gate RAC thì chạy như dưới
ADD EXTRACT EXT_IC, TRANLOG, THREADS 2, BEGIN NOW
- Add Extract trail trên DB nguồn
ADD EXTTRAIL /db/ggate/sef/dirdat/rh, EXTRACT EXT_IC
EXTTRAIL added.
- Add tiến trình Data Pump trên DB nguồn
ADD EXTRACT PUMP_IC EXTTRAILSOURCE /db/ggate/sef/dirdat/rh
EXTRACT added.
- Add Data Pump trail trên DB nguồn
ADD EXTTRAIL /db/ggate/sef/dirdat/rh, EXTRACT PUMP_IC
EXTTRAIL added.

ADD RMTTRAIL /db/ggate/dbv445/dirdat/rh, EXTRACT PUMP_IC


RMTTRAIL added.
- Add tiến trình Replicat trên đích
ADD REPLICAT REP_IC EXTTRAIL /db/ggate/dbv445/dirdat/rh
REPLICAT added.
k. Start GoldenGate
- Start Manager
GGSCI (ins-tt1-pps) 2> START MANAGER

Manager started.
- Vì đã cấu hình tham số autostart extract * nên khi start manager thì các
extract cũng sẽ tự động start. Nếu ko có thể sử dụng câu lệnh start extract *
để start extract lên.
l. Thực hiện test tính năng đồng bộ GoldenGate
- Thực hiện import thêm bản ghi vào bảng t1
sqlplus hungnm/hungnm
SQL> INSERT INTO t1 (object_id,owner,object_name,object_type)
SELECT object_id,owner,object_name,object_type
FROM dba_objects
WHERE object_id BETWEEN 100 AND 200;
Commit;
- Bây giờ kiểm tra lại dữ liệu bảng t1 trên DB nguồn
oracle@evs-app07 #sqlplus hungnm/hungnm
SQL> select count(*) from t1;
COUNT(*)
----------
198
- Kiểm tra lại dữ liệu bảng t1 trên DB đích
oracle@insp-hn-pps #sqlplus hungnm/hungnm
SQL> select count(*) from t1;
COUNT(*)
----------
198

Ý nghĩa câu lệnh Oracle GoldenGate

INFO
INFO MANAGER Cung cấp thông tin chi tiết của tiến trình
Manager
INFO MGR Cung cấp thông tin chi tiết của tiến trình
Manager
STATUS MANAGER Câu lệnh chỉ hiển thị thông tin của tiến trình
Manager
REFRESH
REFRESH MANAGER Tải lại từ file thông số Manager
REFRESH MGR Tải lại từ file thông số Manager
SEND
SEND MANAGER CHILDSTATUS Hiển thị trạng thái của các tiến trình, được
start bởi Manager
SEND MANAGER CHILDSTATUS DEBUG Trả lại port number được gán bởi tiến trình
Manager
SEND MANAGER GETPORTINFO Hiển thị danh sách các dynamic port được
gán bởi tiến trình Manager
SEND MANAGER GETPORTINFO DETAIL Cung cấp thông tin về các dynamic port và
tiến trình mà được gán cho nó
SEND MANAGER Thông tin đường dẫn Extract trail và thời
GETPURGEOLDEXTRACTS gian giữ các dữ liệu extract này

START
START MANAGER Starts tiến trình Manager
START MGR Starts tiến trình Manager
STOP
STOP MGR Stops tiến trình Process
STOP MANAGER ! Stops tiến trình Manager mà không cần sự
xác nhận của user.
STOP MGR ! Stops tiến trình Manager mà không cần sự
xác nhận của user
ADD Command Tạo một Extract group.
ADD EXTRACT E_SRC, Tranlog, Begin Now Được sử dụng để chỉ rõ logs giao dịch như là
nguồn dữ liệu cho extract.
ADD EXTRACT E_SRC, Begin Now, Passive Chỉ rõ extract sẽ được chạy trong passive
mode.
ADD EXTRACT E_SRC, Extseqno 000008 Chỉ rõ tiến trình extract được start ở vị trí
Extrba 287458, Begin Now nào
ADD EXTRACT E_SRC, SOURCEISTABLE Extracts data từ data tables cho lần tải ban
đầu.

ALTER Command Câu lệnh ALTER


ALTER EXTRACT e_src, BEGIN NOW Chỉ dẫn extract bắt đầu tiến trình
ALTER EXTRACT e_src, BEGIN 2013-04-16 Chỉ dẫn extract bắt đầu tiến trình từ ngày xác
định
ALTER EXTRACT e_src, ETROLLOVER Extract sẽ rolls over tới trail file tiếp theo
ALTER EXTRACT e_src, EXTSEQNO 01, Thay đổi extract để start từ vị trí chỉ định
EXTRBA 2887 trong đường dẫn
ALTER EXTRACT e_src, THREAD 4, BEGIN Thay đổi extract thread và start date cho
2012-03-09 RAC
ALTER EXTRACT e_src, LSN 1234:123:1 Thay đổi extract cho SQL Server

CLEANUP Command Nó được sử dụng để clear các run history


cho nhóm extract xác định
CLEANUP EXTRACT e_src Nó dọn dẹp tất cả lịch sử các bản ghi ngoại
trừ bản ghi cuối cùng
CLEANUP EXTRACT e_src, SAVE 10 Nó sẽ giữ lại 10 bản ghi cuối cùng và xóa tất
cả những bản ghi khác

DELETE Command Nó được sử dụng để xóa tiến trình extract, nó


sẽ checkpoints chi tiết và unregister nhóm
extract

DELETE EXTRACT e_src Xóa tiến trình extract


DELETE EXTRACT e* Xóa tất cả tiến trình extract mà có tên bắt
đầu với chữ e
DELETE EXTRACT e* ! Xóa tất cả tiến trình extract với tên bắt đầu
bằng chữ e mà không cần xác nhận

INFO Command Nó được sử dụng để hiển thị thông tin của


extract như là status, lag,checkpoint,run
history, trail info…
INFO EXTRACT e_src, SHOWCH Hiển thị thông tin checkpoint của extract
INFO EXTRACT e_src, DETAIL Hiển thị trail info, run history
INFO EXTRACT e_src, TASKS Hiển thị extract tasks
KILL Command Nó được sử dụng để kill các extract mà
không thể stop được bằng câu lệnh STOP
KILL EXTRACT e_src

LAG Command Nó được sử dụng để tìm thời gian trễ giữa


Etract và nguồn dữ liệu chính xác hơn so với
câu lệnh INFO
LAG EXTRACT e_src Tìm trễ cho extract "e_src"
LAG EXTRACT * Tìm trễ cho tất cả tiến trình extract

REGISTER Command Nó được sử dụng để đăng ký các tiến trình


extract. Và nó có thể giữ lại archive log cần
thiết cho việc recovery.
REGISTER EXTRACT e_src Đăng ký extract "e_src"
LOGRETENTION

SEND Command Nó được sử dụng để truyền tin với extract


đang chạy giống như gửi yêu cầu để tạo báo
cáo, số liệu thống kê,hay buộc extract
rollover tới đường dẫn tiếp theo…
SEND EXTRACT finance, ROLLOVER Tăng extract tới file tiếp theo trong đường
dẫn
SEND EXTRACT finance, STOP Dừng tiến trình extract
SEND EXTRACT finance, Cho Oracle RAC, xác định thời gian sau đó
TRANLOGOPTIONS mà OGG sẽ quét và xóa những giao dịch
TRANSCLEANUPFREQUENCY 20 đơn.

SEND EXTRACT finance, SKIPTRANS Bỏ qua giao dịch trong môi trường Oracle
5.17.27634 THREAD 2 RAC
SEND EXTRACT e_src, SHOWTRANS Hiển thị thông tin về những giao dịch mở
như là checkpoint, tên extract group, SCN,
Redo log,status…
SEND EXTRACT e_src, SHOWTRANS Hiển thị thông tin của chỉ 2 giao dịch
COUNT 2

START Command Sử dụng để start tiến trình Extract


START EXTRACT e_src

STATS Command Được sử dụng để hiển thị thống kê cho tiến


trình extract bao gồm cả câu lệnh DDL và
DML
STATS e_src
STATS EXTRACT e_src Thống kê sẽ được hiển thị choextract E_SRC
STATS EXTRACT e_src REPORTRATE SEC Hiển thị thống kê cho các hoạt động theo
giây
STATS EXTRACT e_src, TOTAL, DAILY Toàn bộ thống kê sẽ được show ra từ ngày
bắt đầu
STATS EXTRACT e_src, TOTAL, HOURLY, Bằng việc sử dụng dấu phẩy ở giữa nhiều
REPORTRATE MIN, RESET, REPORTFETCH option keyword có thể được sử dụng trong
câu lệnh thống kê

STATUS Command Được sử dụng để check tiến trình extract


hiện tại có đang chạy hay không
STATUS EXTRACT e_src Check trạng thái extract "E_SRC"
STATUS EXTRACT e* Check trạng thái của tất cả extract bắt đầu
bằng chữ "e"

STOP Command Được sử dụng để dừng tiến trình extract


đang chạy
STOP EXTRACT e_src Dừng extract "e_src"
STOP EXTRACT e* Dừng tất cả các tiến trình extract đang chạy
mà tên bắt đầu với chữ “e”
STOP EXTRACT * Dừng tất cả các tiến trình extract đang chạy
UNREGISTER Command Nó được sử dụng để unregister nhóm extract
bằng cách xóa đăng ký của nó từ oracle DB
UNREGISTER EXTRACT e_src Thực hiện unregister extract e_src""
LOGRETENTION

ADD Command Nó được sử dụng để tạo ra tiến trình replicat


bằng cách tạo checkpoints.
ADD REPLICAT INITLOAD, SPECIALRUN Nó tạo ra một replicat chạy đặc biệt như là
một task
ADD REPLICAT r_trg, EXTTRAIL Tạo replicat với đường dẫn được chỉ rõ
/ORACLE/GOLDENGATE/DIRDAT/TT
ADD REPLICAT r_trg, EXTTRAIL Tạo replicat với đường dẫn và thông tin
/ORACLE/GOLDENGATE/DIRDAT/TT, checkpoint giống như bảng DB được sử
CHECKPOINTTABLE dụng để lưu thông tin checkpoint
OGG_USER.OGG_CHECKPOINT
ADD REPLICAT r_trg, EXTTRAIL Tạo replicat với đường dẫn và chỉ rõ rằng
/ORACLE/GOLDENGATE/DIRDAT/TT, replicat này không được viết thông tin vào
NODBCHECKPOINT bảng DB

ALTER Command Được sử dụng để thay đổi thuộc tính của tiến
trình replicat tồn tại
ALTER REPLICAT r_trg, BEGIN NOW Thay đổi replicat start tiến trình từ bây giờ
ALTER REPLICAT r_trg, BEGIN 2013-05-11 Thay đổi replicat start tiến trình từ ngày xác
định
ALTER REPLICAT r_trg, BEGIN 2013-01-07 Thay đổi replicat start tiến trình từ ngày giờ
08:00:01 xác định
ALTER REPLICAT r_trg, EXTSEQNO 00007 Thay đổi replicat start tiến trình từ file đường
dẫn xác định
ALTER REPLICAT r_trg, EXTRBA 65477 Thay đổi replicat start tiến trình từ vị trí xác
định trong đường dẫn

CLEANUP Command Nó được sử dụng để clear các run history


cho tiến trình replicat xác định
CLEANUP REPLICAT r_trg Nó dọn dẹp tất cả lịch sử các bản ghi ngoại
trừ bản ghi cuối cùng
CLEANUP REPLICAT r_trg, SAVE 10 Nó sẽ giữ lại 10 bản ghi cuối cùng và xóa tất
cả những bản ghi khác

DELETE Command Nó được sử dụng để xóa tiến trình


replicat,bằng cách xóa checkpoint và giải
phóng file đường dẫn bởi tiến trình quản lý
manager. Nhưng tiến trình cần phải được
stop và user cần phải login sử dụng câu lệnh
DBlogin.
DELETE REPLICAT r_trg Xóa tiến trình replicat
DELETE REPLICAT r* Xóa tất cả tiến trình replicat mà tên bắt đầu
bằng chữ r
DELETE REPLICAT r* ! Xóa tất cả tiến trình replicat mà tên bắt đầu
bằng chữ r không cần xác nhận

INFO Command Nó được sử dụng để hiển thị thông tin của


replicat như là status, lag,checkpoint,run
history, trail info…
INFO REPLICAT *, TASKS Nó được sử dụng để hiển thị chỉ những tác
vụ replicat
INFO REPLICAT r_trg Nó được sử dụng để hiển thị thông tin của
replicat
INFO REPLICAT r_trg, DETAIL Nó hiển thị thông tin chi tiết của replicat
INFO REPLICAT r_trg, SHOWCH Nó hiển thị bảng thông tin bảng checkpoint,
từ file checkpoint và bảng checkpoint

KILL Command Nó được sử dụng để kill các replicat mà


không thể stop được bằng câu lệnh STOP
nhưng thông tin checkpoint thì không thay
đổi và giao dịch được rollback trong DB
KILL REPLICAT r_trg
LAG Command Nó được sử dụng để tìm thời gian trễ giữa
Replicat và đường dẫn trail chính xác hơn so
với câu lệnh INFO
LAG REPLICAT r_trg Tìm trễ cho replicat "r_trg"
LAG REPLICAT * Tìm trễ cho tất cả tiến trình replicat

SEND Command Nó được sử dụng để truyền tin với tiến trình


replicat đang chạy
SEND REPLICAT r_trg, Kích hoạt tính năng handlecollisions của
HANDLECOLLISIONS OGG sử dụng để xử lý lỗi
SEND REPLICAT r_trg, REPORT Sinh báo cáo thông kê cho file báo cáo
HANDLECOLLISIONS r_* replicat
SEND REPLICAT r_trg, GETLAG Lấy thông tin trễ bằng giây

START Command Bật tiến trình replicat


START REPLICAT r_trg Bật tiến trình replicat r_trg
START REPLICAT r_trg, ATCSN 6454388 Bật tiến trình replicat từ số CSN xác định
bao gồm cả CSN không có giao dịch
START REPLICAT r_trg, AFTERCSN 6454389 Bật tiến trình replicat từ số CSN xác định
nhưng bỏ qua sCSN không có giao dịch

STATS Command Được sử dụng để hiển thị thống kê cho tiến


trình replicat
STATS r_trg
STATS REPLICAT r_trg Thống kê sẽ được hiển thị cho REPLICAT
r_trg""
STATS REPLICAT r_trg REPORTDETAIL Hiển thị số liệu thống kê cho các hoạt động
SEC mà ko được replicat do lỗi
STATS REPLICAT r_trg, TOTAL, DAILY Toàn bộ thống kê sẽ được show từ ngày bắt
đầu
STATS REPLICAT r_trg, TOTAL, HOURLY, Bằng việc sử dụng dấu phẩy ở giữa nhiều
REPORTRATE MIN, RESET, option keyword có thể được sử dụng trong
NOREPORTDETAIL câu lệnh thống kê

STATUS Command Được sử dụng để tìm replicat đang chạy hay


không
STATUS REPLICAT r_trg Kiểm tra trạng thái của replicat "r_trg"
STATUS REPLICAT r* Kiểm tra trạng thái của tất cả replicat bắt đầu
với chữ "r"

STOP Command Được sử dụng để dừng các tiến trình replicat


đang chạy
STOP REPLICAT r_trg Dừng tiến trình replicat "r_trg"
STOP REPLICAT r* Dừng tất cả tiến trình replicat đang chạy mà
tên bắt đầu bằng chữ "r"
STOP REPLICAT * Dừng toàn bộ tiến trình replicat đang chạy
ER Commands Được sử dụng để điều khiển nhiều tiến trình
extract và replicat
INFO ER * Thông tin tất cả tiến trình
KILL ER * Kill tất cả tiến trình
LAG ER * Lấy thông tin trễ của tất cả tiến trình
SEND ER * Sử dụng để gửi câu lệnh tới tất cả tiến trình
START ER * Bật tất cả các tiến trình
STATS ER * Check thống kê của tất cả các tiến trình
STATUS ER * Tìm trạng thái của tất cả các tiến trình
STOP ER * Dừng tất cả các tiến trình
ADD EXTTRAIL Được sử dụng để tạo đường dẫn file local
cho tiến trình extract trên hệ thống local
ADD EXTTRAIL Tạo EXTTRAIL với tiền tố Prefix"SE", và
/ORACLE/GOLDENGATE/DIRDAT/SE, kích thước là 100 mb
EXTRACT e_src, MEGABYTES 100
ADD EXTTRAIL Tạo EXTTRAIL với số sequence xác định
/ORACLE/GOLDENGATE/DIRDAT/SE000009

ADD RMTTRAIL Được sử dụng để tạo đường dẫn file remote


cho tiến trình extract hoặc pump trên hệ
thống remote
ADD RMTTRAIL Tạo RMTTRAIL với tiền tố Prefix"TE",và
/ORACLE/GOLDENGATE/DIRDAT/TE, kích thước 100 mb
EXTRACT p_src, MEGABYTES 100
ADD RMTTRAIL Tạo RMTTRAIL với số sequence xác định
/ORACLE/GOLDENGATE/DIRDAT/SE000009

ALTER EXTTRAIL Được sử dụng để thay đổi những tùy chọn


tồn tại EXTTRAIL file cho tiến trình extract
trên hệ thống local
ALTER EXTTRAIL Thay đổi EXTTRAIL được tạo ở trên xuống
/ORACLE/GOLDENGATE/DIRDAT/SE, kích thước 50MB
EXTRACT e_src, MEGABYTES 50

ALTER RMTTRAIL Được sử dụng để thay đổi tùy chọn tồn tại
RMTTRAIL file của tiến trình extract hoặc
pump trên hệ thống remote
ALTER RMTTRAIL Thay đổi RMTTRAIL được tạo ở trên xuống
/ORACLE/GOLDENGATE/DIRDAT/TE, kích thước 50MB
EXTRACT p_src, MEGABYTES 50

DELETE EXTTRAIL Được sử dụng để xóa EXTTRAIL được gán


cho extract trên hệ thống local bằng cách xóa
thông tin trên file checkpoint
DELETE EXTTRAIL Xóa EXTTRAIL nằm trong đường dẫn
/ORACLE/GOLDENGATE/DIRDAT/SE tương ứng
DELETE RMTTRAIL Được sử dụng để xóa RMTTRAIL được gán
cho extract hoặc pump trên hệ thống remote
bằng cách xóa thông tin trên file checkpoint
DELETE RMTTRAIL Xóa RMTTRAIL nằm trong đường dẫn
/ORACLE/GOLDENGATE/DIRDAT/TE tương ứng

INFO EXTTRAIL Được sử dụng để hiển thị thông tin của


đường dẫn local như là tên, extract liên quan,
rba và kích thước file…
INFO EXTTRAIL Hiển thị thông của của extrail xác định
/ORACLE/GOLDENGATE/DIRDAT/SE
INFO EXTTRAIL * Hiển thị thông tin của tất cả extrails

INFO RMTTRAIL Được sử dụng để hiển thị thông tin của


đường dẫn remote như là tên, extract liên
quan, rba và kích thước file…
INFO RMTTRAIL Hiển thị thông tin của rmttrails xác định
/ORACLE/GOLDENGATE/DIRDAT/TE
INFO RMTTRAIL * Hiển thị thông tin của tất cả rmttrails

Flow đúng:
B1: tạo và start luôn extract với pump trên nguồn

B2: Chạy export trên nguồn

select to_char(dbms_flashback.get_system_change_number) from dual;


select current_scn from v$database;

Thực hiện export từ scn này

directory=dir_test

dumpfile=test_tables6.dmp

logfile=test_tables6.log

include=table:"='tbl_three'"
flashback_scn=728886

[oracle@localhost tmp]$ expdp test/test parfile=test.par

B3: import trên nguồn

impdp \'/ as sysdba\' schemas=CMDV_SYNC directory=DUMP_GOLDENGATE CONTENT=ALL


REMAP_SCHEMA=CMDV_SYNC:OCSG_OWNER dumpfile=exp3.dmp logfile=impdp_CMDV_SYNC.log

B4: tạo replicat trên đích, rồi start lên = câu lệnh AFTERCSN chính là từ câu lệnh lấy được từ
select current_scn from v$database;

START REPLICAT REP_MVAS AFTERCSN 11863434400906

Các lỗi
Error "OGG-00717: Found Unsupported In-Memory Undo Record in ..." When Starting, Extract Abends
[ID 1362136.1]
1. Make sure supplemental logging is enabled properly

SQL>SELECT SUPPLEMENTAL_LOG_DATA_MIN FROM V$DATABASE;


---------
YES

If it is not enabled, use the following commands to enable it.

SQL>ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;


SQL>ALTER SYSTEM SWITCH LOGFILE;

2. Alter the extract to a position when the supplemental logging has been enabled.

GGSCI>alter extract, ext1 begin now

3)Then start extract ext1.

Dùng trace:
GGSCI (evs-db01) 38> view param ext_ic

extract ext_ic

userid goldgate, password goldgate


TRANLOGOPTIONS BUFSIZE 10000000

TRANLOGOPTIONS DBLOGREADER, DBLOGREADERBUFSIZE 4000000

exttrail /db/ggate/dirdat/rh

trace /db/ggate/trace/EXT_IC.trc

table chungtc.AP_PARAM;

Khi add dòng vàng này, nó sẽ ra 1 file trace tại /db/ggate/trace/EXT_IC.trc.

Khi stop start extract, sẽ xuất hiện file.

Nhưng khi stop extract thì mọi thứ mới được summary như sau:
bash-3.2$ tail -f /db/ggate/trace/EXT_IC.trc

Trace starting at 2017-08-15 Tue ICT 14:09:31

SUMMARY STATISTICS

General statistics:

0.00% Checking messages (includes checkpointing)

0.01% Checking periodic tasks

0.00% Waiting for more data

0.00% Converting ASCII header to internal

0.00% Converting ASCII data to internal

97.41% Reading input records

0.01% Writing output records (replicate_io)

0.00% Mapping columns

0.00% Outputting data records

0.00% Performing SQL statements

0.00% Performing BATCHSQL statements

0.00% Performing actual DB op

0.00% Preparing SQL statements

0.00% Performing transaction commits


0.01% Checkpointing

Redo log statistics:

0.05% Opening redo log file

0.00% Positioning into redo log file

97.73% Reading record from redo log file

0.28% Extracting subrecord from redo record

0.00% Extracting start subrecord

0.00% Extracting undo subrecord header

0.27% Extracting undo subrecord

0.00% Extracting redo subrecord header

0.00% Extracting undo subrecord

271.79% Extracting rollback subrecord

0.00% Extracting commit subrecord

0.00% Processing start subrecord

0.00% Processing data subrecord

0.00% Processing rollback subrecord

0.00% Processing commit subrecord

0.16% Retrieving and processing transaction items

0.00% Retrieving transaction item

0.00% Formatting output record

0.00% Formatting output record header

0.00% Validating update key data

0.00% Formatting output record data

0.00% Converting Oracle data to ASCII

0.00% Close redo log

Closing Trace File at 2017-08-15 Tue ICT 14:12:28

Trong goldengate home mà bổ sung file

vi gglog-EXT_IC.xml

<?xml version="1.0"?>

<configuration reset="true">

<appender name="myTraceFile" class="FileAppender">


<param name="File" value="myTrace-%I.log"/>

<param name="Append" value="true"/>

<layout class="PatternLayout"/>

</appender>

<logger name="ggstd.ptrace">

<level value="all"/>

</logger>

</configuration>

Sau khi stop-start để apply Thì sẽ liên tục có log trong file trace , nhiều hơn

Map thêm vết cho bảng đích


Chungtc.ap_param

Nguồn:

Đích:

TA THỰC HIỆN NHƯ SAU:


Nguồn :
GGSCI (evs-db01) 74> info all

Program Status Group Lag Time Since Chkpt

MANAGER RUNNING

EXTRACT RUNNING EXT_IC 00:00:01 00:00:07

EXTRACT RUNNING PUMP_IC 00:00:00 00:00:04

GGSCI (evs-db01) 76> view param ext_ic

extract ext_ic

userid goldgate, password goldgate

TRANLOGOPTIONS BUFSIZE 10000000

TRANLOGOPTIONS DBLOGREADER, DBLOGREADERBUFSIZE 4000000

trace /db/ggate/trace/EXT_IC.trc

exttrail /db/ggate/dirdat/rh

table chungtc.AP_PARAM;

GGSCI (evs-db01) 77> view param pump_ic

extract pump_ic

passthru

rmthost 10.50.12.35,mgrport 7809,compress

rmttrail /db/ggate/dbtestdr/dirdat/rh

table chungtc.*;

------- add các tiến trình extract


ADD EXTRACT EXT_IC, TRANLOG, THREADS 2, BEGIN NOW

ADD EXTTRAIL /db/ggate/dirdat/rh, EXTRACT EXT_IC

ADD EXTRACT PUMP_IC EXTTRAILSOURCE /db/ggate/dirdat/rh

ADD EXTTRAIL /db/ggate/dirdat/rh, EXTRACT EXT_IC

ADD EXTRACT PUMP_IC EXTTRAILSOURCE /db/ggate/dirdat/rh

ADD EXTTRAIL /db/ggate/dbtestdr/dirdat/rh, EXTRACT PUMP_IC

Đích
ADD REPLICAT REP_IC EXTTRAIL /db/ggate/dbtestdr/dirdat/rh

GGSCI (evs-db02) 138> view param rep_ic

REPLICAT REP_IC

USERID goldgate, PASSWORD goldgate

ASSUMETARGETDEFS

MAP chungtc.ap_param, TARGET chungtc.ap_param, COLMAP (usedefaults,OP_Type = @GETENV


("GGHEADER","OPTYPE"),OP_Time = @DATENOW());

MAP chungtc.*, TARGET chungtc.*;

Hoặc

MAP chungtc.ap_param, TARGET chungtc.ap_param,COLMAP (usedefaults,OP_Type = @GETENV


("GGHEADER","OPTYPE"),OP_Time =@IF(@STREQ(@GETENV("GGHEADER",
"OPTYPE"),"INSERT"),@DATENOW(),@DATENOW()) );

Hoac

MAP chungtc.ap_param, TARGET chungtc.ap_param,COLMAP (usedefaults,OP_Type = @GETENV


("GGHEADER","OPTYPE"),OP_Time =@IF(@STREQ(@GETENV("GGHEADER",
"OPTYPE"),"INSERT"),@DATENOW(),@COLSTAT (MISSING)) );

Hoac
MAP chungtc.ap_param, TARGET chungtc.ap_param,FILTER (@STREQ(@GETENV("GGHEADER",
"OPTYPE"),"INSERT")),EVENTACTIONS (CHECKPOINT BOTH,LOG INFO);

Cái này dùng fileter, nếu tác vụ là insert, thì thực hiện check point ( ghi vào db đích) và log thêm info
trong ggerrors.log dang: “2017-08-17 13:51:42 INFO OGG-01281 Oracle GoldenGate Delivery for
Oracle, rep_ic.prm: Processed LOG event for target table CHUNGTC.AP_PARAM in file
/db/ggate/dbtestdr/dirdat/rh000000, RBA 14369.”

Hoac dùng shell


EVENTACTIONS (

[STOP | SUSPEND | ABORT | FORCESTOP]

[IGNORE [RECORD | TRANSACTION [INCLUDEVENT]]

[DISCARD]

[LOG [INFO | WARNING]]

[REPORT]

[ROLLOVER]

[SHELL 'command' |

SHELL ('command', VAR variable = {column_name | expression}

[, ...]) ]

[TRACE[2] file [TRANSACTION] [DDL[INCLUDE] | DDLONLY] [PURGE | APPEND]]

[CHECKPOINT [BEFORE | AFTER | BOTH]]

[, ...]

EVENTACTIONS (trace,CHECKPOINT BOTH,LOG INFO);

REPLICAT REP_IC

USERID goldgate, PASSWORD goldgate

ASSUMETARGETDEFS

MAP chungtc.ap_param, TARGET chungtc.ap_param &

EVENTACTIONS ( shell "echo --== Triggered on BEFORE ==-- ", LOG);


MAP chungtc.*, TARGET chungtc.*;

Sẽ có trong ggerrors: 2017-08-17 16:06:49 INFO OGG-01286 Oracle GoldenGate Delivery for Oracle,
rep_ic.prm: Executing shell command 'echo --== Triggered on BEFORE ==-- ' due to SHELL event for
target table CHUNGTC.AP_PARAM in file /db/ggate/dbtestdr/dirdat/rh000000, RBA 14538.

2017-08-17 16:06:49 INFO OGG-01287 Oracle GoldenGate Delivery for Oracle, rep_ic.prm:
Successfully executed shell command 'echo --== Triggered on BEFORE ==-- '.

Thử sử dụng trace


REPLICAT REP_IC

USERID goldgate, PASSWORD goldgate

ASSUMETARGETDEFS

MAP chungtc.ap_param, TARGET chungtc.ap_param &

EVENTACTIONS (TRACE order_1.trc TRANSACTION);

MAP chungtc.*, TARGET chungtc.*;

Sử dụng sqlexec
MAP chungtc.ap_param, TARGET chungtc.ap_param, &

SQLEXEC (ID my_trace, QUERY "insert into chungtc.ap_param_trace values


(:opar_type,:opar_name,:opar_value, :odescription,:oaction) " &

,PARAMS (opar_type = par_type, opar_name=par_name, opar_value=par_value,


odescription=description, oaction=@GETENV ("GGHEADER", "OPTYPE")) &

, ERROR REPORT);

Hoac: dùng như này để ghi log cho update/ delete

REPLICAT REP_IC

USERID goldgate, PASSWORD goldgate

ASSUMETARGETDEFS

MAP chungtc.ap_param, TARGET chungtc.ap_param, &

SQLEXEC (ID my_trace, QUERY "insert into chungtc.ap_param_trace select par_type, par_name,
par_value, description, :oaction from chungtc.ap_param where par_type = :opar_type " &
,PARAMS (opar_type = par_type, oaction=@GETENV ("GGHEADER", "OPTYPE")) &

, ERROR REPORT);

Dùng 2 sqlexec

GGSCI (evs-db02) 61> edit param rep_ic

"/db/gg/dirprm/rep_ic.prm" 10 lines, 679 characters

SQLEXEC (ID my_trace, QUERY "insert into chungtc.ap_param_trace select par_type, par_name,
par_value, description, :oaction from chungtc.ap_param where par_type = :opar_type " &

REPLICAT REP_IC

USERID goldgate, PASSWORD goldgate

ASSUMETARGETDEFS

MAP chungtc.ap_param, TARGET chungtc.ap_param, &

SQLEXEC (ID my_trace, ON DELETE, QUERY "insert into chungtc.ap_param_trace select par_type,
par_name, par_value, description, :oaction from chungtc.ap_param where par_type = :opar_type " &

,PARAMS (opar_type = par_type, oaction=@GETENV ("GGHEADER", "OPTYPE")) &

, ERROR REPORT),

SQLEXEC (ID my_trace1, QUERY "insert into chungtc.ap_param_trace values


(:opar_type,:opar_name,:opar_value, :odescription,:oaction) " &

,PARAMS (opar_type = par_type, opar_name=par_name, opar_value=par_value,


odescription=description, oaction=@GETENV ("GGHEADER", "OPTYPE")) &

, ERROR REPORT);

Chốt lại: sử dụng để ghi lại log tác động inser/delete/update

REPLICAT REP_IC

USERID goldgate, PASSWORD goldgate

ASSUMETARGETDEFS

MAP chungtc.ap_param, TARGET chungtc.ap_param, &

SQLEXEC (ID my_trace, ON DELETE, QUERY "insert into chungtc.ap_param_trace select par_type,
par_name, par_value, description, :oaction,:op_time from chungtc.ap_param where par_type
= :opar_type " &
,PARAMS (opar_type = par_type, oaction=@GETENV ("GGHEADER", "OPTYPE"),
op_time=@DATENOW()) &

, ERROR REPORT),

SQLEXEC (ID my_trace1, ON UPDATE, QUERY "insert into chungtc.ap_param_trace select par_type,
par_name, par_value, description, :oaction,:op_time from chungtc.ap_param where par_type
= :opar_type " &

,PARAMS (opar_type = par_type, oaction=@GETENV ("GGHEADER", "OPTYPE"),


op_time=@DATENOW()) &

, ERROR REPORT),

SQLEXEC (ID my_trace2, ON INSERT, QUERY "insert into chungtc.ap_param_trace values


(:opar_type,:opar_name,:opar_value, :odescription,:oaction, :op_time) " &

,PARAMS (opar_type = par_type, opar_name=par_name, opar_value=par_value,


odescription=description, oaction=@GETENV ("GGHEADER", "OPTYPE"), op_time=@DATENOW()) &

, ERROR REPORT);

Cach toi uu
GGSCI (evs-db02) 2> view param rep_ic

REPLICAT REP_IC

USERID goldgate, PASSWORD goldgate

ASSUMETARGETDEFS

MAP chungtc.CP_SUB_ACT_STATUS, TARGET chungtc.CP_SUB_ACT_STATUS, &

SQLEXEC (ID my_trace,ON DELETE, QUERY "insert into chungtc.CP_SUB_ACT_STATUS_trace


(isdn,act,act_sys) values (:oisdn,:oact,:oact_sys) " &

,PARAMS (oisdn = isdn, oact=@GETENV ("GGHEADER", "OPTYPE"), oact_sys=@DATENOW()) &

, ERROR REPORT), &

SQLEXEC (ID my_trace1,ON INSERT, QUERY "insert into chungtc.CP_SUB_ACT_STATUS_trace values


(:oisdn,:osub_id,:oact_status, :oupdate_time,:oact,:oact_sys) " &

,PARAMS (oisdn = isdn, osub_id=sub_id, oact_status=act_status, oupdate_time=update_time,


oact=@GETENV ("GGHEADER", "OPTYPE"), oact_sys=@DATENOW()) &

, ERROR REPORT);

GGSCI (evs-db01) 125> view param ext_ic


extract ext_ic

userid goldgate, password goldgate

TRANLOGOPTIONS BUFSIZE 10000000

TRANLOGOPTIONS DBLOGREADER, DBLOGREADERBUFSIZE 4000000

trace /db/ggate/trace/EXT_IC.trc

exttrail /db/ggate/dirdat/rh

table chungtc.CP_SUB_ACT_STATUS, &

SQLEXEC (ID my_trace, QUERY "insert into chungtc.CP_SUB_ACT_STATUS_trace values


(:oisdn,:osub_id,:oact_status, :oupdate_time,:oact,:oact_sys) " &

,PARAMS (oisdn = isdn, osub_id=sub_id, oact_status=act_status, oupdate_time=update_time,


oact=@GETENV ("GGHEADER", "OPTYPE"), oact_sys=@DATENOW()) &

, TRACE ALL, ERROR REPORT), &

SQLEXEC (ID lookup_pt1, QUERY "commit", noPARAMS , TRACE ALL, ERROR REPORT);

GGSCI (evs-db01) 126> view param pump_ic

extract pump_ic

nopassthru

userid goldgate, password goldgate

rmthost 10.50.12.35,mgrport 7809,compress

rmttrail /db/ggate/dbtestdr/dirdat/rh

table chungtc.CP_SUB_ACT_STATUS, &

SQLEXEC (ID my_trace, QUERY "insert into chungtc.CP_SUB_ACT_STATUS_pump values


(:oisdn,:osub_id,:oact_status, :oupdate_time,:oact,:oact_sys) " &

,PARAMS (oisdn = isdn, osub_id=sub_id, oact_status=act_status, oupdate_time=update_time,


oact=@GETENV ("GGHEADER", "OPTYPE"), oact_sys=@DATENOW()) &

, TRACE ALL, ERROR REPORT), &

SQLEXEC (ID lookup_pt1, QUERY "commit", noPARAMS , TRACE ALL, ERROR REPORT);
Ignore sequence
2017-11-24 10:34:31 INFO OGG-00975 Oracle GoldenGate Manager for Oracle, mgr.prm: REPLICAT
REP_IC starting.

2017-11-24 10:34:31 INFO OGG-00995 Oracle GoldenGate Delivery for Oracle, rep_ic.prm: REPLICAT
REP_IC starting.

2017-11-24 10:34:32 INFO OGG-00996 Oracle GoldenGate Delivery for Oracle, rep_ic.prm: REPLICAT
REP_IC started.

2017-11-24 10:34:33 WARNING OGG-01004 Oracle GoldenGate Delivery for Oracle, rep_ic.prm:
Aborted grouped transaction on 'CHUNGTC.AP_PARAM', Database error 100 (retrieving bind info for
query).

2017-11-24 10:34:33 WARNING OGG-01003 Oracle GoldenGate Delivery for Oracle, rep_ic.prm:
Repositioning to rba 2228 in seqno 0.

2017-11-24 10:34:34 WARNING OGG-01154 Oracle GoldenGate Delivery for Oracle, rep_ic.prm: SQL
error 1403 mapping CHUNGTC.AP_PARAM to CHUNGTC.AP_PARAM.

2017-11-24 10:34:34 WARNING OGG-01003 Oracle GoldenGate Delivery for Oracle, rep_ic.prm:
Repositioning to rba 3230 in seqno 0.

2017-11-24 10:34:34 ERROR OGG-01296 Oracle GoldenGate Delivery for Oracle, rep_ic.prm: Error
mapping from CHUNGTC.AP_PARAM to CHUNGTC.AP_PARAM.

2017-11-24 10:34:34 WARNING OGG-01524 Oracle GoldenGate Delivery for Oracle, rep_ic.prm: Invalid
data at offset 0x00005f72 of 0x00000001027ca020 (0x37) ignored. Trace output continuing with next
buffer.

2017-11-24 10:34:34 ERROR OGG-01668 Oracle GoldenGate Delivery for Oracle, rep_ic.prm: PROCESS
ABENDING

.Ta kiểm tra lại:

GGSCI (evs-db02) 7> info replicat rep_ic

REPLICAT REP_IC Last Started 2017-11-24 10:34 Status ABENDED

Checkpoint Lag 2422:36:00 (updated 00:01:23 ago)

Log Read Checkpoint File /db/ggate/dbtestdr/dirdat/rh000000

2017-08-15 11:58:33.955679 RBA 3230

GGSCI (evs-db02) 8> exit

bash-3.2$ logdump

Oracle GoldenGate Log File Dump Utility


Version 11.1.1.0.0 Build 078

Copyright (C) 1995, 2010, Oracle and/or its affiliates. All rights reserved.

Logdump 10 >open /db/ggate/dbtestdr/dirdat/rh000000

Current LogTrail is /db/ggate/dbtestdr/dirdat/rh000000

Logdump 11 >pos 3230

Reading forward from RBA 3230

Logdump 12 >n

2017/08/15 11:59:14.955.679 Delete Len 28 RBA 3230

Name: CHUNGTC.AP_PARAM

Before Image: Partition 4 G b

0000 000a 0000 0006 6368 756e 6733 0001 000a 0000 | ........chung3......

0006 6368 756e 6733 | ..chung3

Logdump 13 >n

Logdump 134 >n

2017/08/21 15:25:33.978.467 Insert Len 50 RBA 21620

Name: CHUNGTC.AP_PARAM

After Image: Partition 4 G s

0000 000a 0000 0006 6368 756e 6735 0001 000a 0000 | ........chung5......

0006 6368 756e 6735 0002 0005 0000 0001 3500 0300 | ..chung5........5...

0900 0000 0574 6573 7435 | .....test5

Logdump 135 >n


2017/08/31 09:40:01.994.245 RestartAbend Len 0 RBA 21792

Name:

After Image: Partition 0 G s

Logdump 140 >exit

bash-3.2$ ggsci

GGSCI (evs-db02) 3> alter replicat REP_IC extseqno 0, extrba 21792

 Như vậy đã bỏ qua được rba này, ta có thể start lại

Ví dụ 1
Nguồn evs-db01

ADD EXTRACT EXT_IC, TRANLOG, THREADS 2, BEGIN NOW

ADD EXTTRAIL /db/ggate/dirdat/rh, EXTRACT EXT_IC

ADD EXTRACT PUMP_IC EXTTRAILSOURCE /db/ggate/dirdat/rh

EXTRACT added.

- Add Data Pump trail trên DB ngu?n

ADD EXTTRAIL /db/ggate/dirdat/rh, EXTRACT PUMP_IC

EXTTRAIL added.

ADD RMTTRAIL /db/ggate/dbtestdr/dirdat/rh, EXTRACT PUMP_IC

RMTTRAIL added.

Đíchh evs-db02

ADD REPLICAT REP_IC EXTTRAIL /db/ggate/dbtestdr/dirdat/rh

evs-db01> select current_scn from v$database;

CURRENT_SCN
-----------

295505446

START REPLICAT REP_IC AFTERCSN 295505446

Tiếp theo start trên cả nguồn và đích

Start rep_ic

Start pump_ic

START REPLICAT REP_IC AFTERCSN 295505446

ta thấy trên ggserror của nguồn có những thông báo sau:

2018-03-06 10:24:55 INFO OGG-00992 Oracle GoldenGate Capture for Oracle, pump_ic.prm:
EXTRACT PUMP_IC starting.

2018-03-06 10:24:57 INFO OGG-00993 Oracle GoldenGate Capture for Oracle, pump_ic.prm:
EXTRACT PUMP_IC started.

2018-03-06 10:25:02 INFO OGG-01226 Oracle GoldenGate Capture for Oracle, pump_ic.prm: Socket
buffer size set to 27985 (flush size 27985).

2018-03-06 10:25:02 INFO OGG-01056 Oracle GoldenGate Capture for Oracle, pump_ic.prm:
Recovery initialization completed for target file /db/ggate/dbtestdr/dirdat/rh000010, at RBA 1629, CSN
146176668.

2018-03-06 10:25:02 INFO OGG-01478 Oracle GoldenGate Capture for Oracle, pump_ic.prm: Output
file /db/ggate/dbtestdr/dirdat/rh is using format RELEASE 10.4/11.1.

2018-03-06 10:25:02 WARNING OGG-01438 Oracle GoldenGate Capture for Oracle, pump_ic.prm:
Checkpoint marked as from graceful shutdown, but records found after checkpoint in trail
/db/ggate/dbtestdr/dirdat/rh. Expected EOF Seqno 0, RBA 0. Found Seqno 10, RBA 1629.

2018-03-06 10:25:02 INFO OGG-01026 Oracle GoldenGate Capture for Oracle, pump_ic.prm: Rolling
over remote file /db/ggate/dbtestdr/dirdat/rh000011.

2018-03-06 10:30:50 INFO OGG-01054 Oracle GoldenGate Capture for Oracle, pump_ic.prm:
Recovery completed for target file /db/ggate/dbtestdr/dirdat/rh000011, at RBA 1597, CSN
146176668.

2018-03-06 10:30:50 INFO OGG-01057 Oracle GoldenGate Capture for Oracle, pump_ic.prm:
Recovery completed for all targets.

 Như này có nghĩa là mặc dù trên nguồn có thông số như sau:


GGSCI (evs-db01) 66> info pump_ic

EXTRACT PUMP_IC Last Started 2018-03-06 10:24 Status RUNNING


Checkpoint Lag 00:00:00 (updated 00:00:03 ago)
Log Read Checkpoint File /db/ggate/dirdat/rh000000
2018-03-06 10:29:32.000000 RBA 1093
Tức là file trail là 0 nhưng theo cảnh báo trên ggserror thì chuyển sang remote sẽ là file
rh000011
Trên máy chủ evs-db02 cũng đã có file này file /db/ggate/dbtestdr/dirdat/rh000011
 Trên đích đang có thông số như sau:
GGSCI (evs-db02) 7> info rep_ic

REPLICAT REP_IC Last Started 2018-03-06 10:28 Status RUNNING


Checkpoint Lag 00:00:00 (updated 00:00:00 ago)
Log Read Checkpoint File /db/ggate/dbtestdr/dirdat/rh000000
First Record RBA 0
Tức là replicat lại đang tìm đọc file Log Read Checkpoint File
/db/ggate/dbtestdr/dirdat/rh000000 chính vì vậy mà dù có thay đổi trên nguồn, đích cũng ko
update
 Ta sửa như sau trên đích:
GGSCI (evs-db02) 12> alter replicat REP_IC extseqno 11
GGSCI (evs-db02) 13> info rep_ic

REPLICAT REP_IC Initialized 2018-03-06 10:38 Status STOPPED


Checkpoint Lag 00:00:00 (updated 00:00:05 ago)
Log Read Checkpoint File /db/ggate/dbtestdr/dirdat/rh000011
First Record RBA 0

GGSCI (evs-db02) 14> start rep_ic


 Sau bước này replicate đã update ok trên oracle

Ví dụ 2: replicat partition table


TA Replicate bang nay tu evs-db01 sang evs-db02
CREATE TABLE chungtc.f_info
(
LOG_TIME date,
MSISDN VARCHAR2(15 BYTE)
)
NOCOMPRESS
TABLESPACE example
RESULT_CACHE (MODE DEFAULT)
PCTUSED 0
PCTFREE 10
INITRANS 1
MAXTRANS 255
STORAGE (
BUFFER_POOL DEFAULT
FLASH_CACHE DEFAULT
CELL_FLASH_CACHE DEFAULT
)
PARTITION BY RANGE (LOG_TIME)
(
PARTITION P20180306 VALUES LESS THAN (TIMESTAMP' 2018-03-07 00:00:00')
LOGGING
NOCOMPRESS
TABLESPACE example
PCTFREE 10
INITRANS 1
MAXTRANS 255
STORAGE (
MAXSIZE UNLIMITED
BUFFER_POOL DEFAULT
FLASH_CACHE DEFAULT
CELL_FLASH_CACHE DEFAULT
),
PARTITION P20180307 VALUES LESS THAN (TIMESTAMP' 2018-03-08 00:00:00')
LOGGING
NOCOMPRESS
TABLESPACE example
PCTFREE 10
INITRANS 1
MAXTRANS 255
STORAGE (
MAXSIZE UNLIMITED
BUFFER_POOL DEFAULT
FLASH_CACHE DEFAULT
CELL_FLASH_CACHE DEFAULT
)
)
NOCACHE
NOPARALLEL
MONITORING;

CREATE OR REPLACE DIRECTORY

DUMP_GG AS

'/db/gg/';

GRANT READ ON DIRECTORY DUMP_GG TO chungtc;


expdp chungtc/chungtc tables=F_INFO directory=DUMP_GG dumpfile=f_info.dmp logfile=f_info.log

DBLOGIN USERID goldgate, PASSWORD goldgate

ADD TRANDATA CHUNGTC.F_INFO

SQL> select current_scn from v$database;

CURRENT_SCN

-----------

295588659

tren evs-db02

impdp chungtc/chungtc tables=F_INFO directory=DUMP_GG dumpfile=f_info.dmp logfile=f_info.log

edit param ext_f

extract ext_f

userid goldgate, password goldgate

TRANLOGOPTIONS BUFSIZE 10000000

TRANLOGOPTIONS DBLOGREADER, DBLOGREADERBUFSIZE 4000000

trace /db/ggate/trace/f_info.trc

exttrail /db/ggate/dirdat/fi

table chungtc.f_info;

edit param pump_f

extract pump_f

nopassthru

userid goldgate, password goldgate

rmthost 10.50.12.35,mgrport 7809,compress

rmttrail /db/ggate/dbtestdr/dirdat/fi
table chungtc.f_info;

- Add ti?n tr?nh Extract trên DB ngu?n

V?i golden gate RAC th? ch?y như dư?i

ADD EXTRACT ext_f, TRANLOG, THREADS 2, BEGIN NOW

- Add Extract trail trên DB ngu?n

ADD EXTTRAIL /db/ggate/dirdat/fi, EXTRACT ext_f

EXTTRAIL added.

- Add ti?n tr?nh Data Pump trên DB ngu?n

ADD EXTRACT pump_f EXTTRAILSOURCE /db/ggate/dirdat/fi

EXTRACT added.

- Add Data Pump trail trên DB ngu?n

ADD EXTTRAIL /db/ggate/dirdat/fi, EXTRACT pump_f

EXTTRAIL added.

ADD RMTTRAIL /db/ggate/dbtestdr/dirdat/fi, EXTRACT pump_f

RMTTRAIL added.

- Add ti?n tr?nh Replicat trên đích

ADD REPLICAT REP_F EXTTRAIL /db/ggate/dbtestdr/dirdat/fi

REPLICAT added.

edit param rep_f

REPLICAT rep_f

USERID goldgate, PASSWORD goldgate

ASSUMETARGETDEFS

MAP chungtc.f_info, TARGET chungtc.f_info;


start ext_f

2018-03-06 15:02:07 INFO OGG-00963 Oracle GoldenGate Manager for Oracle, mgr.prm: Command
received from GGSCI on host 10.50.12.32 (START EXTRACT EXT_F ).

2018-03-06 15:02:07 INFO OGG-00975 Oracle GoldenGate Manager for Oracle, mgr.prm: EXTRACT
EXT_F starting.

2018-03-06 15:02:07 INFO OGG-00992 Oracle GoldenGate Capture for Oracle, ext_f.prm: EXTRACT
EXT_F starting.

2018-03-06 15:02:08 INFO OGG-01236 Oracle GoldenGate Capture for Oracle, ext_f.prm: Trace file
/db/ggate/trace/f_info.trc opened.

2018-03-06 15:02:12 INFO OGG-00546 Oracle GoldenGate Capture for Oracle, ext_f.prm: Default
thread stack size: 0.

2018-03-06 15:02:12 INFO OGG-00547 Oracle GoldenGate Capture for Oracle, ext_f.prm: Increasing
thread stack size from 0 to 1048576.

2018-03-06 15:02:12 INFO OGG-01513 Oracle GoldenGate Capture for Oracle, ext_f.prm: Positioning
to (Thread 1) Sequence 3967, RBA 10070032, SCN 0.0.

2018-03-06 15:02:12 INFO OGG-01516 Oracle GoldenGate Capture for Oracle, ext_f.prm: Positioned
to (Thread 1) Sequence 3967, RBA 10070032, SCN 0.0, Mar 6, 2018 2:58:45 PM.

2018-03-06 15:02:12 INFO OGG-01513 Oracle GoldenGate Capture for Oracle, ext_f.prm: Positioning
to (Thread 2) Sequence 2784, RBA 19025936, SCN 0.0.

2018-03-06 15:02:12 INFO OGG-01516 Oracle GoldenGate Capture for Oracle, ext_f.prm: Positioned
to (Thread 2) Sequence 2784, RBA 19025936, SCN 0.0, Mar 6, 2018 2:58:45 PM.

2018-03-06 15:02:12 INFO OGG-00993 Oracle GoldenGate Capture for Oracle, ext_f.prm: EXTRACT
EXT_F started.

2018-03-06 15:02:12 INFO OGG-01052 Oracle GoldenGate Capture for Oracle, ext_f.prm: No
recovery is required for target file /db/ggate/dirdat/fi000000, at RBA 0 (file not opened).

2018-03-06 15:02:12 INFO OGG-01478 Oracle GoldenGate Capture for Oracle, ext_f.prm: Output file
/db/ggate/dirdat/fi is using format RELEASE 10.4/11.1.

2018-03-06 15:02:12 INFO OGG-01517 Oracle GoldenGate Capture for Oracle, ext_f.prm: Position of
first record processed for Thread 1, Sequence 3967, RBA 10070032, SCN 0.295590744, Mar 6, 2018
2:58:45 PM.

2018-03-06 15:02:12 INFO OGG-01517 Oracle GoldenGate Capture for Oracle, ext_f.prm: Position of
first record processed for Thread 2, Sequence 2784, RBA 19025936, SCN 0.295590744, Mar 6, 2018
2:58:45 PM.

start pump_f
2018-03-06 15:02:46 INFO OGG-00992 Oracle GoldenGate Capture for Oracle, pump_ic.prm:
EXTRACT PUMP_IC starting.

2018-03-06 15:02:47 INFO OGG-00993 Oracle GoldenGate Capture for Oracle, pump_ic.prm:
EXTRACT PUMP_IC started.

2018-03-06 15:02:51 INFO OGG-00987 Oracle GoldenGate Command Interpreter for Oracle: GGSCI
command (oracle): start pump_f.

2018-03-06 15:02:51 INFO OGG-00963 Oracle GoldenGate Manager for Oracle, mgr.prm: Command
received from GGSCI on host 10.50.12.32 (START EXTRACT PUMP_F ).

2018-03-06 15:02:51 INFO OGG-00975 Oracle GoldenGate Manager for Oracle, mgr.prm: EXTRACT
PUMP_F starting.

2018-03-06 15:02:52 INFO OGG-00992 Oracle GoldenGate Capture for Oracle, pump_f.prm: EXTRACT
PUMP_F starting.

2018-03-06 15:02:52 INFO OGG-01226 Oracle GoldenGate Capture for Oracle, pump_ic.prm: Socket
buffer size set to 27985 (flush size 27985).

2018-03-06 15:02:52 INFO OGG-01055 Oracle GoldenGate Capture for Oracle, pump_ic.prm:
Recovery initialization completed for target file /db/ggate/dbtestdr/dirdat/rh000011, at RBA 1927.

2018-03-06 15:02:52 INFO OGG-01478 Oracle GoldenGate Capture for Oracle, pump_ic.prm: Output
file /db/ggate/dbtestdr/dirdat/rh is using format RELEASE 10.4/11.1.

2018-03-06 15:02:52 INFO OGG-01026 Oracle GoldenGate Capture for Oracle, pump_ic.prm: Rolling
over remote file /db/ggate/dbtestdr/dirdat/rh000012.

2018-03-06 15:02:52 INFO OGG-01053 Oracle GoldenGate Capture for Oracle, pump_ic.prm:
Recovery completed for target file /db/ggate/dbtestdr/dirdat/rh000012, at RBA 1242.

2018-03-06 15:02:52 INFO OGG-01057 Oracle GoldenGate Capture for Oracle, pump_ic.prm:
Recovery completed for all targets.

2018-03-06 15:02:53 INFO OGG-00993 Oracle GoldenGate Capture for Oracle, pump_f.prm: EXTRACT
PUMP_F started.

2018-03-06 15:02:58 INFO OGG-01226 Oracle GoldenGate Capture for Oracle, pump_f.prm: Socket
buffer size set to 27985 (flush size 27985).

2018-03-06 15:02:58 INFO OGG-01052 Oracle GoldenGate Capture for Oracle, pump_f.prm: No
recovery is required for target file /db/ggate/dbtestdr/dirdat/fi000000, at RBA 0 (file not opened).

2018-03-06 15:02:58 INFO OGG-01478 Oracle GoldenGate Capture for Oracle, pump_f.prm: Output
file /db/ggate/dbtestdr/dirdat/fi is using format RELEASE 10.4/11.1.
Sau khi start pump_f tren evs-db01 se co log tren evs-db02

2018-03-06 15:02:53 INFO OGG-00963 Oracle GoldenGate Manager for Oracle, mgr.prm: Command
received from EXTRACT on host 10.50.12.32 (START SERVER CPU -1 PRI -1 PARAMS ).

2018-03-06 15:02:53 INFO OGG-00974 Oracle GoldenGate Manager for Oracle, mgr.prm: Manager
started collector process (Port 7843).

2018-03-06 15:02:53 INFO OGG-01677 Oracle GoldenGate Collector: Waiting for connection (started
dynamically).

2018-03-06 15:02:58 INFO OGG-01229 Oracle GoldenGate Collector: Connected to


10.50.12.32:28589.

2018-03-06 15:02:58 INFO OGG-01669 Oracle GoldenGate Collector: Opening


/db/ggate/dbtestdr/dirdat/fi000000 (byte -1, current EOF 0).

start rep_f

2018-03-06 16:01:22 INFO OGG-00987 Oracle GoldenGate Command Interpreter for Oracle: GGSCI
command (oracle): alter replicat REP_f extseqno 0 extrba 941. -> đoạn này là thử alter tới RBA của
logdump, file 00000

2018-03-06 16:01:26 INFO OGG-00987 Oracle GoldenGate Command Interpreter for Oracle: GGSCI
command (oracle): start rep_f.

2018-03-06 16:01:26 INFO OGG-00963 Oracle GoldenGate Manager for Oracle, mgr.prm: Command
received from GGSCI on host 10.50.12.35 (START REPLICAT REP_F ).

2018-03-06 16:01:26 INFO OGG-00975 Oracle GoldenGate Manager for Oracle, mgr.prm: REPLICAT
REP_F starting.

2018-03-06 16:01:26 INFO OGG-00995 Oracle GoldenGate Delivery for Oracle, rep_f.prm: REPLICAT
REP_F starting.

2018-03-06 16:01:27 INFO OGG-00996 Oracle GoldenGate Delivery for Oracle, rep_f.prm: REPLICAT
REP_F started.

2018-03-06 16:01:27 ERROR OGG-01091 Oracle GoldenGate Delivery for Oracle, rep_f.prm: Unable to
open file "/db/ggate/dirdat/fi000000" (error 2, No such file or directory). -> nhưng khi start lên thì phát
hiện ra là trail file cấu hình sai

2018-03-06 16:01:27 ERROR OGG-01668 Oracle GoldenGate Delivery for Oracle, rep_f.prm: PROCESS
ABENDING.

2018-03-06 16:03:27 INFO OGG-00975 Oracle GoldenGate Manager for Oracle, mgr.prm: REPLICAT
REP_F starting.

2018-03-06 16:03:27 INFO OGG-00965 Oracle GoldenGate Manager for Oracle, mgr.prm: REPLICAT
REP_F restarted automatically.
2018-03-06 16:03:27 INFO OGG-00995 Oracle GoldenGate Delivery for Oracle, rep_f.prm: REPLICAT
REP_F starting.

2018-03-06 16:03:27 INFO OGG-00996 Oracle GoldenGate Delivery for Oracle, rep_f.prm: REPLICAT
REP_F started.

2018-03-06 16:03:27 ERROR OGG-01091 Oracle GoldenGate Delivery for Oracle, rep_f.prm: Unable to
open file "/db/ggate/dirdat/fi000000" (error 2, No such file or directory).

2018-03-06 16:03:27 ERROR OGG-01668 Oracle GoldenGate Delivery for Oracle, rep_f.prm: PROCESS
ABENDING.

2018-03-06 16:03:47 INFO OGG-00987 Oracle GoldenGate Command Interpreter for Oracle: GGSCI
command (oracle): delete REP_F. -> do vậy fai delete rep_f đi để tạo lại đúng

2018-03-06 16:03:51 INFO OGG-00987 Oracle GoldenGate Command Interpreter for Oracle: GGSCI
command (oracle): ADD REPLICAT REP_F EXTTRAIL /db/ggate/dbtestdr/dirdat/fi.

2018-03-06 16:03:58 INFO OGG-00987 Oracle GoldenGate Command Interpreter for Oracle: GGSCI
command (oracle): START REPLICAT rep_f AFTERCSN 295614460.

2018-03-06 16:03:58 INFO OGG-00963 Oracle GoldenGate Manager for Oracle, mgr.prm: Command
received from GGSCI on host 10.50.12.35 (START REPLICAT REP_F AFTERCSN 295614460).

2018-03-06 16:03:58 INFO OGG-00975 Oracle GoldenGate Manager for Oracle, mgr.prm: REPLICAT
REP_F starting.

2018-03-06 16:03:58 INFO OGG-00995 Oracle GoldenGate Delivery for Oracle, rep_f.prm: REPLICAT
REP_F starting.

2018-03-06 16:03:59 INFO OGG-00996 Oracle GoldenGate Delivery for Oracle, rep_f.prm: REPLICAT
REP_F started.

2018-03-06 16:03:59 INFO OGG-01373 Oracle GoldenGate Delivery for Oracle, rep_f.prm: User
requested start after CSN 295614460.

2018-03-06 16:03:59 INFO OGG-01374 Oracle GoldenGate Delivery for Oracle, rep_f.prm:
Transaction delivery commencing at position Seqno 0, RBA 941, Transaction ID 7.21.20707, CSN
295618969, 0 transaction(s) skipped.

Nói chung, khi insert, delete vẫn được replicat ok.

Nhưng khi add partition ở source thì tại dest ko được tạo partition tương ứng

Nguồn
ALTER TABLE chungtc.f_info ADD PARTITION P20180308 VALUES LESS THAN
(TO_DATE(' 2018-03-09 00:00:00', 'SYYYY-MM-DD HH24:MI:SS',
'NLS_CALENDAR=GREGORIAN'));

insert into chungtc.f_info values (sysdate,5);


commit;

 Sinh ra logdump dạng


Logdump 293 >open /db/ggate/dbtestdr/dirdat/fi000000
2018/03/08 09:26:23.975.062 Insert Len 34 RBA 1735
Name: CHUNGTC.F_INFO
After Image: Partition 4 G s
0000 0015 0000 3230 3138 2d30 332d 3038 3a30 393a | ......2018-03-08:09:
3236 3a32 3200 0100 0500 0000 0135 | 26:22........5
 Tại đích sẽ bị lỗi
2018-03-08 10:06:59 WARNING OGG-01004 Oracle GoldenGate Delivery for Oracle, rep_f.prm:
Aborted grouped transaction on 'CHUNGTC.F_INFO', Database error 14400 (ORA-14400:
inserted partition key does not map to any partition).
2018-03-08 10:06:59 WARNING OGG-01003 Oracle GoldenGate Delivery for Oracle, rep_f.prm:
Repositioning to rba 1735 in seqno 0.
2018-03-08 10:06:59 WARNING OGG-01154 Oracle GoldenGate Delivery for Oracle, rep_f.prm:
SQL error 14400 mapping CHUNGTC.F_INFO to CHUNGTC.F_INFO OCI Error ORA-14400: inserted
partition key does not map to any partition (status = 14400), SQL <INSERT INTO
"CHUNGTC"."F_INFO" ("LOG_TIME","MSISDN") VALUES (:a0,:a1)>.
2018-03-08 10:06:59 WARNING OGG-01003 Oracle GoldenGate Delivery for Oracle, rep_f.prm:
Repositioning to rba 1735 in seqno 0.
2018-03-08 10:06:59 ERROR OGG-01296 Oracle GoldenGate Delivery for Oracle, rep_f.prm:
Error mapping from CHUNGTC.F_INFO to CHUNGTC.F_INFO.
2018-03-08 10:06:59 ERROR OGG-01668 Oracle GoldenGate Delivery for Oracle, rep_f.prm:
PROCESS ABENDING.
 Sau khi add partition cho đích thì sẽ chạy lại replicat ok
ALTER TABLE chungtc.f_info ADD PARTITION P20180308 VALUES LESS THAN
(TO_DATE(' 2018-03-09 00:00:00', 'SYYYY-MM-DD HH24:MI:SS',
'NLS_CALENDAR=GREGORIAN'));

2018-03-08 10:08:59 INFO OGG-00975 Oracle GoldenGate Manager for Oracle, mgr.prm:
REPLICAT REP_F starting.
2018-03-08 10:08:59 INFO OGG-00965 Oracle GoldenGate Manager for Oracle, mgr.prm:
REPLICAT REP_F restarted automatically.
2018-03-08 10:08:59 INFO OGG-00995 Oracle GoldenGate Delivery for Oracle, rep_f.prm:
REPLICAT REP_F starting.
2018-03-08 10:08:59 INFO OGG-00996 Oracle GoldenGate Delivery for Oracle, rep_f.prm:
REPLICAT REP_F started.

Tai lieu
http://www.ateam-oracle.com/oracle-goldengate-logdump/ : tim hieu ve 1 file trail

You might also like