设为首页 加入收藏

TOP

教你怎样在Oracle数据库中高速导出/导入(二)
2014-11-24 01:36:35 来源: 作者: 【 】 浏览:13
Tags:怎样 Oracle 数据库 高速 导出 导入
并行查询会话:


  
  select sid from v$px_session where qcsid = 23;
 

 
从视图 V$SESSION_LONGOPS 中可以获得其它的有用信息来预测完成作业将花费的时间。


  
  select sid, serial#, sofar, totalwork
  from v$session_longops
  where opname = CASES_EXPORT
  and sofar != totalwork;
 

 
列 totalwork 显示总工作量,该列的 sofar 数量被加和到当前的时刻 ― 因而您可以用它来估计还要花多长时间。

Data Pump 导入

不过,数据导入性能是 Data Pump 真正出色的地方。要导入先前导出的数据,我们将使用


  
  impdp ananda/abc123 directory=dpdata1
dumpfile=expCASES.dmp job_name=cases_import


导入进程的默认行为是创建表和所有相关的对象,然后在表已存在时产生一个错误。如果您想把数据添加到一个现有的表中,您可以在上述命令行中使用 TABLE_EXISTS_ACTION=APPEND。

和使用 Data Pump 导入一样,在进程中按 Control-C 将进入 Date Pump Import (DPI) 的交互模式;同样,提示符是 Import>。

处理特定对象

您是否有过只需要从一个用户导出特定的过程,以在一个不同的数据库或用户中重新创建这些过程的情况?与传统的导出实用工具不同,Data Pump 允许您只导出特定类型的对象。例如,以下命令让您只导出过程,而不导出其它任何东西 ― 不导出表、视图、甚至函数:


  
  expdp ananda/iclaim directory=DPDATA1
dumpfile=expprocs.dmp include=PROCEDURE
 

 
要只导出一些特定的对象 ― 比如说,函数 FUNC1 和过程 PROC1 ― 您可以使用

 

 
  expdp ananda/iclaim directory=DPDATA1 dumpfile=expprocs.dmp
  include=PROCEDURE:"=PROC1\",FUNCTION:"=FUNC1\"

  
这个转储文件充当了源对象的一个备份。您甚至可以用它来创建 DDL 脚本,以供之后使用。一个称为 SQLFILE 的特殊参数允许创建 DDL 脚本文件。

 

 
  impdp ananda/iclaim directory=DPDATA1
dumpfile=expprocs.dmp sqlfile=procs.sql

  
该指令在 DPDATA1 指定的目录中创建一个名称为 procs.sql 的文件,并将对象的脚本包含在导出转储文件中。这种方法帮助您快速地在另一个模式中创建源对象。

利用参数 INCLUDE 允许您从转储文件中定义要包含或排除的对象。您可以使用子句 INCLUDE=TABLE:"LIKE TAB%" 来仅导出那些名称以 TAB 开头的表。类似地,您可以使用结构 INCLUDE=TABLE:"NOT LIKE

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇SQL2000自动备份数据库并发送邮件.. 下一篇怎样在Oracle中执行一次基本的快..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: