ORA-15041 IN A DISKGROUP ALTHOUGH FREE_MB REPORTS SUFFICIENT SPACE
ORA-15041 IN A DISKGROUP ALTHOUGH FREE_MB REPORTS SUFFICIENT SPACE [ID 460155.1] | |||||
| |||||
修改時間 31-JUL-2011 型別 BULLETIN 狀態 PUBLISHED |
In this Document
Purpose
Scope and Application
ORA-15041 IN A DISKGROUP ALTHOUGH FREE_MB REPORTS SUFFICIENT SPACE
Capacity of disks within ASM diskgroup are different
ASM instance is shutdowned normal/immediate before a rebalance is completed
Disk is DROPPING / HUNG state
After an add disk command the rebalance is still in place
Applies to:
Oracle Server - Enterprise Edition - Version: 10.1.0.2 to 11.1.0.7 - Release: 10.1 to 11.1Information in this document applies to any platform.
Purpose
ORA-15041 is the most common space error reported when disk free space is not sufficient
to complete file allocation request. Due to imbalanced space distribution, ORA-15041 can still
be encountered although ASM views reports sufficient free space. This article is intended to
help the reader to understand the most common reasons for ORA-15041 error although sufficient
free space is reported in ASM views.
Error: ORA-15041 (ORA-15041)
Text: diskgroup space exhausted
---------------------------------------------------------------------------
Cause: The diskgroup ran out of space.
Action: Add more disks to the diskgroup, or delete some existing files.
Scope and Application
This article is intended to help the reader to understand the most common reasons
for ORA-15041 error in ASM diskgroups.
ORA-15041 IN A DISKGROUP ALTHOUGH FREE_MB REPORTS SUFFICIENT SPACE
ASM spreads file extents evenly accross all the disks disks on a diskgroup accordingly with
capacity, free space within diskgroup and its redundancy type. Total free Mega-bytes in an
ASM diskgroup is reported in FREE_MB column but the maximum space that can be allocated
actually changes with the type of redundancy as summarized below:
Redundancy type Max.Space
---------------- -------------------------
External FREE_MB of diskgroup
Normal 1/2 FREE_MB of diskgroup
High 1/3 FREE_MB of diskgroup
v$ASM_DISK.FREE_MB column is simply a sum of free megabyte space reported in each v$asm_disk.
On the other hand USABLE_FILE_MB in V$ASM_DISKGROUP also indicates the amount of free space,
adjusted for mirroring, that is available for new allocations.
Although FREE_MB and USABLE FILE_MB columns reports sufficient free space, an ORA-15041 error
can still be encountered due to imbalanced free space between disks. The reason for this is
that one disk lacking sufficient free space makes it impossible to do any allocation in a
disk group because every file must be evenly allocated across all disks per ASM stripping
policy.
Unbalanced disk configuration and certain operations on ASM disks can create this type of
problem. The problem frequently should be resolved after a succesfull rebalance as far
as all disks have the same storage capacity and there is no underlying hardware problems.
The most common reasons can be classified as follows:
1- Capacity of disks within ASM diskgroup are different
2- ASM instance is shutdowned normal/immediate before a rebalance is ompleted.
3- Disk is DROPPING / HUNG state
4- After an add disk command the rebalance is still in place
Capacity of disks within ASM diskgroup are different
When an asm diskgroup is having the disks in different capacity, one disk lacking free
space makes it impossible to do any allocation in the other disks as well.
This is expected behaviour because every file must be evenly allocated across
all disks. Rebalancing and allocation attempts to make the percentage of allocated
space about the same on every disk. File allocation may fail with an ORA-15041
Extents are allocated evenly accross the disks accordingly with the capacity (TOTAL_MB) of disks. If all ASM disks are of the same size (e.g. 10 disks, 50GB
in case of imbalanced space distribution.
each), ASM allocator places extents on each disk in a sequence. The first disk
allocation is chosen randomly, but all subsequent disks for extent allocation
are chosen to evenly spread each file across all disks and to evenly fill all
disks.
On the other hand, if ASM disks are not of the same size (e.g. disk 1 is 10GB,
disk 2 is 50GB and disks 3-10 are 10GB), ASM allocator will place one extent on
disk 1, five extents on disk 2, one extent on disk 3 and so on. This is to
ensure balanced disk utilization.
Extent allocation also differs with the type of redundancy. If redundancy is
NORMAL/HIGH, no allocation is possible when free space in any of the disks
is not sufficient for the requested allocation size. On the other hand, in
The following test demonstrates the space allocation behaviour according
an external redundancy diskgroup, ASM distributes the extents evenly across
the disks accordingly with the capacity (TOTAL_MB) of disks and the allocation
continue till there exists at least two disks having enough space to complete
the allocation.
to redundancy type when there exists disks with different capacity in the
diskgroups.DG_EXT: External redundancy diskgroup with 3 disks: 447M, 447M, 70M bytes.
DG_NOR: Normal redundancy diskgroup with 3 disks: 447M, 447M, 70M bytes.
ASM/Database instance version is 10.2.0.3.In order to test the file allocation on different redundancy types
(external/normal), files with different sizes are created on diskgroups.
In order to ensure the same amount of free space left after each file creation,
size of the files created on external redundancy diskgroup is double
the amount of the file sizes created on normal redundancy diskgroup. The
following table demonstrates the free space after each file creation and the
point where ORA-15041 error is encountered on each type of diskgroup.
FREE_MB(0): Initial free space at each disk.
FREE_MB(1): After 200M/100M files are created external/normal redundancy
diskgroup.
FREE_MB(2): After 100/50M files are created external/normal redundancy
diskgroup.
FREE_MB(3): After 500M/- file is created on external redundancy diskgroup.NAME TOTAL_MB FREE_MB(0) FREE_MB(1) FREE_MB(2) FREE_MB(3)
+200M/+100M +100M/+50M +500M/-
------------ ---------- ---------- ------------ ---------- ----------
DG_EXT_0001 447 423 330 283 50 **
DG_EXT_0000 447 421 326 279 48 **
DG_EXT_0002 70 66 51 43 8 **
DG_NOR_0001 447 395 301 ORA-15041 * X
DG_NOR_0000 447 395 301 ORA-15041 * X
DG_NOR_0002 70 18 1 ORA-15041 * X
* File allocation (50MB) on normal redundancy diskgroup fails with ORA-15041
when there is no more than 50M at a single disk. This is mainly because normal
redundancy diskgroup can’t allocate primary/secondary extents of file on
separate disks due to insufficient space.** On the other hand, file allocation (100M + 500M) succeeds for external
redundancy diskgroup as this type of redundancy only stripes data over
available free space in all disks. Further tests show that file creation in
external redundancy is possible as long as there is some space in at least
two disks in the diskgroup.ASM instance is shutdowned normal/immediate before a rebalance is completed
A rebalance can be stopped if ASM instance is shutdowned and it is expected
that rebalance should resume after the instance is restarted. However, due to
a known issue (Unpublished Bug 5089819) if ASM instance is shutdowned with
normal/immediate option, rebalance doesn't kick off again upon a new startup.ASM instance requires to either do a shutdown abort or restart rebalance manually.NAME GROUP_NUMBER TOTAL_MB FREE_MB
------------------------------ ------------ ---------- ----------
DG_NORMAL 2 894 386
NAME GROUP_NUMBER TOTAL_MB FREE_MB
------------------------------ ------------ ---------- ----------
DG_NORMAL_0000 2 447 193
DG_NORMAL_0001 2 447 193
A new disk is being added:
alter diskgroup dg_normal add disk '/dev/hdb10';
select * from v$asm_operation;GROUP_NUMBER OPERA STAT POWER SOFAR EST_WORK EST_RATE
------------ ----- ---- ---------- ---------- ---------- ----------
2 REBAL RUN 1 75 194 181
ASM instance is shutdowned:
SQL> shutdown immediate
ASM diskgroups dismounted
ASM instance shutdown
SQL>
Upon startup, there is no relabalance operation going on and free
space in asm disks is not balanced.
NAME GROUP_NUMBER TOTAL_MB FREE_MB
------------------------------ ------------ ---------- ----------
DG_NORMAL 2 1341 781
NAME GROUP_NUMBER TOTAL_MB FREE_MB
------------------------------ ------------ ---------- ----------
DG_NORMAL_0000 2 447 240
DG_NORMAL_0001 2 447 239
DG_NORMAL_0002 2 447 302Normally, we should be able create a file with approx. 350-400M as
asm diskgroup reports sufficient space.
SQL> alter tablespace test1 add datafile '+DG_NORMAL' size 370m;*
ERROR at line 1:
ORA-01119: error in creating database file '+DG_NORMAL'
ORA-17502: ksfdcre:4 Failed to create file +DG_NORMAL
ORA-15041: diskgroup space exhausted
SQL> alter diskgroup dg_normal rebalance power 11;
SQL> alter tablespace test1 add datafile '+DG_NORMAL' size 370m;
Tablespace altered
A new rebalance remedies this situation. Diskgroup has the following free
space figures after 370MB file is created.NAME GROUP_NUMBER TOTAL_MB FREE_MB
------------------------------ ------------ ---------- ----------
DG_NORMAL 2 1341 70
NAME GROUP_NUMBER TOTAL_MB FREE_MB
------------------------------ ------------ ---------- ----------
DG_NORMAL_0000 2 447 24
DG_NORMAL_0001 2 447 22
DG_NORMAL_0002 2 447 24
Disk is DROPPING / HUNG state
Free space in an asm diskgroup can be imbalanced if a drop disk fails for any
reason (lack of space, disk crash, etc.). Disks may be stuck in the DROPPING
state in this case.
The most common reasons for DROPPING state are that a careless drop disk command
is submitted on a diskgroup runing with full capacity or dropping the disk reduces
the amount of available disk space to less than that required for all the existing
extents. After a drop disk command, a rebalance is triggered and completed however
there exits disks at DROPPING state in this case.
It is not possible to allocate space from diskgroup any more as no free space is
also reported in v$asm_diskgroup. To resolve the problem, you can either add more
disks to provide extra space or undrop the disk to roll back the drop.
- Add more disks
Adding more disks provides starts a rebalance implicity and provides extra space for the rebalance
to complete. Once the data is copied out of the dropping disks, they will be expelled out of the diskgroup.alter diskgroup
add disk 'path';
- Undrop the disk
when an undrop command is issued, it simply rolls back the drop. If the disks
dropping has not gone too far, ASM will be able to re-integrate the disks back into
the diskgroup. UNDROP DISKS triggers a rebalance implicitly which rolls back the drop
and make the space again available to diskgroup. Space should be balanced between disks
once the command is completed.alter diskgroup
undrop disks;
While disks are runing near to capacity, imagine a drop disk brings the
disk state to HUNG. Drop disk can't be completed as due to lack of space as
current extents can't be fit into the remaining disks.
NAME TOTAL_MB FREE_MB STATE
------------------------------ ---------- ---------- --------
DG2_0001 447 97 NORMAL
DG2_0000 447 90 NORMAL
DG2_0002 447 97 NORMAL
NAME TOTAL_MB FREE_MB TYPEalter diskgroup DG2 drop disk DG2_0002;
------------------------------ ---------- ---------- ------
DG2 1341 284 EXTERNNAME TOTAL_MB FREE_MB STATE
While rebalance is runing, disk state stays at DROPPING but it changes to
HUNG after rebalance is completed.
------------------------------ ---------- ---------- --------
DG2_0001 447 7 NORMAL
DG2_0000 447 6 NORMAL
DG2_0002 447 271 DROPPING
After rebalance is complete, disk state is HUNG as disk can't be expelled out
from the diskgroup.NAME TOTAL_MB FREE_MB STATE
------------------------------ ---------- ---------- --------
DG2_0001 447 0 NORMAL
DG2_0000 447 0 NORMAL
DG2_0002 447 284 HUNG
alter diskgroup DG2 undrop disks;Undrop disk triggers a new rebalance implicitly and resolves the problem.
This state can also be resolved with ADD DISK by providing extra space for
the rebalance to complete. Once the data is copied out of the dropping disks
they will be expelled out of the diskgroup.After an add disk command the rebalance is still in place
When a disk is added to a disk group its space is not immediately available
for allocation. Since every file must be evenly allocated, extents must be
rebalanced off other disks to the new disk to make space evenly available.
Free space will be available in the course of time while rebalance is
progressing. Since rebalance takes a while, users may not be able to allocate
files and could get out of space errors (ORA-15041).
As a workaround, WAIT option with ADD disk command can be used. If the WAIT
option given with add disk, the command doesn't return until rebalance is
complete. This may provide more intuitive to users who run disks with near
to full capacity.
The following test shows how free space at each disk change while rebalance is
going.
NAME GROUP_NUMBER TOTAL_MB FREE_MB
------------------------------ ------------ ---------- ----------
TEST_DG 2 894 48
PATH GROUP_NUMBER TOTAL_MB FREE_MB
-------------------- ------------ ---------- ----------
/dev/hdb8 2 447 24
/dev/hdb9 2 447 24
Two more 457MB disks are added to diskgroup.
alter diskgroup test_dg add disk '/dev/hdb10','/dev/hdb11';Free space is reported immediately in v$asm_diskgroup however it is imbalanced
as rebalance is not completed yet.NAME TOTAL_MB FREE_MB(1) FREE_MB(2) ... FREE_MB(3)
------------- ---------- ---------- ---------- ----------
TEST_DG 1788 888 887 885
PATH TOTAL_MB FREE_MB(1) FREE_MB(2) ... FREE_MB(3)
-------------- ---------- ---------- ---------- ----------
/dev/hdb8 447 36 144 221
/dev/hdb9 447 36 144 220
/dev/hdb10 447 409 300 223
/dev/hdb11 447 407 299 221
Free space is getting balanced while the rebalance is progressing. Till the
rebalance is completed large file allocations may fail with ORA-15041 errors
although free space is reported in v$asm_diskgroup.
As a workaround, WAIT option can be used with add disk command. When the WAIT
option is used, add disk command doesn't return until rebalance is complete.
This may provide more intuitive results when running disks with near to full
capacity.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/756652/viewspace-715060/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ASM磁碟空間假裝耗盡,ORA-15041: diskgroup space exhaustedASM
- diskgroup "DATADG" cannot be mounted
- Numerical test reports
- 聊聊dba_temp_free_space的allocated_space和free_space
- Oracle Respones-Time Analysis ReportsOracle
- Hilbert Space
- 求助~jenkins 提示 sufficient privilege,無法啟動 jenkins 服務Jenkins
- odoo的Aeroo Reports模組使用。Odoo
- ERROR: failed to establish dependency between database db_name and diskgroupErrorAIDatabase
- 在Dynamics AX 2009中呼叫Crystal Reports
- D. Explorer Space
- CSS white-spaceCSS
- show_space(轉)
- Visual Studio 2022安裝水晶報表(Crystal Reports)
- linux vdo驗證 oracle asm diskgroup sector_size 4096 udev asmlibLinuxOracleASMdev
- Consumer Reports:家用電器品牌可靠性評價
- Stimulsoft Reports使用者手冊:如何建立關係
- [20201111]CURSOR_SPACE_FOR_TIME.txt
- alter table move與shrink space
- Oracle 12c系列(三)|儲存資源隔離 Flex DiskgroupOracleFlex
- Broker reports ORA-16858: last communication time from redo source could not beAST
- ORA-00600 [729], [12284], [space leak],
- Linux 6.9 加盤後的Oracle 12c ASM DiskGroup配置過程LinuxOracleASM
- 沒有磁碟空間 No space left on devicedev
- Sybase IQ 錯誤 : Temporary space limit exceededMIT
- vs2015水晶報表(Crystal Reports)連線Oracle11gOracle
- cannot reclaim 52428800 bytes disk space from 4070572032 limitAIMIT
- openGauss 出現-Error-No-space-left-on-device-提示Errordev
- 如何在 ? Space 上託管 Unity 遊戲Unity遊戲
- 程式設計雜談——Non-breaking space程式設計
- 《Space Engine》:一個人的孤獨宇宙
- 如何進行Linux CPU中的Kernel space分析Linux
- SRPCore Material classification與最佳化Screen Space ReflectionRPC
- [20190918]shrink space與ORA-08102錯誤.txt
- java.lang.OutOfMemoryError: Java heap space的解決JavaError
- [20200327]ORA-46267 Insufficient space in 'USERS' tablespace.txt
- tomcat伺服器經常報錯PermGen SpaceTomcat伺服器
- [20201221]KTFB Bitmapped File Space Header的恢復.txtAPPHeader