Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> ฐานข้อมูล

Master Oracle 12c Data Pump: Export PDBs และข้อจำกัดใหม่

เผยแพร่โดย TriCore: 6 มิถุนายน 2017

Oracle Data Pump (expdp, impdp) เป็น utility สำหรับ export/import database objects ในและข้าม databases Part 1 พูดถึง multitenant architecture ใน Oracle Database 12c และการใช้ Data Pump Part 2 ครอบคลุม export ของ pluggable databases (PDBs) เท่านั้น และ restrictions ที่ Data Pump วางไว้กับ PDBs

การ Export PDB

ใน CDB ข้อมูลจริงเป็นของ PDB แต่ละ PDB ดูเหมือน non-CDB (standard Oracle database) ให้ client ดังนั้น export objects จาก PDB จึงสมเหตุสมผล

การใช้ Data Pump export สำหรับ PDBs เหมือน non-CDB database ต่างกันแค่ต้องใช้ connect identifier หรือ TNS alias ในคำสั่ง export เพื่อระบุ PDP เฉพาะ

ตัวอย่าง export user ABBAS ใน PDP ชื่อ PRODPDB1:

[oracle@labserver ~]$ expdp directory=DP_PDB1 dumpfile=pdb1_abbas.dmp logfile=pdb1_abbas.log schemas=abbas

Output แสดงการเชื่อมต่อเป็น sys@prodpdb1 as sysdba TNS alias prodpdb1 resolve ไปยัง PDP PRODPDB1 ตรวจสอบด้วย tnsping prodpdb1

Data Pump Restrictions on PDBs

Data Pump ไม่อนุญาตให้ใช้ directory ที่ owned by root container/CDB หรือ PDB อื่น ต้องสร้าง directory ภายใต้ PDB PDP ต้องเป็นเจ้าของ directory เพื่อใช้ Data Pump export/import

หากใช้ directory ของ PDB อื่นหรือ root container จะได้ error:

ORA-39002: invalid operation
ORA-39070: Unable to open the log file.
ORA-39087: directory name DP_PDB2 is invalid

ไม่สามารถใช้ default directory DATA_PUMP_DIR สำหรับ PDB export/import เพราะ owned by root container และเปลี่ยน ownership ไม่ได้

หากพยายามสร้าง DATA_PUMP_DIR ภายใน PDB จะได้ error:

ORA-65040: operation not allowed from within a pluggable database

ดังนั้น ต้องสร้าง directory explicitly สำหรับ PDB ทุกครั้งที่ทำ Data Pump export/import

สรุป

Data Pump utility เป็น enhanced export/import tool ที่ Oracle นำเสนอตั้งแต่ Oracle 10g การใช้ expdp enhancements ใน Oracle Database 12c ที่ครอบคลุมใน Part 1 และ 2 ช่วย maximize utility นี้

References

  • Changes in This Release for Oracle Database Utilities