เผยแพร่ครั้งแรกโดย TriCore:6 มิถุนายน 2017
Oracle® Data Pump(expdp, impdp) เป็นยูทิลิตี้สำหรับการส่งออกและนำเข้าอ็อบเจ็กต์ฐานข้อมูลในและระหว่างฐานข้อมูล แม้ว่าผู้ดูแลระบบฐานข้อมูลส่วนใหญ่จะทราบเกี่ยวกับ Data Pump แต่การรองรับสถาปัตยกรรมหลายผู้เช่าใน OracleDatabase 12c ได้ทำให้เกิดการเปลี่ยนแปลงเกี่ยวกับวิธีการส่งออกและนำเข้าข้อมูลของ Data Pump
แนะนำตัว
ชุดบล็อกสองส่วนนี้ครอบคลุมการเปลี่ยนแปลงของเทคโนโลยี Oracle Data PumpExport (expdp) และวิธีใช้เพื่อส่งออกส่วนประกอบของสถาปัตยกรรมฐานข้อมูลของคุณ
ตัวอย่างในโพสต์นี้เน้นการส่งออกในบริบทของฐานข้อมูลคอนเทนเนอร์ (CDB) ซึ่งเก็บข้อมูลเมตาของ Oracle และฐานข้อมูลที่เสียบได้ (PDB) ซึ่งเก็บข้อมูลจริงของคุณ
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ PDB และ CDB โปรดดูบทนำสู่ MultitenantArchitecture
การส่งออกฐานข้อมูลแบบเต็ม
การส่งออกฐานข้อมูลแบบเต็มไม่จำเป็นต้องรวมข้อมูลทั้งหมดที่คุณอาจต้องการ ตัวอย่างเช่น คุณอาจคิดว่าเมื่อคุณเชื่อมต่อกับ therootcontainer หรือ CDB และรับ afullexport ของฐานข้อมูล การส่งออกจะรวม PDB ทั้งหมดที่เป็นของมัน อย่างไรก็ตาม นั่นไม่ใช่กรณี การส่งออกทั้งหมดจากคอนเทนเนอร์รูทจะส่งออกเฉพาะอ็อบเจ็กต์ที่เป็นของคอนเทนเนอร์รูท ไม่ใช่ PDB
ตัวอย่างเช่น พิจารณา CDB ชื่อ PRODCDB
ที่เชื่อมโยงกับ PDB สี่ตัว คำสั่งต่อไปนี้จะดึงข้อมูลโดยละเอียดเกี่ยวกับฐานข้อมูลเหล่านี้:
sys@PRODCDB> select name,open_mode,con_id from v$pdbs;
บล็อกโค้ดต่อไปนี้แสดงตารางที่สร้างคำสั่งนี้:
NAME OPEN_MODE CON_ID
------------------------------ ---------- ----------
PDB$SEED READ ONLY 2
PRODPDB1 READ WRITE 3
PRODPDB2 READ WRITE 4
PRODPDB3 READ WRITE 5
PRODPDB4 READ WRITE 6
เมื่อคุณพยายามใช้ afullexport EXPDP จะทำการส่งออกเฉพาะออบเจ็กต์ที่เป็นของคอนเทนเนอร์รูท ไม่ใช่ออบเจ็กต์จากฐานข้อมูลที่เสียบได้ทั้งหมด
คำสั่งต่อไปนี้รับการส่งออก:
[oracle@labserver ~]$ expdp directory=DPUMP dumpfile=exp_cdb_full_%U.dmp logfile=exp_cdb_full.log full=Y parallel=4
บล็อกโค้ดต่อไปนี้แสดงผลลัพธ์จากการดำเนินการนี้:
Export: Release 12.1.0.1.0 - Production on Thu Mar 26 23:10:41 2015
Copyright (c) 1982, 2013, Oracle and/or its affiliates. All rights reserved.
Username: / as sysdba
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
WARNING: Oracle Data Pump operations are not typically needed when connected to the root or seed of a container database. Below are the steps for exporting of full database.
Starting "SYS"."SYS_EXPORT_FULL_01": /******** AS SYSDBA directory=DPUMP dumpfile=exp_cdb_full_%U.dmp logfile=exp_cdb_full.log full=Y parallel=4
Estimate in progress using BLOCKS method...
Processing object type DATABASE_EXPORT/EARLY_OPTIONS/VIEWS_AS_TABLES/TABLE_DATA
Processing object type DATABASE_EXPORT/NORMAL_OPTIONS/TABLE_DATA
Processing object type DATABASE_EXPORT/NORMAL_OPTIONS/VIEWS_AS_TABLES/TABLE_DATA
Processing object type DATABASE_EXPORT/SCHEMA/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 90.70 MB
Processing object type DATABASE_EXPORT/PRE_SYSTEM_IMPCALLOUT/MARKER
Processing object type DATABASE_EXPORT/PRE_INSTANCE_IMPCALLOUT/MARKER
Processing object type DATABASE_EXPORT/TABLESPACE
Processing object type DATABASE_EXPORT/PROFILE
Processing object type DATABASE_EXPORT/SYS_USER/USER
Processing object type DATABASE_EXPORT/SCHEMA/USER
. . exported "LBACSYS"."OLS$AUDIT_ACTIONS" 5.734 KB 8 rows
Processing object type DATABASE_EXPORT/ROLE
. . exported "LBACSYS"."OLS$DIP_EVENTS" 5.515 KB 2 rows
. . exported "LBACSYS"."OLS$INSTALLATIONS" 6.937 KB 2 rows
Processing object type DATABASE_EXPORT/RADM_FPTM
. . exported "LBACSYS"."OLS$PROPS" 6.210 KB 5 rows
. . exported "SYS"."DAM_CONFIG_PARAM$" 6.507 KB 14 rows
. . exported "SYS"."TSDP_PARAMETER$" 5.929 KB 1 rows
. . exported "SYS"."TSDP_POLICY$" 5.898 KB 1 rows
. . exported "SYS"."TSDP_SUBPOL$" 6.304 KB 1 rows
. . exported "SYSTEM"."REDO_DB" 23.42 KB 1 rows
. . exported "WMSYS"."WM$ENV_VARS$" 6.054 KB 5 rows
. . exported "WMSYS"."WM$EVENTS_INFO$" 5.789 KB 12 rows
. . exported "WMSYS"."WM$HINT_TABLE$" 9.429 KB 75 rows
. . exported "WMSYS"."WM$NEXTVER_TABLE$" 6.351 KB 1 rows
Processing object type DATABASE_EXPORT/GRANT/SYSTEM_GRANT/PROC_SYSTEM_GRANT
. . exported "WMSYS"."WM$VERSION_HIERARCHY_TABLE$" 5.960 KB 1 rows
Processing object type DATABASE_EXPORT/SCHEMA/GRANT/SYSTEM_GRANT
Processing object type DATABASE_EXPORT/SCHEMA/ROLE_GRANT
Processing object type DATABASE_EXPORT/SCHEMA/DEFAULT_ROLE
. . exported "WMSYS"."WM$WORKSPACES_TABLE$" 12.08 KB 1 rows
. . exported "WMSYS"."WM$WORKSPACE_PRIV_TABLE$" 6.539 KB 8 rows
. . exported "LBACSYS"."OLS$AUDIT" 0 KB 0 rows
. . exported "LBACSYS"."OLS$COMPARTMENTS" 0 KB 0 rows
. . exported "LBACSYS"."OLS$DIP_DEBUG" 0 KB 0 rows
. . exported "LBACSYS"."OLS$GROUPS" 0 KB 0 rows
. . exported "LBACSYS"."OLS$LAB" 0 KB 0 rows
. . exported "LBACSYS"."OLS$LEVELS" 0 KB 0 rows
. . exported "LBACSYS"."OLS$POL" 0 KB 0 rows
Processing object type DATABASE_EXPORT/SCHEMA/ON_USER_GRANT
. . exported "LBACSYS"."OLS$POLICY_ADMIN" 0 KB 0 rows
. . exported "LBACSYS"."OLS$POLS" 0 KB 0 rows
. . exported "LBACSYS"."OLS$POLT" 0 KB 0 rows
. . exported "LBACSYS"."OLS$PROFILE" 0 KB 0 rows
. . exported "LBACSYS"."OLS$PROFILES" 0 KB 0 rows
. . exported "LBACSYS"."OLS$PROG" 0 KB 0 rows
. . exported "LBACSYS"."OLS$SESSINFO" 0 KB 0 rows
. . exported "LBACSYS"."OLS$USER" 0 KB 0 rows
. . exported "LBACSYS"."OLS$USER_COMPARTMENTS" 0 KB 0 rows
. . exported "LBACSYS"."OLS$USER_GROUPS" 0 KB 0 rows
. . exported "LBACSYS"."OLS$USER_LEVELS" 0 KB 0 rows
. . exported "SYS"."AUD$" 0 KB 0 rows
. . exported "SYS"."DAM_CLEANUP_EVENTS$" 0 KB 0 rows
. . exported "SYS"."DAM_CLEANUP_JOBS$" 0 KB 0 rows
. . exported "SYS"."TSDP_ASSOCIATION$" 0 KB 0 rows
. . exported "SYS"."TSDP_CONDITION$" 0 KB 0 rows
. . exported "SYS"."TSDP_FEATURE_POLICY$" 0 KB 0 rows
. . exported "SYS"."TSDP_PROTECTION$" 0 KB 0 rows
. . exported "SYS"."TSDP_SENSITIVE_DATA$" 0 KB 0 rows
. . exported "SYS"."TSDP_SENSITIVE_TYPE$" 0 KB 0 rows
. . exported "SYS"."TSDP_SOURCE$" 0 KB 0 rows
. . exported "SYSTEM"."REDO_LOG" 0 KB 0 rows
. . exported "WMSYS"."WM$BATCH_COMPRESSIBLE_TABLES$" 0 KB 0 rows
. . exported "WMSYS"."WM$CONSTRAINTS_TABLE$" 0 KB 0 rows
. . exported "WMSYS"."WM$CONS_COLUMNS$" 0 KB 0 rows
. . exported "WMSYS"."WM$LOCKROWS_INFO$" 0 KB 0 rows
. . exported "WMSYS"."WM$MODIFIED_TABLES$" 0 KB 0 rows
. . exported "WMSYS"."WM$MP_GRAPH_WORKSPACES_TABLE$" 0 KB 0 rows
. . exported "WMSYS"."WM$MP_PARENT_WORKSPACES_TABLE$" 0 KB 0 rows
. . exported "WMSYS"."WM$NESTED_COLUMNS_TABLE$" 0 KB 0 rows
. . exported "WMSYS"."WM$REMOVED_WORKSPACES_TABLE$" 0 KB 0 rows
. . exported "WMSYS"."WM$RESOLVE_WORKSPACES_TABLE$" 0 KB 0 rows
. . exported "WMSYS"."WM$RIC_LOCKING_TABLE$" 0 KB 0 rows
. . exported "WMSYS"."WM$RIC_TABLE$" 0 KB 0 rows
. . exported "WMSYS"."WM$RIC_TRIGGERS_TABLE$" 0 KB 0 rows
. . exported "WMSYS"."WM$UDTRIG_DISPATCH_PROCS$" 0 KB 0 rows
. . exported "WMSYS"."WM$UDTRIG_INFO$" 0 KB 0 rows
. . exported "WMSYS"."WM$VERSION_TABLE$" 0 KB 0 rows
. . exported "WMSYS"."WM$VT_ERRORS_TABLE$" 0 KB 0 rows
. . exported "WMSYS"."WM$WORKSPACE_SAVEPOINTS_TABLE$" 0 KB 0 rows
Processing object type DATABASE_EXPORT/SCHEMA/TABLESPACE_QUOTA
Processing object type DATABASE_EXPORT/RESOURCE_COST
Processing object type DATABASE_EXPORT/TRUSTED_DB_LINK
Processing object type DATABASE_EXPORT/DIRECTORY/DIRECTORY
. . exported "SYS"."KU$\_USER_MAPPING_VIEW" 6.054 KB 36 rows
Processing object type DATABASE_EXPORT/SYSTEM_PROCOBJACT/PRE_SYSTEM_ACTIONS/PROCACT_SYSTEM
Processing object type DATABASE_EXPORT/SYSTEM_PROCOBJACT/PROCOBJ
Processing object type DATABASE_EXPORT/SYSTEM_PROCOBJACT/POST_SYSTEM_ACTIONS/PROCACT_SYSTEM
Processing object type DATABASE_EXPORT/SCHEMA/PROCACT_SCHEMA
. . exported "SYSTEM"."SCHEDULER_JOB_ARGS" 8.640 KB 4 rows
Processing object type DATABASE_EXPORT/EARLY_OPTIONS/VIEWS_AS_TABLES/TABLE
Processing object type DATABASE_EXPORT/EARLY_POST_INSTANCE_IMPCALLOUT/MARKER
. . exported "ORDDATA"."ORDDCM_DOCS" 252.9 KB 9 rows
Processing object type DATABASE_EXPORT/NORMAL_OPTIONS/TABLE
. . exported "SYSTEM"."SCHEDULER_PROGRAM_ARGS" 10.18 KB 22 rows
. . exported "SYS"."AUDTAB$TBS$FOR_EXPORT" 5.929 KB 2 rows
. . exported "SYS"."NACL$\_ACE_EXP" 9.906 KB 1 rows
. . exported "SYS"."NACL$\_HOST_EXP" 6.890 KB 1 rows
. . exported "WMSYS"."WM$EXP_MAP" 7.695 KB 3 rows
. . exported "SYS"."DBA_SENSITIVE_DATA" 0 KB 0 rows
. . exported "SYS"."DBA_TSDP_POLICY_PROTECTION" 0 KB 0 rows
. . exported "SYS"."FGA_LOG$FOR_EXPORT" 0 KB 0 rows
. . exported "SYS"."NACL$\_WALLET_EXP" 0 KB 0 rows
. . exported "C##ABBAS"."T" 72.67 MB 667728 rows
Processing object type DATABASE_EXPORT/NORMAL_OPTIONS/VIEWS_AS_TABLES/TABLE
Processing object type DATABASE_EXPORT/NORMAL_POST_INSTANCE_IMPCALLOU/MARKER
Processing object type DATABASE_EXPORT/SCHEMA/TABLE/TABLE
Processing object type DATABASE_EXPORT/SCHEMA/TABLE/STATISTICS/TABLE_STATISTICS
Processing object type DATABASE_EXPORT/STATISTICS/MARKER
Processing object type DATABASE_EXPORT/FINAL_POST_INSTANCE_IMPCALLOUT/MARKER
Processing object type DATABASE_EXPORT/SCHEMA/POST_SCHEMA/PROCOBJ
Processing object type DATABASE_EXPORT/SCHEMA/POST_SCHEMA/PROCACT_SCHEMA
Processing object type DATABASE_EXPORT/AUDIT_UNIFIED/AUDIT_POLICY_ENABLE
Processing object type DATABASE_EXPORT/AUDIT
Processing object type DATABASE_EXPORT/POST_SYSTEM_IMPCALLOUT/MARKER
Master table "SYS"."SYS_EXPORT_FULL_01" successfully loaded/unloaded
******************************************************************************
Dump file set for SYS.SYS_EXPORT_FULL_01 is:
/backup/exp/prodcdb/exp_cdb_full_01.dmp
/backup/exp/prodcdb/exp_cdb_full_02.dmp
/backup/exp/prodcdb/exp_cdb_full_03.dmp
Job "SYS"."SYS_EXPORT_FULL_01" successfully completed at Thu Mar 26 13:49:26 2015 elapsed 0 00:08:34
ผลลัพธ์แสดงให้เห็นว่าเฉพาะวัตถุที่เป็นของคอนเทนเนอร์รูทเท่านั้นที่ส่งออกด้วย full
ตัวเลือก. น่าเสียดายที่ไม่มีวิธีที่จะส่งออก PDB และคอนเทนเนอร์รูททั้งหมดเข้าด้วยกัน
การส่งออก CDB
โดยทั่วไปไม่จำเป็นต้องส่งออก CDB หรือฐานข้อมูลรูทเนื่องจากเป็นโฮสต์ PDB เป็นหลัก อย่างไรก็ตาม หากจำเป็นต้องดำเนินการนี้ คุณสามารถสร้าง CDB ใหม่และเสียบ PDB ที่มีอยู่ ในกรณีเหล่านี้ ผู้ดูแลระบบมักจะสนใจที่จะส่งออกผู้ใช้และบทบาททั่วไปมากที่สุด
ตัวอย่างเช่น สมมติว่าคุณมีผู้ใช้ทั่วไปต่อไปนี้ใน CDB:
sys@PRODCDB> select USERNAME, COMMON from dba_users where common='YES' and oracle_maintained='N';
USERNAME COM
--------------- ---
C##ABBAS YES
คุณสามารถส่งออกผู้ใช้ทั่วไปและบทบาทที่เป็นของ CDB โดยใช้คำสั่งต่อไปนี้เพื่อเริ่มต้น EXPDP สำหรับ CDB:
[oracle@labserver ~]$ expdp directory=DATA_PUMP_DIR dumpfile=common_usr_cdb.dmp logfile=common_usr_cdb.log schemas=C##ABBAS
บล็อกโค้ดต่อไปนี้แสดงผลลัพธ์สำหรับคำสั่งนี้:
Export: Release 12.1.0.1.0 - Production on Thu Mar 26 23:45:26 2015
Copyright (c) 1982, 2013, Oracle and/or its affiliates. All rights reserved.
Username: / as sysdba
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
WARNING: Oracle Data Pump operations are not typically needed when connected to the root or seed of a container database.
Starting "SYS"."SYS_EXPORT_SCHEMA_01": /******** AS SYSDBA directory=DATA_PUMP_DIR dumpfile=common_usr_cdb.dmp logfile=common_usr_cdb.log schemas=C##ABBAS
Estimate in progress using BLOCKS method...
Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 88 MB
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 "C##ABBAS"."T" 72.67 MB 667728 rows
Master table "SYS"."SYS_EXPORT_SCHEMA_01" successfully loaded/unloaded
******************************************************************************
Dump file set for SYS.SYS_EXPORT_SCHEMA_01 is:
/backup/exp/prodcdb/common_usr_cdb.dmp
Job "SYS"."SYS_EXPORT_SCHEMA_01" successfully completed at Thu Mar 26 14:16:53 2015 elapsed 0 00:01:16
ตามหลักการแล้ว คุณไม่จำเป็นต้องส่งออกวัตถุคอนเทนเนอร์รูท เว้นแต่ว่าคุณมีข้อมูลที่เป็นของผู้ใช้ทั่วไปในคอนเทนเนอร์นั้น
บทสรุป
การทำตามขั้นตอนที่อธิบายไว้ในบล็อกโพสต์นี้จะช่วยให้คุณใช้คุณลักษณะใหม่ของ DataPump 12c เพื่อส่งออกข้อมูลได้ง่ายขึ้น ส่วนที่ 2 ครอบคลุมข้อจำกัดของ Data Pump เกี่ยวกับ PDB และวิธีส่งออกฐานข้อมูลเหล่านี้
ข้อมูลอ้างอิง
เอกสารต่อไปนี้ถูกใช้เป็นข้อมูลอ้างอิงสำหรับโพสต์ในบล็อกนี้:
- การเปลี่ยนแปลงในรุ่นนี้สำหรับ Oracle DatabaseUtilities
ใช้แท็บคำติชมเพื่อแสดงความคิดเห็นหรือถามคำถาม