遇到ASM的兩個BUG
最近在ASM上遇到幾個BUG,這裡簡單記錄下來。
SQL> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bi
PL/SQL Release 10.2.0.3.0 - Production
CORE 10.2.0.3.0 Production
TNS for Solaris: Version 10.2.0.3.0 - Production
NLSRTL Version 10.2.0.3.0 - Production
BUG 1:V$ASM_DISK和V$ASM_DISKGROUP顯示的剩餘空間不一致。
--database 例項
SQL> select total_mb,free_mb from v$asm_diskgroup;
TOTAL_MB FREE_MB
---------- ----------
307201 100536
SQL> select total_mb,free_mb from v$asm_disk;
TOTAL_MB FREE_MB
---------- ----------
102399 0
204802 0
這個可能oracle認為不算bug,因為在asm例項查是沒有問題的:
--ASM 例項
SQL> select free_mb,total_mb from v$asm_diskgroup;
FREE_MB TOTAL_MB
---------- ----------
98419 307201
SQL> select free_mb,total_mb from v$asm_disk;
FREE_MB TOTAL_MB
---------- ----------
0 500
0 500
16905 102399
81514 204802
在這裡的查詢結果看,還是正確的。
oracle文件沒有明確說明在database例項查詢時結果是不一致的(很多asm檢視在資料庫例項是沒有結果的,但文件都有說明),因此這裡也把它歸結為BUG吧。
BUG 2:ORA-15041: diskgroup space exhausted
完整的報警資訊如下:
Fri Oct 19 23:52:00 2007
Errors in file /oracle/app/admin/pre/bdump/prerac1_arc1_3549.trc:
ORA-19504: failed to create file "+DATA/archivelog/1_84_634432026.dbf"
ORA-17502: ksfdcre:4 Failed to create file +DATA/archivelog/1_84_634432026.dbf
ORA-15041: diskgroup space exhausted
嘗試手工歸檔失敗:
SQL> alter system archive log current;
alter system archive log current
ORA-16038: log 4 sequence# 84 cannot be archived
ORA-19504: failed to create file ""
ORA-00312: online log 4 thread 1: '+DATA/onlinelog/redo1_4_1.log'
ORA-00312: online log 4 thread 1: '+DATA/onlinelog/redo1_4_2.log'
這個問題之前遇到過,但沒有深究,當時刪除了一些歸檔釋放部分空間後,重啟例項就在表面上解決問題了,但今天發現問題沒有這麼簡單,因為從查詢結果看,空間還是足夠的:
這是asmcmd的檢視結果:
ASMCMD> lsdg
State Type Rebal Unbal Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Name
MOUNTED EXTERN N N 512 4096 1048576 307201 100552 0 100552 0 DATA/
這是從檢視檢視的結果:
SQL> select total_mb,free_mb from v$asm_diskgroup;
TOTAL_MB FREE_MB
---------- ----------
307201 100536
從兩個查詢結果看都有100多G的空間空間,但是在歸檔500多M的日誌的時候仍然會包空間不足。
上metalink查了一下,發現這又是一個bug:DISKGROUP組內的disk使用不能自動均衡,導致其中一個磁碟空間爆滿,不能建立新檔案。
原因是ASM會嘗試把資料分佈在所有的磁碟中,如果其中一個disk滿了,即使其實的磁碟有足夠的空閒空間也不能建立新檔案了。
觸發這個BUG的條件有兩個:
1、diskgroup只有2塊磁碟
2、兩個磁碟的尺寸不一致。
很不幸,我的環境完全滿足這兩個條件。這個bug在11g會被修正,目前對於這個問題,oracle提供了一個解決方法:REBALANCE磁碟組。
要注意,重平衡磁碟組要把ASM磁碟組的資料重新分配空間,這個工作非常耗費資源,在正式環境不要輕易執行這個命令:
SQL> ALTER DISKGROUP DATA REBALANCE POWER 11;
Diskgroup altered.
其中11可以替換為1-11之間的任意整數,數值越大,重組越徹底,耗費時間就越長。
發出這個命令後,在ASM例項查詢v$asm_operation來看ASM重組的進度:
SQL> select * from v$asm_operation;
GROUP_NUMBER OPERATION STATE POWER ACTUAL SOFAR EST_WORK EST_RATE EST_MINUTES
------------ ---------- -------- ---------- ---------- ---------- ---------- ---------- -----------
1 REBAL RUN 11 11 4395 36847 771 42
SQL> /
GROUP_NUMBER OPERATION STATE POWER ACTUAL SOFAR EST_WORK EST_RATE EST_MINUTES
------------ ---------- -------- ---------- ---------- ---------- ---------- ---------- -----------
1 REBAL RUN 11 11 8132 47805 790 50
REBAL是REBALANCE的所寫。
再檢視V$ASM_DISK的情況:
SQL> select free_mb,total_mb from v$asm_disk;
FREE_MB TOTAL_MB
---------- ----------
0 500
0 500
16905 102399
81514 204802
隔一段時間後再次查詢:
SQL> /
FREE_MB TOTAL_MB
---------- ----------
0 500
0 500
17308 102399
81111 204802
可見,ASM磁碟組中的磁碟的使用率正在變化。
此時在database例項中嘗試歸檔:
SQL> alter system archive log current;
System altered
可以成功歸檔。這個命令執行起來可能有點慢,因為ASM資料重組程式與歸檔程式在空間使用上衝突,ASM重組程式會阻塞歸檔程式,直到歸檔需要的空間重組完成。
至此,這個bug得到暫時解決。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/231499/viewspace-63870/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle的兩個bugOracle
- 今天遇到一個VERITAS NBU的BUG
- React兩個bug踩坑React
- [BUG反饋]兩個關於釋出文章的BUG
- 專案中遇到的bug
- 程式設計師遇到Bug時的30個反應程式設計師
- 分享2個近期遇到的MySQL資料庫的BUG案例MySql資料庫
- 適配Android N遇到的兩個問題Android
- RAC12.1.0.2.161018PSU從RAC+ASM恢復到單例項非ASM遇到的BUGASM單例
- 【譯】Ringbahn的兩個記憶體Bug記憶體
- Delphi中兩個BUG的分析與修復 (轉)
- windows上使用telnet時遇到的兩個錯誤Windows
- #兩年移動端踩坑,遇到的那些不得不說的bug及修復
- 分析表時遇到BUG
- 「前端 BUG 錄」遇到BUG應該如何排查前端
- Go 1.13版本引入的bug,你遇到過這個坑麼?Go
- 進擊的Bug 那些年我遇到的大坑
- ASM例項使用CREATE PFILE FROM MEMORY的bugASM
- .net打獨立執行環境遇到無法trim遇到的bug
- 面試常遇到的萬用字元匹配的兩個小問題總結面試字元
- 在專案中遇到的一些bug
- 常見軟體所遇到的Bug(一)-UIIssueUI
- hive-3.0.0 版本中遇到的bug 彙總Hive
- 進擊的Bug 那些年我遇到的大坑2
- Solaris10上啟動Oracle11g例項遇到的一個bugOracle
- iOS 10.2修復兩個超煩人的Bug 續航猛增iOS
- Oracle RAC ASM磁碟組擴容時遇到的VIP漂移OracleASM
- 進擊的Bug---那些年我遇到的大坑3
- 10g bug 偵聽掛起 兩個偵聽程式
- workman分散式部署遇到的bug以及修復方式分散式
- 建立ASM磁碟有兩種方式!ASM
- Spring Boot 中的同一個 Bug,竟然把我坑了兩次!Spring Boot
- 第一次遇到Oracle Bug 留念Oracle
- 程式設計師遇到bug後的七種反應程式設計師
- oracle的一個bugOracle
- 點選label執行兩次的bug
- 12c ASM audit目錄增長過快的bugASM
- 引起微信閃退的“兩位數字+15個句號”BUG的原理是怎樣的?