oracle 数据泵

心已入冬 提交于 2020-04-07 06:53:54

页内索引:

1.data pump export 参数

2.data pump import 参数

3.数据泵目录创建及查询相关信息

4.数据导入导出用例

5.expdp 自动化shell脚本

 

1.DATA PUMP EXPORT 参数:

[oracle@c200 ~]$ expdp help=y

--常用参数:

CLUSTER:
Utilize cluster resources and distribute workers across the Oracle RAC.
Valid keyword values are: [Y] and N.

COMPRESSION:
减少转储文件大小。
有效的关键字值为: ALL, DATA_ONLY, [METADATA_ONLY] 和 NONE。
Reduce the size of a dump file.
Valid keyword values are: ALL, DATA_ONLY, [METADATA_ONLY] and NONE.

CONTENT:
指定要卸载的数据。
有效的关键字值为: [ALL], DATA_ONLY 和 METADATA_ONLY。
Specifies data to unload.
Valid keyword values are: [ALL], DATA_ONLY and METADATA_ONLY.

DIRECTORY:
用于转储文件和日志文件的目录对象。
Directory object to be used for dump and log files.

DUMPFILE:
指定目标转储文件名的列表 [expdat.dmp]。
例如, DUMPFILE=scott1.dmp, scott2.dmp, dmpdir:scott3.dmp。
Specify list of destination dump file names [expdat.dmp].
For example, DUMPFILE=scott1.dmp, scott2.dmp, dmpdir:scott3.dmp.

FULL:
导出整个数据库 [N]。
Export entire database [N].

HELP:
显示帮助消息 [N]。
Display Help messages [N].

INCLUDE:
包括特定对象类型。
例如, INCLUDE=TABLE_DATA。
Include specific object types.
For example, INCLUDE=TABLE_DATA.

EXCLUDE:
排除特定对象类型。
例如, EXCLUDE=SCHEMA:"='HR'"。
Exclude specific object types.
For example, EXCLUDE=SCHEMA:"='HR'".

LOGFILE:
指定日志文件名 [export.log]。
Specify log file name [export.log].

NETWORK_LINK:
源系统的远程数据库链接的名称。
Name of remote database link to the source system.

NOLOGFILE:
不写入日志文件 [N]。
Do not write log file [N].

PARALLEL:
更改当前作业的活动 worker 的数量。
Change the number of active workers for current job.

PARFILE:
指定参数文件名。
Specify parameter file name.

QUERY:
用于导出表的子集的谓词子句。
例如, QUERY=employees:"WHERE department_id > 10"。
Predicate clause used to export a subset of a table.
For example, QUERY=employees:"WHERE department_id > 10".

REMAP_DATA:
指定数据转换函数。
例如, REMAP_DATA=EMP.EMPNO:REMAPPKG.EMPNO。
Specify a data conversion function.
For example, REMAP_DATA=EMP.EMPNO:REMAPPKG.EMPNO.

SCHEMAS:
要导出的方案的列表 [登录方案]。
List of schemas to export [login schema].

TABLES:
标识要导出的表的列表。
例如, TABLES=HR.EMPLOYEES,SH.SALES:SALES_1995。
Identifies a list of tables to export.
For example, TABLES=HR.EMPLOYEES,SH.SALES:SALES_1995.

TABLESPACES:
标识要导出的表空间的列表。
Identifies a list of tablespaces to export.

VERSION:
要导出的对象版本。
有效的关键字值为: [COMPATIBLE], LATEST 或任何有效的数据库版本。
Version of objects to export.
Valid keyword values are: [COMPATIBLE], LATEST or any valid database version.

--OTHER

ATTACH:
连接到现有作业。
例如, ATTACH=job_name。
Attach to an existing job.
For example, ATTACH=job_name.

DATA_OPTIONS:
数据层选项标记。
有效的关键字值为: XML_CLOBS。
Data layer option flags.
Valid keyword values are: XML_CLOBS.

ENCRYPTION:
加密某个转储文件的一部分或全部。
有效的关键字值为: ALL, DATA_ONLY, ENCRYPTED_COLUMNS_ONLY, METADATA_ONLY 和 NONE
Encrypt part or all of a dump file.
Valid keyword values are: ALL, DATA_ONLY, ENCRYPTED_COLUMNS_ONLY, METADATA_ONLY and NONE.

ENCRYPTION_ALGORITHM:
指定加密的方式。
有效的关键字值为: [AES128], AES192 和 AES256。
Specify how encryption should be done.
Valid keyword values are: [AES128], AES192 and AES256.

ENCRYPTION_MODE:
生成加密密钥的方法。
有效的关键字值为: DUAL, PASSWORD 和 [TRANSPARENT]。
Method of generating encryption key.
Valid keyword values are: DUAL, PASSWORD and [TRANSPARENT].

ENCRYPTION_PASSWORD:
用于在转储文件中创建加密数据的口令密钥
Password key for creating encrypted data within a dump file.

ESTIMATE:
计算作业估计值。
有效的关键字值为: [BLOCKS] 和 STATISTICS。
Calculate job estimates.
Valid keyword values are: [BLOCKS] and STATISTICS.

ESTIMATE_ONLY:
计算作业估计值而不执行导出。
Calculate job estimates without performing the export.

FILESIZE:
以字节为单位指定每个转储文件的大小。
Specify the size of each dump file in units of bytes.

FLASHBACK_SCN:
用于重置会话快照的 SCN。
SCN used to reset session snapshot.

FLASHBACK_TIME:
用于查找最接近的相应 SCN 值的时间。
Time used to find the closest corresponding SCN value.

JOB_NAME:
要创建的导出作业的名称。
Name of export job to create.

REUSE_DUMPFILES:
覆盖目标转储文件 (如果文件存在) [N]。
Overwrite destination dump file if it exists [N].

SAMPLE:
要导出的数据的百分比。
Percentage of data to be exported. 

SERVICE_NAME
Name of an active Service and associated resource group to constrain Oracle RAC resources.

SOURCE_EDITION:
用于提取元数据的版本。
Edition to be used for extracting metadata.

STATUS:
监视作业状态的频率, 其中
默认值 [0] 表示只要有新状态可用, 就立即显示新状态。
Frequency (secs) job status is to be monitored where
the default [0] will show new status when available.

TRANSPORTABLE:
指定是否可以使用可传输方法。
有效的关键字值为: ALWAYS 和 [NEVER]。
Specify whether transportable method can be used.
Valid keyword values are: ALWAYS and [NEVER].

TRANSPORT_FULL_CHECK:
验证所有表的存储段 [N]。
Verify storage segments of all tables [N].

TRANSPORT_TABLESPACES:
要从中卸载元数据的表空间的列表
List of tablespaces from which metadata will be unloaded.

 

 

2.DATA PUMP IMPORT 参数:

[oracle@c200 ~]$ impdp help=y

--常用参数

CLUSTER
Utilize cluster resources and distribute workers across the Oracle RAC.
Valid keyword values are: [Y] and N.

CONTENT:
指定要加载的数据。
有效的关键字为: [ALL], DATA_ONLY 和 METADATA_ONLY。
Specifies data to load.
Valid keywords are: [ALL], DATA_ONLY and METADATA_ONLY.

DIRECTORY:
用于转储文件, 日志文件和 SQL 文件的目录对象。
Directory object to be used for dump, log and SQL files.

DUMPFILE:
要从中导入的转储文件的列表 [expdat.dmp]。
例如, DUMPFILE=scott1.dmp, scott2.dmp, dmpdir:scott3.dmp。
List of dump files to import from [expdat.dmp].
For example, DUMPFILE=scott1.dmp, scott2.dmp, dmpdir:scott3.dmp.

EXCLUDE:
排除特定对象类型。
例如, EXCLUDE=SCHEMA:"='HR'"。
Exclude specific object types.
For example, EXCLUDE=SCHEMA:"='HR'".

FULL:
导入源中的所有对象 [Y]。
Import everything from source [Y].

HELP:
显示帮助消息 [N]。
Display help messages [N].

INCLUDE:
Include specific object types.
For example, INCLUDE=TABLE_DATA.
包括特定对象类型。
例如, INCLUDE=TABLE_DATA。

LOGFILE:
不写入日志文件 [N]。
Log file name [import.log].

PARALLEL:
更改当前作业的活动 worker 的数量。
Change the number of active workers for current job.

PARFILE:
指定参数文件。
Specify parameter file.

QUERY:
用于导入表的子集的谓词子句。
例如, QUERY=employees:"WHERE department_id > 10"。
Predicate clause used to import a subset of a table.
For example, QUERY=employees:"WHERE department_id > 10".

REMAP_DATA:
指定数据转换函数。
例如, REMAP_DATA=EMP.EMPNO:REMAPPKG.EMPNO。
Specify a data conversion function.
For example, REMAP_DATA=EMP.EMPNO:REMAPPKG.EMPNO.

REMAP_DATAFILE:
在所有 DDL 语句中重新定义数据文件引用。
Redefine data file references in all DDL statements.

REMAP_SCHEMA:
将一个方案中的对象加载到另一个方案。
Objects from one schema are loaded into another schema.

REMAP_TABLE:
将表名重新映射到另一个表。
例如, REMAP_TABLE=EMP.EMPNO:REMAPPKG.EMPNO。
Table names are remapped to another table.
For example, REMAP_TABLE=HR.EMPLOYEES:EMPS.

REMAP_TABLESPACE:
将表空间对象重新映射到另一个表空间。
Tablespace objects are remapped to another tablespace.

REUSE_DATAFILES:
如果表空间已存在, 则将其初始化 [N]。
Tablespace will be initialized if it already exists [N].

SCHEMAS:
要导入的方案的列表。
List of schemas to import.

SQLFILE:
将所有的 SQL DDL 写入指定的文件。
Write all the SQL DDL to a specified file.

TABLE_EXISTS_ACTION:
导入对象已存在时执行的操作。
有效的关键字为: APPEND, REPLACE, [SKIP] 和 TRUNCATE。
Action to take if imported object already exists.
Valid keywords are: APPEND, REPLACE, [SKIP] and TRUNCATE.

TABLES:
标识要导入的表的列表。
例如, TABLES=HR.EMPLOYEES,SH.SALES:SALES_1995。
Identifies a list of tables to import.
For example, TABLES=HR.EMPLOYEES,SH.SALES:SALES_1995.

TABLESPACES:
标识要导入的表空间的列表。
Identifies a list of tablespaces to import.

VERSION:
要导入的对象的版本。
有效的关键字为: [COMPATIBLE], LATEST 或任何有效的数据库版本。
仅对 NETWORK_LINK 和 SQLFILE 有效。
Version of objects to import.
Valid keywords are: [COMPATIBLE], LATEST or any valid database version.
Only valid for NETWORK_LINK and SQLFILE.

--OTHER
ATTACH:
连接到现有作业。
例如, ATTACH=job_name。
Attach to an existing job.
For example, ATTACH=job_name.

DATA_OPTIONS:
数据层选项标记。
有效的关键字为: SKIP_CONSTRAINT_ERRORS。
Data layer option flags.
Valid keywords are: SKIP_CONSTRAINT_ERRORS.

ENCRYPTION_PASSWORD:
用于访问转储文件中的加密数据的口令密钥。
对于网络导入作业无效。
Password key for accessing encrypted data within a dump file.
Not valid for network import jobs.

ESTIMATE:
计算作业估计值。
有效的关键字为: [BLOCKS] 和 STATISTICS。
Calculate job estimates.
Valid keywords are: [BLOCKS] and STATISTICS.

FLASHBACK_SCN:
用于重置会话快照的 SCN。
SCN used to reset session snapshot.

FLASHBACK_TIME:
用于查找最接近的相应 SCN 值的时间。
Time used to find the closest corresponding SCN value.

JOB_NAME:
要创建的导入作业的名称。
Name of import job to create.

NETWORK_LINK:
源系统的远程数据库链接的名称。
Name of remote database link to the source system.

NOLOGFILE:
不写入日志文件 [N]。
Do not write log file [N].

PARTITION_OPTIONS:
指定应如何转换分区。
有效的关键字为: DEPARTITION, MERGE 和 [NONE]。
Specify how partitions should be transformed.
Valid keywords are: DEPARTITION, MERGE and [NONE].

SERVICE_NAME
Name of an active Service and associated resource group to constrain Oracle RAC resources.

SKIP_UNUSABLE_INDEXES:
跳过设置为“索引不可用”状态的索引。
Skip indexes that were set to the Index Unusable state.

SOURCE_EDITION:
用于提取元数据的版本。
Edition to be used for extracting metadata.

STATUS:
监视作业状态的频率, 其中
默认值 [0] 表示只要有新状态可用, 就立即显示新状态。
Frequency (secs) job status is to be monitored where
the default [0] will show new status when available.

STREAMS_CONFIGURATION:
启用流元数据的加载
Enable the loading of Streams metadata

TARGET_EDITION:
用于加载元数据的版本。
Edition to be used for loading metadata.

TRANSFORM:
要应用于适用对象的元数据转换。
有效的关键字为: OID, PCTSPACE, SEGMENT_ATTRIBUTES 和 STORAGE。
Metadata transform to apply to applicable objects.
Valid keywords are: OID, PCTSPACE, SEGMENT_ATTRIBUTES and STORAGE.

TRANSPORTABLE:
用于选择可传输数据移动的选项。
有效的关键字为: ALWAYS 和 [NEVER]。
仅在 NETWORK_LINK 模式导入操作中有效。
Options for choosing transportable data movement.
Valid keywords are: ALWAYS and [NEVER].
Only valid in NETWORK_LINK mode import operations.

TRANSPORT_DATAFILES:
按可传输模式导入的数据文件的列表。
List of data files to be imported by transportable mode.

TRANSPORT_FULL_CHECK:
验证所有表的存储段 [N]。
Verify storage segments of all tables [N].

TRANSPORT_TABLESPACES:
要从中加载元数据的表空间的列表。
仅在 NETWORK_LINK 模式导入操作中有效。
List of tablespaces from which metadata will be loaded.
Only valid in NETWORK_LINK mode import operations.

 

3.数据泵目录创建及查询相关信息

--1.创建 DIRECTORY
create directory DATA_PUMP_DIR as '/home/oracle/DATA_PUMP_DIR';

grant read,write on directory DATA_PUMP_DIR to cp_meta;

--2.通过数据字典 DBA_DIRECTORIES 查询已创建目录
select * from dba_directories t where t.directory_name = 'DATA_PUMP_DIR';

--3.查询数据泵正在执行的作业
SELECT owner_name, job_name, operation, job_mode, state, attached_sessions
  FROM dba_datapump_jobs
 WHERE job_name NOT LIKE 'BIN$%'
 ORDER BY 1, 2;

--4.清楚作业
DECLARE 
   h1 NUMBER; 
BEGIN 
   h1 := DBMS_DATAPUMP.ATTACH('SYS_EXPORT_TABLE_01','SCOTT'); 
   DBMS_DATAPUMP.STOP_JOB (h1); 
END;

4. 数据导入导出用例

    4.1 导表

    4.1.1 导出多表:

expdp \'/ as sysdba\' directory=data_pump_dir dumpfile=emp.dmp schemas=scott logfile=emp.exp.log include=table:\"in \(\'emp\'\)\"  compression=all parallel=4

impdp hr/hr directory=data_pump_dir dumpfile=emp.dmp remap_schema=scott:hr remap_tablespace=tbs_scott:tbs_hr logfile=emp.imp.log table_exists_action=truncate 

   

expdp scott/scott directory=data_pump_dir dumpfile=scott.dmp tables=emp,dept logfile=scott.exp.log compression=all parallel=4

 

   4.1.2 使用参数文件:

expdp scott/scott directory=data_pump_dir dumpfile=scott.dmp schemas=scott parfile=pfile.par logfile=scott.exp.log compression=all parallel=4

prafile:

include=table:"in('emp','dept')"

   4.1.3 使用模糊匹配

expdp \'/ as sysdba\' directory=data_pump_dir dumpfile=scott.dmp schemas=scott include=table:\"like \'emp_%\'\" logfile=scott.exp.log compression=all parallel=4

   4.1.4 使用查询条件

expdp scott/scott directory=data_pump_dir dumpfile=scott.dmp schemas=scott tables=emp,dept QUERY=taa:\"where tablespace_name='SYSTEM'\",tee:\"where index_type='LOB'\" logfile=scott.exp.log compression=all parallel=4

 

expdp scott/tiger directory=data_pump_dir dumpfile=table_20190823.dmp tables=dm_reinspector_work_kpi,da_clm_veh_kpi,da_clm_veh_kpi_group query=dm_reinspector_work_kpi:\"where to_char\(ver_approve_date_l,\'yyyymmdd\'\) between 20190801 and 20190820\",da_clm_veh_kpi:\"where to_char\(ver_approve_date_l,\'yyyymmdd\'\) between 20190801 and 20190820\",da_clm_veh_kpi_group:\"where to_char\(ver_approve_date_l,\'yyyymmdd\'\) between 20190801 and 20190820\" logfile=table_20190823.exp.log

impdp hr/hr directory=data_pump_dir dumpfile=dm_reinspector_work_kpi_20190823.dmp remap_schema=PAIC_KPI:ADS_KPI_PAIC remap_tablespace=TBS_PAIC_KPI_DATA:TBS_ADS_KPI_PAIC_DATA,TBS_PAIC_KPI_INDEX:TBS_ADS_KPI_PAIC_INDEX logfile=dm_reinspector_work_kpi_20190823.imp.log

 

4.1.5 只导表结构

         content :all  导出对象定义及其所有数据.

                         metadata_only  只导出对象定义

                         data_only          只导出对象数据

expdp scott/tiger directory=data_pump_dir dumpfile=scott.dmp content=metadata_only compression=all logfile=scott.exp.log

 

5.expdp 自动化shell脚本

#!/bin/bash


export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
export ORACLE_SID=orcl

WORKDIR="/u01/oradata/dbbackup"

ARGS=$#

#sleep 30

if [ ${ARGS} -ne 2 ];then
    echo "Usage: $(basename $0) username tablename "
    exit 1
fi


USER_NAME=$1
TABLE_NAME=$2
FILE_NAME=${TABLE_NAME}_`date +"%Y-%m-%d"`.dmp
echo ${USER_NAME}
echo ${FILE_NAME}

cd ${WORKDIR}

if [ -f "${FILE_NAME}" ];then
        rm -f "${FILE_NAME}"
fi


expdp system/system directory=DATA_PUMP_DIR tables=${USER_NAME}.${TABLE_NAME} dumpfile=${FILE_NAME} logfile=${FILE_NAME}.exp.log compression=all parallel=2

 

6.数据泵常见错误

   6.1 示例:

   该环境使用的RAC,而登录使用的scan ip ,需要加上 CLUSTER=N

[oracle@drpdb01 log]$ expdp scott/tiger directory=data_pump_dir dumpfile=TABLE2_20190826.dmp tables=DM_CLM_ESTIMATE_ITEM_KPI,DM_CLM_VEH_ADT_EST_KPI,DM_CLM_VEH_ADT_REI_KPI,DM_CLM_VEH_EXT_KPI,DM_CLM_VEH_KPI,DM_CLM_VEH_PRE_ADT_KPI,DM_LOS_PART_KPI,DM_REINSPECTOR_WORK_KPI,D_CLM_VEH_KPI,D_INSURANCE_KPI,D_ORG_KPI,D_SEG_NUMBER_OC logfile=TABLE2_20190826.exp.log compression=all parallel=2

Export: Release 11.2.0.4.0 - Production on Mon Aug 26 14:14:13 2019

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

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options
Starting "PAIC_KPI"."SYS_EXPORT_TABLE_02":  PAIC_KPI/******** directory=data_pump_dir dumpfile=TABLE2_20190826.dmp tables=DM_CLM_ESTIMATE_ITEM_KPI,DM_CLM_VEH_ADT_EST_KPI,DM_CLM_VEH_ADT_REI_KPI,DM_CLM_VEH_EXT_KPI,DM_CLM_VEH_KPI,DM_CLM_VEH_PRE_ADT_KPI,DM_LOS_PART_KPI,DM_REINSPECTOR_WORK_KPI,D_CLM_VEH_KPI,D_INSURANCE_KPI,D_ORG_KPI,D_SEG_NUMBER_OC logfile=TABLE2_20190826.exp.log compression=all parallel=2
Estimate in progress using BLOCKS method...
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 18.22 GB
Processing object type TABLE_EXPORT/TABLE/TABLE
Processing object type TABLE_EXPORT/TABLE/COMMENT
Processing object type TABLE_EXPORT/TABLE/INDEX/INDEX
Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
Processing object type TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
ORA-31693: Table data object "PAIC_KPI"."DM_LOS_PART_KPI" failed to load/unload and is being skipped due to error:
ORA-31617: unable to open dump file "/oracle/app/oracle/product/11.2.0/db_1/rdbms/log/TABLE2_20190826.dmp" for write
ORA-19505: failed to identify file "/oracle/app/oracle/product/11.2.0/db_1/rdbms/log/TABLE2_20190826.dmp"
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!