บทนำ
ในบล็อกนี้ ฉันจะอภิปรายคุณสมบัติของ Oracle Data Guard ชื่อ Far Sync
Oracle ออกแบบการกำหนดค่าใหม่นี้เพื่อรองรับการขนส่ง redo แบบ synchronous ระหว่างฐานข้อมูล primary และ standby ซึ่งอยู่ห่างกันทางกายภาพไกล โทโพโลยีนี้ใน Oracle 12c ให้การคุ้มครองฐานข้อมูล primary ที่อยู่ที่ระยะไกลด้วยการไม่สูญหายข้อมูล (zero data loss)
คุณสมบัตินี้รับ redo จากฐานข้อมูล primary และส่ง redo ไปยัง standby เนื่องจากอินสแตนซ์ Far Sync ไม่มี datafiles คุณจึงไม่สามารถเปิดมันเป็น primary หรือ standby ในอนาคตได้
อินสแตนซ์ Far Sync ลดผลกระทบต่อเวลาตอบสนองของการ commit (commit response time) ลดเวลานั้นลงถึงค่า threshold ที่ยอมรับได้พร้อมกับการคุ้มครองข้อมูลที่สูงขึ้น
สถาปัตยกรรม
ภาพต่อไปนี้แสดงตัวอย่างสถาปัตยกรรม Far Sync:
แหล่งที่มาของภาพ: https://www.oracle.com/technetwork/database/availability/farsync-2267608.pdf
การกำหนดค่า
เพื่อกำหนดค่า Far Sync ให้ดำเนินการตามขั้นตอนต่อไปนี้
1. สร้าง Far Sync control file จาก primary และคัดลอกไปยัง Far Sync server
รันโค้ดต่อไปนี้:
ALTER DATABASE CREATE FAR SYNC INSTANCE CONTROLFILE AS '/home/oracle/farsync.ctl';
2. Mount Far Sync instance ด้วย Far Sync control file ที่คุณสร้าง
เลือกบทบาท Far Sync โดยรันโค้ดต่อไปนี้:
SQL> select database_role from v$database;
DATABASE_ROLE
—————-
FAR SYNC
3. ตั้งค่าพารามิเตอร์สำหรับฐานข้อมูล primary
บนฐานข้อมูล primary ให้เพิ่มพารามิเตอร์ต่อไปนี้ลงใน init file:
LOG_ARCHIVE_CONFIG='DG_CONFIG=(oraprimary,orafarsync,orastandby)' scope=both;
LOG_ARCHIVE_DEST_2='SERVICE=farsync SYNC AFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=orafarsync'
LOG_ARCHIVE_DEST_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=oraprimary'
4. ตั้งค่าพารามิเตอร์สำหรับ Far Sync
ในอินสแตนซ์ Far Sync ให้เพิ่มพารามิเตอร์ต่อไปนี้ลงใน init file:
LOG_ARCHIVE_CONFIG='DG_CONFIG=(primary,farsync,standby)'
LOG_ARCHIVE_DEST_2='SERVICE=standby ASYNC VALID_FOR=(STANDBY_LOGFILES,STANDBY_ROLE) DB_UNIQUE_NAME=orastandby'
LOG_ARCHIVE_DEST_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orafarsync'
5. ตั้งค่าพารามิเตอร์สำหรับฐานข้อมูล standby
บนฐานข้อมูล standby ให้เพิ่มพารามิเตอร์ต่อไปนี้ลงใน init file:
LOG_ARCHIVE_CONFIG='DG_CONFIG=(primary,farsync,standby)'
LOG_ARCHIVE_DEST_2='SERVICE=primary ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=oraprimary'
LOG_ARCHIVE_DEST_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orastandby'
สรุป
คุณสมบัติ Far Sync ช่วยให้สามารถกำหนดค่า standby database แบบ zero-data-loss ข้ามระยะไกลสำหรับองค์กรได้ มันยังช่วยเอาชนะข้อสงสัยและสร้างความเชื่อมั่นให้กับองค์กรที่คิดว่า zero data loss ไม่สามารถเป็นจริงได้และกังวลเกี่ยวกับประสิทธิภาพฐานข้อมูล
อินสแตนซ์ Far Sync ยังลดภาระจากฐานข้อมูล primary คือ overhead ของการแก้ไขช่องว่าง (gaps) ใน archived logs ที่ถูกรับโดย remote standby database อินสแตนซ์สามารถประหยัด bandwidth ของ WAN โดยการทำ redo transport compression โดยไม่กระทบประสิทธิภาพฐานข้อมูล primary (off-host compression)
ใช้แท็บ Feedback เพื่อแสดงความคิดเห็นหรือถามคำถาม คุณยังสามารถแชทตอนนี้เพื่อเริ่มการสนทนาได้
เรียนรู้เพิ่มเติมเกี่ยวกับ Databases