熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> JSP教程 >> 正文

利用RMAN轉移數據和EXP/IMP轉移的實測比較

2013-11-15 11:45:38  來源: JSP教程 

  由於工程需要經常將客戶的現場數據導出到公司的開發環境中隨著客戶現場數據量的不斷增大原先使用的導出導入的方法需要花費越來越長的時間所以測試一下RMAN的效率驗證是否能用恢復RMAN備份的方法來代替以往的EXP/IMP方法原本想過用傳輸表空間的方法但是由於我們通常在創建數據庫的時候就給業務所用的表空間創建了很大的數據文件這樣在傳輸表空間的copy數據文件的步驟上會花費很長的時間所以還是決定測試一下RMAN了
  
  測試目的
  實現對於JHJKREC用戶的數據轉移
  
  在機器上測試
  
  測試環境
  PG單CPUG內存G單硬盤Windows ServerOracle
  
  跟JHJK用戶相關的數據文件的總共大小為G
  其中JHJKREC用戶的對象總共大小為G
  
  RMAN作full備份用時分鐘生成文件大小G EXP作JHJKREC用戶數據導出用時生成文件大小M
  
  RMAN作數據恢復用時分鐘(包括restore數據文件recover數據庫)
  IMP作JHJKREC用戶數據導入用時分鐘
  
  RMAN備份在非歸檔模式下需要關閉數據庫然後啟動數據庫到mount狀態EXP在非歸檔模式下不需要關閉數據庫但是數據表本身是不一致的
  
  結論
  利用RMAN備份的時間明顯長於EXP的時間備份出的文件也遠大於EXP出的文件但是恢復的時間卻要少於IMP所需要的時間
  
  利用RMAN恢復還需要備份控制文件而且由於是非歸檔模式還需要檢查當前能夠恢復到的最大SCN然後在SQLPLUS中recover database until change scn然後再alter database open resetlogs整個操作比EXP/IMP繁瑣對於現場業務人員來說可能較為困難所以使用RMAN還是使用導出導入作數據轉移還是見仁見智吧
  
  以下為測試中RMAN和導出導入使用的命令基本上沒有作任何優化
  
  RMAN的備份腳本
  @@connectrcv
  # Backup up database at full level
  #
  shutdown immediate;
  startup mount;
  run{
  allocate channel d type disk;
  set limit channel d kbytes ;
  backup full database
  format E:\rman_bak\dbfull_%d_%s_%p_%t
  tag=dbfull;
  release channel d;
  }
  alter database open;
  exit;
  
  RMAN的恢復腳本
  @@connectrcv
  shutdown immediate;
  startup mount;
  run {
  sql alter session set nls_date_language=AMERICAN;
  sql alter session set nls_date_format=yyyymmdd hh:mi:ss;
  set until time ::;
  allocate channel ch type disk;
  restore database;
  release channel ch;
  }
  exit;
  
  EXP的腳本
  userid=jhjkrec/jhjkrec
  file=e:\rman_bak\jhjkrecdmp
  owner=jhjkrec
  direct=n
  compress=n
  feedback=
  
  IMP的腳本
  userid=jhjkrec/jhjkrec
  file=e:\rman_bak\jhjkrecdmp
  ignore=y
  fromuser=jhjkrec
  touser=jhjkrec
  feedback=
  
  
  

From:http://tw.wingwit.com/Article/program/Java/JSP/201311/19566.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.