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

การทำงานกับการปรับปรุง Data Pump ใน Oracle Database 12c:ตอนที่ 2

เผยแพร่ครั้งแรกโดย TriCore:6 มิถุนายน 2017

Oracle® Data Pump(expdp, impdp) เป็นยูทิลิตี้สำหรับการส่งออกและนำเข้าอ็อบเจ็กต์ฐานข้อมูลในและระหว่างฐานข้อมูล ส่วนที่ 1 ของชุดโพสต์บล็อกสองส่วนนี้กล่าวถึงการแนะนำสถาปัตยกรรมหลายผู้เช่าใน OracleDatabase 12c และวิธีใช้ Data Pump เพื่อส่งออกและนำเข้าข้อมูล ส่วนที่ 2 นำเสนอการส่งออกเฉพาะฐานข้อมูลที่เสียบได้ (PDB) และข้อจำกัดที่ Data Pump วางไว้บน PDB

การส่งออก PDB

ในกรณีของฐานข้อมูลคอนเทนเนอร์ (CDB) ข้อมูลจริงเป็นของ PDB พื้นฐาน และแต่ละ PDB จะปรากฏเป็นที่ไม่ใช่ CDB (ฐานข้อมูล Oracle มาตรฐาน) ให้กับลูกค้า ดังนั้นจึงเหมาะสมที่จะส่งออกวัตถุจาก PDB

การทำงานกับการปรับปรุง Data Pump ใน Oracle Database 12c:ตอนที่ 2

แหล่งที่มาของรูปภาพ:Data Pumparchitecture

การใช้การส่งออก Data Pump สำหรับ PDB จะเหมือนกับการใช้การส่งออก Data Pump สำหรับฐานข้อมูลที่ไม่ใช่ CDB ข้อแตกต่างเพียงอย่างเดียวในการใช้ยูทิลิตีการส่งออก Data Pump สำหรับ PDB คือ คุณต้องใช้ตัวระบุการเชื่อมต่อ หรือนามแฝง Transparent NetworkSubstrate (TNS) ในพร้อมท์คำสั่งการเอ็กซ์พอร์ตเมื่อคุณเริ่มต้นการส่งออก ขั้นตอนนี้ช่วยให้มั่นใจได้ว่าคุณกำลังเริ่มต้นการส่งออก Data Pump สำหรับ PDB เฉพาะ

ตัวอย่างเช่น คุณสามารถส่งออกผู้ใช้ABBAS เป็นของ PDBnamed PRODPDB1 ด้วยคำสั่งต่อไปนี้:

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

บล็อกโค้ดต่อไปนี้แสดงผลลัพธ์สำหรับคำสั่งนี้:

Export: Release 12.1.0.1.0 - Production on Fri Mar 27 00:08:09 2015

Copyright (c) 1982, 2013, Oracle and/or its affiliates.  All rights reserved.

Username: sys@prodpdb1 as sysdba
Password:

Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Advanced Analytics
and Real Application Testing options
Starting "SYS"."SYS_EXPORT_SCHEMA_01":  sys/********@prodpdb1 AS SYSDBA directory=DP_PDB1 dumpfile=pdb1_abbas.dmp logfile=pdb1_abbas.log schemas=abbas
Estimate in progress using BLOCKS method...
Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 64 KB
Processing object type SCHEMA_EXPORT/USER
Processing object type SCHEMA_EXPORT/SYSTEM_GRANT
Processing object type SCHEMA_EXPORT/ROLE_GRANT
Processing object type SCHEMA_EXPORT/DEFAULT_ROLE
Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
Processing object type SCHEMA_EXPORT/TABLE/TABLE
Processing object type SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
Processing object type SCHEMA_EXPORT/STATISTICS/MARKER
. . exported "ABBAS"."TAB1"                              67.85 KB      41 rows
Master table "SYS"."SYS_EXPORT_SCHEMA_01" successfully loaded/unloaded
******************************************************************************
Dump file set for SYS.SYS_EXPORT_SCHEMA_01 is:
  /backup/exp/prodpdb1/pdb1_abbas.dmp
Job "SYS"."SYS_EXPORT_SCHEMA_01" successfully completed at Thu Mar 26 14:39:44 2015 elapsed 0 00:01:08

โปรดทราบว่าคำสั่งที่ส่งผ่านในชื่อผู้ใช้ยังระบุตัวระบุการเชื่อมต่อสำหรับ PDBnamed PRODPDB1 .

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

Export: Release 12.1.0.1.0 - Production on Fri Mar 27 00:08:09 2015

Copyright (c) 1982, 2013, Oracle and/or its affiliates.  All rights reserved.

Username: sys@prodpdb1 as sysdba
Password:

บล็อกรหัสต่อไปนี้แสดงให้เห็นว่าตัวระบุการเชื่อมต่อ (prodpdb1 ) กำลังแก้ไข PDB ชื่อ PRODPDB1 .

  [oracle@labserver ~]$ tnsping prodpdb1

  TNS Ping Utility for Linux: Version 12.1.0.1.0 - Production on 27-MAR-2015 00:11:54

  Copyright (c) 1997, 2013, Oracle.  All rights reserved.

  Used parameter files:
  /app/oracle/db/12.1.0.1/network/admin/sqlnet.ora


  Used TNSNAMES adapter to resolve the alias
  Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = labserver.home.com)(PORT = 1525)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = prodpdb1)))
  OK (10 msec)

ข้อจำกัดการปั๊มข้อมูลบน PDB

สิ่งสำคัญที่ควรทราบคือ Data Pump ไม่อนุญาตให้คุณใช้ไดเร็กทอรีที่เป็นของคอนเทนเนอร์รูทหรือ CDB สำหรับการนำเข้าและส่งออก คุณยังใช้อันที่เป็นของ PDB อื่นไม่ได้

คุณต้องสร้างไดเร็กทอรีภายใต้ PDB แทน PDB ต้องเป็นเจ้าของไดเรกทอรีเพื่อให้คุณใช้ฟังก์ชันการส่งออกและนำเข้า Data Pump

หากคุณพยายามใช้ไดเร็กทอรีที่เป็นของ PDB อื่นหรือ rootcontainer คำสั่งจะส่งคืนข้อผิดพลาดต่อไปนี้:

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

  Export: Release 12.1.0.1.0 - Production on Fri Mar 27 00:21:08 2015

  Copyright (c) 1982, 2013, Oracle and/or its affiliates.  All rights reserved.

  Username: sys@prodpdb1 as sysdba
  Password:

  Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
  With the Partitioning, Automatic Storage Management, OLAP, Advanced Analytics
  and Real Application Testing options
  ORA-39002: invalid operation
  ORA-39070: Unable to open the log file.
  ORA-39087: directory name DP_PDB2 is invalid

นอกจากนี้ คุณไม่สามารถใช้ไดเร็กทอรีเริ่มต้นDATA_PUMP_DIR เพื่อส่งออกหรือนำเข้า aPDB ด้วย Data Pump ข้อจำกัดนี้มีอยู่เพราะDATA_PUMP_DIR เป็นเจ้าของโดยคอนเทนเนอร์รูทเสมอและไม่สามารถเปลี่ยนแปลงความเป็นเจ้าของได้

หากคุณพยายามสร้างค่าเริ่มต้นDATA_PUMP_DIR ภายใน PDB คำสั่งจะส่งคืนข้อผิดพลาดต่อไปนี้:

  sys@PRODPDB1> show con_name

  CON_NAME
  ------------------------------
  PRODPDB1
  sys@PRODPDB1> create or replace directory DATA_PUMP_DIR as '/backup/exp/prodpdb1';
  create or replace directory DATA_PUMP_DIR as '/backup/exp/prodpdb1'
  *
  ERROR at line 1:
  ORA-65040: operation not allowed from within a pluggable database

ด้วยเหตุนี้ คุณต้องสร้างไดเร็กทอรีอย่างชัดเจนสำหรับ PDB เพื่อดำเนินการส่งออกหรือนำเข้า Data Pump

บทสรุป

ยูทิลิตี Data Pump เป็นเครื่องมือส่งออกและนำเข้าที่ได้รับการปรับปรุงซึ่ง Oracle แนะนำให้รู้จักกับ Oracle 10g การใช้ประโยชน์จากการเพิ่มประสิทธิภาพ expdp ใน OracleDatabase 12c ที่กล่าวถึงในส่วนที่ 1 และ 2 ของชุดโพสต์ในบล็อกนี้จะช่วยให้คุณได้รับประโยชน์สูงสุดจากยูทิลิตี้นี้

ใช้แท็บคำติชมเพื่อแสดงความคิดเห็นหรือถามคำถาม

ข้อมูลอ้างอิง

เอกสารต่อไปนี้ถูกใช้เป็นข้อมูลอ้างอิงสำหรับโพสต์ในบล็อกนี้:

  • การเปลี่ยนแปลงในรุ่นนี้สำหรับ Oracle DatabaseUtilities