oracle expdp 可否使用网路扩充硬盘

EXPDP\u5bfc\u51fa\u662f\u4e0d\u662f\u6570\u636e\u5e93\u786c\u76d8\u4e0a\u9700\u8981\u6709\u8db3\u591f\u7684\u7a7a\u95f4

\u9996\u5148\uff0c\u7b2c\u4e00\u6b65\u91cc\u7684connect to orcl identified by orcl\u662f\u4f60\u9700\u8981\u8fde\u63a5\u7684\u8fdc\u7a0b\u6570\u636e\u5e93orcl\uff08using\u540e\u9762\u90a3\u4e2a\uff09\u7684\u7528\u6237\u540d / \u5bc6\u7801\uff0c\u800c\u4e0d\u662f\u4f60\u672c\u5730\u7684\u7528\u6237\u540d\u5bc6\u7801\uff1b
\u6bd4\u5982\u4f60\u672c\u673a\u53ebscott/tiger\uff0c\u9700\u8981\u8fde\u63a5\u8fdc\u7a0b\u670d\u52a1\u5668\u4e0a\u7684exptest/exptest\uff0c\u90a3\u4f60\u8fd9\u91cc\u5c31\u9700\u8981\u4e9b\u6210"connect to exptest identified by exptest"\uff0c\u7b2c\u56db\u6b65\u5bfc\u51fa\u7684\u65f6\u5019\u5199"expdp scott/tiger ......"\uff1b\u800c\u4e14\u5982\u679c\u5bfc\u51fa\u8868\u7684\u8bdd\uff0c\u5728\u8868\u524d\u9762\u8fd8\u8981\u52a0\u4e0a\u8fdc\u7a0b\u90a3\u4e2a\u7528\u6237\u540d\uff0c\u4f8b\u5982\u8981\u5bfc\u51fatestTable,\u5219\u8981\u5199\u6210"expdp scott/tiger tables=exptest.testTable ......"\u8fd9\u6837
\u5176\u6b21\uff0c\u8981\u4fdd\u8bc1\u4f60\u5b57\u90fd\u6ca1\u6253\u9519\uff0c\u5982\u4f60\u5efa\u7acb\u7684link\u662forlink \u8fd8\u662fytlink\uff0c\u8fd8\u6709\u7b2c\u4e09\u6b65\u91cc\u662forcl\u6253\u6210\u4e86oacl\u3002

1\u3001\u6309\u7167\u4f60\u6240\u8bf4\u7684\u601d\u8def\uff0c\u4f60\u53ef\u4ee5\u5199\u4e2ashell\u811a\u672c\uff1a\u8bbe\u4e2a\u5b9a\u65f6\u4efb\u52a1
\u7b2c\u4e00\u6b65\uff0c\u5148\u751f\u6210\u4e2admp\u6587\u4ef6\uff0c\u89c4\u5b9a\u547d\u540d\u683c\u5f0f
\u7b2c\u4e8c\u6b65\uff0c\u8c03\u7528ftp\uff0cscp\u4e4b\u7c7b\u5de5\u5177\uff0c\u5c06\u8be5dmp\u6587\u4ef6\u4e0a\u4f20\u5230\u4f60\u6307\u5b9a\u7684\u8fdc\u7a0b\u670d\u52a1\u5668\u4e0a\u9762\u3002

2\u3001\u6839\u636e\u4f60\u7684\u9700\u6c42\uff0c\u4f60\u53ef\u4ee5\u8003\u8651\u4f7f\u7528expdp\u7684\u4e00\u4e2a\u7279\u6027\u3002
expdp/impdp\u6709\u4e2anetwork_link\u9009\u9879\u3002
\u6bd4\u5982expdp\uff0c\u4f7f\u7528\u8be5\u9009\u9879\u53ef\u4ee5\u76f4\u63a5\u5728\u672c\u5730\u8fdb\u884c\u8fdc\u7a0b\u5e93\u7684\u5907\u4efd\uff0c\u5e76\u4e14\u5c06\u5907\u4efd\u6587\u4ef6\u653e\u5728\u5728\u672c\u5730\u3002
\u4e5f\u5c31\u662f\uff0c\u5728\u4f60\u7684b\u670d\u52a1\u5668\u4e0a\u9762\u76f4\u63a5\u5bf9a\u670d\u52a1\u5668\u4e0a\u7684\u6570\u636e\u5e93\u8fdb\u884cexpdp\u64cd\u4f5c\uff0c\u4f1a\u5728b\u670d\u52a1\u5668\u4e0a\u9762\u751f\u6210dmp\u6587\u4ef6\u3002
\u5177\u4f53\u5173\u4e8enetwork_link\u7684\u7528\u6cd5\uff0c\u8fd8\u9700\u4f60\u81ea\u5df1\u52a0\u4ee5\u5b66\u4e60\u3002

  expdp/impdp在进行数据迁移时速度极快,通过一定的优化方法,我们让expdp和impdp跑得更加快1,parallel,在很多oracle的程序中都离不开并行操作,通过利用多core cpu的处理能力,速度增加相当明显
  例:frank用户主要有表T1,T2,T3,每个表中数据有500万行[oracle@cscscslocalhost abc]$ time expdp frank/frank directory=abc dumpfile=abc.dmpreal 0m41.692s
  user 0m0.011s
  sys 0m0.032s
  [oracle@cscscslocalhost abc]$ time expdp frank/frank directory=abc dumpfile=abc.dmp parallel=3real 0m26.710s
  user 0m0.019s
  sys 0m0.007s
  速度提升相当明显,如果每个dw进程都使用单独的dmp文件会更快[oracle@cscscslocalhost abc]$ time expdp frank/frank directory=abc dumpfile=abc%U.dmp parallel=3real 0m22.928s
  user 0m0.017s
  sys 0m0.008s
  一般建议parall设置不要超过cpu*2.
  2,transport_tablespace方法,直接复制表空间文件的方式。使用expdp和impdp只导出了数据字典信息.表空间要是自包含的
  SQL> exec dbms_tts.transport_set_check('USERS',true);PL/SQL procedure successfully completed.
  SQL> select * from transport_set_violations;no rows selected
  transport tablespace的方法是迁移数据最快的方法。因为数据本身是不需要oracle的sql层来处理.但是表空间在expdp期间要设置成只读状态
  3,network_link模式.当数据文件比较大的时候,这时候在目标库上直接通过network_link模式在目标库上进行导入,而不需要在源库上进行expdp操作,处理方式和正常的expdp/impdmp过程类似。这样做的好处主要是可以避免了在源库上写大文件,然后还需要移动到目标库上.
  dongdongtang> grant datapump_exp_full_database to frank;Grant succeeded.
  目标库
  dongdongtang> create database link frank connect to frank identified by frank using 'frank';Database link created.
  [oracle@localhost admin]$ impdp \'/ as sysdba\' network_link=frank schemas=franknetwork_link 定义了一个db_link名称,该过程把源端的frank schemas导入到目标库上.
  4,使用适当的方法.expdp/impdp包括了两种主要方法direct_path和external_table使用direct_path会skip掉sql layer,速度会更快,但是不能定义query[oracle@localhost ~]$ expdp frank/frank dumpfile=abc.dmp query=T1:"where a>5" access_method=direct_pathORA-39033: Data cannot be filtered under the direct path access method.
  其他的方法还有一些限制,具体可以参考mos相关文档。datapump一般会在启动的时候自动决定使用哪种方式,而且一旦决定不可以通过interactive的方式修改.可以使用400300来进行trace使用了哪种方式KUPW:02:03:30.332: 1: TABLE_DATA:"FRANK"."T1" direct path, parallel: 1KUPW:02:03:30.332: 1: In function GATHER_PARSE_ITEMSKUPW:02:03:30.332: 1: In function CHECK_FOR_REMAP_NETWORK5,对于index不会并行,对大表有索引的情况下,考虑索引以后单独 使用parallel,nologging重建。事实上在expdp的导出过程中对索引不会像表数据那样需要导出,索引只导出了ddl语句.
  6,statistics的导入可能会非常慢,特别是在10.2之前。在expdp中尽量exclude,在impdp后,使用单独的收集任务来完成.
  7,利用强大的过滤功能,主要的选项有tables,include,exclude和query。tables定义只导出某些需要的表,include表示只导出某些对像,exclude表示排除某些对像.query可以对表中数据进行过滤,只导出我们需要的那部分数据.
  8,利用压缩过功能可以减少dump文件的大小
  [oracle@localhost dpdump]$ expdp frank/frank dumpfile=abc.dmp tables=t1[oracle@localhost dpdump]$ ls -l abc.dmp
  -rw-r----- 1 oracle oinstall 1583874048 Jan 20 03:54 abc.dmp[oracle@localhost dpdump]$ expdp frank/frank dumpfile=abc.dmp tables=t1 compression=all[oracle@localhost dpdump]$ ls -l abc.dmp
  -rw-r----- 1 oracle oinstall 197234688 Jan 20 04:29 abc.dmp可以看到压缩前1.5G,压缩过后只有190M左右.
  在12c的版本中,可以通过compression_algorithm来定义压缩算法,常用的压缩级别有:basic,low,medium,high。
  结合paralell,可以非常好的利用多core cpu的处理能力.
  在11G以前的版本中也有很多的bug会导致datapump变慢的情况,可以查询相关的mos文档.datapump是使用dbms_metadata和dbms_datapump两个包来完成的,所以shared pool要保证不会太小.

expdp 只是用来导出数据的。

扩展阅读:oracle expdp1033 ... oracle unique index ... oracle explain ... oracle impdp ... oracle expdp命令详解 ... oracle regexp substr ... oracle regexplike ... oracle exdata ... oracle show pdbs ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网