喜欢就来多看看

Data Pump

上一篇 / 下一篇  2007-02-13 00:00:00 / 个人分类:11g&Grid

DBA的重要工作之一是数据移植,最近的数据都到了TB等级,移植数据非常耗费时间和精神。很多读者一定会想,要是这种作业能够变的又快又简便就好了。所以我们要检验Data Pump是否能满足各位的梦想。比较Data Pump的速度时使用下列环境:

环境
OS : Miracle Linux 2.4.9-e.9.30mlsmp
CPU : 4
ORACLE : Enterprise Edition Release 10.1.0.2.0

比较对象包括下面几种操作:
1.用原来的Export执行数据的unload
2.用原来的Export执行数据的direct unload
3.用Data Pump执行unload
4.用原来的Import执行数据load
5.用Data Pump执行load

开始检验!
1. 用原来的Export执行数据的unl
   $ cat exp.sh
   exp tpc/tpc file=/opt/u01/app/oradata/pump_dir/exp_normal.dmp 
                   owner=tpc log=/opt/u01/app/oradata/pump_dir/exp_normal.log

2.用原来的Export执行数据的direct unload
   $ cat exp_d.sh
   exp tpc/tpc file=/opt/u01/app/oradata/pump_dir/exp_direct.dmp 
          owner=tpc log=/opt/u01/app/oradata/pump_dir/exp_direct.log direct=y

3.用Data Pump执行unload
终于出现Data Pump了,先向大家介绍简单的用法,Data Pump和以往的Export/Import不同,dump文件的所有I/O不是由启动的客户进程处理﹝例如:exp、imp、expdp、impdp等等),而是由数据库实例(ORACLE.EXE、oracle等等)处理。(还有其他和Data Pump相关的进程,以后我们会找机会为大家介绍。)最重要的是dump文件只能创建在Oracle可以识别的地方。Oracle可以识别的地方就是Directory对象。现在就创建Directory对象看看。
   SQL> conn / as sysdba
   SQL> create directory pump_dir as '/opt/u01/app/oradata/pump_dir';
   SQL> grant read,write on directory pump_dir to tpc ;

上面的SQL语句会在SYS创建Directory物件,给TPC用户读取和写入的权限。接下来,终于要以Data Pump进行数据的unload了。
   $ cat exp_dp_p2.sh
   expdp tpc/tpc directory=pump_dir dumpfile=exp_pump_p2.dmp schemas=tpc 
                                            logfile=exp_pump_p2.log parallel=2

“expdp”是Data Pump新的导出工具,基本上和以往的Export工具“exp”有相同的功能。﹝听说以后的版本不再支援EXP命令。﹞
Directory参数指定用来创建dump文件和log文件的Directory对象的名称。Dumpfile参数和以往的File参数一样,指定创建的dump文件的名称。Schemas参数和以往的Owner参数一样,指定特定的schema。Parallel参数只在Enterprise版本有效,用于指定在background运行的worker process的数目。

4.用原来的Import执行数据load
   $ cat imp.sh
   imp tpc/tpc file=/opt/u01/app/oradata/pump_dir/exp_direct.dmp 
                           log=/opt/u01/app/oradata/pump_dir/imp.log full=y

5.用Data Pump执行load
这里用Data Pump进行数据load的命令格式,基本上和之前步骤3. 的数据unload一样。“impdp”是新的import工具,性能在以往的“imp”等级之上。﹝IMP命令与EXP命令不同,以后的版本也会支持。﹞
   $ cat imp_dp_p2.sh
   impdp tpc/tpc directory=pump_dir dumpfile=exp_pump_p2.dmp schemas=tpc 

根据以上的操作得到下面的结果。
=============================================================================
处理内容                                          时间(分)           文件尺寸
----------------------------------------------- ---------- ------------------
1.以原来的Export执行数据的unload                 47            19.86GB
2.以原来的Export执行数据的direct unload          32            18.69GB
3.以Data Pump执行unload                         29            19.87GB
4.以原来的Import执行数据load                     63
5.以Data Pump执行load                           26
=============================================================================

从这个结果可知,Data Pump的load/unload比以往的exp/imp性能更好。但是性能提升的程度不像Oracle公司说得那么大,unload的性能提升了一点(也可能只是因为误差),至于load则是提升了大约2.4倍。

以这次的检验环境来看,Oracle的数据文件和dump文件在同一个磁盘上,Read和Write的I/O互相冲突的时候就会妨碍性能。实际上这段时间磁盘繁忙率是100%,造成磁盘瓶颈。

TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-01-26  
  12345
6789101112
13141516171819
20212223242526
2728293031  

数据统计

  • 访问量: 36
  • 日志数: 1128
  • 图片数: 1
  • 书签数: 1
  • 建立时间: 2007-12-13
  • 更新时间: 2008-01-01

RSS订阅

Open Toolbar