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

Oracle數據庫自動存儲管理(ASM)

2013-11-13 12:45:54  來源: Oracle 

  關於ASM的討論很多但是到底什麼是ASM?ASM是一個有效的抽象層使你的Oracle數據庫可以與叫做diskgroups的抽象空間一起使用而不是直接使用datafiles這帶來了很多好處但是也要求學習一些新的概念命令使用和管理任務所以在投入你的生產系統之前看看它解決什麼管理什麼以及對它的正反面評價

  為什麼創建它?

  回答這個問題的最好方式是直接追溯源頭Bill Bridge——自動存儲管理的最初架構師在Oracle Press標題中的Oracle ASMBill提供了一個鏈接他在那裡討論了使用供應商特定操作系統的文件系統來管理Oracle數據文件放置所遇到的問題

   對於歸檔日志和備份操作系統供應商不提供共享磁盤文件系統

   邏輯卷管理器隱藏了文件的位置使得很難管理磁盤I/O和提供良好的統計

   當磁盤數超過現有的lvm不能工作得很好

   當數據庫有以上的數據文件時操作系統和Oracle不能很好地處理數據庫

   當有大量數據文件時命名就變得很困難了

   特性和文件系統限制隨操作系統的不同而不同

   操作系統級的用戶可以通過標准使用接觸到Oracle文件而Oracle並不知道

  所以他通過建立Oracle自己的文件系統開始解決這些問題他的目標是提供這些特性

   與Oracle緊密集成並與集群一起使用(並行服務器)

   自動使用新的存儲作為磁盤單元或磁盤組來管理

   支持成千上萬的磁盤

   文件不會名字並會在操作系統中隱藏起來

  誰需要它?

  現在快速浏覽一下上面那些問題和解決方案會幫助你確定誰需要ASM起初它是用來處理現在很大型的聯機數據庫所以如果它包括你的商店那麼你可能已經在關注它了或者開始執行ASM如果你的數據庫較小數據文件也不多那麼你可能需要再一些理由使你考慮采用它

   你將要熟悉一些新技術並且應該從在你的開發環境中建立它開始並測試幾個月

   如果你想從你現有的磁盤子系統中獲得更高的性能並獲得更好的統計用於預測磁盤I/O

   如果你正在使用RAC那麼就需要考慮ASM了

  開始

  ASM是由一個實例管理非常類似於Oracle數據庫但是初始參數是非常有限的而且啟動過程也簡單得多

  a 將你的ORACLE_SID設置為+ASM

  b 編輯initora

  # as opposed to RDBMS for a normal Oracle instance

  INSTANCE_TYPE=ASM

  # these names will be used in place of datafile names when you create tablespaces

  ASM_DISKGROUPS=SEAN AARON

  processes=

  # this parameter is platform specific and is the path to the raw disk device

  ASM_DISKSTRING=/dev/cciss/cdp

  # on g you should use diagnostic_dest instead of these

  background_dump_dest=/opt/oracle/admin/+ASM/bdump

  core_dump_dest=/opt/oracle/admin/+ASM/cdump

  user_dump_dest=/opt/oracle/admin/+ASM/udump

  c 啟動ASM實例

  $ sqlplus / as sysdba

  SQL> startup

  d 創建磁盤組

  SQL> create diskgroup SEAN disk /dev/cciss/cdp′;

  e 檢查表空間的創建

  你可能會猜測創建一個表空間會有輕微的改變默認方法如下所示

  SQL> create tablespace sean_space datafile +SEAN size GB;

  不過想一下這個很好的特性如果在你的數據庫中initora文件你設置參數為

  db_create_file_dest=+SEAN

  那麼你可以這樣做

  SQL> create tablespace sean_space;

  然後讓Oracle做其余的工作在這兩種情形下你將發現在v$datafile中列出的文件路徑是和抽象的+SEAN 磁盤組有關而不是與一個實際的操作系統數據文件

  f 更多的

  當然簡化文件名稱和表空間的創建只是ASM可以為你做的工作的冰山一角它還可以提供一個冗余級別

  在數據庫方面外部冗余能力主要是當你在硬件級別(RAID)上或Oracle可以看到的其它外部方法中具有冗余換句話說如果asm_diskstring設備是它們自己的邏輯隱藏物理磁盤於一些冗余的硬件層後面那麼你就會有外部冗余能力

  但是如果你沒有這個冗余能力那麼ASM可以提供你可以指定冗余失敗組和一組其它的選項來防止損失一個或多個磁盤控制器或甚至是整個SAM失效ASM還提供了在磁盤組中均勻分布的I/O因為ASM很好的了解背後發生了什麼所以Oracle可以自動的為你提供I/O到磁盤的一個更好的平衡

  使用ASM遇到的挑戰

  ASM當然是一個具有很大潛能的強大技術但是對於每一個技術解決方案都會有很多的挑戰對於ASM它潛在地破壞了Unix系統管理組和數據庫/數據庫管理員組間力量的普通平衡以前的組管理磁盤硬件和操作系統級別使數據庫管理員與它們協作獲取新的資源這將在某種程度上挑戰這個平衡而這會引起一些來自於這個組的阻力

  最後應該是業務需求促使了它的采用還要注意到ASM仍然是處於企業計算認識階段相對還比較新有一些供應商他們的核心業務已經放在邏輯空間管理器/文件系統空間中很多年了一般來說對於軟件系統和可靠性來說成熟是很重要的

  總結

  ASM很強大它為目前部署的不斷發展的大型數據庫系統提供了解決方案它還可以為較小數據庫安裝或者那些使用集群的數據庫提供解決方案如同對於任何新技術一樣評估測試然後更多的測試


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