案例:Oracle报错ASM磁盘组不存在或没有mount

环境:RHEL 6.5 + Oracle Standby RAC 11.2.0.4

我做Standby RAC实验时,在恢复控制文件时,报错无法在磁盘组创建文件,具体报错内容如下:

  1. [oracle@jystdrac1 standby]$ rman target /
  2. Recovery Manager: Release 11.2.0.4.0 - Production on Wed Aug 9 22:35:41 2017
  3. Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
  4. connected to target database: JYZHAO (not mounted)
  5. RMAN> restore controlfile from '/public/hotback/jyzhao/standby/control_for_standby.ctl';
  6. Starting restore at 09-AUG-17
  7. using target database control file instead of recovery catalog
  8. allocated channel: ORA_DISK_1
  9. channel ORA_DISK_1: SID=34 instance=jyzhao1 device type=DISK
  10. channel ORA_DISK_1: restoring control file
  11. RMAN-00571: ===========================================================
  12. RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
  13. RMAN-00571: ===========================================================
  14. RMAN-03002: failure of restore command at 08/09/2017 22:36:11
  15. ORA-19870: error while restoring backup piece /public/hotback/jyzhao/standby/control_for_standby.ctl
  16. ORA-19504: failed to create file "+DATA"
  17. ORA-17502: ksfdcre:4 Failed to create file +DATA
  18. ORA-15001: diskgroup "DATA" does not exist or is not mounted
  19. ORA-15040: diskgroup is incomplete
  20. ORA-15040: diskgroup is incomplete
  21. ORA-15040: diskgroup is incomplete
  22. RMAN> exit

马上去查磁盘组是否正常mount,结果是正常的:

  1. [root@jystdrac1 ~]# su - grid
  2. [grid@jystdrac1 ~]$ asmcmd
  3. ASMCMD> lsdg
  4. State Type Rebal Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name
  5. MOUNTED EXTERN N 512 4096 1048576 15360 15261 0 15261 0 N DATA/
  6. MOUNTED EXTERN N 512 4096 1048576 5120 5025 0 5025 0 N FRA/
  7. MOUNTED NORMAL N 512 4096 1048576 3072 2146 1024 561 0 Y OCR/
  8. ASMCMD>

去看数据库的alert日志:

  1. Wed Aug 09 22:29:50 2017
  2. NOTE: Loaded library: System
  3. ORA-15025: could not open disk "/dev/asm-diske"
  4. ORA-27041: unable to open file
  5. Linux-x86_64 Error: 13: Permission denied
  6. Additional information: 9
  7. ORA-15025: could not open disk "/dev/asm-diskf"
  8. ORA-27041: unable to open file
  9. Linux-x86_64 Error: 13: Permission denied
  10. Additional information: 9
  11. ORA-15025: could not open disk "/dev/asm-diskg"
  12. ORA-27041: unable to open file
  13. Linux-x86_64 Error: 13: Permission denied
  14. Additional information: 9
  15. Wed Aug 09 22:29:50 2017
  16. SUCCESS: diskgroup DATA was dismounted
  17. ERROR: diskgroup DATA was not mounted
  18. ORA-15025: could not open disk "/dev/asm-diskh"
  19. ORA-27041: unable to open file
  20. Linux-x86_64 Error: 13: Permission denied
  21. Additional information: 9
  22. SUCCESS: diskgroup FRA was dismounted
  23. ERROR: diskgroup FRA was not mounted

居然说是无法打开asm磁盘,迅速去查asm磁盘情况:

  1. [root@jystdrac1 ~]# ls -l /dev/asm*
  2. brw-rw---- 1 grid asmadmin 8, 16 Aug 9 22:55 /dev/asm-diskb
  3. brw-rw---- 1 grid asmadmin 8, 32 Aug 9 22:55 /dev/asm-diskc
  4. brw-rw---- 1 grid asmadmin 8, 48 Aug 9 22:55 /dev/asm-diskd
  5. brw-rw---- 1 grid asmadmin 8, 64 Aug 9 22:55 /dev/asm-diske
  6. brw-rw---- 1 grid asmadmin 8, 80 Aug 9 22:11 /dev/asm-diskf
  7. brw-rw---- 1 grid asmadmin 8, 96 Aug 9 22:11 /dev/asm-diskg
  8. brw-rw---- 1 grid asmadmin 8, 112 Aug 9 22:55 /dev/asm-diskh
  9. /dev/asm:
  10. total 0
  11. [root@jystdrac1 ~]# id grid
  12. uid=700(grid) gid=800(oinstall) groups=800(oinstall),700(asmadmin),701(asmdba),702(asmoper)
  13. [root@jystdrac1 ~]# id oracle
  14. uid=800(oracle) gid=800(oinstall) groups=800(oinstall),701(asmdba),801(dba),802(oper)

发现磁盘组权限没有问题,grid和oracle用户的组也都符合官方要求。

拿着alert日志的关键报错信息“ORA-15025 ORA-27041 Linux-x86_64 Error: 13: Permission denied”去查MOS:

找到一篇MOS匹配:Database Will Not Mount: ORA-15025, ORA-27041, 'Permission denied', ORA-15081 (文档 ID 1378747.1)

最终说是

  1. CAUSE
  2. However the problem is that the Database oracle executable is not assigned to the ASM OSASM group (instead is assigned to the 'oinstall' group):
  3. -rwsr-s--x 1 oracle oinstall 210973186 May 31 21:25 /appl/oracle/OracleHomes/11.2.0/bin/oracle
  4. It needs to be:
  5. -rwsr-s--x 1 oracle asmadmin 210973186 May 31 21:25 /appl/oracle/OracleHomes/11.2.0/bin/oracle

按照MOS的说法,去查oracle用户的这个oracle二进制文件的属组,果然发现是oinstall:

  1. [root@jystdrac1 ~]# su - oracle
  2. [oracle@jystdrac1 ~]$ cd $ORACLE_HOME/bin/
  3. [oracle@jystdrac1 bin]$ ls -l oracle
  4. -rwsr-s--x 1 oracle oinstall 239626641 Aug 6 00:42 oracle

将其改为MOS说的asmadmin,

As the <asm_home sfw owner>:

$ cd <asm_home>/bin

$ ./setasmgidwrap o=<db_home>/bin/oracle

  1. ON NODE1
  2. [root@jystdrac1 bin]# pwd
  3. /opt/app/oracle/product/11.2.0/dbhome_1/bin
  4. [root@jystdrac1 bin]# ls -l oracle
  5. -rwsr-s--x 1 oracle oinstall 239626641 Aug 6 00:42 oracle
  6. [grid@jystdrac1 bin]$ ./setasmgidwrap o=/opt/app/oracle/product/11.2.0/dbhome_1/bin/oracle
  7. [root@jystdrac1 bin]# ls -l oracle
  8. -rwsr-s--x 1 oracle asmadmin 239626641 Aug 6 00:42 oracle
  9. ON NODE2
  10. [root@jystdrac2 bin]# pwd
  11. /opt/app/oracle/product/11.2.0/dbhome_1/bin
  12. [root@jystdrac2 bin]# ls -l oracle
  13. -rwsr-s--x 1 oracle oinstall 239626641 Aug 6 00:48 oracle
  14. [root@jystdrac2 bin]# chown oracle:asmadmin oracle
  15. [root@jystdrac2 bin]# ls -l oracle
  16. -rwxr-x--x 1 oracle asmadmin 239626641 Aug 6 00:48 oracle
  17. [root@jystdrac2 bin]# chmod 6751 oracle
  18. [root@jystdrac2 bin]# ls -l oracle
  19. -rwsr-s--x 1 oracle asmadmin 239626641 Aug 6 00:48 oracle

如上,两个节点都需要改正确,我这里特意演示了两种方法,在一节点使用MOS推荐的方法修改可以一次成功修改,且能保证不改错,只是等的时间长。在二节点直接通过操作系统命令修改,速度快,需要确认最终改对。

最后重启库再试恢复控制文件:

  1. [oracle@jystdrac1 ~]$ sqlplus / as sysdba
  2. SQL*Plus: Release 11.2.0.4.0 Production on Wed Aug 9 23:16:38 2017
  3. Copyright (c) 1982, 2013, Oracle. All rights reserved.
  4. Connected to an idle instance.
  5. SQL> startup nomount pfile=$ORACLE_HOME/dbs/pfile_for_standby.txt
  6. ORACLE instance started.
  7. Total System Global Area 534462464 bytes
  8. Fixed Size 2254952 bytes
  9. Variable Size 436209560 bytes
  10. Database Buffers 92274688 bytes
  11. Redo Buffers 3723264 bytes
  12. SQL> exit
  13. Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
  14. With the Partitioning, Real Application Clusters, OLAP, Data Mining
  15. and Real Application Testing options
  16. [oracle@jystdrac1 ~]$ rman target /
  17. Recovery Manager: Release 11.2.0.4.0 - Production on Wed Aug 9 23:18:28 2017
  18. Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
  19. connected to target database: JYZHAO (not mounted)
  20. RMAN> restore controlfile from '/public/hotback/jyzhao/standby/control_for_standby.ctl';
  21. Starting restore at 09-AUG-17
  22. using target database control file instead of recovery catalog
  23. allocated channel: ORA_DISK_1
  24. channel ORA_DISK_1: SID=34 instance=jyzhao1 device type=DISK
  25. channel ORA_DISK_1: restoring control file
  26. channel ORA_DISK_1: restore complete, elapsed time: 00:00:16
  27. output file name=+DATA/mynas/controlfile/current.256.951607115
  28. output file name=+FRA/mynas/controlfile/current.256.951607123
  29. Finished restore at 09-AUG-17
  30. RMAN>

成功备份没有问题,alert也不再报错,其实之前在一些客户的生产环境,遇到一些类型的问题,也都和这二进制文件的权限相关,如此看来,掌握这个oracle二进制文件的权限的小知识点也很重要哦。

案例:Oracle报错ASM磁盘组不存在或没有mount的更多相关文章

  1. oracle 11g rac asm磁盘组增加硬盘

    要增加磁盘的磁盘组为:DATA 要增加的磁盘为: /dev/sde1 在第一个节点上:[root@rac1 ~]# fdisk /dev/sdeDevice contains neither a va ...

  2. ASM磁盘组空间不足--ORA-15041:DISGROUP DATA space exhausted (生产库案例)

    原创作品,出自 "深蓝的blog" 博客,深蓝的blog:http://blog.csdn.net/huangyanlong/article/details/47277715 近日 ...

  3. 基于CentOS与VmwareStation10搭建Oracle11G RAC 64集群环境:4.安装Oracle RAC FAQ-4.5.安装Grid,创建ASM磁盘组空间不足

    因之前分区时,分区的Last cylinder的值选了“1”,导致创建磁盘组空间不足.解决办法是先删除分区,重新创建分区并删除ASM磁盘,然后重建ASM磁盘 1. 先删除分区,重新创建分区: 1)查询 ...

  4. 转://Oracle 11gR2 ASM磁盘组管理

    一.环境.[grid@rhel2 ~]$ cat /etc/issueRed Hat Enterprise Linux Server release 5.5 (Tikanga) Kernel \r o ...

  5. 11G ORACLE RAC DBCA 无法识别asm磁盘组

    ASM磁盘无法识别几种现象: 1) gi家目录或者其子目录权限错误 2)asm磁盘的权限错误 3)asm实例未启动或者asm磁盘组没有mount上 4)asm磁盘组资源没有在线 5)oracle用户的 ...

  6. Oracle 11gR2 RAC DBCA无法识别ASM磁盘组(ORA-19504,ORA-15045,ORA-17502,ORA-15081)

    ORA-19504: failed to create file "+DATA" ORA-15045: ASM file name '+DATA' is not in refere ...

  7. Oracle RAC环境下ASM磁盘组扩容

    生产环境注意调整以下参数: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ...

  8. bay——Oracle RAC环境下ASM磁盘组扩容.docx

    https://www.cnblogs.com/polestar/p/10115263.html Oracle RAC环境下ASM磁盘组扩容 生产环境注意调整以下参数: +++++++++++++++ ...

  9. Oracle DBCA工具检测不到ASM磁盘组

    本例环境: 操作系统OEL 6.5 数据库版本:11.2.0.4 问题:DBCA建库的时候,检测不到ASM磁盘组 因素一:可能是在授权的时候执行了 chown –R 775 /u01/app等修改权限 ...

随机推荐

  1. java利用反射获取类的属性及类型

    java利用反射获取类的属性及类型. import java.lang.reflect.Field; import java.math.BigDecimal; import java.util.Map ...

  2. 转换编码,将Unicode编码转换成可以浏览的utf-8编码

    //转换编码,将Unicode编码转换成可以浏览的utf-8编码 public function unicodeDecode($name) { $pattern = '/([\w]+)|(\\\u([ ...

  3. 【LeetCode】191. Number of 1 Bits

    题目: Write a function that takes an unsigned integer and returns the number of ’1' bits it has (also ...

  4. 【请求之密】payload和formData有什么不同?

    最近做项目的时候,在通过post请求向服务端发送数据的时候,请求失败了.错误信息如下: 返回的400(bad request)错误,说明客户端这边发送的请求是有问题的. 和通过jquery中的ajax ...

  5. javascript事件冒泡

    1. 事件 在浏览器客户端应用平台,基本生都是以事件驱动的,即某个事件发生,然后做出相应的动作. 浏览器的事件表示的是某些事情发生的信号.事件的阐述不是本文的重点,尚未了解的朋友,可以访问W3scho ...

  6. Spark认识&环境搭建&运行第一个Spark程序

    摘要:Spark作为新一代大数据计算引擎,因为内存计算的特性,具有比hadoop更快的计算速度.这里总结下对Spark的认识.虚拟机Spark安装.Spark开发环境搭建及编写第一个scala程序.运 ...

  7. CJOJ 1331 【HNOI2011】数学作业 / Luogu 3216 【HNOI2011】数学作业 / HYSBZ 2326 数学作业(递推,矩阵)

    CJOJ 1331 [HNOI2011]数学作业 / Luogu 3216 [HNOI2011]数学作业 / HYSBZ 2326 数学作业(递推,矩阵) Description 小 C 数学成绩优异 ...

  8. VBA编程的工程性规划

    看过很多人写的VBA代码,一团一团的,一点规划都没有,为了VBA编程更具工程性,这里讨论一下,并列出自己的一些建议:0.给VBA工程定义一个名字,而非直接使用默认的名称——"VBAProje ...

  9. css动画属性--轮播图效果

    通过css的动画属性实现轮播图的显示效果 代码如下: 主体部分: <div id="move"> <ul> <li><img src=&q ...

  10. ZooKeeper快速学习

    "一入Java深似海",过去自身对于分布式的接触,始终处于使用别人构建的框架的水平,最多就是在nginx配置一下第4层的负载均衡(最后有介绍).随着java使用深入,本文将重点理解 ...