• Oracle12c中数据泵新特性之功能增强(expdp, impdp)


    Oracle的数据泵功能在10g中被引进。本文对数据泵在12c中的增强做一个概览。

    1.   禁用日志选项(DISABLE_ARCHIVE_LOGGING)

    Impdp的TRANSFORM参数已经扩展为包括DISABLE_ARCHIVE_LOGGING选项。该选项的默认值为 "N",不会影响日志行为。将该选项设置为"Y",这将会使表和索引在导入前将日指属性设置为NOLOGGING,从而导入期间减少相关日志的产生,导入后再将日志属性重置为LOGGING。

    TRANSFORM=DISABLE_ARCHIVE_LOGGING:Y

    通过附上对象类型,可以把影响限定为特定对象类型(TABLE or INDEX)。

    TRANSFORM=DISABLE_ARCHIVE_LOGGING:Y:TABLE

     

    TRANSFORM=DISABLE_ARCHIVE_LOGGING:Y:INDEX

    如下例所示。

    $ impdp system/Password1@pdb1directory=test_dir dumpfile=emp.dmp logfile=impdp_emp.log

        remap_schema=scott:test transform=disable_archive_logging:y

    如果数据库运行在FORCE LOGGING模式下,DISABLE_ARCHIVE_LOGGING选项将没什么影响。

    2.   LOGTIME参数

    LOGTIME参数决定时间戳是否将包括在expdp和impdp功能的输出信息中。 

    LOGTIME=[NONE | STATUS |LOGFILE | ALL]

    可用值如下。

    1)     NONE :默认值,指示输出中不包括时间戳,输出和之前的版本相似。

    2)     STATUS :时间戳包括在控制台输出中,但不会在日志文件中出现。

    3)     LOGFILE:时间戳出现在日志文件中,但不会输出到控制台。

    4)     ALL :时间戳出现在日志文件和控制台输出中。

    如下例所示。

    $ expdp scott/tiger@pdb1 tables=empdirectory=test_dir dumpfile=emp.dmp logfile=expdp_emp.loglogtime=all

     

    Export: Release 12.1.0.1.0 - Production onWed Nov 20 22:11:57 2013

     

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

     

    Connected to: Oracle Database 12c EnterpriseEdition Release 12.1.0.1.0 - 64bit Production

    With the Partitioning, Oracle Label Security,OLAP, Advanced Analytics

    and Real Application Testing options

    20-NOV-13 22:12:09.312: Starting"SCOTT"."SYS_EXPORT_TABLE_01":  scott/********@pdb1 tables=empdirectory=test_dir dumpfile=emp.dmp logfile=expdp_emp.log logtime=all

    20-NOV-13 22:12:13.602: Estimate in progressusing BLOCKS method...

    20-NOV-13 22:12:17.797: Processing objecttype TABLE_EXPORT/TABLE/TABLE_DATA

    20-NOV-13 22:12:18.145: Total estimationusing BLOCKS method: 64 KB

    20-NOV-13 22:12:30.583: Processing objecttype TABLE_EXPORT/TABLE/TABLE

    20-NOV-13 22:12:33.649: Processing objecttype TABLE_EXPORT/TABLE/INDEX/INDEX

    20-NOV-13 22:12:37.744: Processing objecttype TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT

    20-NOV-13 22:12:38.065: Processing objecttype TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS

    20-NOV-13 22:12:38.723: Processing objecttype TABLE_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT

    20-NOV-13 22:12:41.052: Processing objecttype TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS

    20-NOV-13 22:12:41.337: Processing objecttype TABLE_EXPORT/TABLE/STATISTICS/MARKER

    20-NOV-13 22:13:38.255: . . exported"SCOTT"."EMP"                                8.75 KB      14 rows

    20-NOV-13 22:13:40.483: Master table"SCOTT"."SYS_EXPORT_TABLE_01" successfully loaded/unloaded

    20-NOV-13 22:13:40.507:******************************************************************************

    20-NOV-13 22:13:40.518: Dump file set forSCOTT.SYS_EXPORT_TABLE_01 is:

    20-NOV-13 22:13:40.545:   /home/oracle/emp.dmp

    20-NOV-13 22:13:40.677: Job"SCOTT"."SYS_EXPORT_TABLE_01" successfully completed at WedNov 20 22:13:40 2013 elapsed 0 00:01:36

     

    $

    3.   像表一样导出视图

    VIEWS_AS_TABLES参数允许把视图当成表导出。表结构匹配视图列,视图查询结果对应表数据。

    VIEWS_AS_TABLES=[schema_name.]view_name[:table_name],...

     

    如下例所示。

    CONN scott/tiger@pdb1

    CREATE VIEW emp_v AS

     SELECT * FROM emp;

    用VIEWS_AS_TABLES参数导出视图。

    $ expdp scott/tiger views_as_tables=scott.emp_vdirectory=test_dir dumpfile=emp_v.dmp logfile=expdp_emp_v.log

    Expdp默认会创建一个临时表来作为视图的拷贝,但不包含数据,只是为导出提供一个元数据源。此外,也可以确定一个结构合适的表来代替。但这也许只有在只读库上才有意义。

    4.   导入时改变表压缩

    TRANSFORM参数的TABLE_COMPRESSION_CLAUSE子句允许表导入过程中动态改变表的压缩特性。

    TRANSFORM=TABLE_COMPRESSION_CLAUSE:[NONE |compression_clause]

    TABLE_COMPRESSION_CLAUSE参数的可选值如下。

    1)     NONE :漏掉表压缩子句,表继承表空间的压缩属性。

    2)     NOCOMPRESS:禁用表压缩。

    3)     COMPRESS:开启基本表压缩。

    4)     ROW STORE COMPRESSBASIC :和COMPRESS一样。

    5)     ROW STORE COMPRESSADVANCED :开启高级压缩,也被称为OLTP压缩。

    6)     COLUMN STORECOMPRESS FOR QUERY :Exadata和ZFS存储配置中可用的混合列压缩(HCC)。

    7)     COLUMN STORECOMPRESS FOR ARCHIVE :Exadata和ZFS存储配置中可用的混合列压缩。

    包括空格的压缩子句需要用单引号或双引号括起来。

    如下例所示。

    $ impdp system/Password1@pdb1directory=test_dir dumpfile=emp.dmp logfile=impdp_emp.log

        remap_schema=scott:test transform=table_compression_clause:compress

    5.   导入时改变表的LOB存储

    TRANFORM参数的LOB_STORAGE子句使得在进行非可传输导入操作时改变表的压缩特性。

    TRANSFORM=LOB_STORAGE:[SECUREFILE | BASICFILE| DEFAULT | NO_CHANGE]

    LOB_STORAGE子句可以为如下值。

    1)     SECUREFILE :LOB数据存储为SecureFiles。

    2)     BASICFILE :LOB数据存储为BasicFiles。

    3)     DEFAULT :LOB数据的存储由数据库自行决定。

    4)     NO_CHANGE :LOB数据的存储和原来的对象一样。

    举例如下。

    $ impdp system/Password1@pdb1directory=test_dir dumpfile=lob_table.dmp logfile=impdp_lob_table.log

         transform=lob_storage:securefile

    6.   导出文件压缩选项

    作为高级压缩选项的一部分,你可以确定COMPRESSION_ALGORITHM参数以确定导出文件的压缩级别。这和先前讨论的表压缩没关系。

    COMPRESSION_ALGORITHM=[BASIC | LOW | MEDIUM |HIGH]

    可用值如下。

    1)     BASIC :和先前版本的压缩算法一样。提供很好的压缩,但对性能影响不大。

    2)     LOW :用于降低CPU消耗比压缩率更重要的场景。

    3)     MEDIUM :推荐使用的选项。和BASIC特性类似,但用了不同的算法。

    4)     HIGH:最大限度压缩,但会消耗更多CPU。

    举例如下。

    $ expdp scott/tiger tables=empdirectory=test_dir dumpfile=emp.dmp logfile=expdp_emp.log

           compression=all compression_algorithm=medium

    7.   多宿主选项支持(CDB和PDB)

    Oracle12c引进了多宿主选项,允许多个可插拔数据库(PDBs)存在于一个容器数据库(CDB)。将数据泵用于PDB和用于非CDB数据库没太大差别。

    从11.2.0.2库以FULL选项导出的数据可以导入一个新PDB中,这和之前的完全导入一样,但会有些限制。

    8.   审计命令

    通过创建审计策略,可以对Oracle 12c的数据泵作业进行审计。

    CREATE AUDIT POLICY policy_name

     ACTIONS COMPONENT=DATAPUMP [EXPORT | IMPORT | ALL];

    当该策略用于用户时,用户的数据泵作业信息将被审计。如下策略会审计所有的数据泵操作。该策略被用于用户SCOTT。

    CONN / AS SYSDBA

    CREATE AUDIT POLICY aud_dp_plcy ACTIONSCOMPONENT=DATAPUMP ALL;

    AUDIT POLICY aud_dp_plcy BY scott;

    运行如下数据泵命令。

    $ expdp scott/tiger tables=empdirectory=test_dir dumpfile=emp.dmp logfile=expdp_emp.log

    检查审计信息时,会发现该数据泵作业已被审计。

    -- Flush audit information to disk.

    EXECDBMS_AUDIT_MGMT.FLUSH_UNIFIED_AUDIT_TRAIL;

     

    SET LINESIZE 200

    COLUMN event_timestamp FORMAT A30

    COLUMN dp_text_parameters1 FORMAT A30

    COLUMN dp_boolean_parameters1 FORMAT A30

     

    SELECT event_timestamp,

          dp_text_parameters1,

          dp_boolean_parameters1

    FROM  unified_audit_trail

    WHERE audit_type = 'Datapump';

     

    EVENT_TIMESTAMP               DP_TEXT_PARAMETERS1          DP_BOOLEAN_PARAMETERS1

    ------------------------------------------------------------ ------------------------------

    14-DEC-13 09.47.40.098637 PM   MASTER TABLE:  "SCOTT"."SYS_EX MASTER_ONLY:FALSE, DATA_ONLY:

                                  PORT_TABLE_01" , JOB_TYPE: EXP  FALSE, METADATA_ONLY: FALSE,

                                  ORT, METADATA_JOB_MODE: TABLE_DUMPFILE_PRESENT: TRUE, JOB_RE

                                  EXPORT, JOB VERSION: 12.1.0.0. STARTED:FALSE

                                  0, ACCESS METHOD: AUTOMATIC, D

                                  ATA OPTIONS: 0, DUMPER DIRECTO

                                  RY: NULL REMOTE LINK: NULL, T

                                  ABLE EXISTS: NULL, PARTITION O

                                  PTIONS: NONE

     

    SQL>

    9.   加密口令增强

    先前的版本中,数据泵加密口令需要在命令行输入ENCRYPTION_PASSWORD参数,这样很容易偷窥口令。

    Oracle 12c中,ENCRYPTION_PWD_PROMPT参数可以加密但不要求在命令行输入口令,而是运行时提示用户输入口令,且命令不回显。

    ENCRYPTION_PWD_PROMPT=[YES | NO]

    举例如下。

    $ expdp scott/tiger tables=empdirectory=test_dir dumpfile=emp.dmp logfile=expdp_emp.log

           encryption_pwd_prompt=yes

     

    Export: Release 12.1.0.1.0 - Production onSat Dec 14 21:09:11 2013

     

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

     

    Connected to: Oracle Database 12c EnterpriseEdition Release 12.1.0.1.0 - 64bit Production

    With the Partitioning, OLAP, AdvancedAnalytics and Real Application Testing options

     

    Encryption Password:

    Starting"SCOTT"."SYS_EXPORT_TABLE_01":  scott/******** tables=emp directory=test_dir

    dumpfile=emp.dmp logfile=expdp_emp.logencryption_pwd_prompt=yes

    Estimate in progress using BLOCKS method...

    Processing object typeTABLE_EXPORT/TABLE/TABLE_DATA

    Total estimation using BLOCKS method: 64 KB

    Processing object typeTABLE_EXPORT/TABLE/TABLE

    Processing object typeTABLE_EXPORT/TABLE/INDEX/INDEX

    Processing object typeTABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT

    Processing object typeTABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS

    Processing object typeTABLE_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT

    Processing object typeTABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS

    Processing object typeTABLE_EXPORT/TABLE/STATISTICS/MARKER

    Processing object typeTABLE_EXPORT/TABLE/POST_TABLE_ACTION

    . . exported"SCOTT"."EMP"                               8.765 KB      14 rows

    Master table"SCOTT"."SYS_EXPORT_TABLE_01" successfully loaded/unloaded

    ******************************************************************************

    Dump file set for SCOTT.SYS_EXPORT_TABLE_01is:

     /tmp/emp.dmp

    Job"SCOTT"."SYS_EXPORT_TABLE_01" successfully completed at SatDec 14 21:09:55 2013 elapsed 0 00:00:41

     

    $

    10.        可传输数据库

    现在,TRANSPORTABLE选项可以和 FULL选项一起使用来传输整个数据库。

    $ expdp system/Password1 full=Ytransportable=always version=12 directory=TEMP_DIR

      dumpfile=orcl.dmp logfile=expdporcl.log

    该方法也可以被用来升级数据库。

    11.        其他增强

    1)     数据泵支持扩展数据类型,但VERSION参数需要设置为12.1之后的版本。

    2)     有域索引的LOB列现在可以充分里用直接路径加载的优势。

    Oracle & MSSQL & Postgresql & Mysql 调优 & 优化
    ----------------------------------------------------------
    《高性能SQL调优精要与案例解析》
    QQ:2485287655
    Weibo:http://weibo.com/1059801230
    blog1:http://blog.csdn.net/tuning_optmization
    blog2:http://www.cnblogs.com/lhdz_bj
  • 相关阅读:
    获取动态类型变量的属性值
    C#项目实例中读取并修改App.config文件
    c#防止多次运行代码收集
    c# winform 关闭窗体时同时结束线程实现思路
    C# App.config 自定义 配置节 报错“配置系统未能初始化” 解决方法
    在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke 解决办法
    用 C# 在 Windows 7 中写注册表想到的
    this指针
    UML类图,用例图,时序图
    常见的框架模式:MVC MVP MTV等
  • 原文地址:https://www.cnblogs.com/yaoyangding/p/12048085.html
Copyright © 2020-2023  润新知