ส่วนหนึ่งของชุดข้อมูลจะแนะนำ Oracle® refreshable clones รวมถึงเวลาและเหตุผลในการใช้งาน ในโพสต์นี้ ฉันสาธิตวิธีการตั้งค่า กำหนดค่า บำรุงรักษา และวางฐานข้อมูลโคลนที่สามารถรีเฟรชได้ (PDB) ใน Oracle 18c
ข้อกำหนดเบื้องต้นสำหรับ PDB โคลนที่รีเฟรชได้
หากต้องการติดตามการสาธิตนี้ ให้ทำตามข้อกำหนดเบื้องต้นต่อไปนี้:
-
มีลิงก์ฐานข้อมูลสำหรับโคลนที่สร้างขึ้นใหม่ซึ่งชี้ไปที่โลคัลหรือคอนเทนเนอร์ระยะไกล
-
ตั้งค่า
archive_log_mode
เพื่อenabled
. -
ใช้ระบบวิศวกรรมหรือ Enterprise Edition (EE) Oracle Cloud หากไม่มีในแพลตฟอร์มหรือเวอร์ชันเดียวกัน ให้ตั้งค่าพารามิเตอร์ที่ซ่อนอยู่
_exadata_feature_on
ถึงTrue
สำหรับการสาธิตนี้ -
ตั้งค่า
local_undo_mode
เพื่อenabled
.
คุณสามารถตั้งค่า PDB ที่รีเฟรชได้ใน CLOSED หรือ เปิดอ่านเท่านั้น โหมดและใน เปิดอ่านเท่านั้น โหมดสำหรับการค้นหาหลังจากรีเฟรช
สิ่งแวดล้อม
สำหรับการสาธิตนี้ ตรวจสอบให้แน่ใจว่าสภาพแวดล้อมของคุณเป็นไปตามข้อกำหนดต่อไปนี้:
-
ติดตั้ง Oracle 18c และปฏิบัติตามข้อกำหนดเบื้องต้นบนเครื่องและฐานข้อมูล
-
สำหรับบทบาทของฐานข้อมูลการผลิต:
-
ตั้งชื่อฐานข้อมูลคอนเทนเนอร์ (CDB):YCDB1
-
ตั้งชื่อ PDB:PURCH_PDB
-
-
สำหรับบทบาทของ PDB โคลนที่รีเฟรชได้:
-
ตั้งชื่อ CDB:XCDB1
-
ตั้งชื่อ PDB:PDB2_REFRO
-
ตั้งค่า PDB ให้รีเฟรชอัตโนมัติทุกๆ 30 นาที
-
-
สร้างลิงค์ฐานข้อมูลสาธารณะโดยใช้
create_pdb
บน XCDB . ลิงก์ควรชี้ไปที่ PURCH_PDB บน YCDB .
- ดำเนินการคำสั่ง Transparent Network Substrate (TNS) ต่อไปนี้:
purch_pdb=(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = tejashost2.localdomain)(PORT = 1521))
(CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = purch_pdb)))
XCDB1=(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = tejashost2.localdomain)(PORT = 1521))
(CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = XCDB1)))
YCDB1=(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = tejashost2.localdomain)(PORT = 1521))
(CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = YCDB1)))
สาธิต
การสาธิตนี้ดำเนินกิจกรรมดังต่อไปนี้:
-
ตั้งค่าสภาพแวดล้อม
-
ค้นหาโหมดรีเฟรชของฐานข้อมูลที่ใช้งานจริง
-
แสดงวิธีรีเฟรชโหมดของโคลนที่รีเฟรชได้ รวมถึงการปิดใช้งานการรีเฟรชบนโคลนที่รีเฟรชได้
-
สลับระหว่างการผลิตและโคลนที่รีเฟรชได้
ตั้งค่าสภาพแวดล้อมการโคลนที่รีเฟรชได้:
สำหรับสภาพแวดล้อมการโคลนที่รีเฟรชได้ ให้ดำเนินการดังต่อไปนี้
สิ่งที่ควรทำใน YCDB1:
- สร้างฐานข้อมูลที่ใช้งานจริงแล้วเปิดขึ้นมา
-
นำเข้าข้อมูลจาก EXPDP ดัมพ์ที่คุณถ่ายโดยใช้
impdp
ยูทิลิตี้หรือนำเข้าสคีมา HR ไปยัง PURCH_PDB . สำหรับตัวอย่างนี้ นำเข้าสคีมา HR โดยเรียกใช้สคริปต์ต่อไปนี้บนฐานข้อมูล:@?/demo/schema/human_resources/hr_main.sql
หลังจากเสร็จสิ้น ตรวจสอบรายละเอียดสคีมา HR ดังแสดงในรูปต่อไปนี้:
การดำเนินการที่ต้องทำบน XCDB1:
-
สร้างลิงค์ฐานข้อมูลเพื่อชี้ไปที่ฐานข้อมูลที่ใช้งานจริง PURCH_PDB .
-
สร้าง PDB ที่รีเฟรชได้ ตั้งระยะเวลาการรีเฟรชเป็นทุกๆ 30 นาที และตรวจสอบว่าข้อมูลได้รับการรีเฟรช
คุณสามารถใช้แอตทริบิวต์ทั้งหมดได้เมื่อคุณสร้าง PDB ที่คุณวางแผนที่จะใช้เพื่อสร้างฐานข้อมูลในตำแหน่งอื่น ตัวอย่างเช่น ในการแก้ไขตำแหน่งไฟล์ข้อมูล PDB ให้ใช้ CREATE_FILE_DEST หรือ FILE_NAME_CONVERT .
การเพิ่มเพียงอย่างเดียวคือ โหมดรีเฟรช คุณลักษณะ. เพื่อให้การสาธิตนี้ง่ายขึ้น ฉันไม่ได้เพิ่มแอตทริบิวต์ทางเลือกใดๆ
ค้นหาโหมดรีเฟรชและรายละเอียดฐานข้อมูลที่ใช้งานจริง
คุณสามารถสอบถามตาราง DBA_PDBS เพื่อตรวจสอบรายละเอียดของโหมด PDB ที่รีเฟรชได้ สถานะ การรีเฟรชล่าสุด SCN และรายละเอียดฐานข้อมูลการผลิตหลัก สำหรับPDB2_REFRO PDB ตรวจสอบผลลัพธ์ตามที่แสดงในตัวอย่างต่อไปนี้:
หลังจากที่คุณทำงานเสร็จแล้ว คุณควรแปลง PDB ที่รีเฟรชได้กลับไปเป็นMOUNTED โหมดสำหรับการรีเฟรชอย่างต่อเนื่องตามกำหนดเวลา ใช้คำสั่งต่อไปนี้เพื่อทำกิจกรรมนี้ open_mode.sql ใช้ที่นี่คือ aquery เพื่อตรวจสอบ open_mode ปัจจุบันของฐานข้อมูล
คุณอาจเห็นข้อผิดพลาดต่อไปนี้หากคุณไม่ได้ปิดอินสแตนซ์ฐานข้อมูลเพื่อรีเฟรช:
ORA-65025: Pluggable database is not closed on all instances
เปลี่ยนโหมดรีเฟรชของโคลนที่รีเฟรชได้
คุณสามารถเปลี่ยนโหมดของโคลนที่รีเฟรชได้ดังนี้:
-
เปลี่ยนการรีเฟรชด้วยตนเองเป็นการรีเฟรชอัตโนมัติ
-
เปลี่ยนการรีเฟรชอัตโนมัติเป็นการรีเฟรชด้วยตนเอง
-
ปิดใช้งานการรีเฟรชจากโหมดรีเฟรชอัตโนมัติหรือด้วยตนเอง
แปลงการรีเฟรชด้วยตนเองเป็นการรีเฟรชอัตโนมัติและในทางกลับกัน
หมายเหตุ :คุณไม่สามารถเปลี่ยนโหมดรีเฟรช PDB เมื่อเข้าสู่ระบบ PDB อื่น ตัวอย่างเช่น คุณไม่สามารถเปลี่ยนโหมดของ XPDB ขณะเข้าสู่ระบบ YPDB . หากคุณลอง จะเกิดข้อผิดพลาดต่อไปนี้:
ORA-65118: operation affecting a pluggable database cannot be performed from
another pluggable database.
ในโหมดรีเฟรชด้วยตนเอง คุณสามารถรีเฟรช PDB ที่โคลนไว้ได้ตามต้องการโดยใช้คำสั่งต่อไปนี้:
ปิดใช้งานการรีเฟรช PDB และแปลงโคลนแบบอ่านอย่างเดียวเป็นแบบอ่านอย่างเดียว ฐานข้อมูลที่เปิดใช้งานการเขียน
คุณสามารถปิดใช้งานโหมดรีเฟรชของ PDB เพื่อแปลงโคลนที่รีเฟรชได้ของคุณเป็นโหมดอ่าน-เขียนได้
หมายเหตุ :หลังจากที่คุณปิดใช้งานการรีเฟรชสำหรับฐานข้อมูลแบบเสียบได้ คุณจะไม่สามารถเปิดใช้งานได้อีก คุณต้องสร้าง PDB ใหม่เพื่อให้เป็น PDB ที่รีเฟรชได้ หากคุณพยายามที่จะแปลงจาก NONE โหมดรีเฟรชเป็นโหมดรีเฟรช คุณได้รับข้อผิดพลาดดังต่อไปนี้:
ORA-65261: pluggable database PDB2_REFRO3 not enabled for refresh.
หลังจากที่คุณปิดใช้งานการรีเฟรช PDB จะมีสิทธิ์อ่าน-เขียน
เปลี่ยนจากการผลิตเป็นโคลนที่รีเฟรชได้และในทางกลับกัน
ก่อน Oracle 18c คุณต้องดำเนินการตามขั้นตอนทั้งหมดเพื่อสลับบทบาท ซึ่งรวมถึงการปิดบทบาทหลักและการเปิดเป็นแบบอ่านอย่างเดียว
ในการสาธิตนี้ ฉันทำสิ่งต่อไปนี้:
-
สร้างผู้ใช้ C##SWITCHUSER บนฐานข้อมูลคอนเทนเนอร์ XCDB1 และ YCDB1 โดยใช้การอนุญาตเชื่อมต่อ
sysoper
. -
สร้างลิงก์ฐานข้อมูล กะพริบ ชี้ไปที่ฐานข้อมูลคอนเทนเนอร์อื่นใน YCDB1 , สร้าง dblink, XCDB1SYSOPER เพื่อเชื่อมต่อ XCDB1 . ใช้มุมมองฐานข้อมูล DBA_DB_LINKS และ V$DATABASE เพื่อรวบรวมรายละเอียดฐานข้อมูลหลังจากสร้างลิงค์ฐานข้อมูลแล้ว
-
เปิดฐานข้อมูลโคลนที่รีเฟรชได้เป็นแบบอ่านอย่างเดียว
-
เรียกใช้คำสั่งเปลี่ยน
-
ตรวจสอบสถานะฐานข้อมูลและโหมดเปิดหลังจากสลับการผลิตและฐานข้อมูลโคลนที่รีเฟรชได้
สิ่งที่ควรทำใน YCDB1:
ทำตามข้อกำหนดเบื้องต้นที่ 1 ถึง 3 ก่อนดำเนินการคำสั่งเปลี่ยน
รายละเอียดลิงค์ฐานข้อมูล:
การดำเนินการที่ต้องทำบน XCDB1
ตรวจสอบรายละเอียดลิงก์ฐานข้อมูลและค้นหาฐานข้อมูลโหมดเปิด โดยใช้DBA_DB_LINKS และ V$DATABASE .
หลังจากการเปลี่ยนเสร็จสมบูรณ์ PDB ต้นทางดั้งเดิม PURCH_PDB กลายเป็น PDB โคลนที่รีเฟรชได้ PDB นี้อยู่ใน MOUNT สถานะ และจากนี้ไปเปิดได้เฉพาะใน อ่านอย่างเดียว โหมด. ในทางตรงกันข้าม โคลนต้นฉบับที่รีเฟรชได้ PDB PDB2_REFRO เปิดให้อ่านแล้วใน อ่าน หรือ เขียน โหมดและทำหน้าที่เป็น PDB ต้นทาง
สรุป:
คุณไม่ควรพิจารณาคุณลักษณะ PDB โคลนที่รีเฟรชได้เพื่อแทนที่ Data Guard จากมุมมองของความพร้อมใช้งานสูง อย่างไรก็ตาม คุณสามารถใช้ arefreshable clone เพื่อรักษาฐานข้อมูลจำลองบนเซิร์ฟเวอร์อื่นได้
โพสต์นี้อธิบายวิธีใช้ PDB ที่รีเฟรชได้เป็นแบบจำลอง เพื่อให้คุณดำเนินการกับแอปพลิเคชันที่โหลดต่ำและไม่สำคัญต่อได้ ไม่ว่าสวิตช์จะเป็นเหตุการณ์ที่วางแผนไว้หรือไม่ได้วางแผนไว้ โปรดจำไว้ว่า คุณควรพิจารณาการสับเปลี่ยนจากมุมมองของ Recovery Time Objectives (RTOs, time to resume operation) และ Recovery Point Objectives (RPOs เช่น การสูญเสียข้อมูลน้อยที่สุด)
ใช้แท็บคำติชมเพื่อแสดงความคิดเห็นหรือถามคำถาม คุณยังแชทตอนนี้เพื่อเริ่มการสนทนาได้
เรียนรู้เพิ่มเติมเกี่ยวกับฐานข้อมูล