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

深入分析關於Oracle的備份策略

2013-11-13 16:18:01  來源: Oracle 

  備份腳本應該對Log重定向並保存以便在出錯的查找有用信息

  與RMAN備份有關的優化

  備份操作主要是完成以下三個步驟

  從磁盤上讀取數據

  在內存中處理數據塊

  寫入數據到磁盤或磁帶

  以上的讀寫操作可以同步或異步的完成在同步I/O操作中一個時間只允許有一個IO操作但是在異步I/O操作中一個時間允許有多個IO操作因此備份與恢復的調優主要集中在以下幾個方面

  提高同步或異步I/O操作能力

  在支持異步操作的操作系統上可以通過設置TAPE_AYSNCH_IODISK_ASYNCH_IO和BACKUP_TYPE_IO_SLAVES來支持異步操作提高寫的能力

  提高磁盤讀能力

  可以在backup命令後通過設置DISKRATIO來保證從多個磁盤上讀取數據保證連續的數據流

  正確設置緩沖區與參數值

  設置LARGE_POOL_SIZE使備份可以使用連續的緩沖池通過設置DB_FIL_DIRECT_IO_COUNT可以提高緩沖區的利用如果使用磁帶備份還可以設置BACKUP_TYPE_IO_SLAVES來提高磁帶的寫能力

  采用並行備份

  開辟多個通道可以實現並行備份與恢復

  備份RMAN數據庫

  RMAN自己的數據庫也需要備份但是本身很小而且不是經常發生變化所以在每次RMAN備份完成後都可以用如下腳本對RMAN數據庫備份

        EXP pafile =exprmansql

  exprmansql為

  USERID=RMAN/RMAN

  BUFFER=

  OWNER=RMAN

  FILE=RMANDMP

  ROWS=Y

  GRANTS=Y

  COMPRESS=Y

  CONSISTENT=Y

  使自動備份數據庫

  自動備份數據庫不外乎以下三種方式

  WINDOWS下的任務計劃(At命令)

  UNIX下的Crontab

  第三方工具如Viritas

  在以上三種方式中Viritas屬於第三方工具很多人可能都沒有接觸主要說一下windows的任務計劃與unix的cron

  生成腳本文件如backuprcv

  假定文件內容如下

        $NewsContent$gt;cat backuprcv

  connect target sys/password rcvcat rman/rman@localname;

  run{

  allocate channel c type disk;

  allocate channel c type disk;

  allocate channel c type disk;

  backup fileaperset format /u/oradata/backup/arch%u_%s_%p??

  archivelog all delete input;? ?

  release channel c;

  release channel c;

  release channel c;

  }

  生成執行文件

  在windows上生成backup_archivebat內容包括

  rman cmdfile = backuprcv

  在unix下生成 backup_archivesh內容包括

  /oracle/ramn/rman cmdfile = backuprcv

  加入調度

  在windows中用任務計劃向導即可或使用at命令

  在unix中在目標機器上編寫一個文件用以啟動自動備份進程假定文件名為ORACLE文件將放在/var/spool/cron/crontabs目錄下

  $NewsContent$gt;cat oracle

   * * backup_archivesh

  #表示星期天點對數據庫備份

   * * * backup_archivesh

  #表示每天點備份

  Crontab文件的每一行由六個域(minuteshoursday of monthmonthday of weekcommand)組成域之間用空格或Tab分隔開來

  常見誤區

  使用EXP/IMP備份

  EXP/IMP不是一個良好的備份工具在以後的發展之中ORACLE對EXP/IMP用於備份的支持會越來越低ORACLE只是把EXP/IMP當作一個好的工具而不是備份工具在對於大型數據庫如TB級數據庫或數據倉庫EXP/IMP肯定會力不從心

  在應用程序中備份數據庫

  在論壇上有很多這樣的要求我怎麼在程序中備份與恢復數據庫?首先說這個並不是不可以實現但是實現的過程會很復雜而且意外會很多就我的感覺提出這樣問題的人首先一點就是對ORACLE或DBA的不了解如果ORACLE可以這麼輕松的實現備份與恢復那麼我可以說就不需要DBA了

  冷備份比熱備份更容易效果會更好

  有人認為冷備份是關閉數據庫進行的一致性備份肯定比熱備份要好使用也容易其實不盡然在熱備份中一樣可以實現數據庫的全備份而且不會影響到數據庫的運行建議所有的生產機都運行在歸檔方式下采用熱備份方式

  常見問題

  我導出的數據為什麼不能導入提示不支持的字符集轉換

  答參考上面的字符集原則導出數據時客戶端與數據庫字符集一致導入時修改為與目標數據庫字符集一致

  我的歸檔日志越來越多我什麼時候可以刪除歸檔日志?

  答在每一次全備份(如OS全冷備份或全熱備份)或基於全備份的增量備份(如RMAN基於級備份上的增量備份)後都可以刪除該備份點之前的歸檔日志建議在磁帶上保留一年

  全備份時一定需要備份所有數據文件嗎?

  答不需要起碼有兩類數據文件可以不備份一類就是臨時數據文件如果丟失可以刪除後重建;一類是只讀表空間數據文件如果上次備份以來沒有修改過表空間的只讀屬性就可以不需要備份

  聯機日志需要備份嗎?

  答如果是歸檔方式熱備份就沒有必要備份聯機日志但是對於冷備份可以備份聯機日志特別是不歸檔狀態備份過聯機日志後的冷備份因為數據庫是一致的可以恢復到該備份點

  小結

  什麼是數據庫備份數據庫備份就是把數據庫復制到轉儲設備的過程

  數據庫的運行方式可以分為歸檔方式和非歸檔方式建議運行在歸檔方式下運行熱備份

  了解了數據庫的備份方式邏輯備份冷備份熱備份

  了解數據庫的備份工具EXP/IMP執行邏輯備份OS腳本可以執行冷備份或熱備份RMAN也可以執行冷備份或熱備份

  了解ORACLE的備份策略並怎樣選擇最佳的備份策略

  知道怎麼樣啟動自動備份了解Windows的at命令與unix的cron進程


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