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

2014-11-24 18:53:55 · 作者: · 浏览: 0

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


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


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



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


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


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


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




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


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


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