数据库服务:数据库表空间扩容
http://www.enmotech.com/services/service.html(專業數據庫服務)
?
數據庫表空間擴容是我們在運維過程中經常需要做的事情,本文分享一次在擴容表空間中遇到的情況以及針對本次情況的一些想法。
?
記一次在運維過程中遇到的問題,在最近的一次表空間擴容中遇到的問題,該表表空間使用率達到 80% 以上,照常對該表空間進行擴容時報錯,報錯提示如下:
?
?
打碼部分為表空間名稱,錯誤提示空間不足,在擴容表空間時已經檢查過磁盤組的剩余空間。
?
DATA 磁盤組的剩余空間還很充足,于是根據錯誤提示上 mos 查:
?
?
?
結果如圖,錯誤提示一樣,直接拉到最后看解決辦法。
?
根據 mos 提供的方法,檢查修復之后重新 rebalance。
?
alter diskgroup diskgroupname rebalance power 32:使用此子句手動重新平衡磁盤組。自動存儲管理在所有驅動器上均勻地重新分配數據文件。
?
POWER :在 POWER 子句中,指定 0 到 11 之間的值,其中 1 表示重新平衡操作,11 表示 Oracle ASM 盡可能快地執行重新平衡。您在 POWER 子句中指定的值默認為 ASM_POWER_LIMIT 初始化參數的值。
?
雖然指定 power?值為32,但是實際日志中查看,最大只能達到 11;
?
查詢官方文檔給出的解釋:
ASM_POWER_LIMIT:該 ASM_POWER_LIMIT initialization 參數指定磁盤組中磁盤重新平衡的默認功率。該值的范圍是 0 到 1024。默認值為 1。值 0 禁用重新平衡。較高的數值使重新平衡操作能夠更快地完成,但可能會導致更高的 I / O 開銷和更多的重新平衡過程。
-
對于具有磁盤組ASM兼容性集到磁盤組11.2.0.2或更大(例如,COMPATIBLE.ASM= 11.2.0.2),值的操作范圍是 0 到 1024 用于重新平衡能力。
-
對于磁盤組 ASM 兼容性設置為小于的磁盤組 11.2.0.2,值的操作范圍 0 為 11包含。如果值 ASM_POWER_LIMIT 大于11,則將值用于 11 這些磁盤組。
?
初始化參數的 POWER 子句允許值范圍相同 ASM_POWER_LIMIT。如果 POWER 指定的子句的值大于 11ASM 兼容性設置為小于的磁盤組 11.2.0.2,則會顯示警告,并且將使用 POWER 等于的值 11 進行重新平衡,所以日志中看到的最大值為 11。
?
Usable_file_MB=-115876 是什么含義?
?
等到重新 rebalance 完成之后,重新增加數據文件發現仍然失敗了,查看磁盤組信息發現每塊盤的大小并沒有改變。
?
?
于是返回仔細查看 mos 文檔,根據 mos 提示查看 Usable_file_MB 的值,我發現數據庫的 Usable_file_MB=-115876 是一個負數。
?
?
這個值代表什么意思,為什么是負數呢?我查詢官方文檔,官方文檔給出的解釋是:USABLE_FILE_MB 表示為鏡像調整的可用空間量,可用于新文件在磁盤發生故障后恢復冗余。USABLE_FILE_MB 通過 REQUIRED_MIRROR_FREE_MB 從磁盤組中的總可用空間中減去然后調整鏡像值來計算。例如,在正常冗余磁盤組中,默認情況下,鏡像文件使用的磁盤空間等于其大小的兩倍,如果剩余 4 GB 的實際可用文件空間,則 USABLE_FILE_MB 大約等于 2 GB。然后,您可以添加最大 2 GB 的文件。
REQUIRED_MIRROR_FREE_MB 指為了使 diskgroup 能在一個或多個磁盤損壞后能夠恢復冗余(redundancy),磁盤組中應該保留的剩余空間。
?
在 data 磁盤組的查詢輸出示例中,計算如下:
(FREE_MB - REQUIRED_MIRROR_FREE_MB)/ 2=USABLE_FILE_MB
?(278199-509952)/2=-115875
?
該值為負數時有那些影響呢?官方文檔給出的解釋:
1.?根據值FREE_MB,您可能無法創建新文件。
2.?下一次失敗可能會導致冗余減少的文件。
?
如果 USABLE_FILE_MB 變為負數,強烈建議您盡快為磁盤組添加更多空間
雖然 DATA 磁盤組還剩 兩百八十多G 未使用,但是采用的是 Normal redundancy,減去故障恢復所需要的磁盤空間,剩下的空間已經不足了。所以無法新增數據文件,對表空間進行擴容。
?
聯系存儲工程師新加一塊 500G 的磁盤,對 DATA 磁盤組進行擴容。
alter diskgroup DATA rebalance power 11;
?
等待 rebalance 完成之后,再進行擴容表空間,表空間成功擴容。
?
?
總結
?
?
這次故障其實算不上真正意義上的故障,擴容失敗主要是磁盤組剩余可使用空間不足,慣性思維認為剩余空間大小充足,就應該能進行擴容表空間,本來新增存儲擴容磁盤組就能解決問題,由于知識儲備不夠,關注的問題的點不夠全面導致這次簡單的擴容復雜化了。以后在對表空間進行擴容時,不僅要關注磁盤組的剩余空間大小,還要注意磁盤的冗余方式。
?
招聘專欄
?
Oracle 售前工程師(廣州、深圳、上海、武漢、北京、石家莊)
?
Oracle 高級工程師(上海、深圳、北京、成都、昆明、貴州、西寧)
?
MySQL 技術經理(上海、南京、成都)
?
MySQL 工程師(上海、杭州)
?
超高待遇:豐厚的年終獎,五險一金,高額學習基金,團建旅游,法定節假日,福利假期等。
?
推薦他人成功入職有好禮(iPhone X)相送 。
?
投遞簡歷至郵箱:hr@enmotech.com
?
?
總結
以上是生活随笔為你收集整理的数据库服务:数据库表空间扩容的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Drools实战-个人所得税计算器
- 下一篇: 个人简历模板,非常漂亮,docx格式,用