Thứ Sáu, 15 tháng 10, 2021

Đồng bộ lại 1 group bị lệch dữ liệu lớn downtime ~ 1 phút trong Oracle GoldenGate

Mục đích: thủ tục này hướng dẫn bạn cách fix trường hợp bị lệch dữ liệu lớn không thể fix bằng cách minus và insert bù dữ liệu (vá) hay còn gọi là reload lại dữ liệu với downtime rất nhỏ (~ 1 phút).

Ý tưởng:
1. Export dữ liệu từ SCN bị lỗi hoặc hiện tại của bảng cần đồng bộ
2. Import dữ liệu vào bảng mới tab1_new (dùng remap) 
3. Tạo tiến trình Replicate mới OTHREP_NEW1 và chờ realtime
4. Đổi tên bảng tab1 thành old và tab1_new thành tab1 sau đó  Chuyển sang tiến trình mới

--1.SOURCE: EXPORT

-- Lay SCN
column flashback_scn_number format 99999999999999999999999
select dbms_flashback.get_system_change_number flashback_scn_number from dual;
--11827546598565

-- Tao directory
select * from dba_directoties where directory_name='DUMP_GGATE';

sqlplus / as sysdba

create directory DUMP_GGATE as '/ggate/goldengate/dump';

-- Export
expdp userid="'/ as sysdba'" FLASHBACK_SCN=11827546598565 TABLES=TEST_OWNER.TAB1 DIRECTORY=DUMP_GGATE DUMPFILE='exp_TAB1%U.dmp' LOGFILE='exp_TAB1.log' JOB_NAME=exp_TAB1 COMPRESSION=ALL parallel=8 

-- Copy dumpfile sang DBAViet_Dest 
scp /ggate/goldengate/dump/exp_TAB1*.dmp oracle@dbavietdest01:/home/oracle/binh


-- 2.DEST: IMPORT DỮ LIỆU VÀO BẢNG MỚI TRÊN DEST TAB1_NEW

-- Tao directory
sqlplus / as sysdba

select * from dba_directoties where directory_name='DUMP_GGATE';

create directory dump_ggate as '/home/oracle/binh'

-- Tạo bảng mới tab1_new giống cấu trúc bảng tab1

--Import
impdp userid="'/ as sysdba'"   RAMAP_TABLES=test_ownertab1:tab1_new DIRECTORY=dump_ggate DUMPFILE='exp_TAB1%U.dmp' LOGFILE='imp_all_othext1.log' JOB_NAME=imp_all_othext1 parallel=8

3. Tạo tiến trình Replicate mới OTHREP_NEW1
--Tạo file fội dung file othrep1_new.mgr

REPLICAT rep1
SETENV (NLS_LANG = "AMERICAN_AMERICA.UTF8")
USERID ogg, password AACAAAAAAAAAAALANAXFJGGBYDHICBGENCUIPAZBLJJAMHAD , encryptkey default
INSERTDELETES
INSERTUPDATES
HANDLECOLLISIONS
ASSUMETARGETDEFS
DISCARDFILE ./dirrpt/RORA01.DSC, append
TABLE test_owner.tab1_new;

-- Add tiến trình replicate
· ggsci> dblogin userid ogg,password Ogg$123 (user/pass của db target)
 · ggsci> add checkpointtable ogg.cpt_table
 · ggsci> ADD REPLICAT othrep1_new, EXTTRAIL /ggate/goldengate/dirdat/im, checkpointtable ogg. cpt_table

-- Start tien trinh replicat
start OTHREP1 aftercsn 11827546598565

-- Đợi đến khi realtime: Giám sát ggserr.log của cả source và dest đồng thời check đảm bảo lag = 0 mới yên tâm.

4. Chuyển sang tiến trình mới
-- Stop replicat cũ OTHREP1, OTHREP1_NEW
$GGATE/ggsci
GGSCI> STOP OTHREP1
GGSCI> stop OTHREP1_NEW

-- Đổi tên bảng (chú ý làm invalid các object như trigger, view, function, procedure, pacakge cần rebuild theo script bên dưới):

alter table test_owner.tab1 rename to tab1_old;

alter table test_owner.tab1_new rename to tab1;

-- Rebuild lại các object invalid:
select 'ALTER '||OBJECT_TYPE||' '||OWNER||'.'||OBJECT_NAME||' COMPILE;' from dba_objects
where object_type in ('PROCEDURE','FUNCTION','TRIGGER','PACKAGE') and status like 'INVALID'and OWNER like 'TEST_OWNER'
UNION ALL
select 'ALTER PACKAGE '||OWNER||'.'||OBJECT_NAME||' COMPILE BODY;' from dba_objects
where object_type in ('PACKAGE BODY') and status like 'INVALID' and OWNER like 'TEST_OWNER';

-- Sửa lại tên bảng cần đồng bộ:
GGSCI> edit params OTHREP1_NEW
Sửa dòng TABLE test_owner.tab1_new; --> Thành TABLE test_owner.tab1;

-- Bật lại group OTHREP1_NEW
GGSCI> start OTHREP1_NEW

-- Giám sát ggserr.log của cả source và dest đồng thời check đảm bảo lag = 0 mới yên tâm.

Hy vọng hữu ích cho bạn.
=============================
* KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE trực tiếp từ tôi giúp bạn bước đầu trở thành những chuyên gia DBA, đủ kinh nghiệm đi thi chứng chỉ OA/OCP, đặc biệt là rất nhiều kinh nghiệm, bí kíp thực chiến trên các hệ thống Core tại VN chỉ sau 1 khoá học.
* CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
* Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile: 0902912888
⚡️ Skype: tranbinh48ca
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: http://bit.ly/ytb_binhoraclemaster
👨 Tiktok: https://www.tiktok.com/@binhoraclemaster?lang=vi
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhoracle
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội

=============================
học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,khóa học pl/sql, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle multitenant, Container Databases (CDB), Pluggable Databases (PDB), oracle cloud, oracle security, oracle fga, audit_trail, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle weblogic, middleware, hoc solaris, hoc linux, hoc aix, unix, oracle oca, oracle ocp, oracle ocm

ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master