資料庫asm
『壹』 使用ASM 實例的情況下,需要修改哪些資料庫
ASM 實例由參數文件控制,其方式與常規資料庫實例相同。通常設置的參數包括:
? INSTANCE_TYPE應該設置且必須為ASM,表示ASM 實例,標識要啟動的實例是ASM,而不是資料庫實例。這是唯一一個必須定義的參數。對於資料庫實例,該參數值設置為RDBMS。
? ASM_POWER_LIMIT:控制重新平衡操作的速度即指定磁碟rebalance的程度。值的范圍從1 到11,11 表示最快。如果省略,該值默認為1。指定的級別越高,則rebalance的操作就會越快被完成,當然這也意味著這個時間段內將佔用更多的資源,指定級別較低的話,隨人rebalance操作會耗時更久,但對當前系統的IO及負載影響會更少,這需要根據實際情況衡量。另外,這個參數指定的只是一個默認值,在操作過程中,即可以隨時動態更改,也可以在語句級命令行時指定power,覆蓋該默認值。
修改ASM實例初始化參數文件的命令規則與資料庫初始化參數完全相同,比如說:
sql> alter system set asm_power_limit=5;
System altered.
? ASM_DISKSTRING是一個與操作系統相關的值,ASM 使用它來限制搜索時考慮的磁碟集即是設置ASM啟動時檢查的磁碟,該選項可以同時指定多個值,並且支持通配符。比如只檢查/DEV/SD*。默認值為空字元串,為空的話,表示ASM將查找系統中所有ASM擁有讀寫許可權的設備。這在大多數情況下就足夠了。如上所示的約束性更強的值可以減少ASM 執行搜索所需的時間,從而提高磁碟組裝載次數。
? ASM_DISKGROUPS:是ASM 實例啟動時或使用ALTER DISKGROUP ALL MOUNT命令時,ASM 實例要裝載的磁碟組的名稱列表。如果為空的話,那麼實際就僅僅啟動到nomount狀態。如果使用SPFILE的話,該參數一般不需要手動修改,ASM能夠自動更新該初始化參數中的值。
Oracle Restart 會裝載列為相關磁碟組的磁碟組,即使這些磁碟組未與ASM_DISKGROUPS參數列在一起也是如此。該參數沒有默認值。
『貳』 oracle dbca創建資料庫時找不到ASM實例
實驗環境:
操作系統:RedHat Linux 6.4
資料庫版本:Oracle 11.2.0.2.0
在使用DBCA創建Oracle資料庫的時候,發現找不到ASM磁碟組:
錯誤排查:
1、執行:
/usr/sbin/oracleasm scandisks和/usr/sbin/oracleasm listdisks
查看執行結果, listdisk可以正常的將磁碟組可顯示出來.
2、切換到 grid 用戶下 ,查看ASM實例是否啟動,並執行查詢
sqlplus / as sysdba
select group_number,path,mount_status,state from v$asm_disk;
select group_number,offline_disks,state from v$asm_diskgroup;
查看磁碟以及磁碟組及其磁碟狀態都正常(正常狀態為mount);
3、用戶組判斷
id oracle 和id grid
查看oracle用戶是否在admdba組裡面
4、查看oracle用戶和grid用戶的$ORACLE_HOME/bin/oracle文件的許可權
$ORACLE_HOME/bin/oracle該文件的默認許可權為6751許可權,有個s許可權,如果s許可權消失,這時通過OS認證將不能登錄到資料庫;
經過對問題的逐一排查,終於找到了問題的所在:
執行 chmod +s oracle 解決問題
總結:
DBCA建庫找不到ASM磁碟的問題所在:
1. Incorrect permission setting for oracle user.
2. ASM instance was not started or diskgroups are not mounted.
3. The diskgroup resources are not online.
4. The permission setting for the asm devices are incorrect.
5. The oracle executable under /bin has incorrect permission settings.
6. the file system for grid home was mounted with option 』nosuid』.
『叄』 Oracle資料庫自動存儲管理(ASM)
關於ASM的討論很多 但是到底什麼是ASM?ASM是一個有效的抽象層 使你的Oracle資料庫可以與叫做diskgroups的抽象空間一起使用 而不是直接使用datafiles 這帶來了很多好處 但是也要求學習一些新的概念 命令 使用和管理任務 所以在投入你的生產系統之前 看看它解決什麼 管理什麼 以及對它的正反面評價
為什麼創建它?
回答這個問題的最好方式是直接追溯源頭 Bill Bridge——自動存儲管理的最初架構師 在Oracle Press標題中的Oracle ASM Bill提供了一個鏈接 他在那裡討論了使用供應商特定操作系統的文件系統來管理Oracle數據文件放置所遇到的問題
對於歸檔日誌和備份 操作系統供應商不提供共享磁碟文件系統
邏輯卷管理器隱藏了文件的位置 使得很難管理磁碟I/O和提供良好的碧蠢纖統計
當磁碟數超過 時 現有的lvm不能工作得很好
當資料庫有 以上的數據文件時 操作系統和Oracle不能很好地處理資料庫
當有大量數據文件時命名就變得很困難了
特性和文件系統限制隨操作系統的不同而不同
操作系統級的用戶可以通過標准使用接觸到Oracle文件 而Oracle並不知道
所以 他通過建立Oracle自己的文件系統開始解決這些問題 他的目標是提供這些特性
與Oracle緊密集成 並與集群一起使用(並行伺服器)
自動使用新的存儲 作為磁碟單元或磁碟組來管理
支持成千上萬的磁碟
文件不會名字 並會在操作系統中隱藏起來
誰需要它?
現在快速瀏覽一下上面那些問題和解決方案會幫助你確定誰需要ASM 起初 它是用來處理現在很大型的聯機悔仿資料庫 所以如果它包括你的商店 那麼你檔滾可能已經在關注它了 或者開始執行ASM 如果你的資料庫較小 數據文件也不多 那麼你可能需要再一些理由使你考慮採用它
你將要熟悉一些新技術 並且應該從在你的開發環境中建立它開始 並測試幾個月
如果你想從你現有的磁碟子系統中獲得更高的性能 並獲得更好的統計用於預測磁碟I/O
如果你正在使用RAC 那麼就需要考慮ASM了
開始
ASM是由一個實例管理 非常類似於Oracle資料庫 但是初始參數是非常有限的 而且啟動過程也簡單得多
a 將你的ORACLE_SID設置為+ASM
b 編輯init ora
# 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/c d p ′
# on g you should use diagnostic_dest instead of these
background_mp_dest=/opt/oracle/admin/+ASM/bmp
core_mp_dest=/opt/oracle/admin/+ASM/cmp
user_mp_dest=/opt/oracle/admin/+ASM/ump
c 啟動ASM實例
$ sqlplus / as sysdba
SQL> startup
d 創建磁碟組
SQL> create diskgroup SEAN disk /dev/cciss/c d p ′;
e 檢查表空間的創建
你可能會猜測 創建一個表空間會有輕微的改變 默認方法如下所示
SQL> create tablespace sean_space datafile +SEAN size GB;
不過想一下這個很好的特性 如果在你的資料庫中init ora文件你設置參數為
db_create_file_dest=+SEAN
那麼你可以這樣做
SQL> create tablespace sean_space;
然後讓Oracle做其餘的工作 在這兩種情形下 你將發現在v$datafile中列出的文件路徑是和抽象的+SEAN 磁碟組有關 而不是與一個實際的操作系統數據文件
f 更多的
當然簡化文件名稱和表空間的創建只是ASM可以為你做的工作的冰山一角 它還可以提供一個冗餘級別
在資料庫方面 外部冗餘能力主要是當你在硬體級別(RAID)上或Oracle可以看到的其它外部方法中具有冗餘 換句話說 如果a *** _diskstring設備是它們自己的邏輯 隱藏物理磁碟於一些冗餘的硬體層後面 那麼你就會有外部冗餘能力
但是 如果你沒有這個冗餘能力 那麼ASM可以提供 你可以指定冗餘 失敗組和一組其它的選項來防止損失一個或多個磁碟 控制器或甚至是整個SAM失效 ASM還提供了在磁碟組中均勻分布的I/O 因為ASM很好的了解背後發生了什麼 所以Oracle可以自動的為你提供I/O到磁碟的一個更好的平衡
使用ASM遇到的挑戰
ASM當然是一個具有很大潛能的強大技術 但是對於每一個技術解決方案 都會有很多的挑戰 對於ASM 它潛在地破壞了Unix系統管理組和資料庫/資料庫管理員組間力量的普通平衡 以前的組管理磁碟 硬體和操作系統級別 使資料庫管理員與它們協作獲取新的資源 這將在某種程度上挑戰這個平衡 而這會引起一些來自於這個組的阻力
最後 應該是業務需求促使了它的採用 還要注意到ASM仍然是處於企業計算認識階段 相對還比較新 有一些供應商他們的核心業務已經放在邏輯空間管理器/文件系統空間中很多年了 一般來說 對於軟體系統和可靠性來說成熟是很重要的
總結
lishixin/Article/program/Oracle/201311/16542
『肆』 ORACLE資料庫 用了ASM存儲,ASM實例老是掛掉,alert.log里有600報錯: OR
ORA-00600: internal error code, arguments: [kfrValAcd30]可能是bug或者硬體故障導致.基於客戶的情況,最大可能就是由於硬體故障導致asm 磁碟組的acd無法正常進行,從而無法mount成功.如果運氣好,通過kfed相關修復可以正常mount成功,運氣不好可以通過底層進行恢復數據文件,從而最大限度恢復數據.
參考類似文章:ORA-600 kfrValAcd30 恢復