zoukankan      html  css  js  c++  java
  • oracle 数据泵

    页内索引:

    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
  • 相关阅读:
    增删改查
    全局配置文件mappers_sql映射注册
    全局配置文件<typeAliases>别名配置
    接口式编程小结
    Mybatis_接口编程
    Mybatis_HelloWord
    xml中标签含义
    Spring中Bean的基本概念
    ACM 第十四天
    ACM 第十三天
  • 原文地址:https://www.cnblogs.com/jason3361/p/11122388.html
Copyright © 2011-2022 走看看