Computer >> 컴퓨터 >  >> 프로그램 작성 >> 데이터 베이스

Oracle Database 12c:Part 1의 Data Pump 개선 사항 작업

원래 TriCore 발행:2017년 6월 6일

Oracle® Data Pump(expdp, impdp)는 데이터베이스 안팎에서 데이터베이스 개체를 내보내고 가져오기 위한 유틸리티입니다. 대부분의 데이터베이스 관리자는 Data Pump를 알고 있지만 OracleDatabase 12c의 다중 테넌트 아키텍처 지원으로 Data Pump가 데이터를 내보내고 가져오는 방식이 변경되었습니다.

소개

2부로 구성된 이 블로그 시리즈에서는 Oracle Data PumpExport(expdp) 기술의 변경 사항과 이를 사용하여 데이터베이스 아키텍처의 구성 요소를 내보내는 방법을 다룹니다.

Oracle Database 12c:Part 1의 Data Pump 개선 사항 작업

이 게시물의 예는 컨테이너 데이터베이스 컨텍스트에서 내보내기에 중점을 둡니다. (CDB), Oracle 메타데이터 및 하나 이상의플러그 가능 데이터베이스 (PDB), 실제 데이터를 보관합니다.

PDB 및 CDB에 대한 자세한 내용은 다중 테넌트 아키텍처 소개를 참조하십시오.

전체 데이터베이스 내보내기 수행

전체 데이터베이스 내보내기에 원하는 모든 데이터가 반드시 포함되는 것은 아닙니다. 예를 들어 루트 컨테이너 또는 CDB에 연결하고 데이터베이스의 전체 내보내기를 수행할 때 내보내기에 이에 속하는 모든 PDB가 포함된다고 생각할 수 있습니다. 그러나 그렇지 않습니다. 루트 컨테이너에서 전체 내보내기는 PDB가 아닌 루트 컨테이너에 속한 개체만 내보냅니다.

예를 들어, PRODCDB라는 CDB를 생각해 보십시오. 4개의 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

fulllexport를 가져오려고 하면 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부에서는 PDB에 대한 Data Pump의 제한 사항과 이러한 데이터베이스를 내보내는 방법을 다룹니다.

참조

다음 문서는 이 블로그 게시물에 대한 참조로 사용되었습니다.

  • Oracle DatabaseUtilities에 대한 이번 릴리스의 변경 사항

피드백 탭을 사용하여 의견을 남기거나 질문하십시오.