Computer >> Máy Tính >  >> Lập trình >> Cơ sở dữ liệu

Làm việc với các cải tiến Data Pump trong Cơ sở dữ liệu Oracle 12c:Phần 1

Được xuất bản lần đầu bởi TriCore:ngày 6 tháng 6 năm 2017

Oracle® Data Pump (expdp, impdp) là một tiện ích để xuất và nhập các đối tượng cơ sở dữ liệu trong và trên cơ sở dữ liệu. Mặc dù hầu hết các quản trị viên cơ sở dữ liệu đều biết về Data Pump, hỗ trợ cho kiến ​​trúc nhiều đối tượng trong OracleDatabase 12c đã đưa ra những thay đổi đối với cách Data Pump xuất và nhập dữ liệu.

Giới thiệu

Loạt blog gồm hai phần này bao gồm những thay đổi đối với công nghệ Oracle Data PumpExport (expdp) và cách sử dụng nó để xuất các thành phần của kiến ​​trúc cơ sở dữ liệu của bạn.

Làm việc với các cải tiến Data Pump trong Cơ sở dữ liệu Oracle 12c:Phần 1

Các ví dụ trong bài đăng này tập trung vào xuất khẩu trong ngữ cảnh của cơ sở dữ liệu vùng chứa (CDB), chứa siêu dữ liệu Oracle và một hoặc nhiều cơ sở dữ liệu có thể cắm được (PDB), giữ dữ liệu thực tế của bạn.

Để biết thêm thông tin về PDB và CDB, hãy xem Giới thiệu về Kiến trúc đa đối tượng.

Xuất toàn bộ cơ sở dữ liệu

Xuất toàn bộ cơ sở dữ liệu không nhất thiết phải bao gồm tất cả dữ liệu mà bạn có thể muốn. Ví dụ, bạn có thể nghĩ rằng khi bạn kết nối với therootcontainer hoặc CDB và lấy một ít linh hoạt của cơ sở dữ liệu, thì bản xuất này bao gồm tất cả các PDB thuộc về nó. Tuy nhiên, đó không phải là cái riêng. Việc xuất toàn bộ từ vùng chứa gốc chỉ xuất đối tượng thuộc về vùng chứa gốc chứ không phải các PDB.

Ví dụ:hãy xem xét một CDB có tên PRODCDB được liên kết với bốn PDB. Lệnh sau lấy thông tin chi tiết về các cơ sở dữ liệu này:

  sys@PRODCDB> select name,open_mode,con_id from v$pdbs;

Khối mã sau hiển thị bảng mà lệnh này tạo:

  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

Khi bạn cố gắng lấy afullexport, EXPDP chỉ thực hiện xuất đối tượng thuộc về vùng chứa gốc chứ không phải các đối tượng từ tất cả cơ sở dữ liệu có thể cài đặt.

Lệnh sau sẽ xuất:

  [oracle@labserver ~]$ expdp directory=DPUMP dumpfile=exp_cdb_full_%U.dmp logfile=exp_cdb_full.log full=Y parallel=4

Khối mã sau đây hiển thị đầu ra từ hoạt động này:

  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

Kết quả cho thấy rằng chỉ các đối tượng thuộc vùng chứa gốc mới được xuất với full quyền mua. Rất tiếc, không có cách nào để gộp tất cả các PDB và vùng chứa gốc lại với nhau.

Xuất CDB

Thường không bắt buộc phải xuất CDB hoặc cơ sở dữ liệu gốc vì nó chủ yếu lưu trữ các PDB. Tuy nhiên, nếu cần thiết để thực hiện tác vụ này, bạn có thể tạo một CDB mới và cắm cácPDB hiện có. Trong những trường hợp này, quản trị viên thường quan tâm nhất đến việc đưa ra thông tin về những người dùng và vai trò phổ biến.

Ví dụ:hãy tưởng tượng rằng bạn có người dùng phổ biến sau trong CDB:

sys@PRODCDB> select USERNAME, COMMON from dba_users where common='YES' and oracle_maintained='N';

USERNAME        COM
--------------- ---
C##ABBAS        YES

Bạn có thể xuất người dùng phổ biến và vai trò thuộc về CDB bằng cách sử dụng lệnh sau để khởi tạo EXPDP cho CDB:

  [oracle@labserver ~]$ expdp directory=DATA_PUMP_DIR dumpfile=common_usr_cdb.dmp logfile=common_usr_cdb.log schemas=C##ABBAS

Khối mã sau hiển thị đầu ra cho lệnh này:

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

Tốt nhất, bạn không cần phải xuất các đối tượng chứa gốc trừ khi bạn có dữ liệu thuộc về những người dùng phổ biến trong vùng chứa đó.

Kết luận

Làm theo các bước được nêu trong bài đăng blog này sẽ giúp bạn sử dụng các tính năng mới của DataPump 12c để xuất dữ liệu dễ dàng hơn. Phần 2 trình bày các hạn chế của Bơm dữ liệu đối với PDB và cách xuất các cơ sở dữ liệu này.

Tài liệu tham khảo

Tài liệu sau được sử dụng làm tài liệu tham khảo cho bài đăng trên blog này:

  • Những thay đổi trong Bản phát hành này cho Oracle DatabaseUtilities

Sử dụng tab Phản hồi để đưa ra bất kỳ nhận xét hoặc đặt câu hỏi nào.