[color=red]导出:[/color]SQL>create directory dump_dir as ‘E:\ORA11GBAK’
SQL>grant read,write on directory dump_dir to icdmain;
接下来,我们将导出数据:
expdp icdmain/icd directory= dump_dir dumpfile=icdmain090522.dmp job_name=ICDMAIN_EXPORT
[color=red]并行操作 [/color]
可以通过 PARALLEL 参数为导出使用一个以上的线程来显著地加速作业。每个线程创建一个单独的转储文件,因此参数 dumpfile 应当拥有和并行度一样多的项目。您可以指定通配符作为文件名,而不是显式地输入各个文件名,例如:
expdp icdpub/abc123 directory=DPDATA1
dumpfile=expicdpub_%U.dmp parallel=4 job_name=icdpub_Export
注意 dumpfile 参数拥有一个通配符 %U,它指示文件将按需要创建,格式将为expicdpub_nn.dmp,其中 nn 从 01 开始,然后按需要向上增加。
在并行模式下,状态屏幕将显示四个工作进程。(在默认模式下,只有一个进程是可见的。)所有的工作进程同步取出数据,并在状态屏幕上显示它们的进度。
分离访问数据文件和转储目录文件系统的输入/输出通道是很重要的。否则,与维护 Data Pump 作业相关的开销可能超过并行线程的效益,并因此而降低性能。并行方式只有在表的数量多于并行值并且表很大时才是有效的。
[color=red]导入:[/color]
数据导入性能是 Data Pump 的重要特性,要导入先前导出的数据,我们将使用
impdp icdpub/icdpub directory=dump_dir
dumpfile=icdpub.dmp job_name=icdpub_import
导入进程的默认行为是创建表和所有相关的对象,然后在表已存在时产生一个错误。如果您想把数据添加到一个现有的表中,您可以在上述命令行中使用 TABLE_EXISTS_ACTION=APPEND。
和使用 Data Pump 导出一样,在进程中按 Control-C 将进入 Date Pump Import (DPI) 的交互模式;同样,提示符是 Import>。
[color=red]处理特定对象 [/color]
有时需要要从一个用户导出特定的过程,以在一个不同的数据库或用户中重新创建这些过程的情况,与传统的导出实用工具不同,Data Pump 允许只导出特定类型的对象。例如,以下命令让您只导出过程,而不导出其它任何东西 — 不导出表、视图、甚至函数:
expdp icdpub/icdpub directory=dump_dir
dumpfile=icdpub.dmp include=PROCEDURE
要只导出一些特定的对象 — 比如说,函数 FUNC1 和过程 PROC1 — 您可以使用
expdp icdpub/icdpub directory=DPDATA1 dumpfile=expprocs.dmp
include=PROCEDURE:\"=\'PROC1\'\",FUNCTION:\"=\'FUNC1\'\"
这个转储文件充当了源对象的一个备份。您甚至可以用它来创建 DDL 脚本,以供之后使用。一个称为 SQLFILE 的特殊参数允许创建 DDL 脚本文件。
impdp icdpub/icdpub directory=dump_dir
dumpfile=icdpub.dmp sqlfile=procs.sql
该指令在 DPDATA1 指定的目录中创建一个名称为 procs.sql 的文件,并将对象的脚本包含在导出转储文件中。这种方法帮助您快速地在另一个模式中创建源对象。
利用参数 INCLUDE 允许您从转储文件中定义要包含或排除的对象。您可以使用子句 INCLUDE=TABLE:"LIKE 'TAB%'" 来仅导出那些名称以 TAB 开头的表。类似地,可以使用结构 INCLUDE=TABLE:"NOT LIKE 'TAB%'" 来排除所有名称以 TAB 开头的表。作为另一种选择,也可以使用 EXCLUDE 参数来排除特定的对象。
通过外部表,Data Pump 还可以用来传输表空间;它非常强大,能够即时地重定义并行方式,将更多的表添加到一个现有的进程中等等。
SQL>grant read,write on directory dump_dir to icdmain;
接下来,我们将导出数据:
expdp icdmain/icd directory= dump_dir dumpfile=icdmain090522.dmp job_name=ICDMAIN_EXPORT
[color=red]并行操作 [/color]
可以通过 PARALLEL 参数为导出使用一个以上的线程来显著地加速作业。每个线程创建一个单独的转储文件,因此参数 dumpfile 应当拥有和并行度一样多的项目。您可以指定通配符作为文件名,而不是显式地输入各个文件名,例如:
expdp icdpub/abc123 directory=DPDATA1
dumpfile=expicdpub_%U.dmp parallel=4 job_name=icdpub_Export
注意 dumpfile 参数拥有一个通配符 %U,它指示文件将按需要创建,格式将为expicdpub_nn.dmp,其中 nn 从 01 开始,然后按需要向上增加。
在并行模式下,状态屏幕将显示四个工作进程。(在默认模式下,只有一个进程是可见的。)所有的工作进程同步取出数据,并在状态屏幕上显示它们的进度。
分离访问数据文件和转储目录文件系统的输入/输出通道是很重要的。否则,与维护 Data Pump 作业相关的开销可能超过并行线程的效益,并因此而降低性能。并行方式只有在表的数量多于并行值并且表很大时才是有效的。
[color=red]导入:[/color]
数据导入性能是 Data Pump 的重要特性,要导入先前导出的数据,我们将使用
impdp icdpub/icdpub directory=dump_dir
dumpfile=icdpub.dmp job_name=icdpub_import
导入进程的默认行为是创建表和所有相关的对象,然后在表已存在时产生一个错误。如果您想把数据添加到一个现有的表中,您可以在上述命令行中使用 TABLE_EXISTS_ACTION=APPEND。
和使用 Data Pump 导出一样,在进程中按 Control-C 将进入 Date Pump Import (DPI) 的交互模式;同样,提示符是 Import>。
[color=red]处理特定对象 [/color]
有时需要要从一个用户导出特定的过程,以在一个不同的数据库或用户中重新创建这些过程的情况,与传统的导出实用工具不同,Data Pump 允许只导出特定类型的对象。例如,以下命令让您只导出过程,而不导出其它任何东西 — 不导出表、视图、甚至函数:
expdp icdpub/icdpub directory=dump_dir
dumpfile=icdpub.dmp include=PROCEDURE
要只导出一些特定的对象 — 比如说,函数 FUNC1 和过程 PROC1 — 您可以使用
expdp icdpub/icdpub directory=DPDATA1 dumpfile=expprocs.dmp
include=PROCEDURE:\"=\'PROC1\'\",FUNCTION:\"=\'FUNC1\'\"
这个转储文件充当了源对象的一个备份。您甚至可以用它来创建 DDL 脚本,以供之后使用。一个称为 SQLFILE 的特殊参数允许创建 DDL 脚本文件。
impdp icdpub/icdpub directory=dump_dir
dumpfile=icdpub.dmp sqlfile=procs.sql
该指令在 DPDATA1 指定的目录中创建一个名称为 procs.sql 的文件,并将对象的脚本包含在导出转储文件中。这种方法帮助您快速地在另一个模式中创建源对象。
利用参数 INCLUDE 允许您从转储文件中定义要包含或排除的对象。您可以使用子句 INCLUDE=TABLE:"LIKE 'TAB%'" 来仅导出那些名称以 TAB 开头的表。类似地,可以使用结构 INCLUDE=TABLE:"NOT LIKE 'TAB%'" 来排除所有名称以 TAB 开头的表。作为另一种选择,也可以使用 EXCLUDE 参数来排除特定的对象。
通过外部表,Data Pump 还可以用来传输表空间;它非常强大,能够即时地重定义并行方式,将更多的表添加到一个现有的进程中等等。