Oracle® Database 18c for Enterprise Edition on Cloud รวม Engineered Systems (Exadata) พร้อมคุณลักษณะใหม่และที่ปรับปรุงแล้วมากมาย Release 18c ปรับปรุงคุณลักษณะ Refreshable Clone จาก 12c Release 2 โดยเพิ่ม Quick Switchover หรือ Failover Facility คุณยังสามารถสร้าง Snapshot Carousel เพื่อ Clone หรือ Replicate Pluggable Databases (PDBs) ในสภาพแวดล้อม Multitenant
สำหรับ Production Environments ให้ใช้ Snapshot Carousel กับ Refreshable Clone PDB Feature เพื่อให้ Database Administration (DBA) Activities ง่ายขึ้น เช่น การป้องกัน Unforeseen Outage หรือ Troubleshooting Logical Corruption Issues โพสต์นี้อธิบายการใช้งาน Refreshable Clones แบบปฏิบัติจริงกับ Manual และ Automatic Switchover Cases คุณสามารถใช้มันกับ Snapshot Carousel Feature เพื่อระบุและจัดการปัญหาสุขภาพฐานข้อมูลต่อไปนี้:
- Production Database ไม่พร้อมใช้งาน
- Performance Issues
- Logical Corruption ใน Oracle Database
โพสต์นี้เป็น Part หนึ่งของ Series บล็อก 2 ส่วน อ่านต่อเพื่อเรียนรู้เกี่ยวกับ Refreshable Clone PDB วิธีการทำงาน และเมื่อไหร่ควรใช้
Part สองของซีรีส์อธิบายวิธีสร้าง กำหนดค่า บำรุงรักษา และ Drop Refreshable Clone PDB
คำถามเกี่ยวกับ Cloning และ Snapshot
ส่วนนี้ให้คำตอบสำหรับคำถามพื้นฐานบางอย่างเกี่ยวกับ Clone และ Snapshot Carousels
Cloning คืออะไร?
เมื่อคุณ Clone Instance คุณจะสำรองมันและ Restore Backup ที่อื่น ปกติคุณ Restore บน Machine อื่นที่มี Directory Structure เดียวกัน คุณยังสามารถ Restore บน Machine เดียวกันได้โดยการเปลี่ยน Oracle System ID (SID) และ Database Name คุณสามารถใช้ Clone ของ Production Instance บน Test Machine เพื่อลอง What-If Scenarios เช่น เปลี่ยนพารามิเตอร์ init.ora หรือเปลี่ยนโค้ดของคุณ และอื่นๆ
PDB Cloning ทำงานอย่างไร?
คุณสามารถใช้ PDB Cloning เพื่อ Clone PDB ในสภาพแวดล้อม Multitenant สำหรับ Local หรือ Remote PDBs ให้ใช้ Refreshable Clone หรือ Snapshot Carousel เพื่อสร้าง PDB Clones ใน Local Container Database
สำหรับ Remote PDB Cloning ให้พิจารณาสิ่งต่อไปนี้:
- เพื่อใช้ Refreshable Clone คุณต้องมี Database Link สำหรับ PDB และ Disable Cloned Database
- เพื่อใช้ Snapshot Carousel คุณต้องสร้าง Typical PDB Clone โดยใช้ Snapshot จากนั้น ใช้ Database Links หรือ Unplug และ Plug เข้า Container Database อื่น คุณยังสามารถสร้าง Refreshable Clone จาก Cloned PDB ได้
PDB Snapshot คืออะไร?
PDB Snapshot คือ Point-in-Time Copy ของ PDB สร้าง Snapshots ด้วยตนเองโดยใช้ Clause SNAPSHOT ของคำสั่ง CREATE PLUGGABLE DATABASE (หรือ ALTER PLUGGABLE DATABASE) หรือโดยอัตโนมัติโดยใช้ Clause EVERY Interval
PDB Snapshot Carousel คืออะไร?
PDB Snapshot Carousel รักษา Library ของ PDB Snapshots 近期 ที่คุณสามารถใช้ทำ Point-in-Time Recovery และ Clone PDB
Refreshable Clone PDB
คุณสามารถ Clone PDB โดยใช้คุณลักษณะ Refreshable Clone ซึ่งปกป้องฐานข้อมูลจาก Data Corruption และ Disasters ด้วย Minimal Data Loss ขึ้นอยู่กับ Refresh Interval และ Redo Generation Rate คุณสามารถใช้ Refreshable Clone Database เป็น Replica เพื่อ Resume Low-Load, Non-Critical Applications บางอย่าง คุณสามารถตั้งค่า Refreshable Clone Database ให้ Update อัตโนมัติในช่วงเวลาที่กำหนด หรือ Manual โดยใช้ Redo Log Application
Figure 1 แสดงสถาปัตยกรรมของ Refreshable Clone Processing แสดง Main Components และ Processes และ Illustrate ความสัมพันธ์ระหว่าง Production Database และ Refreshable Clone Database Diagram นี้แสดงการ Clone Pluggable Database PDB1 ของ Container Database CDB1 ไปยัง Container Database อื่น CDB2 การกระทำนี้ทำให้ได้ Hot-Cloned Version ของ PDB1 ชื่อ PDB1_REF_CLONE
Figure 1
Figure 1
Refresh Mode Options
คุณสามารถเปลี่ยน Refresh Modes ได้โดยการตั้งค่าสภาพแวดล้อมด้วย Modes ต่อไปนี้:
MANUALAUTOMATIC(ใช้EVERYnMINUTES)NONE
สร้างและทำงานกับ Refreshable Clone
ใช้ Statement ต่อไปนี้เพื่อ Clone Source PDB และ Config Clone ให้เป็น Refreshable การ Refresh Clone PDB จะ Update มันด้วย Redo Data ที่สะสมมาตั้งแต่ Last Redo Log Apply
CREATE PLUGGABLE DATABASE ... REFRESH MODE [ MANUAL / AUTOMATIC (using EVERY n MINUTES) / NONE ] ;
ใช้ Statement ต่อไปนี้เพื่อเปลี่ยน Mode ปัจจุบันของ Refreshed หรือ Disabled Refreshable Clone และแปลงมันเป็น Fully Functional PDB:
ALTER PLUGGABLE DATABASE ... REFRESH MODE [ MANUAL / AUTOMATIC (using EVERY n MINUTES) / NONE ] ;
หากคุณไม่ Clone PDBs บ่อยๆ เพื่อหลีกเลี่ยง Performance Degradation Clone Data จะ Stale Refreshable Clone PDB แก้ปัญหานี้ เมื่อ Refreshable Clone เก่า คุณสามารถ Refresh มันได้อย่างรวดเร็วด้วย Recent Redo
โดยปกติ คุณ Maintain Master Refreshable Clone ของ Production PDB และจากนั้น Snapshot Clones ของ Master สำหรับ Development และ Testing
ใช้ Statement ต่อไปนี้เพื่อสลับ Role สำหรับ Source และ Clone PDBs:
ALTER PLUGGABLE DATABASE ... SWITCHOVER;
คุณสามารถลดความซับซ้อนของ Switchover Process นี้ได้ ตามรูปต่อไปนี้:
Figure 2
Figure 2
Figure 3
Figure 3
Switchover Capability นี้มีประโยชน์ในสถานการณ์ต่อไปนี้
Planned Switchover ของ Refreshable Clone
ใน Figure 3 CDB1 ซึ่งโฮสต์ Source PDB PDB1 อาจมี Overhead มากกว่า CDB2 ซึ่งโฮสต์ Clone PDB PDB1_REF_CLONE อย่างมีนัยสำคัญ เพื่อให้ได้ Load Balancing ที่ดีขึ้น คุณสามารถสลับ Role ของ PDBs โดยแปลง Clone เป็น Source PDB ใหม่ และ Source PDB เป็น Clone ใหม่
Execute Role Transition นี้โดยใช้คำสั่งต่อไปนี้บน Current Primary Database:
ALTER PLUGGABLE DATABASE PDB1 REFRESH MODE EVERY 2 MINUTES FROM PDB1_REF_CLONE@DBLINK2CDB2 SWITCHOVER;
หลังจากคำสั่งนี้เสร็จ PDB1_REF_CLONE ใน CDB2 รับบทบาท Primary CDB1 ตอนนี้ Maintain Replica ทุก Connection ไป Production เชื่อมต่อไป New Primary ซึ่งตอนนี้คือ CDB2 คุณสูญเสีย Transactions ไม่เกิน 2 นาที สมมติว่า Refreshes ตามทัน Redo Generation Rate จาก Source
Unplanned Switchover ของ Refreshable Clone
หาก Source PDB มี Unplanned Failure คุณสามารถ Switch Clone PDB เป็น Source PDB ใหม่ และ Resume Normal Operations
โปรดทดสอบสภาพแวดล้อมของคุณโดยใช้ Realistic Transaction Volumes เพื่อให้แน่ใจว่า Process ของการ Refresh Replica สามารถตามทัน Redo Generation Rate
Refreshable Clones แตกต่างจาก Data Guard อย่างไร?
Oracle นำเสนอ High Availability Feature ด้วย Data Guard และ Standby Databases องค์ประกอบต่อไปนี้แยก Refreshable Clones จาก Data Guard:
- Data Guard ให้ High Availability ปกป้องฐานข้อมูลจาก Disasters และ Data Corruption แบบ Real-time มี Switchover และ Failover ไป Standby Databases คุณยังสามารถใช้ Data Guard Standby Database สำหรับ Load Sharing โดยใช้ Refreshable Clone PDB Feature Data Guard ทำงานที่ CDB Level และคุณไม่สามารถมี Switchover หรือ Failover ที่ PDB Level ได้
- เนื่องจาก Lag ระหว่าง Initiation และ Completion ของ Switchover Data Guard มีประสิทธิภาพมากกว่าการ Maintain Refreshable Clone เพียงอย่างเดียว ระหว่าง Lag นี้ Transactions ไป Primary Database อาจไม่ถูก Applied หรือ Synced กับ Read-Only Database ก่อนที่คุณจะ Switch Roles ผลคือ คุณอาจสูญเสีย Transactions เหล่านั้น
- Data Guard มีขีดจำกัดสูงสุด 30 Standby Databases แตคุณสามารถมี Refreshable Clones ได้มากเท่าที่คุณต้องการ
เพื่อเสริมสร้าง Refreshable Clone PDB Feature สำหรับ High Availability และมี Near-Zero Data Loss ให้ตั้งค่าพารามิเตอร์ REMOTE_RECOVERY_FILE_DEST เพื่อ Archive Log Location ของ Source PDB
สรุป
คุณไม่ควรพิจารณาคุณลักษณะ Refreshable Clone PDB เป็นการแทนที่ Data Guard จากมุมมอง High Availability อย่างไรก็ตาม คุณสามารถใช้ Refreshable Clone เพื่อ Maintain Replica Database บน Server อื่น
โพสต์นี้อธิบายวิธีใช้ Refreshable PDBs เป็น Replicas เพื่อให้คุณสามารถ Resume การดำเนินงาน Low-Load, Non-Critical Applications ได้ ไม่ว่าจะเป็น Planned หรือ Unplanned Event โปรดทราบ คุณควรพิจารณา Switchovers จากมุมมอง Recovery Time Objectives (RTOs, เวลาในการ Resume Operations) และ Recovery Point Objectives (RPOs, เช่น การบรรลุ Minimal Data Loss)
Part Two ของซีรีส์สาธิตคุณลักษณะ Refreshable Clone
ใช้แท็บ Feedback เพื่อแสดงความคิดเห็นหรือถามคำถาม คุณยังสามารถแชทได้ทันทีเพื่อเริ่มการสนทนา
เรียนรู้เพิ่มเติมเกี่ยวกับ Databases