Oracle 12.2报错ORA-15032、ORA-15410或ORA-15411解决

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

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

解决方案:

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

alter system set "_asm_disable_failgroup_size_checking"=true;
alter system set "_asm_disable_dangerous_failgroup_checking"=true;

下面举一个实际的例子:

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

SQL>  select name, failgroup, path, mode_status, voting_file from v$asm_disk;

NAME                                FAILGROUP                      PATH                                          MODE_ST V
----------------------------------- ------------------------------ --------------------------------------------- ------- -
                                                                   /dev/mapper/mpathj                            ONLINE  N
                                                                   /dev/mapper/mpathi                            ONLINE  N
                                                                   /public/nfsdisk                               ONLINE  N
                                                                   /dev/mapper/mpathk                            ONLINE  N
DATA_0001                           DATA_0001                      /dev/mapper/mpathf                            ONLINE  N
FRA_0000                            FRA_0000                       /dev/mapper/mpathh                            ONLINE  N
DATA_0002                           DATA_0002                      /dev/mapper/mpathg                            ONLINE  N
DATA_0000                           DATA_0000                      /dev/mapper/mpathe                            ONLINE  N
MGMT_0000                           MGMT_0000                      /dev/mapper/mpathd                            ONLINE  N
OCRVT_0000                          OCRVT_0000                     /dev/mapper/mpathc                            ONLINE  Y
OCRVT_0002                          OCRVT_0002                     /dev/mapper/mpathb                            ONLINE  Y
OCRVT_0001                          OCRVT_0001                     /dev/mapper/mpatha                            ONLINE  Y

12 rows selected.

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

SQL> alter diskgroup ocrvt add FAILGROUP OCRVT_0000 disk ‘/dev/mapper/mpathi‘;
alter diskgroup ocrvt add FAILGROUP OCRVT_0000 disk ‘/dev/mapper/mpathi‘
*
ERROR at line 1:
ORA-15032: not all alterations performed
ORA-15410: Disks in disk group OCRVT do not have equal size.

SQL> alter system set "_asm_disable_dangerous_failgroup_checking"=true;

System altered.

SQL> alter diskgroup ocrvt add FAILGROUP OCRVT_0000 disk ‘/dev/mapper/mpathi‘;
alter diskgroup ocrvt add FAILGROUP OCRVT_0000 disk ‘/dev/mapper/mpathi‘
*
ERROR at line 1:
ORA-15032: not all alterations performed
ORA-15411: Failure groups in disk group OCRVT have different number of disks.

SQL> alter system set "_asm_disable_failgroup_size_checking"=true;

System altered.

SQL>  alter diskgroup ocrvt add FAILGROUP OCRVT_0000 disk ‘/dev/mapper/mpathi‘;

Diskgroup altered.

总结:

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

_asm_disable_dangerous_failgroup_checking FALSE

_asm_disable_failgroup_count_checking FALSE

_asm_disable_failgroup_size_checking FALSE

SQL> r
  1  SELECT   i.ksppinm name,
  2     i.ksppdesc description,
  3     CV.ksppstvl VALUE
  4  FROM   sys.x$ksppi i, sys.x$ksppcv CV
  5     WHERE   i.inst_id = USERENV (‘Instance‘)
  6     AND CV.inst_id = USERENV (‘Instance‘)
  7     AND i.indx = CV.indx
  8     AND i.ksppinm LIKE ‘%&param%‘
  9* ORDER BY   REPLACE (i.ksppinm, ‘_‘, ‘‘)
Enter value for param: failgroup
old   8:    AND i.ksppinm LIKE ‘%&param%‘
new   8:    AND i.ksppinm LIKE ‘%failgroup%‘

NAME                                DESCRIPTION                                                        VALUE
----------------------------------- ------------------------------------------------------------------ ------------------------------
_asm_disable_dangerous_failgroup_ch Disable checking for dubious failgroup configurations              FALSE
ecking

_asm_disable_failgroup_count_checki Disable checking for failure group count                           FALSE
ng

_asm_disable_failgroup_size_checkin Disable checking for failure group size                            FALSE
g

--这类参数实测可以动态修改:
alter system set "_asm_disable_failgroup_size_checking"=true;
alter system set "_asm_disable_dangerous_failgroup_checking"=true;
--alter system set "_asm_disable_failgroup_count_checking"=true; 这个参数我没有测出来实际作用,实测只需要上面两个参数设置为true就同样可以允许failgroup的数量不一致。

SQL> show parameter _asm

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
_asm_disable_dangerous_failgroup_che boolean     TRUE
cking
_asm_disable_failgroup_size_checking boolean     TRUE

--test
SQL> select name, failgroup, path, mode_status, voting_file from v$asm_disk;

NAME                                FAILGROUP                      PATH                                          MODE_ST V
----------------------------------- ------------------------------ --------------------------------------------- ------- -
                                                                   /public/nfsdisk                               ONLINE  N
OCRVT_0005                          OCRVT_0002                     /dev/mapper/mpathk                            ONLINE  N
OCRVT_0004                          OCRVT_0001                     /dev/mapper/mpathj                            ONLINE  N
DATA_0001                           DATA_0001                      /dev/mapper/mpathf                            ONLINE  N
OCRVT_0003                          OCRVT_0000                     /dev/mapper/mpathi                            ONLINE  N
FRA_0000                            FRA_0000                       /dev/mapper/mpathh                            ONLINE  N
DATA_0002                           DATA_0002                      /dev/mapper/mpathg                            ONLINE  N
DATA_0000                           DATA_0000                      /dev/mapper/mpathe                            ONLINE  N
MGMT_0000                           MGMT_0000                      /dev/mapper/mpathd                            ONLINE  N
OCRVT_0000                          OCRVT_0000                     /dev/mapper/mpathc                            ONLINE  Y
OCRVT_0002                          OCRVT_0002                     /dev/mapper/mpathb                            ONLINE  Y
OCRVT_0001                          OCRVT_0001                     /dev/mapper/mpatha                            ONLINE  Y

12 rows selected.

--以下操作均可以成功:
alter diskgroup ocrvt drop disk OCRVT_0003;
alter diskgroup ocrvt add FAILGROUP OCRVT_0000 disk ‘/dev/mapper/mpathi‘;   

--如果不改参数,那么只能同时删除/增加每个failgroup中的成员:
alter diskgroup ocrvt drop disk OCRVT_0003, OCRVT_0004, OCRVT_0005;
alter diskgroup ocrvt add FAILGROUP OCRVT_0000 disk ‘/dev/mapper/mpathi‘
FAILGROUP OCRVT_0001 disk ‘/dev/mapper/mpathj‘
FAILGROUP OCRVT_0002 disk ‘/dev/mapper/mpathk‘;

--最后同样可以动态还原配置:
alter system set "_asm_disable_failgroup_size_checking"=false;
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即可成功。

原文地址:https://www.cnblogs.com/jyzhao/p/10668227.html

时间: 2024-08-01 09:20:20

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

oracle 12 安装报错

今天安装oracle数据库,在官网上下载一个最新版就是12的这个版本,直接注册个用户就能下,非常简单,但是安装的时候麻烦来了,安装到第二步,也就是跳过更新的那一步总提示说这个,在网上找了好久,大多数都说是什么共享C盘什么的,解决不了,看着这个答案就烦(只代表自己的想法,可能别人那样解决了),后来用谷歌搜,终于看见了一个不一样的答案,那就是修改注册表,步骤如下: 点击开始->在搜索程序和文件那块输入regedit,就进入注册表了,找到注册表中的HKEY_LOCAL_MACHINE\System\C

oracle数据库启动报错,不能启动ASM实例

数据库rac启动时报错,日志如下,后来使用 Sat Jun  7 06:02:11 2014 GATHER_STATS_JOB encountered errors.  Check the trace file. Sat Jun  7 06:02:11 2014 Errors in file /oracle/product/admin/dqb/bdump/dqb2_j001_13352.trc: ORA-08103: object no longer exists Sat Jun  7 06:0

升级到macOS 10.12 mysqlb报错ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

系统升级到macOS 10.12后启动mysql后,在终端输入mysql 报错ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES/NO) 解决办法1 在系统偏好设置里关闭mySQL2 $ cd /usr/bin3 $ sudo mysqld_safe --skip-grant-tables4 再打开一个终端$ mysqlmysql> use mysql;mysql> UPDATE

使用Oracle SQL Developer报错:Unable to find a Java Virtual Machine

1.环境 win7 x64,oracle 11g r2,jdk6 x64 2.问题 第一次启动Oracle SQL Developer的时候会让我们填写java.exe的路径,我在jdk安装目录下的bin中找到了java.exe,但是填写以后报如下错误: 3.原因 oracle 11g中安装的Oracle SQL Developer是32位的,而我们现在给他指定的java.exe却是64位的,所以会出现这种错误. 4.解决方法 1)从网上下载Oracle SQL Developer x64,然后

navicat 连接oracle 数据库会报错

navicat 直连oracle 数据库会报错 ORA-12737 Instant Client Light:unsupported server character set ZHS16GBK 今天使用Navicat连接Oracle数据库,报了下面的这个错误:“ORA-12737 Instant Client Light:unsupported server character set ZHS16GBK” 从这个错误上看,可以知道是客户端不支持服务器端的字符集造成的,但是修改服务器端的字符集是不

Oracle 11g安装报错Environment variable: "PATH"

Environment variable: "PATH" - This test checks whether the length of the environment variable "PATH" does not exceed the recommended length.预期值 : 1023实际值 : 1245 PRVF-3929 : Adding the Oracle binary location to the PATH environment var

ORACLE 8i 遇到报错:ORA-01631: max # extents (505) reached in table

最近在客户的一个8i生产库上使用statspack,发现alert中有报错: Mon Jun 16 13:17:52 2014 Errors in file /oracle/8.1.7/admin/prod/bdump/snp0_96626_prod.trc: ORA-12012: error on auto execute of job 304 ORA-01631: max # extents (505) reached in table PERFSTAT.STATS$SQL_SUMMARY

【Spring实战】—— 12 AspectJ报错:error at ::0 can't find referenced pointcut XXX

今天在使用AspectJ进行注解切面时,遇到了一个错误. 切点表达式就是无法识别——详细报错信息如下: Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'xingoo' defined in class path resource [bean.xml]: Initialization of bean fail

LifeType 1.2.12 运行报错

Fatal error: Call to undefined function bb2_table_structure() in H:\wamp2\www\lifetype-1.2.121\plugins\badbehavior\index.inc.php on line 174 H:\wamp2\www\lifetype-1.2.12\plugins\badbehavior\index.inc.php中 function bb2_install() { $settings = bb2_read