码迷,mamicode.com
首页 > 其他好文 > 详细

EXPDP/IMPDP

时间:2015-06-15 09:23:27      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:

SQL> select * from v$version where rownum=1;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

SQL> !cat /etc/issue
Enterprise Linux Enterprise Linux Server release 5.5 (Carthage)
Kernel \r on an \m

数据泵技术是11g提供的数据库逻辑备份和恢复工具,oracle建议使用数据泵来代替EXP/IMP.数据泵技术有很多优点,如可以恢复中断的作业,从一个会话中监控数据泵取作业,在作业执行过程中修改作业属性,以及重启一个失败的数据泵取作业等等。在启动数据泵导入或者导出的程序时,在数据库服务器端启动相应的服务器进程,完成数据的导入或者导出,数据泵技术是基于oracle数据库服务器的。传统的EXP是一个普通的本地用户进程,它将备份的数据写入本地磁盘空间,EXP是普通会话的一部分,它从服务器进程中获得要备份的数据。数据泵(EXPDP)启动数据库服务器端的服务器进程,服务器进程完成数据的备份并将备份文件写入数据库服务器端的计算机磁盘空间,文件格式是filename.dat。导出的备份文件在导入时只能通过数据泵(impdp)完成。注意:在使用数据泵导出备份数据时,只能将备份的数据写入磁盘文件,而无法写入磁带设备,如果需要则借助第三方工具。
使用数据泵技术的优点如下:
1.断点记录。在数据泵进行中,主表(Master Table)起到了关键作用。在主表中保存了整个数据泵运行过程中的相关信息,包括要处理的所有对象信息,正在处理的对象信息等。在启动数据泵时,如果我们指定了任务名称,则该MT表的名称等于任务名称,如果用户下面不存在这个名称的对象,则失败。如果没有指定任务名称,数据泵会自动为MT表生成一个名称。由于MT的存在,我们可以重新启动被终止的任务。
2.通过数据库链接db link,将远程数据库导出到转储文件。
3.通过采样,可以导出部分数据。
4.可以进行并行操作。
5.只导出元数据(例如表结构),不导出实际结构,可以指定是否进行压缩。
6.在导入时,可以修改导入数据所在的schema名称,表空间名称以及数据文件名称。
7.通过数据库链接db link,直接将远程的,位于其他主机的数据库里的数据导入到当前数据库中,从而实现跨平台的数据迁移。
8.不实际导出的情况下,估计整个导出工作需要占用的磁盘空间。
9.可以处理某些对象,或者不处理某些对象,或者只处理某些对象下面满足条件的数据等。

数据泵作业在数据库服务器上创建所有的备份文件,而oracle要求数据泵必须使用目录对象,以防止用户误操作数据库服务器上特定目录下的操作系统文件。目录对象对应于os上的一个指定目录。
如果当前用户时DBA用户,可以使用默认的目录对象而不必要再去创建数据泵操作的工作目录。此时,数据泵作业会将备份文件,日志文件以及sql文件存储该目录下,下面我们查找默认目录:
SQL> select * from dba_directories where directory_name=‘DATA_PUMP_DIR‘;


OWNER                          DIRECTORY_NAME
------------------------------ ------------------------------
DIRECTORY_PATH
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
SYS                            DATA_PUMP_DIR
/u01/app/oracle/admin/orcl3939/dpdump/

该文件对应的目录就是DBA用户使用数据泵导出数据时的存储目录。
如果用户使用数据泵,但是没有可用的目录,也不具备创建目录的权限,则提示错误。oracle找不到目录对象,无法启动数据泵作业:
[oracle@localhost ~]$ expdp hr/hr
Export: Release 11.2.0.1.0 - Production on 星期日 6月 14 19:29:38 2015
Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.
连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
ORA-39002: 操作无效
ORA-39070: 无法打开日志文件。
ORA-39145: 必须指定目录对象参数且不能为空

创建目录对象:
SQL> create directory hr_expimp_dir as ‘/mnt/pump‘;
create directory hr_expimp_dir as ‘/mnt/pump‘
*
第 1 行出现错误:
ORA-01031: 权限不足
用户需要自己创建目录对象时,则需要具有create any directory权限
授权:
SQL> grant create any directory to hr;
授权成功。

SQL>  create directory hr_expimp_dir as ‘/mnt/pump‘;
目录已创建。
注意:/mnt/pump是在os上创建的目录,注意oracle用户一定要有对该目录有w的权限,否则expdp程序启动失败,这个权限对于directory非常重要!
此时我们创建的目录,可以给其他用户使用,但是必须将读写该目录的权限赋予用户:

SQL> grant read on directory hr_expimp_dir to diy_os;

授权成功。



[oracle@localhost ~]$ expdp hr/hr directory=hr_expimp_dir
Export: Release 11.2.0.1.0 - Production on 星期日 6月 14 19:53:24 2015
Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.
连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
启动 "HR"."SYS_EXPORT_SCHEMA_01":  hr/******** directory=hr_expimp_dir 
正在使用 BLOCKS 方法进行估计...
处理对象类型 SCHEMA_EXPORT/TABLE/TABLE_DATA
使用 BLOCKS 方法的总估计: 128 KB
处理对象类型 SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
处理对象类型 SCHEMA_EXPORT/SEQUENCE/SEQUENCE
处理对象类型 SCHEMA_EXPORT/TABLE/TABLE
处理对象类型 SCHEMA_EXPORT/TABLE/INDEX/INDEX
处理对象类型 SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
处理对象类型 SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
处理对象类型 SCHEMA_EXPORT/TABLE/COMMENT
处理对象类型 SCHEMA_EXPORT/VIEW/VIEW
处理对象类型 SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
处理对象类型 SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
. . 导出了 "HR"."T"                                    5.031 KB       3 行
. . 导出了 "HR"."TT"                                   5.007 KB       2 行
. . 导出了 "HR"."COUNTRIES"                                0 KB       0 行
. . 导出了 "HR"."DEPARTMENTS"                              0 KB       0 行
. . 导出了 "HR"."EMPLOYEES"                                0 KB       0 行
. . 导出了 "HR"."JOBS"                                     0 KB       0 行
. . 导出了 "HR"."JOB_HISTORY"                              0 KB       0 行
. . 导出了 "HR"."LOCATIONS"                                0 KB       0 行
. . 导出了 "HR"."REGIONS"                                  0 KB       0 行
已成功加载/卸载了主表 "HR"."SYS_EXPORT_SCHEMA_01" 
******************************************************************************
HR.SYS_EXPORT_SCHEMA_01 的转储文件集为:
  /mnt/pump/expdat.dmp
作业 "HR"."SYS_EXPORT_SCHEMA_01" 已于 19:55:21 成功完成


[oracle@localhost ~]$ ls /mnt/pump
expdat.dmp  export.log

EXPDP:
[oracle@localhost ~]$ expdp help=yes


Export: Release 11.2.0.1.0 - Production on 星期日 6月 14 19:59:59 2015


Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.




数据泵导出实用程序提供了一种用于在 Oracle 数据库之间传输
数据对象的机制。该实用程序可以使用以下命令进行调用:


   示例: expdp scott/tiger DIRECTORY=dmpdir DUMPFILE=scott.dmp


您可以控制导出的运行方式。具体方法是: 在 ‘expdp‘ 命令后输入 
各种参数。要指定各参数, 请使用关键字:


   格式:  expdp KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)
   示例: expdp scott/tiger DUMPFILE=scott.dmp DIRECTORY=dmpdir SCHEMAS=scott
               或 TABLES=(T1:P1,T1:P2), 如果 T1 是分区表


USERID 必须是命令行中的第一个参数。


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


以下是可用关键字和它们的说明。方括号中列出的是默认值。

ATTACH
连接到现有作业。
例如, ATTACH=job_name。

COMPRESSION
减少转储文件大小。
有效的关键字值为: ALL, DATA_ONLY, [METADATA_ONLY] 和 NONE。

CONTENT
指定要卸载的数据。
有效的关键字值为: [ALL], DATA_ONLY 和 METADATA_ONLY。(说明导出的是元数据还是数据,或者包括元数据和数据)

DATA_OPTIONS
数据层选项标记。
有效的关键字值为: XML_CLOBS。

DIRECTORY
用于转储文件和日志文件的目录对象。

DUMPFILE
指定目标转储文件名的列表 [expdat.dmp]。
例如, DUMPFILE=scott1.dmp, scott2.dmp, dmpdir:scott3.dmp

ENCRYPTION
加密某个转储文件的一部分或全部。
有效的关键字值为: ALL, DATA_ONLY, ENCRYPTED_COLUMNS_ONLY, METADATA_ONLY 和 NONE。

ENCRYPTION_ALGORITHM
指定加密的方式。
有效的关键字值为: [AES128], AES192 和 AES256。

ENCRYPTION_MODE
生成加密密钥的方法。
有效的关键字值为: DUAL, PASSWORD 和 [TRANSPARENT]。

ENCRYPTION_PASSWORD
用于在转储文件中创建加密数据的口令

ESTIMATE
计算作业估计值。
有效的关键字值为: [BLOCKS] 和 STATISTICS。(计算expdp导出作业的导出文件大小,选项blocks基于数据库块大小的倍数计算备份文件大小,而选项statistics使用当前对象的统计量来计算到导出的备份文件的大小)

ESTIMATE_ONLY
计算作业估计值而不执行导出。

EXCLUDE
排除特定对象类型。
例如, EXCLUDE=SCHEMA:"=‘HR‘"。

FILESIZE
以字节为单位指定每个转储文件的大小。

FLASHBACK_SCN
用于重置会话快照的 SCN。

FLASHBACK_TIME
用于查找最接近的相应 SCN 值的时间。

FULL
导出整个数据库 [N]。

HELP
显示帮助消息 [N]。

INCLUDE
包括特定对象类型。
例如, INCLUDE=TABLE_DATA。

JOB_NAME
要创建的导出作业的名称。

LOGFILE
指定日志文件名 [export.log]。

NETWORK_LINK
源系统的远程数据库链接的名称。

NOLOGFILE
不写入日志文

PARALLEL
更改当前作业的活动 worker 的数量。

PARFILE   (说明在导出作业时最大的线程数,实现导出作业的并行处理,也可以在作业运行中使用attach,如果设置多个工作线程,则要指定相同数量的备份文件,这                     样多个线程可以同时写多个备份文件。)
指定参数文件名。

QUERY
用于导出表的子集的谓词子句。
例如, QUERY=employees:"WHERE department_id > 10"。

REMAP_DATA
指定数据转换函数。
例如, REMAP_DATA=EMP.EMPNO:REMAPPKG.EMPNO。

REUSE_DUMPFILES
覆盖目标转储文件 (如果文件存在) [N]。

SAMPLE
要导出的数据的百分比。

SCHEMAS
要导出的方案的列表 [登录方案]。

SOURCE_EDITION
用于提取元数据的版本。

STATUS
监视作业状态的频率, 其中
默认值 [0] 表示只要有新状态可用, 就立即显示新状态。

TABLES
标识要导出的表的列表。
例如, TABLES=HR.EMPLOYEES,SH.SALES:SALES_1995。

TABLESPACES
标识要导出的表空间的列表。

TRANSPORTABLE
指定是否可以使用可传输方法。
有效的关键字值为: ALWAYS 和 [NEVER]。

TRANSPORT_FULL_CHECK
验证所有表的存储段 [N]。

TRANSPORT_TABLESPACES
要从中卸载元数据的表空间的列表。

VERSION
要导出的对象版本。
有效的关键字值为: [COMPATIBLE], LATEST 或任何有效的数据库版本。
------------------------------------------------------------------------------
下列命令在交互模式下有效。
注: 允许使用缩写。

ADD_FILE
将转储文件添加到转储文件集。(向导出备份文件夹中增加文件以增加目录空间。如在一个作业中运行期间输入ctrl +c切换到交互式导出提示:export>.如果该作业因为备份空间不足导致停止,使用add_file命令增加文件到导出目录中.如:
export>add_file=data_file_dir:expdata02.dmp)


CONTINUE_CLIENT
返回到事件记录模式。如果处于空闲状态, 将重新启动作业。

EXIT_CLIENT
退出客户机会话并使作业保持运行状态。

FILESIZE
用于后续 ADD_FILE 命令的默认文件大小 (字节)。

HELP
汇总交互命令。

KILL_JOB
分离并删除作业。(杀死客户机进程和数据泵作业(服务器进程))

PARALLEL
更改当前作业的活动 worker 的数量。

REUSE_DUMPFILES
覆盖目标转储文件 (如果文件存在) [N]。

START_JOB
启动或恢复当前作业。
有效的关键字值为: SKIP_CURRENT。

STATUS
监视作业状态的频率, 其中
默认值 [0] 表示只要有新状态可用, 就立即显示新状态。

STOP_JOB
按顺序关闭作业执行并退出客户机。
有效的关键字值为: IMMEDIATE。

导出 整个数据库:

SQL> grant read on directory hr_expimp_dir to system;
授权成功。

[oracle@localhost ~]$ expdp system/manager dumpfile=database.dmp directory=hr_expimp_dir  job_name=diy_os full=y
Export: Release 11.2.0.1.0 - Production on 星期日 6月 14 20:37:41 2015
Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.
连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
启动 "SYSTEM"."DIY_OS":  system/******** dumpfile=database.dmp directory=hr_expimp_dir job_name=diy_os full=y 
正在使用 BLOCKS 方法进行估计...
处理对象类型 DATABASE_EXPORT/SCHEMA/TABLE/TABLE_DATA
使用 BLOCKS 方法的总估计: 148.3 MB
处理对象类型 DATABASE_EXPORT/TABLESPACE
处理对象类型 DATABASE_EXPORT/PROFILE
处理对象类型 DATABASE_EXPORT/SYS_USER/USER
处理对象类型 DATABASE_EXPORT/SCHEMA/USER
处理对象类型 DATABASE_EXPORT/ROLE
处理对象类型 DATABASE_EXPORT/GRANT/SYSTEM_GRANT/PROC_SYSTEM_GRANT
处理对象类型 DATABASE_EXPORT/SCHEMA/GRANT/SYSTEM_GRANT
处理对象类型 DATABASE_EXPORT/SCHEMA/ROLE_GRANT
处理对象类型 DATABASE_EXPORT/SCHEMA/DEFAULT_ROLE
处理对象类型 DATABASE_EXPORT/SCHEMA/TABLESPACE_QUOTA
处理对象类型 DATABASE_EXPORT/RESOURCE_COST
处理对象类型 DATABASE_EXPORT/TRUSTED_DB_LINK
处理对象类型 DATABASE_EXPORT/SCHEMA/SEQUENCE/SEQUENCE
处理对象类型 DATABASE_EXPORT/SCHEMA/SEQUENCE/GRANT/OWNER_GRANT/OBJECT_GRANT
处理对象类型 DATABASE_EXPORT/DIRECTORY/DIRECTORY
处理对象类型 DATABASE_EXPORT/DIRECTORY/GRANT/OWNER_GRANT/OBJECT_GRANT
处理对象类型 DATABASE_EXPORT/CONTEXT
处理对象类型 DATABASE_EXPORT/SCHEMA/PUBLIC_SYNONYM/SYNONYM
处理对象类型 DATABASE_EXPORT/SCHEMA/SYNONYM
处理对象类型 DATABASE_EXPORT/SCHEMA/TYPE/INC_TYPE
处理对象类型 DATABASE_EXPORT/SCHEMA/TYPE/TYPE_SPEC
处理对象类型 DATABASE_EXPORT/SCHEMA/TYPE/GRANT/OWNER_GRANT/OBJECT_GRANT

.......
.......
[oracle@localhost ~]$ ls /mnt/pump/database.dmp
/mnt/pump/database.dmp


导出一个模式:
[oracle@localhost ~]$ expdp hr/hr directory=hr_expimp_dir dumpfile=hrschema.dmp


Export: Release 11.2.0.1.0 - Production on 星期日 6月 14 20:55:55 2015


Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.


连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
启动 "HR"."SYS_EXPORT_SCHEMA_01":  hr/******** directory=hr_expimp_dir dumpfile=hrschema.dmp 
正在使用 BLOCKS 方法进行估计...
处理对象类型 SCHEMA_EXPORT/TABLE/TABLE_DATA
使用 BLOCKS 方法的总估计: 128 KB
处理对象类型 SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
处理对象类型 SCHEMA_EXPORT/SEQUENCE/SEQUENCE
处理对象类型 SCHEMA_EXPORT/TABLE/TABLE
处理对象类型 SCHEMA_EXPORT/TABLE/INDEX/INDEX
处理对象类型 SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
处理对象类型 SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
处理对象类型 SCHEMA_EXPORT/TABLE/COMMENT
处理对象类型 SCHEMA_EXPORT/VIEW/VIEW
处理对象类型 SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
处理对象类型 SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
. . 导出了 "HR"."T"                                    5.031 KB       3 行
. . 导出了 "HR"."TT"                                   5.007 KB       2 行
. . 导出了 "HR"."COUNTRIES"                                0 KB       0 行
. . 导出了 "HR"."DEPARTMENTS"                              0 KB       0 行
. . 导出了 "HR"."EMPLOYEES"                                0 KB       0 行
. . 导出了 "HR"."JOBS"                                     0 KB       0 行
. . 导出了 "HR"."JOB_HISTORY"                              0 KB       0 行
. . 导出了 "HR"."LOCATIONS"                                0 KB       0 行
. . 导出了 "HR"."REGIONS"                                  0 KB       0 行
已成功加载/卸载了主表 "HR"."SYS_EXPORT_SCHEMA_01" 
******************************************************************************
HR.SYS_EXPORT_SCHEMA_01 的转储文件集为:
  /mnt/pump/hrschema.dmp
作业 "HR"."SYS_EXPORT_SCHEMA_01" 已于 20:57:07 成功完成


导出特定的表:

[oracle@localhost ~]$ expdp hr/hr dumpfile=hrttt.dmp tables=t  directory=hr_expimp_dir
Export: Release 11.2.0.1.0 - Production on 星期日 6月 14 20:59:27 2015
Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.
连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
启动 "HR"."SYS_EXPORT_TABLE_01":  hr/******** dumpfile=hrttt.dmp tables=t directory=hr_expimp_dir 
正在使用 BLOCKS 方法进行估计...
处理对象类型 TABLE_EXPORT/TABLE/TABLE_DATA
使用 BLOCKS 方法的总估计: 64 KB
处理对象类型 TABLE_EXPORT/TABLE/TABLE
处理对象类型 TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
. . 导出了 "HR"."T"                                    5.031 KB       3 行
已成功加载/卸载了主表 "HR"."SYS_EXPORT_TABLE_01" 
******************************************************************************
HR.SYS_EXPORT_TABLE_01 的转储文件集为:
  /mnt/pump/hrttt.dmp
作业 "HR"."SYS_EXPORT_TABLE_01" 已于 20:59:38 成功完成


[oracle@localhost ~]$ ls /mnt/pump/hrttt.dmp
/mnt/pump/hrttt.dmp


导出指定的表空间:

[oracle@localhost ~]$ expdp system/manager directory=hr_expimp_dir dumpfile=expdpusers.dmp  tablespaces=users;
Export: Release 11.2.0.1.0 - Production on 星期日 6月 14 21:03:38 2015
Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
启动 "SYSTEM"."SYS_EXPORT_TABLESPACE_01":  system/******** directory=hr_expimp_dir dumpfile=expdpusers.dmp tablespaces=users 
正在使用 BLOCKS 方法进行估计...
处理对象类型 TABLE_EXPORT/TABLE/TABLE_DATA
使用 BLOCKS 方法的总估计: 832 KB
处理对象类型 TABLE_EXPORT/TABLE/TABLE
处理对象类型 TABLE_EXPORT/TABLE/INDEX/INDEX
处理对象类型 TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
处理对象类型 TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
处理对象类型 TABLE_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
处理对象类型 TABLE_EXPORT/TABLE/TRIGGER
处理对象类型 TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
. . 导出了 "ORACLE"."QUEST_SOO_EVENT_CATEGORIES"       93.27 KB    1641 行
. . 导出了 "HR"."T"                                    5.031 KB       3 行
. . 导出了 "HR"."TT"                                   5.007 KB       2 行
. . 导出了 "LIBRARY"."BOOKINFO"                        9.437 KB      19 行
. . 导出了 "LIBRARY"."BOOKTYPE"                        6.382 KB       7 行
. . 导出了 "LIBRARY"."LIBRARY_ORDER"                   7.843 KB       9 行
. . 导出了 "LIBRARY"."OPERATER"                        8.593 KB      20 行
. . 导出了 "LIBRARY"."READER"                          12.46 KB      18 行
. . 导出了 "ORACLE"."QUEST_SOO_PARSE_TIME_TRACK"       5.453 KB       1 行
. . 导出了 "ORACLE"."QUEST_SOO_SCHEMA_VERSIONS"        5.453 KB       1 行
. . 导出了 "ORACLE"."QUEST_SOO_VERSION"                11.73 KB       1 行
. . 导出了 "SYSTEM"."T"                                5.031 KB       3 行
. . 导出了 "LIBRARY"."BORROW"                              0 KB       0 行
. . 导出了 "ORACLE"."QUEST_SOO_AT_APPNAME"                 0 KB       0 行
. . 导出了 "ORACLE"."QUEST_SOO_AT_EXECUTION_PLAN"          0 KB       0 行
. . 导出了 "ORACLE"."QUEST_SOO_AT_OPERATIONS"              0 KB       0 行
. . 导出了 "ORACLE"."QUEST_SOO_AT_PARSE_CURSOR"            0 KB       0 行
. . 导出了 "ORACLE"."QUEST_SOO_AT_PARSE_ERROR"             0 KB       0 行
. . 导出了 "ORACLE"."QUEST_SOO_AT_PARSE_WAITS"             0 KB       0 行
. . 导出了 "ORACLE"."QUEST_SOO_AT_SESSION_ID"              0 KB       0 行
. . 导出了 "ORACLE"."QUEST_SOO_AT_SQL_BINDS"               0 KB       0 行
. . 导出了 "ORACLE"."QUEST_SOO_AT_SQL_EXECUTIONS"          0 KB       0 行
. . 导出了 "ORACLE"."QUEST_SOO_AT_SQL_EXEC_ERROR"          0 KB       0 行
. . 导出了 "ORACLE"."QUEST_SOO_AT_SQL_FETCH"               0 KB       0 行
. . 导出了 "ORACLE"."QUEST_SOO_AT_SQL_STATEMENT"           0 KB       0 行
. . 导出了 "ORACLE"."QUEST_SOO_AT_SQL_STMT_PIECES"         0 KB       0 行
. . 导出了 "ORACLE"."QUEST_SOO_AT_SQL_WAITS"               0 KB       0 行
. . 导出了 "ORACLE"."QUEST_SOO_AT_TRACE_FILE"              0 KB       0 行
. . 导出了 "ORACLE"."QUEST_SOO_AT_WAIT_NAMES"              0 KB       0 行
. . 导出了 "ORACLE"."QUEST_SOO_BUFFER_BUSY"                0 KB       0 行
. . 导出了 "ORACLE"."QUEST_SOO_LOCK_TREE"                  0 KB       0 行
. . 导出了 "ORACLE"."QUEST_SOO_PLAN_TABLE"                 0 KB       0 行
. . 导出了 "ORACLE"."QUEST_SOO_SB_BUFFER_BUSY"             0 KB       0 行
. . 导出了 "ORACLE"."QUEST_SOO_SB_EVENT"                   0 KB       0 行
. . 导出了 "ORACLE"."QUEST_SOO_SB_IO_STAT"                 0 KB       0 行
已成功加载/卸载了主表 "SYSTEM"."SYS_EXPORT_TABLESPACE_01" 
******************************************************************************
SYSTEM.SYS_EXPORT_TABLESPACE_01 的转储文件集为:
  /mnt/pump/expdpusers.dmp
作业 "SYSTEM"."SYS_EXPORT_TABLESPACE_01" 已于 21:03:53 成功完成

[oracle@localhost ~]$ ls /mnt/pump/expdpusers.dmp
/mnt/pump/expdpusers.dmp

导出数据行:
[oracle@localhost ~]$ expdp hr/hr dumpfile=datarow.dmp directory=hr_expimp_dir full=y  content=data_only


Export: Release 11.2.0.1.0 - Production on 星期日 6月 14 21:11:29 2015


Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.


连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
ORA-31631: 需要权限
ORA-39161: 完整数据库作业需要权限

此时需要授权:
SQL> GRANT DATAPUMP_EXP_FULL_DATABASE TO HR;
授权成功。

[oracle@localhost pump]$ expdp hr/hr dumpfile=datarow.dmp directory=hr_expimp_dir full=y  content=data_only


Export: Release 11.2.0.1.0 - Production on 星期日 6月 14 21:21:03 2015


Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.


连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
启动 "HR"."SYS_EXPORT_FULL_01":  hr/******** dumpfile=datarow.dmp directory=hr_expimp_dir full=y content=data_only 
正在使用 BLOCKS 方法进行估计...
处理对象类型 DATABASE_EXPORT/SCHEMA/TABLE/TABLE_DATA
使用 BLOCKS 方法的总估计: 148.3 MB
. . 导出了 "SH"."CUSTOMERS"                            9.853 MB   55500 行
. . 导出了 "PM"."ONLINE_MEDIA"                         7.854 MB       9 行
. . 导出了 "APEX_030200"."WWV_FLOW_PAGE_PLUGS"         5.211 MB    7417 行
. . 导出了 "APEX_030200"."WWV_FLOW_STEP_ITEMS"         3.505 MB    9673 行
. . 导出了 "APEX_030200"."WWV_FLOW_STEP_PROCESSING"    2.188 MB    2239 行
. . 导出了 "SYSMAN"."MGMT_MESSAGES"                    4.154 MB   23311 行
. . 导出了 "APEX_030200"."WWV_FLOW_DICTIONARY$"        2.909 MB   70601 行
. . 导出了 "SH"."SUPPLEMENTARY_DEMOGRAPHICS"           697.3 KB    4500 行
. . 导出了 "OE"."PRODUCT_DESCRIPTIONS"                 2.379 MB    8640 行
. . 导出了 "SYSMAN"."MGMT_SWLIB_ENTITY_DOCUMENTS"      1.307 MB     364 行
. . 导出了 "APEX_030200"."WWV_FLOW_REGION_REPORT_COLUMN"  1.201 MB    7918 行

.......
.......
[oracle@localhost ~]$ ls /mnt/pump/datarow.dmp
/mnt/pump/datarow.dmp


导入作业所需要的空间:
[oracle@localhost ~]$ expdp hr/hr full=yes estimate_only=y estimate=statistics


Export: Release 11.2.0.1.0 - Production on 星期日 6月 14 21:26:11 2015


Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.


连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
启动 "HR"."SYS_EXPORT_FULL_01":  hr/******** full=yes estimate_only=y estimate=statistics 
正在使用 STATISTICS 方法进行估计...
处理对象类型 DATABASE_EXPORT/SCHEMA/TABLE/TABLE_DATA

........
.......
 预计为 "SYSTEM"."REPCAT$_SITE_OBJECTS"                 0 KB
.  预计为 "SYSTEM"."REPCAT$_SNAPGROUP"                    0 KB
.  预计为 "SYSTEM"."REPCAT$_TEMPLATE_OBJECTS"             0 KB
.  预计为 "SYSTEM"."REPCAT$_TEMPLATE_PARMS"               0 KB
.  预计为 "SYSTEM"."REPCAT$_TEMPLATE_REFGROUPS"           0 KB
.  预计为 "SYSTEM"."REPCAT$_TEMPLATE_SITES"               0 KB
.  预计为 "SYSTEM"."REPCAT$_TEMPLATE_TARGETS"             0 KB
.  预计为 "SYSTEM"."REPCAT$_USER_AUTHORIZATIONS"          0 KB
.  预计为 "SYSTEM"."REPCAT$_USER_PARM_VALUES"             0 KB
.  预计为 "SYSTEM"."SQLPLUS_PRODUCT_PROFILE"              0 KB
使用 STATISTICS 方法的总估计: 72.23 MB
作业 "HR"."SYS_EXPORT_FULL_01" 已于 21:26:36 成功完成


IMPDP:
impdp可以导入整个数据库,特定的模式,特定的表或者特定的表空间。也可以在不同平台的数据库之间进行数据迁移表空间。impdp通过各种参数支持数据过滤以及对元数据的过滤,而元数据的过滤可以有效的控制要导入对象类型,如表,索引,还是授权等等。impdp也一样使用directory,parfile,dumpfile,logfile等参数,add_file是expdp实用程序专有的,impdp也有专有的参数SQLFILE,往往从备份中提取ddl语句时,需要使用sqlfile.

[oracle@localhost pump]$ impdp hr/hr directory=hr_expimp_dir dumpfile=hrttt.dmp  sqlfile=wang.sql


Import: Release 11.2.0.1.0 - Production on 星期日 6月 14 21:38:12 2015


Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.


连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
已成功加载/卸载了主表 "HR"."SYS_SQL_FILE_FULL_01" 
启动 "HR"."SYS_SQL_FILE_FULL_01":  hr/******** directory=hr_expimp_dir dumpfile=hrttt.dmp sqlfile=wang.sql 
处理对象类型 TABLE_EXPORT/TABLE/TABLE
处理对象类型 TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
作业 "HR"."SYS_SQL_FILE_FULL_01" 已于 21:38:18 成功完成



我们打开sqlfile文件wang.sql:

[oracle@localhost ~]$ cat /mnt/pump/wang.sql
-- CONNECT HR
ALTER SESSION SET EVENTS ‘10150 TRACE NAME CONTEXT FOREVER, LEVEL 1‘;
ALTER SESSION SET EVENTS ‘10904 TRACE NAME CONTEXT FOREVER, LEVEL 1‘;
ALTER SESSION SET EVENTS ‘25475 TRACE NAME CONTEXT FOREVER, LEVEL 1‘;
ALTER SESSION SET EVENTS ‘10407 TRACE NAME CONTEXT FOREVER, LEVEL 1‘;
ALTER SESSION SET EVENTS ‘10851 TRACE NAME CONTEXT FOREVER, LEVEL 1‘;
ALTER SESSION SET EVENTS ‘22830 TRACE NAME CONTEXT FOREVER, LEVEL 192 ‘;
-- new object type path: TABLE_EXPORT/TABLE/TABLE
CREATE TABLE "HR"."T" 
   (    "T" DATE
   ) SEGMENT CREATION IMMEDIATE 
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "USERS" ;
 
-- new object type path: TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
DECLARE 
  c varchar2(60); 
  nv varchar2(1); 
  df varchar2(21) := ‘YYYY-MM-DD:HH24:MI:SS‘; 
  s varchar2(60) := ‘HR‘; 
  t varchar2(60) := ‘T‘; 
  p varchar2(1); 
  sp varchar2(1); 
  stmt varchar2(300) := ‘INSERT INTO "SYS"."IMPDP_STATS" (type,version,c1,c2,c3,c4,c5,n1,n2,n3,n4,n5,n6,n7,n8,n9,n10,n11,d1,r1,r2,ch1,flags) VALUES (‘‘C‘‘,5,:1,:2,:3,:4,:5,:6,:7,:8,:9,:10,:11,:12,:13,:14,:15,:16,:17,:18,:19,:20,:21)‘;
BEGIN
  DELETE FROM "SYS"."IMPDP_STATS"; 
  INSERT INTO "SYS"."IMPDP_STATS" (type,version,flags,c1,c2,c3,c5,n1,n2,n3,n4,n10,n11,n12,d1) VALUES (‘T‘,5,2,t,p,sp,s,
               3,5,8,3,NULL,NULL,NULL,
               TO_DATE(‘2015-06-13 22:40:49‘,df));
  c := ‘T‘; 
  EXECUTE IMMEDIATE stmt USING t,p,sp,c,s,
               3,.333333333333333,3,3,0,2449585,2457152,8,nv,nv,nv,
               TO_DATE(‘2015-06-13 22:40:49‘,df),‘77C20814010101‘,‘78730509010101‘,nv,2;


  DBMS_STATS.IMPORT_TABLE_STATS(‘"HR"‘,‘"T"‘,NULL,‘"IMPDP_STATS"‘,NULL,NULL,‘"SYS"‘); 
  DELETE FROM "SYS"."IMPDP_STATS"; 
END; 
/

在导入时,impdp会自动从备份文件中提取sql语句,并将提取的sql语句保存在sqlfile指定的文件中。保存在directory指定的文件夹中。sqlfile参数作用是为特定的备份文件提取sql的ddl语句,而不是实际的ddl行为,它提取的是备份文件中的ddl的sql脚本内容,使得用户知道在备份文件中发生了哪些ddl行为。

查看帮助:
[oracle@localhost ~]$ impdp help=yes


Import: Release 11.2.0.1.0 - Production on 星期日 6月 14 21:44:31 2015


Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.




数据泵导入实用程序提供了一种用于在 Oracle 数据库之间传输
数据对象的机制。该实用程序可以使用以下命令进行调用:


     示例: impdp scott/tiger DIRECTORY=dmpdir DUMPFILE=scott.dmp


您可以控制导入的运行方式。具体方法是: 在 ‘impdp‘ 命令后输入
各种参数。要指定各参数, 请使用关键字:


     格式:  impdp KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)
     示例: impdp scott/tiger DIRECTORY=dmpdir DUMPFILE=scott.dmp


USERID 必须是命令行中的第一个参数。


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


以下是可用关键字和它们的说明。方括号中列出的是默认值。


ATTACH
连接到现有作业。
例如, ATTACH=job_name。


CONTENT
指定要加载的数据。
有效的关键字为: [ALL], DATA_ONLY 和 METADATA_ONLY。


DATA_OPTIONS
数据层选项标记。
有效的关键字为: SKIP_CONSTRAINT_ERRORS。


DIRECTORY
用于转储文件, 日志文件和 SQL 文件的目录对象。


DUMPFILE
要从中导入的转储文件的列表 [expdat.dmp]。
例如, DUMPFILE=scott1.dmp, scott2.dmp, dmpdir:scott3.dmp。


ENCRYPTION_PASSWORD
用于访问转储文件中的加密数据的口令密钥。
对于网络导入作业无效。


ESTIMATE
计算作业估计值。
有效的关键字为: [BLOCKS] 和 STATISTICS。


EXCLUDE
排除特定对象类型。
例如, EXCLUDE=SCHEMA:"=‘HR‘"。


FLASHBACK_SCN
用于重置会话快照的 SCN。


FLASHBACK_TIME
用于查找最接近的相应 SCN 值的时间。


FULL
导入源中的所有对象 [Y]。


HELP
显示帮助消息 [N]。


INCLUDE
包括特定对象类型。
例如, INCLUDE=TABLE_DATA。


JOB_NAME
要创建的导入作业的名称。


LOGFILE
日志文件名 [import.log]。


NETWORK_LINK
源系统的远程数据库链接的名称。


NOLOGFILE
不写入日志文件 [N]。


PARALLEL
更改当前作业的活动 worker 的数量。


PARFILE
指定参数文件。


PARTITION_OPTIONS
指定应如何转换分区。
有效的关键字为: DEPARTITION, MERGE 和 [NONE]。


QUERY
用于导入表的子集的谓词子句。
例如, QUERY=employees:"WHERE department_id > 10"。


REMAP_DATA
指定数据转换函数。
例如, REMAP_DATA=EMP.EMPNO:REMAPPKG.EMPNO。


REMAP_DATAFILE
在所有 DDL 语句中重新定义数据文件引用。(重新定义数据文件的名称和目录)


REMAP_SCHEMA          
将一个方案中的对象加载到另一个方案。(重新映射模式,可以将对象从一个模式移动到另一个模式)


REMAP_TABLE
将表名重新映射到另一个表。
例如, REMAP_TABLE=EMP.EMPNO:REMAPPKG.EMPNO。


REMAP_TABLESPACE
将表空间对象重新映射到另一个表空间。(可以将数据对象从一个表空间移动到另一个表空间)


REUSE_DATAFILES
如果表空间已存在, 则将其初始化 [N]。


SCHEMAS
要导入的方案的列表。


SKIP_UNUSABLE_INDEXES
跳过设置为“索引不可用”状态的索引。


SOURCE_EDITION
用于提取元数据的版本。


SQLFILE
将所有的 SQL DDL 写入指定的文件。


STATUS
监视作业状态的频率, 其中
默认值 [0] 表示只要有新状态可用, 就立即显示新状态。


STREAMS_CONFIGURATION
启用流元数据的加载


TABLE_EXISTS_ACTION
导入对象已存在时执行的操作。
有效的关键字为: APPEND, REPLACE, [SKIP] 和 TRUNCATE。


TABLES
标识要导入的表的列表。
例如, TABLES=HR.EMPLOYEES,SH.SALES:SALES_1995。


TABLESPACES
标识要导入的表空间的列表。


TARGET_EDITION
用于加载元数据的版本。


TRANSFORM
要应用于适用对象的元数据转换。
有效的关键字为: OID, PCTSPACE, SEGMENT_ATTRIBUTES 和 STORAGE。(说明在导入数据泵作业时可以选择导入某一个对象的存储参数或者其他的属性,如导入表时不导入该表的存储属性。语法:TRANSFORM=TRANSFORM_NAME:VALUE[:OBJECT_TYPE])

TRANSPORTABLE
用于选择可传输数据移动的选项。
有效的关键字为: ALWAYS 和 [NEVER]。
仅在 NETWORK_LINK 模式导入操作中有效。


TRANSPORT_DATAFILES
按可传输模式导入的数据文件的列表。


TRANSPORT_FULL_CHECK
验证所有表的存储段 [N]。


TRANSPORT_TABLESPACES
要从中加载元数据的表空间的列表。
仅在 NETWORK_LINK 模式导入操作中有效。


VERSION
要导入的对象的版本。
有效的关键字为: [COMPATIBLE], LATEST 或任何有效的数据库版本。
仅对 NETWORK_LINK 和 SQLFILE 有效。


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


下列命令在交互模式下有效。
注: 允许使用缩写。


CONTINUE_CLIENT
返回到事件记录模式。如果处于空闲状态, 将重新启动作业。


EXIT_CLIENT
退出客户机会话并使作业保持运行状态。


HELP
汇总交互命令。


KILL_JOB
分离并删除作业。


PARALLEL
更改当前作业的活动 worker 的数量。


START_JOB
启动或恢复当前作业。
有效的关键字为: SKIP_CURRENT。


STATUS
监视作业状态的频率, 其中
默认值 [0] 表示只要有新状态可用, 就立即显示新状态。


STOP_JOB
按顺序关闭作业执行并退出客户机。
有效的关键字为: IMMEDIATE。


导入表:

SQL> DESC T;
ERROR:
ORA-04043: 对象 T 不存在

[oracle@localhost ~]$ impdp hr/hr directory=hr_expimp_dir dumpfile=hrttt.dmp


Import: Release 11.2.0.1.0 - Production on 星期日 6月 14 21:56:40 2015


Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.


连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
已成功加载/卸载了主表 "HR"."SYS_IMPORT_FULL_01" 
启动 "HR"."SYS_IMPORT_FULL_01":  hr/******** directory=hr_expimp_dir dumpfile=hrttt.dmp 
处理对象类型 TABLE_EXPORT/TABLE/TABLE
处理对象类型 TABLE_EXPORT/TABLE/TABLE_DATA
. . 导入了 "HR"."T"                                    5.031 KB       3 行
处理对象类型 TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
作业 "HR"."SYS_IMPORT_FULL_01" 已于 21:56:43 成功完成


SQL> desc t;
 名称                                    是否为空? 类型
 ----------------------------------------- -------- ----------------------------
 T                                                  DATE


以上只是抛砖引玉,读者可以自行试验,导入模式,特定的表,表空间,表对象等等。

EXPDP/IMPDP

标签:

原文地址:http://blog.csdn.net/bat_os/article/details/46495075

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!