现象:在Oracle 12.2.0.1 RAC环境,在其ASM实例中,如果添加不同大小或者不同数量的LUN到failgroup中,会报错:

  1. ORA-15032: not all alterations performed
  2. ORA-15410: Disks in disk group OCRVT do not have equal size.
  3. 或者
  4. ORA-15032: not all alterations performed
  5. ORA-15411: Failure groups in disk group OCRVT have different number of disks.

解决方案:

动态修改这两个隐藏参数可以解决:

  1. alter system set "_asm_disable_failgroup_size_checking"=true;
  2. alter system set "_asm_disable_dangerous_failgroup_checking"=true;

下面举一个实际的例子:

比如新加的LUN:mpathi,mpathj,mpathk都是200M大小,以前的ASM磁盘组OCRVT由3个LUN:mpatha,mpathb,mpathc都是1G大小组成;现在想把新的LUN加到OCRVT磁盘组中:

  1. SQL> select name, failgroup, path, mode_status, voting_file from v$asm_disk;
  2. NAME FAILGROUP PATH MODE_ST V
  3. ----------------------------------- ------------------------------ --------------------------------------------- ------- -
  4. /dev/mapper/mpathj ONLINE N
  5. /dev/mapper/mpathi ONLINE N
  6. /public/nfsdisk ONLINE N
  7. /dev/mapper/mpathk ONLINE N
  8. DATA_0001 DATA_0001 /dev/mapper/mpathf ONLINE N
  9. FRA_0000 FRA_0000 /dev/mapper/mpathh ONLINE N
  10. DATA_0002 DATA_0002 /dev/mapper/mpathg ONLINE N
  11. DATA_0000 DATA_0000 /dev/mapper/mpathe ONLINE N
  12. MGMT_0000 MGMT_0000 /dev/mapper/mpathd ONLINE N
  13. OCRVT_0000 OCRVT_0000 /dev/mapper/mpathc ONLINE Y
  14. OCRVT_0002 OCRVT_0002 /dev/mapper/mpathb ONLINE Y
  15. OCRVT_0001 OCRVT_0001 /dev/mapper/mpatha ONLINE Y
  16. 12 rows selected.

直接尝试添加新的LUN到ASM磁盘组OCRVT中,会报错。依次尝试设置相关的隐藏参数,可以成功添加:

  1. SQL> alter diskgroup ocrvt add FAILGROUP OCRVT_0000 disk '/dev/mapper/mpathi';
  2. alter diskgroup ocrvt add FAILGROUP OCRVT_0000 disk '/dev/mapper/mpathi'
  3. *
  4. ERROR at line 1:
  5. ORA-15032: not all alterations performed
  6. ORA-15410: Disks in disk group OCRVT do not have equal size.
  7. SQL> alter system set "_asm_disable_dangerous_failgroup_checking"=true;
  8. System altered.
  9. SQL> alter diskgroup ocrvt add FAILGROUP OCRVT_0000 disk '/dev/mapper/mpathi';
  10. alter diskgroup ocrvt add FAILGROUP OCRVT_0000 disk '/dev/mapper/mpathi'
  11. *
  12. ERROR at line 1:
  13. ORA-15032: not all alterations performed
  14. ORA-15411: Failure groups in disk group OCRVT have different number of disks.
  15. SQL> alter system set "_asm_disable_failgroup_size_checking"=true;
  16. System altered.
  17. SQL> alter diskgroup ocrvt add FAILGROUP OCRVT_0000 disk '/dev/mapper/mpathi';
  18. Diskgroup altered.

总结:

asm中与failgroup相关的隐藏参数:

_asm_disable_dangerous_failgroup_checking FALSE

_asm_disable_failgroup_count_checking FALSE

_asm_disable_failgroup_size_checking FALSE

  1. SQL> r
  2. 1 SELECT i.ksppinm name,
  3. 2 i.ksppdesc description,
  4. 3 CV.ksppstvl VALUE
  5. 4 FROM sys.x$ksppi i, sys.x$ksppcv CV
  6. 5 WHERE i.inst_id = USERENV ('Instance')
  7. 6 AND CV.inst_id = USERENV ('Instance')
  8. 7 AND i.indx = CV.indx
  9. 8 AND i.ksppinm LIKE '%&param%'
  10. 9* ORDER BY REPLACE (i.ksppinm, '_', '')
  11. Enter value for param: failgroup
  12. old 8: AND i.ksppinm LIKE '%&param%'
  13. new 8: AND i.ksppinm LIKE '%failgroup%'
  14. NAME DESCRIPTION VALUE
  15. ----------------------------------- ------------------------------------------------------------------ ------------------------------
  16. _asm_disable_dangerous_failgroup_ch Disable checking for dubious failgroup configurations FALSE
  17. ecking
  18. _asm_disable_failgroup_count_checki Disable checking for failure group count FALSE
  19. ng
  20. _asm_disable_failgroup_size_checkin Disable checking for failure group size FALSE
  21. g
  22. --这类参数实测可以动态修改:
  23. alter system set "_asm_disable_failgroup_size_checking"=true;
  24. alter system set "_asm_disable_dangerous_failgroup_checking"=true;
  25. --alter system set "_asm_disable_failgroup_count_checking"=true; 这个参数我没有测出来实际作用,实测只需要上面两个参数设置为true就同样可以允许failgroup的数量不一致。
  26. SQL> show parameter _asm
  27. NAME TYPE VALUE
  28. ------------------------------------ ----------- ------------------------------
  29. _asm_disable_dangerous_failgroup_che boolean TRUE
  30. cking
  31. _asm_disable_failgroup_size_checking boolean TRUE
  32. --test
  33. SQL> select name, failgroup, path, mode_status, voting_file from v$asm_disk;
  34. NAME FAILGROUP PATH MODE_ST V
  35. ----------------------------------- ------------------------------ --------------------------------------------- ------- -
  36. /public/nfsdisk ONLINE N
  37. OCRVT_0005 OCRVT_0002 /dev/mapper/mpathk ONLINE N
  38. OCRVT_0004 OCRVT_0001 /dev/mapper/mpathj ONLINE N
  39. DATA_0001 DATA_0001 /dev/mapper/mpathf ONLINE N
  40. OCRVT_0003 OCRVT_0000 /dev/mapper/mpathi ONLINE N
  41. FRA_0000 FRA_0000 /dev/mapper/mpathh ONLINE N
  42. DATA_0002 DATA_0002 /dev/mapper/mpathg ONLINE N
  43. DATA_0000 DATA_0000 /dev/mapper/mpathe ONLINE N
  44. MGMT_0000 MGMT_0000 /dev/mapper/mpathd ONLINE N
  45. OCRVT_0000 OCRVT_0000 /dev/mapper/mpathc ONLINE Y
  46. OCRVT_0002 OCRVT_0002 /dev/mapper/mpathb ONLINE Y
  47. OCRVT_0001 OCRVT_0001 /dev/mapper/mpatha ONLINE Y
  48. 12 rows selected.
  49. --以下操作均可以成功:
  50. alter diskgroup ocrvt drop disk OCRVT_0003;
  51. alter diskgroup ocrvt add FAILGROUP OCRVT_0000 disk '/dev/mapper/mpathi';
  52. --如果不改参数,那么只能同时删除/增加每个failgroup中的成员:
  53. alter diskgroup ocrvt drop disk OCRVT_0003, OCRVT_0004, OCRVT_0005;
  54. alter diskgroup ocrvt add FAILGROUP OCRVT_0000 disk '/dev/mapper/mpathi'
  55. FAILGROUP OCRVT_0001 disk '/dev/mapper/mpathj'
  56. FAILGROUP OCRVT_0002 disk '/dev/mapper/mpathk';
  57. --最后同样可以动态还原配置:
  58. alter system set "_asm_disable_failgroup_size_checking"=false;
  59. alter system set "_asm_disable_dangerous_failgroup_checking"=false;

注意:实验发现如果使用asmca添加磁盘,无论是否设置这个参数,都会报错[DBT-30003] The size of the disks selected is not the same as to allow for an equal number of 4MB AU size blocks.

而使用命令行操作,只要设置这2个隐藏参数为true即可成功。

Oracle 12.2报错ORA-15032、ORA-15410或ORA-15411解决的更多相关文章

  1. Oracle 12.2 报错:ORA-12012: error on auto execute of job "SYS"."ORA$AT_OS_OPT_SY_7458"

    alert报错 2019-01-12T10:10:11.499130+08:00Errors in file /u01/app/oracle/diag/rdbms/rac1/rac112/trace/ ...

  2. plsql developer连接oracle 12.2报错 ora-28040 No matching authentication protocol

    使用plsql连接时,发现报ora-28040 No matching authentication protocol 赶紧查了查MOS,原来在默认情况下Oracle12.2对客户端版本有限制, 解决 ...

  3. Oracle Online Patching报错"This is not a RAC setup. OPatch cannot determine the local node name"

    Oracle Online Patching报错"This is not a RAC setup. OPatch cannot determine the local node name&q ...

  4. 安装Oracle 11gR2,报错:[INS-06101] IP address of localhost could not be determined

    安装Oracle 11gR2,报错:[INS-06101] IP address of localhost could not be determined 出现这种错误是因为主机名和/etc/host ...

  5. [转]ORACLE 11G 导出报错(EXP-00003)未找到段 (0,0) 的存储定义

    http://blog.csdn.net/qq_19524879/article/details/51313205 ORACLE 11G 导出报错(EXP-00003)未找到段 (0,0) 的存储定义 ...

  6. Oracle Client安装报错

    Oracle Client安装报错:引用数据不可用于验证此操作系统分发的先决条件 http://tunps.com/p/11797.html 原因是Oracle Client 11g版本不支持最新的W ...

  7. MongoDB解压报错gzip: stdin: not in gzip format的解决方法

    MongoDB解压报错gzip: stdin: not in gzip format的解决方法 在安装MongoDB时出现如下报错: [root@vm172--- mongodb]# tar -zxv ...

  8. excel第一次打开报错 向程序发送命令时出错 多种解决办法含终极解决方法

    excel第一次打开报错 向程序发送命令时出错 多种解决办法含终极解决方法 office2007应该遇到“向程序发送命令时出现 问题”,设置为以管理员运行也不好用,重装office也不好用,下面介绍下 ...

  9. CocoaPods pod install的时候报错:invalid byte sequence in UTF-8 (ArgumentError)解决办法

    CocoaPods pod install的时候报错:invalid byte sequence in UTF-8 (ArgumentError)解决办法: 基本可以确定是Podfile中的内容编码有 ...

随机推荐

  1. python基础篇_005_迭代器和生成器

    Python迭代器和生成器 1.迭代器 迭代:可以将某个数据集内的数据“一个挨着一个的取出来” for i in range(1, 10, 2): # in 后面的对象必须是一个可迭代的 print( ...

  2. 大数据技术 - MapReduce 应用的配置和单元测试

    上一章的 MapReduce 应用中,我们使用了自定义配置,并用 GenericOptionsParser 处理命令行输入的配置,这种方式简单粗暴.但不是 MapReduce 应用常见的写法,本章第一 ...

  3. 在VS2010上安装MVC4(webApi)

    我们安装的VS2010上是没有MVC4或者WebApi的,要想加入这些功能只能自己在网上下载安装. 要安装MVC4,首先得安装VS10sp(Service Package)1,然后再安装MVC4.安装 ...

  4. vim编辑器操作命令

    vim   [参数]   [文件 ..]         编辑指定的文件 或: vim   [参数]    -     从标准输入(stdin)读取文本 或: vim   [参数]    -t    ...

  5. (55)Wangdao.com第八天_JavaScript 字符串中使用 \u 输出Unicode字符

    JavaScript中,使用Unicode 需要 \u 进行转义,格式 "\u十六进制" console.log(\u0031); console.log(\u0041); // ...

  6. (71)Wangdao.com第十一天_JavaScript 数学对象 Math

    Math 对象 封装了数学相关的 属性和方法. 和其他对象不一样,Math 不是一个构造函数,所以不能 new 生成实例, 其所有属性和方法都必须在 Math 对象上调用. 静态属性 Math.PI ...

  7. [LeetCode] Generate Random Point in a Circle 生成圆中的随机点

    Given the radius and x-y positions of the center of a circle, write a function randPoint which gener ...

  8. 安装Percona版本的MySQL主从复制

    准备两台虚拟机,按顺序执行1.1节的公共部分 1.1 首先安装 cmake # yum –y install cmake     //也需要安装gcc-c++,openssl openssl-deve ...

  9. HDU 6321 Dynamic Graph Matching

    HDU 6321 Dynamic Graph Matching (状压DP) Problem C. Dynamic Graph Matching Time Limit: 8000/4000 MS (J ...

  10. Gym 101606L - Lounge Lizards - [计算几何+LIS]

    题目链接:https://codeforces.com/gym/101606/problem/L 题解: 在同一条线上的所有蜥蜴,他们的斜率都是相通的,换句话说可以直接通过斜率将蜥蜴分组. 每一组即代 ...