Applies to:

Oracle Server - Enterprise Edition - Version: 10.1.0.2 to 10.2.0.1 - Release: 10.1 to 10.2
Information in this document applies to any platform.

Symptoms

When trying to add datafile to an existing DiskGroups will fail as below even if there sufficient available free space. 
in the diskgroup. 

SQL> alter tablespace testtbs add datafile '+TESTDG1' size 100M; 
alter tablespace testtbs add datafile '+TESTDG1' size 100M 

ERROR at line 1: 
ORA-1119: error in creating database file '+TESTDG1' 
ORA-17502: ksfdcre:4 Failed to create file +TESTDG1 
ORA-15041: diskgroup space exhausted

Cause

The problem occurs when there is a lot of free space in the disk group, but a file cannot be allocated because the free space is not evenly distributed.

Solution

1. Rebalance the diskgroup manually

OR

2. Use similarly size disks.

Testcase 
----------- 
1. create tablespace testtbs at DB instance (1) 

SQL> create tablespace testtbs datafile '+TESTDG1' size 500M; <== 

2. check views at ASM instance 

SQL> select path, free_mb,total_mb,state from v$asm_disk;

PATH                                        FREE_MB   TOTAL_MB  STATE 
--------------------------------- -----------   --------------  -------- 
/dev/vgs11/rrac1012s_disk01                  24                  300  NORMAL 
/dev/vgs11/rrac1012s_disk02                222                  500  NORMAL

SQL> select name,free_mb,total_mb,state from v$asm_diskgroup;

NAME      FREE_MB  TOTAL_MB  STATE 
----------- -----------   -------------  ----------- 
TESTDG1            246                800  MOUNTED

3. add datafile at DB instance (2) ==> ORA-15041 

SQL> alter tablespace testtbs add datafile '+TESTDG1' size 100M; 
alter tablespace testtbs add datafile '+TESTDG1' size 100M 

ERROR at line 1: 
ORA-1119: error in creating database file '+TESTDG1' 
ORA-17502: ksfdcre:4 Failed to create file +TESTDG1 
ORA-15041: diskgroup space exhausted 

4. execute rebalance at ASM instance 

SQL> alter diskgroup testdg1 rebalance; 

5. check views at ASM instance 

SQL> select path, free_mb,total_mb,state from v$asm_disk;

PATH                                        FREE_MB TOTAL_MB STATE
--------------------------------- ----------- -------------- --------
/dev/vgs11/rrac1012s_disk01                  85                300 NORMAL 
/dev/vgs11/rrac1012s_disk02                161                500 NORMAL

SQL> select name,free_mb,total_mb,state from v$asm_diskgroup;

NAME      FREE_MB TOTAL_MB STATE 
----------- ------------ ------------- ----------- 
TESTDG1            246                800 MOUNTED

6. add datafile at DB instance ==> succeed 

SQL> alter tablespace testtbs add datafile '+TESTDG1' size 100M; 

7. check views at ASM instance 

SQL> select path, free_mb,total_mb,state from v$asm_disk;

PATH                                    FREE_MB TOTAL_MB STATE 
------------------------------ ----------- -------------- -------- 
/dev/vgs11/rrac1012s_disk01             35                300 NORMAL 
/dev/vgs11/rrac1012s_disk02           110                500 NORMAL

SQL> select name,free_mb,total_mb,state from v$asm_diskgroup;

NAME      FREE_MB TOTAL_MB STATE 
----------- -----------  ------------- ----------- 
TESTDG1            145               800 MOUNTED 
.

Diskgroup is 800MB and when we try to create tablespace of 500M and trying to add a datafile of 100M will fail even though there is a free space of 246MB in the diskgroup but the same succeeds after rebalance.

Note 387206.1 ORA-15041: ASM diskgroup with unlike disks sizes的更多相关文章

  1. Oracle ASM diskgroup在主机重启后启动失败

    环境:RHEL 6.4 + Oracle 11.2.0.3 + ASM单实例 1.重启主机后,+DATA diskgroup启动不成功,现象如下: [grid@JY-DB ~]$ crsctl sta ...

  2. ASM 磁盘组的的scrip

    之前经常用如下方式进行查询:步骤 1 以oracle用户登录系统.步骤 2 执行如下命令改变ORACLE_SID环境变量.$ export ORACLE_SID=+ASM1[1或者2]需要通过ps - ...

  3. ASM丢失disk header导致ORA-15032、ORA-15040、ORA-15042 Diskgroup无法mount

    SQL> select * from v$version; BANNER --------------------------– Oracle Database 11g Enterprise E ...

  4. 单机静默安装GI软件并创建ASM实例和ASM磁盘组

    环境:RHEL 6.4 + Oracle 11.2.0.4 需求:单机静默安装GI软件并创建ASM实例和ASM磁盘组,为后续迁移数据库文件到ASM做准备 1. 安装配置GI软件 2. 创建ASM实例 ...

  5. 创建Oracle10g ASM数据库

    概述      在真正的海量数据库环境中,DBA可能会花费很多的时间来作磁盘管理,比如一个表空间将占满整个磁盘,DBA就需要再添加一块磁盘到操作系统中,然后再在新的磁盘上创建新的数据文件,如果是单个磁 ...

  6. Oracle ASM 相关的 视图(V$) 和 数据字典(X$)

    本文转自: http://blog.csdn.net/tianlesoftware/article/details/6733039 ASM由于其高度的封装性,使得我们很难知道窥探其内部的原理.可以通过 ...

  7. Oracle 11g R2 RAC with ASM存储迁移--Rman copy&ASM Rebalance(一)

    ASM GROUP-Rman copy迁移 0x00--环境介绍 VMware版本:VMware12pro 主机操作系统:RHEL6.5_64 共享存储使用VMWARE创建共享磁盘文件 数据库版本:O ...

  8. Step by Step Process of Migrating non-CDBs and PDBs Using ASM for File Storage (Doc ID 1576755.1)

    Step by Step Process of Migrating non-CDBs and PDBs Using ASM for File Storage (Doc ID 1576755.1) AP ...

  9. ORACLE误删除ASM磁盘修复

    在数据库运维中,总会遇到一些粗心大意的DBA,一不小心删除一些东西,这里举例讲解在误删除ASM磁盘之后,如果用KFED工具进行恢复: [grid@RAC1 ~]$ sqlplus / as sysas ...

随机推荐

  1. 正则表达式,re模块

    一,正则表达式 正则表达式是对字符串操作的一种逻辑公式,我们一般使用正则表达式对字符串进行匹配和过滤,使用正则的优缺点,我们可以去http://tool.chinaz.com/regex/进行测试. ...

  2. SQL while循环

    ALTER Proc [dbo].[p_GetServerDataCursor] AS BEGIN IF EXISTS ( SELECT * FROM sys.objects WHERE object ...

  3. [PHP] 算法-找出两个链表的第一个公共结点的PHP实现

    输入两个链表,找出它们的第一个公共结点 1.两个单链表,有公共结点,那么必然,尾部公用 2.找出链表1的长度,找出链表2的长度,长的链表减去短的链表得出一个n值 3.长的链表先走n步,两个链表再同时移 ...

  4. (1)Microsoft office Word 2013版本操作入门_常用功能区

    word2013界面做了比较大的优化,刚开始用的时候不太习惯,研究了一下win10下word的新版本,记录以下几个功能小技巧: 1.常用功能区: 新打开一个word文档  文件.开始 .插入 等菜单称 ...

  5. Python全栈学习_day009知识点

    今日大纲: . 函数的初识 . 函数的返回值 . 函数的参数 1. 函数的初识 统计字符串s的总个数(不能用len) s='fkahfkahofijalkfkadhfkjadhf' count = f ...

  6. blfs(systemv版本)学习笔记-编译安装ligtdm显示管理器

    我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! ligtdm带有显示管理器和登录器,参照我的笔记安装xorg和i3后安装lightdm,就可以组成一个简易的桌面环境了 下面是l ...

  7. 解决element-ui的el-select组件文字超过宽度时不出现横向滚动条问题

    我用的element-ui是V1.4.3. 目前遇到一个问题,在用el-select组件的时候,当选项的内容很长的时候,会撑开下拉菜单的宽度,这样影响美观.具体如下图所示: 解决这个问题的思路:设置下 ...

  8. 函数节流scroll,兼容火狐滚轮事件

    //函数节流 var wheelTimeout; var wheelFun = function (func) { if (wheelTimeout) { return; } func(); whee ...

  9. PostGIS空间查询

    select * from footprints t where ST_intersects(t.geom,ST_GeomFromGeoJSON('{"type":"Po ...

  10. Angular基础(八) Observable & RxJS

    对于一个应用来说,获取数据的方法可以有很多,比如:Ajax, Websockets, LocalStorage, Indexdb, Service Workers,但是如何整合多种数据源.如何避免BU ...