Oracle数据库备份与恢复(1):exp和imp(二)

2014-11-24 14:27:48 · 作者: · 浏览: 3
放置在一行(这里是因为显示问题放在了两行)

  3).拷贝。dbf数据文件(以及。dmp文件)到另一个地点,即目标数据库可以是 cp(unix)或 cop y(windows)或通过 ftp传输文件(一定要在 bin方式)

  4).把本地的表空间设置为读写

  $ alter tablespace app_data read write;

  $ alter tablespace app_index read write;

  5).在目标数据库附加该数据文件 (直接指定数据文件名)

  (表空间不能存在,必须建立相应用户名或者用 fromuser/touser)

  $ imp file=expdat.dmp userid=“”“sys/password as sysdba”“” transport_tablespace=y datafiles=(“c:app_data.dbf,c:app_index.dbf”) tablespaces=app_data,app_index tts_owners=hr,oe

  6).设置目标数据库表空间为读写

  $ alter tablespace app_data read write;

  $ alter tablespace app_index read write;


三、优化

  1、加快exp速度

  加大large_pool_size,可以提高 exp的速度 采用直接路径的方式(direct=y),数据不需要经过内存进行整合和检查。 设置较大的 buffer,如果导出大对象,小buffer会失败。

  export文件不在ORACLE使用的驱动器上,不要export到NFS文件系统。

  UNIX环境:用管道模式直接导入导出来提高 imp/exp的性能

  2、加快imp速度

  建立一个indexfile,在数据 import完成后在建立索引将import文件放在不同的驱动器上增加 DB_BLOCK_BUFFERS增加 LOG_BUFFER

  用非归档方式运行 ORACLE:ALTER DATABASE NOARCHIVELOG; 建立大的表空间和回滚段,OFFLINE其他回滚段,回滚段的大小为最大表的 1/2 使用 COMMIT=N

  使用 ANALYZE=N

  单用户模式导入

  UNIX环境:用管道模式直接导入导出来提高 imp/exp的性能

  3、通过unix/Linux PIPE管道加快exp/imp速度

  通过管道导出数据:

  (1)通过 mknod -p 建立管道

  $ mknod /home/exppipe p // 在目录/home下建立一个管道 exppipe注意参数 p

  (2)通过 exp和 gzip导出数据到建立的管道并压缩

  $ exp test/test file=/home/exppipe & gzip < /home/exppipe > exp.dmp.gz

  $ exp test/test tables=bitmap file=/home/newsys/test.pipe & gzip < /home/newsys/test.pipe > bitmap.dmp.gz

  (3)导出成功完成之后删除建立的管道

  $ rm -rf /home/exppipe

  导出脚本:

  ###UNIX下 ORACLE数据库通过