• Oracle 11g Release 1 (11.1) Data Pump 导入模式


    http://docs.oracle.com/cd/B28359_01/server.111/b28319/dp_import.htm#i1007324

    本文内容

    导入最显着的特点之一就是导入的模式,因为很大程度上,模式决定导入什么。把指定的模式应用到操作源,这个源或是转储文件集,或是另一个数据库(如果指定了 NETWORK_LINK 参数。)

    当导入操作源是转储文件集,指定一种模式是可选的。如果没有指定导入模式,那么会尝试加载模式中设置的整个转储文件。

    使用适当的参数,在命令行指定模式。导入模式如下所示:

    • Full Import 模式
    • Schema 模式
    • Table 模式
    • Tablespace 模式
    • Transportable Tablespace 模式
    • Oracle 11g Release 1 (11.1) Data Pump 导出模式

    备注:

    当你导入一个用 full-mode 导出模式创建的转储文件时,导入操作会尝试从源数据库复制 SYS 账户的密码。有时,这会失败(例如,如果密码位于一个公共的密码文件)。如果失败,那么导入完成后,你必须在目标数据库设置 SYS 账户的密码。

    备注:

    作业(由 Oracle 数据库作业调度创建)总是被导入到正在导入用户的模式。导入后,如果你查询 DBA_JOBS 视图,你会看到 LOG_USERPRIV_USER 值设置到正在导入的用户上,而不管它们在导出平台上如何设置。

    为了解决这个问题,你必须作为作业的拥有者执行导出和导入。

    Full Import 模式

    使用 FULL 参数指定“完全导入”。在该模式下,“源(转储文件或另一个数据库)”的全部内容被加载到目标数据库。对于基于文件的导入,这是默认的。如果“源”是另一个数据库,那么你必须具有 IMP_FULL_DATABASE 角色。

    对于没有权限的用户,不能导入“跨模式”的引用。例如,不能导入这样一个触发器,它定义在导入用户模式内的一个表,却位于另一个用户模式。

    如果使用 NETWORK_LINK 参数执行完全导入,那么在目标数据库和源数据库分别需要 IMP_FULL_DATABASEEXP_FULL_DATABASE 角色。

    示例1:本例演示导入转储文件 expfull.dmp 的全部内容。本例中,没有单独提供 DIRECTORY 参数,因此必须在 DUMPFILELOGFILE 参数里指定目录对象。目录对象可以不同,如下所示。

    impdp hr DUMPFILE=dpump_dir1:expfull.dmp FULL=y 
    LOGFILE=dpump_dir2:full_imp.log

    Schema 模式

    使用 SCHEMAS 参数指定“模式导入”。在该模式,只加载指定模式拥有的对象。“源”可以是 fulltabletablespaceschema-mode 导出的转储文件集或另一个数据库。如果你具有 IMP_FULL_DATABASE 角色,那么可以指定一个模式列表,以及数据库中创建的模式(包括系统权限授予的),除了模式内包含的对象。

    对于没有权限的用户,除非其他模式被映射到当前模式,否则不能导入“跨模式”引用。例如,不能导入这样一个触发器,它定义在导入用户模式内的一个表,却位于另一个用户模式。

    示例2:本例演示从转储文件 expdat.dmp 导入 hr 模式。schemas.log 日志文件写入到 dpump_dir1

    impdp hr SCHEMAS=hr DIRECTORY=dpump_dir1 LOGFILE=schemas.log
    DUMPFILE=expdat.dmp

    Table 模式

    使用 TABLES 参数指定“表模式”导入。在该模式,只能加载指定的表、分区和它们依赖的对象集。“源”可以是 fullschematablespacetable-mode 导出的转储文件集或另一个数据库。你必须具有 IMP_FULL_DATABASE 角色来指定不在你自己模式中的表。

    你可以结合 TRANPORTABLE=ALWAYSTABLES 参数。注意,这也需要使用 NETWORK_LINK 参数。

    示例3:本例演示使用 TABLES 参数导入分区。

    impdp hr DIRECTORY=dpump_dir1 DUMPFILE=expfull.dmp TABLES=employees,jobs

    示例4:本例演示导入 sh 模式里 sales 表的分区表 sales_Q1_2000sales_Q2_2000

    impdp hr DIRECTORY=dpump_dir1 DUMPFILE=expdat.dmp 
    TABLES=sh.sales:sales_Q1_2000,sh.sales:sales_Q2_2000

    示例5:本例演示在网络链路导入期间,使用 TRANSPORTABLE 参数。

    impdp system TABLES=hr.sales TRANSPORTABLE=always
      DIRECTORY=dpump_dir1 NETWORK_LINK=dbs1 PARTITION_OPTIONS=departition
      TRANSPORT_DATAFILES=datafile_name 

    Tablespace 模式

    使用 TABLESPACES 参数指定“表空间模式”导入。在该模式,加载指定表空间集内包含的所有对象。“源”可以是 fullschematablespacetable-mode 导出的转储文件集或另一个数据库。对于没有权限的用户,不能处理没有重映射到当前模式的对象。

    示例6:This example imports all tables that have data in tablespaces tbs_1, tbs_2, tbs_3, and tbs_4.

    impdp hr DIRECTORY=dpump_dir1 DUMPFILE=expfull.dmp TABLESPACES=tbs_1,tbs_2,tbs_3,tbs_4

    Transportable Tablespace 模式

    使用 TRANSPORT_TABLESPACES 参数指定“transportable tablespace 模式”导入。在该模式,加载从“transportable tablespace 模式”导出的转储文件集的元数据或另一个数据库。指定 TRANSPORT_DATAFILES 参数,数据文件必须可用,通常,从源系统复制到目标系统。

    该模式不支持机密列。

    该模式要求 IMP_FULL_DATABASE 角色。

    备注:

    不能用“transportable tablespaces 模式”导出,再把它们导入一个低版本的数据库。目标数据库必须与源数据库的版本一样或高。

    示例7:本例,根据实际情况替换 source_database_link。假设数据文件 tbs6.dbf 已经从源数据库复制到本地系统。TRANSPORT_DATAFILES 的值用单引号括起来,Oracle 建议使用一个参数文件以避免在命令行不得不使用转义字符。假设有一个 tablespaces.par 参数文件,内容如下:

    DIRECTORY=dpump_dir1
    NETWORK_LINK=source_database_link
    TRANSPORT_TABLESPACES=tbs_6
    TRANSPORT_FULL_CHECK=n
    TRANSPORT_DATAFILES='user01/data/tbs6.dbf'

    然后,使用如下命令:

    impdp hr PARFILE=tablespaces.par

    示例8:本例,根据实际情况替换 source_database_link。假设数据文件 tbs6.dbf 已经从源数据库复制到本地系统。TRANSPORT_DATAFILES 的值用单引号括起来。假设有一个 full_check.par 参数文件,内容如下:

    DIRECTORY=dpump_dir1
    TRANSPORT_TABLESPACES=tbs_6
    NETWORK_LINK=source_database_link
    TRANSPORT_FULL_CHECK=y
    TRANSPORT_DATAFILES='/wkdir/data/tbs6.dbf'

    然后,使用如下命令:

    impdp hr PARFILE=full_check.par

    示例9:假设有一个 trans_datafiles.par 参数文件,内容如下:

    DIRECTORY=dpump_dir1
    DUMPFILE=tts.dmp
    TRANSPORT_DATAFILES='/user01/data/tbs1.dbf'

    然后,使用如下命令:

    impdp hr PARFILE=trans_datafiles.par

    Oracle 11g Release 1 (11.1) Data Pump 导出模式

    http://www.cnblogs.com/liuning8023/archive/2012/04/11/2441602.html

  • 相关阅读:
    用UILocalNotification实现一个闹钟(Swift)
    Swift
    iOS判断一些权限是否被禁止
    ofbiz学习笔记
    POJ1062 昂贵的聘礼 【DFS】
    echarts 应用数个样例
    java 中缀转后缀(逆波兰)
    开放是否能让苹果成为智能家居的标准制定者?
    2015阿里校招前端在线题目
    hql中不能写count(1)能够写count(a.id)
  • 原文地址:https://www.cnblogs.com/liuning8023/p/2443178.html
Copyright © 2020-2023  润新知