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列现在可以充分里用直接路径加载的优势。
Oracle12c中数据泵新特性之功能增强(expdp, impdp)的更多相关文章
- Oracle12c中性能优化新特性之新增APPROX_COUNT_DISTINCT 快速唯一值计数函数
Oracle11g中,为了改善DBMS_STATS包收集统计信息时的唯一值计数功能,增加了 APPROX_COUNT_DISTINCT函数,但文档中未记载.Oracle12c文档中包括了该函数,因此, ...
- Jdk5.0中出现的新特性
掌握jdk5.0中出现的新特性1.泛型(Generics)2.增强的"for"循环(Enhanced For loop)3.自动装箱/自动拆箱(Autoboxing/unboxin ...
- MVC中的其他新特性
MVC中的其他新特性 (GlobalImport全局导入功能) 默认新建立的MVC程序中,在Views目录下,新增加了一个_GlobalImport.cshtml文件和_ViewStart.cshtm ...
- iOS中的项目新特性页面的处理
一般项目中都会出现新特性页面,比如第一次使用应用的时候,或者在应用设置里查看新特性的时候会出现. 这里,选择新建一个专门处理项目新特性的控制器,来完成功能. 首先是 NewFeaturesViewCo ...
- 浅析Oracle 12c中Data Guard新特性
浅析Oracle 12c中Data Guard新特性 写在前面 无论是做Oracle运维的小伙伴还是老伙伴,想必对Oracle数据库的数据级灾备核心技术—Data Guard是再熟悉不过了!这项从 ...
- ES6系列之项目中常用的新特性
ES6系列之项目中常用的新特性 ES6常用特性 平时项目开发中灵活运用ES6+语法可以让开发者减少很多开发时间,提高工作效率.ES6版本提供了很多新的特性,接下来我列举项目中常用的ES6+的特性: l ...
- C#6.0 中的那些新特性
C#6.0 中的那些新特性 前言 VS2015在自己机器上确实是装好了,费了老劲了,想来体验一下跨平台的快感,结果被微软狠狠的来了一棒子了,装好了还是没什么用,应该还需要装Xarmain插件,配置一些 ...
- Xcode中StoryBoard Reference 新特性的使用
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,bi ...
- Spring4.1新特性——Spring MVC增强
目录 Spring4.1新特性——综述 Spring4.1新特性——Spring核心部分及其他 Spring4.1新特性——Spring缓存框架增强 Spring4.1新特性——异步调用和事件机制的异 ...
随机推荐
- TCP状态转换
最近笔试遇到一个题目:如果tcp建立连接时第三次握手失败,tcp会做何操作?该问题的本质是判断我们对tcp的状态转换是否能有比较深刻的理解.只要理解了下面的状态转换图,很容易回答上述问题. 在此,将& ...
- python的sorted
读入后,要进行组内排序,按groupseq字段排序后,然后统计前后两个项的个数,累加到全局. sorted函数使用如下: def sortlist(alllist): sorted_key1_ ...
- Spring BeanFactory getBean 源码剖析
首先看一张时序图 最开始,一切都来自这里: public static void main(String[] args) { ApplicationContext context = new Clas ...
- 程序员的软实力武器-smart原则
smart对于程序员来说不是仅仅意味一个法则: 面对需求和提出需求时候,smart原则可以极大的提高效率 目标管理是使管理者的工作由被动变为主动的一个很好的管理手段,实施目标管理不仅是为了利于员工更加 ...
- 网站开发进阶(三十一)js如何将html表格导出为excel文件(后记)
js如何将html表格导出为excel文件(后记) 前言 项目前期做了个导出Excel表格的功能,但是经过测试发现只有在IE上才可以正确实现,在Chrome等浏览器中无法实现导出效果.经过上网搜索,尝 ...
- Xcode相关常用快捷键搜集
command + L: 跳转到指定行 control + i: 格式化代码 command + control + 上/下 在*.h和*.m之间切换. command + control ...
- 《java入门第一季》之面向对象(抽象类到底多抽象)
/* 抽象类的概述: 动物不应该定义为具体的东西,而且动物中的吃,睡等也不应该是具体的. 我们把一个不是具体的功能称为抽象的功能,而一个类中如果有抽象的功能,该类必须被称为是抽象类. 抽象类的特点: ...
- MySQL正则表达式初步
如果想要了解完整的MySQL手册, 请访问: MySQL 5.1参考手册 你还可以学习: MySQL学习精粹 我们知道,在SQL之中,可以用 like 这个谓词(表达式) 来进行模糊检索,并支持 %, ...
- 调用bios喇叭发声
话不多说,上代码: #include <windows.h> #include <iostream> #include <map> using namespace ...
- 【Java编程】Java学习笔记<一>
1. 高级语言的编译和执行方法可以归为两大基本技术:编译执行和解释执行.C/C++/Delphi是编译执行,basic/java/matlab是解释执行. 2. 尽管Java是解释执行的,也需 ...