首页 > 数据库 >Oracle ASMLIB配置iSCSI设备导致的问题

Oracle ASMLIB配置iSCSI设备导致的问题

时间:2024-01-16 17:25:23浏览次数:32  
标签:bin oracle1 iSCSI ASMLIB grid usr Oracle export root

 

Oracle ASMLIB配置iSCSI设备导致的问题

 

出于测试目的或者环境不重要等目的,如果使用iSCSI设备并且使用ASMLIB配置管理,可能会遇到如下两个问题。

都是我遇到的问题。

  1. OracleLinux7上边正常安装配置ASMLIB后,如果进行重启会导致扫描不到之前创建标记的盘,需要手工使用oracleasm scandisks才能识别到
  2. 无论是OracleLinux6还是7,安装配置ASMLIB过程均正常,日志/var/log/oracleasm也无异常,ll /dev/oracleasm/disks也能够看到已经出来的盘
    但是比如安装grid的时候无法发现ORCL:开头的盘,能够确定使用的包都是对的。

踏马的上边第二个问题搞了我几天才解决,还是试出来的。mos上边没有符合我现象的文档。

 

先说第一个,很快就解决了,根据mos文档:

Oracle Linux: oracleasm Devices are not Being Scanned After Reboot (Doc ID 2266846.1)

Oracle Linux 7: ASMLib-Managed Disks on Multipathed Targets are not Discovered after Server Reboot (Doc ID 2929856.1)

Oracle Linux 7: ASMLib-Managed Disks on Multipathed iSCSI Targets are not Discovered after Server Reboot (Doc ID 2214152.1)

原因是:https://www.cnblogs.com/PiscesCanon/p/17968113

查看系统日志 ( /var/log/message s) 中的系统启动消息,很明显:
- oracleasm.service 在iscsid.service完成之前启动 ,使所有 iSCSI 目标完全可用/可操作,并且在multipathd.service 添加之前到 iSCSI 目标的至少一条路径
-  ohasd.service在oracleasm.service之后启动 ,但未发现 ASM 磁盘

其实就是iscsid.service服务未完全启动之前,就没有对应的iSCSI设备,oracleasm.service就启动完成了,那样肯定就没有盘了。

解决方式也很简单,在“ After ”行中 添加oracleasm.service,以确保 CRS  ohasd.service在oracleasm.service 成功发现所有 iSCSI 多路径 ASM 磁盘后启动,即

vi /usr/lib/systemd/system/oracleasm.service
[Unit]
修改或添加:
Requires=iscsid.service multi-user.target
After=iscsid.service multi-user.target

重载配置:
systemctl daemon-reload

 

至于第二个,没法解决,只能发现是由于使用iSCSI设备导致的。防。

当安装grid,到设置磁盘路径的时候,无法发现ORCL:*的盘,看安装日志类似:

KFOD-00307: asmlib error!! function = [asm_close], error = [0], mesg = [Invalid argument]
KFOD-00307: asmlib error!! function = [asm_open], error = [0], mesg = [Operation not permitted]

当然,可以直接使用磁盘发现路径为:/dev/oracleasm/disks ,那就意义不大了。

 

后续添加一个本地盘,也是用createdisk test创建,则该盘可以正常识别。

[root@oracle1 ~]# export XFILESEARCHPATH=/usr/dt/app-defaults/%L/Dt
[root@oracle1 ~]# export LANG=en_US.UTF-8
[root@oracle1 ~]# export DISPLAY=192.168.2.189:0.0
[root@oracle1 ~]# export ORACLE_BASE=/u01/app/grid
[root@oracle1 ~]# export THREADS_FLAG=native
[root@oracle1 ~]# export PWD=/soft/grid
[root@oracle1 grid]# export ORACLE_SID=+ASM1
[root@oracle1 grid]# export NLSPATH=/usr/dt/lib/nls/msg/%L/%N.cat
[root@oracle1 grid]# export USER=grid
[root@oracle1 grid]# export QTINC=/usr/lib64/qt-3.3/include
[root@oracle1 grid]# export CLASSPATH=
[root@oracle1 grid]# export NLS_TIMESTAMP_FORMAT="yyyy-mm-dd hh24:mi:ss"
[root@oracle1 grid]# export G_BROKEN_FILENAMES=1
[root@oracle1 grid]# export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
[root@oracle1 grid]# export HOME=/home/grid
[root@oracle1 grid]# export HOSTNAME=oracle1
[root@oracle1 grid]# export LESSOPEN=||/usr/bin/lesspipe.sh
[root@oracle1 grid]# export LD_LIBRARY_PATH=/tmp/OraInstall2024-01-04_04-21-39PM/ext/bin/../lib
[root@oracle1 grid]# export ORACLE_HOME=/tmp/OraInstall2024-01-04_04-21-39PM/ext/bin
[root@oracle1 grid]# export LOGNAME=grid
[root@oracle1 grid]# export SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass
[root@oracle1 grid]# export SHELL=/bin/bash
[root@oracle1 grid]# export CVS_RSH=ssh
[root@oracle1 grid]# export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"
[root@oracle1 grid]# export TEMP=/tmp
[root@oracle1 grid]# export SHLVL=2
[root@oracle1 grid]# export HISTCONTROL=ignoredups
[root@oracle1 grid]# export TMPDIR=/tmp
[root@oracle1 grid]# export MAIL=/var/spool/mail/grid
[root@oracle1 grid]# export QTDIR=/usr/lib64/qt-3.3
[root@oracle1 grid]# export JAVA_HOME=
[root@oracle1 grid]# export QTLIB=/usr/lib64/qt-3.3/lib
[root@oracle1 grid]# export PATH=/usr/bin:/usr/ccs/bin:/u01/app/11.2.0/grid/bin:/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/grid/bin:/usr/local/bin:/u01/app/11.2.0/grid/OPatch:/soft/grid/install
[root@oracle1 grid]# /tmp/OraInstall2024-01-04_04-21-39PM/ext/bin/kfod nohdr=true, verbose=true, disks=all, status=true, op=disks, asm_diskstring='ORCL:*'
10236 CANDIDATE ORCL:TEST <unknown> <unknown>
KFOD-00307: asmlib error!! function = [asm_close], error = [0], mesg = [Invalid argument]
KFOD-00307: asmlib error!! function = [asm_open], error = [0], mesg = [Operation not permitted]

 

10236 CANDIDATE ORCL:TEST <unknown> <unknown>   <--本地盘正常识别
KFOD-00307: asmlib error!! function = [asm_close], error = [0], mesg = [Invalid argument]         <--通过iSCSI的盘创建的就报这个错
KFOD-00307: asmlib error!! function = [asm_open], error = [0], mesg = [Operation not permitted]   <--通过iSCSI的盘创建的就报这个错

标签:bin,oracle1,iSCSI,ASMLIB,grid,usr,Oracle,export,root
From: https://www.cnblogs.com/PiscesCanon/p/17968113

相关文章

  • oracle 12c 安装部署
    oracle12c安装部署一、系统优化1、操作系统cat/etc/redhat-releaseRedHatEnterpriseLinuxServerrelease7.9(Maipo)2、设置hostnamehostnamectlset-hostname12ccat>>/etc/hosts<<-"EOF"172.16.71.1312cEOF3、关闭防火墙#关闭防火墙systemctlstopfir......
  • Oracle如何安装配置ASMLIB
     Oracle如何安装配置ASMLIB 官方安装参考文档/链接https://docs.oracle.com/en/database/oracle/oracle-database/19/ladbi/installing-and-configuring-oracle-asmlib-software.htmlFAQASMLIBCONFIGURE,VERIFY,TROUBLESHOOT(DocID359266.1)OracleLinux:Oracleasm......
  • 在国产操作系统下管理Oracle数据库
    Oracle公司是全球最大的信息管理软件及服务供应商,其开发的数据库产品因性能卓越而闻名,占有最大的市场份额,被广泛用于各个市场领域。然而在信创化的时代,国产操作系统已然是大势所趋,但是由于历史原因,在应用开发中使用Oracle数据库是市场主流,因此用户急需一款可以在国产操作系统上......
  • Linux7安装 Oracle 11g Error in invoking target 'agent nmhs' of makefile
    目录1现象2解决3附录1现象%86时出现报错Errorininvokingtarget'agentnmhs'ofmakefile2解决在makefile中添加链接libnnz11库的参数修改$ORACLE_HOME/sysman/lib/ins_emagent.mk,将$(MK_EMAGENT_NMECTL)修改为:$(MK_EMAGENT_NMECTL)-lnnz11建议修改前备份原始......
  • Oracle数据导入,导出方式
    什么是数据库导入导出?Oracle数据库的导入/导出,就是我们通常所说的Oracle数据的还原/备份。数据库导入:把.dmp格式文件从本地导入到数据库服务器中。数据库导出:把数据库服务器中的数据,导出到本地生成.dmp格式文件。Oracle数据导入导出方式与优缺点传统方式:exp(导出)和im......
  • 记录:使用Hyper-V搭建Centos作为Iscsi Server端
    目录0.背景1.系统环境设置1.1固定ip1.2换源2.设置数据盘2.1格式化数据盘并挂载3.配置iscsi服务3.1安装软件包3.23.3设置授权0.背景由于我的笔记本存储空间告急,但是NAS上的空间还很富裕,于是尝试将NAS的空间挂载到笔记本上使用。我想用来做新创建虚拟机的硬盘,smb/cifs共享肯......
  • [转帖]oracle导出千万级数据为csv格式
    当数据量小时(20万行内),plsqldev、sqlplus的spool都能比较方便进行csv导出,但是当数据量到百万千万级,这两个方法非常慢而且可能中途客户端就崩溃,需要使用其他方法。一、sqluldr2工具1.优缺点优点:高效;支持功能较多;用户只需有对应表查询权限;可以在从库执行缺点:目前已没有再维......
  • oracle如果想要在两个拼接字段中间加一些字符该怎么写
    如果想要在两个拼接字段的中间添加一些字符,可以使用字符串连接函数CONCAT或者字符串连接操作符||来实现。以下是两种写法的示例:使用CONCAT函数:SELECTCONCAT(字段1,'添加的字符',字段2)AS拼接结果FROM表名;在上述示例中,你需要将字段1和字段2替换为要拼接的实际字段......
  • 深入理解Oracle SGA和共享内存段
    在Oracle数据库中,SGA(SystemGlobalArea)是一个重要的内存区域,用于存储整个数据库实例共享的信息和数据。SGA由多个不同的区域组成,例如DatabaseBufferCache、SharedPool等。这些区域在操作系统中使用共享内存段来存储,而其中的一个关键参数是shmmax。SGA和共享内存段的关系SGA中的......
  • oracle的事务
    Oracle数据库中的事务具有四个基本特性,也称为ACID特性,包括原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。原子性:事务被视为不可分割的最小操作单位,事务中的所有操作要么全部提交成功,要么全部回滚失败,不会出现部分执行的情况。一致性:事务必须使数据库从......