Chinaunix首页 | 论坛 | 博客
  • 博客访问: 495138
  • 博文数量: 105
  • 博客积分: 3040
  • 博客等级: 中校
  • 技术积分: 1450
  • 用 户 组: 普通用户
  • 注册时间: 2005-07-08 13:04
文章分类

全部博文(105)

文章存档

2008年(105)

我的朋友

分类: Oracle

2008-09-23 10:13:56

export:
增加 BUFFER (eg. 2800000)
          停止所有应用(不一定现实)
          export文件不在ORACLE使用的器上
          不要export到NFS文件系统

  
  IMPORT:
          建立一个indexfile,在数据import完成后在建立索引
          将import文件放在不同的驱动器上
          增加DB_BLOCK_BUFFERS
          增加LOG_BUFFER
          用非归档方式运行ORACLE:
                  --如果有个大的日志文件当然也会提高速度,不过临时加大太烦琐
         ALTER DATABASE NOARCHIVELOG;
          建立大的表空间和大的回滚段,OFFLINE其他回滚段,回滚段的大小为最大表的1/2
          使用 COMMIT=N
          使用ANALYZE=N

  另外可以用单用户模式导入
  或者用管道模式直接导入导出来提高imp/exp的性能

  管道的使用方法
  在源机器之上(称之为SRC)执行导出:
  mknod /dev/p_exp p
  在目的机器之上(称之为TRGT)执行导出:
  mknod /dev/p_imp p
  在两个机器上通过l s命令确保两个管道都已被创建。
  2) 将“导入管道(在SRC之上)”复制到“导入管道(在TRGT之上)”。可以使用任何允
  许远程复制的命令(例如rcp)。本例通过rsh使用dd命令。
  在TRGT之上:
  rsh src dd if=/dev/p_exp > /dev/p_imp
  3) 启动导出进程。
  在SRC之上:
  exp userid=username file=/dev/p_exp full=y direct=y
  4) 启动导入进程。
  在TRGT之上:
  imp userid=username file=/dev/p_imp buffer=???? full=y
       
  另外一种增加导出/导入吞吐量的方法是使用单任务模式的导出和导入实用工具。在UNIX上,缺省情况下
  imp/exp都是以双任务模式链接的(换句话说,创建了一个影子进程,利用它隔离Oracle内核代码和导出/导入代码,
  又就是说这些代码变成私有,不再给共享了)。使用单任务的导出/导入使用工具可以增加整个吞吐量大致为0~20%。
  但是,以单任务模式链接的实用工具会消耗更多的,因为Oracle可执行代码不再被所有后台进程和前台进程共享。
  单任务可执行代码的名字与常规的双任务可执行代码一样,除了前者拥有“st”后缀之外(所以单任务的exp变为expst,
  单任务的imp变为impst)。
  单任务模式的实用工具需要通过下面的
  命令显式地链接:
  cd $ORACLE_HOME/rdbms/lib
  make -f ins_rdbms.mk expst     
  make -f ins_rdbms.mk impst
  -- ins_rdbms.mk要根据oracle版本来决定

阅读(2254) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~