当前位置: 首页 > INSTALL > 正文

我们的文章会在微信公众号IT民工的龙马人生博客网站( www.htz.pw )同步更新 ,欢迎关注收藏,也欢迎大家转载,但是请在文章开始地方标注文章出处,谢谢!
由于博客中有大量代码,通过页面浏览效果更佳。

今天我们开始分享AFD系列四:AFD安装异常处理,在阅读此篇文章之间,建议先阅读此系列前三篇文章,请点击下面链接。
ASMFD系列一:ASMFD的介绍与常见问题
ASMFD系列二:AFD在CentOS环境中部署
ASMFD系列三:AFD的安装与建议

ASMFD与内核版本是强关联,每个版本的ASMFD都与特定的内核版本想匹配。在系统内核层,通过oracleafd.ko动态链接库来完成内核模块之间的调用。在用户态中,通过libafd19.so动态链接库来完成模块之间的调用。当文件异常,引起动态链接库文件异常时,将引起ASMFD功能无法正常使用。今天就和大家一起分享怎么确认ASMFD动态链接库文件是否有异常、ASMFD安装异常后怎么重新安装ASMFD

1,确认ASMFD是否正常

Oracle提供多个命令来检查ASMFD是否正常,同时为了简化用户的学习成本,Oracle又将命令进行封装,集成到大家熟悉的asmcmd中,为用户提供统的ASM层的管理工具。

1.1 ASMFD加载状态

查询ASMFD的状态和版本号,如下所示:

[grid@19crac1 ~]$ asmcmd afd_state
	ASMCMD-9526: The AFD state is 'LOADED' and filtering is 'ENABLED' on host '19crac1'
	
	

	[grid@19crac1 ~]$ afddriverstate version
	AFD-9325:     Driver OS kernel version = 3.10.0-862.el7.x86_64.
	AFD-9326:     Driver build number = 220802.
	AFD-9231:     Driver build version = 19.0.0.0.0 (19.17.0.0.0).
	AFD-9547:     Driver available build number = 220802.
	AFD-9232:     Driver available build version = 19.0.0.0.0 (19.17.0.0.0).

如状态异常,可以手动重新加载,加载的方式也比较多,在Linux平台建议使用systemd的方式来重新加载,命令如下:

[root@19crac1 5.4.17-2011.6.2.el7uek.x86_64]# /etc/init.d/afd run
	AFD-641: Checking for existing AFD installation.
	AFD-643: Validating AFD installation files for operating system.
	AFD-9393: Verifying ASM administrator setup.
	AFD-637: Loading installed AFD drivers.
	AFD-649: Verifying AFD devices.
	AFD-9156: Detecting control device '/dev/oracleafd/admin'.
	AFD-9294: updating file /etc/sysconfig/oracledrivers.conf
	AFD-9322: completed
	

	[root@19crac1 5.4.17-2011.6.2.el7uek.x86_64]# /etc/init.d/afd start
	AFD-641: Checking for existing AFD installation.
	AFD-643: Validating AFD installation files for operating system.
	AFD-9393: Verifying ASM administrator setup.
	AFD-637: Loading installed AFD drivers.
	AFD-649: Verifying AFD devices.
	AFD-9156: Detecting control device '/dev/oracleafd/admin'.
	AFD-9294: updating file /etc/sysconfig/oracledrivers.conf
	AFD-9322: completed

run和start两种方式都支持,两种方式对应的系统层执行的命令都是一样的,如重新加载过程中有异常或者加载完成后状态仍不正确,请继续向下分析。

1.2 查看ASMFD模块

操作系统上可通过lsmod来查询模块是否加载,再通过modinfo可以查看详细的模块文件和对应的版本等信息。

	[grid@19crac1 ~]$ lsmod|grep oracle
	oracleacfs           5238775  0
	oracleadvm           1176594  0
	oracleoks             781410  2 oracleacfs,oracleadvm
	oracleafd             222652  1
	[grid@19crac1 ~]$ modinfo oracleoks
	filename:       /lib/modules/3.10.0-1160.el7.x86_64/extra/usm/oracleoks.ko
	author:         Oracle Corporation
	license:        Proprietary
	retpoline:      Y
	rhelversion:    7.5
	srcversion:     533BB7E5866E52F63B9ACCB
	depends:
	vermagic:       3.10.0-862.el7.x86_64 SMP mod_unload modversions
	sig_id:         X509
	signer:         Oracle Linux RHCK Module Signing Key
	sig_key:        DD:99:5B:15:5C:19:B3:A7:C3:EF:77:07:B9:69:E2:5F:96:39:66:6E
	sig_hashalgo:   sha256
	signature:      01:00:8C:02:19:B7:90:DA:9C:A8:E7:7A:3C:8C:85:81:9C:D9:9C:D3:

/lib/modules/3.10.0-1160.el7.x86_64/extra/usm/oracleoks.ko为模块文件。

1.3 验证模块文件是否损坏

在上一篇文章安装的分享中,我们展示ASMFD的动态链接库文件是在安装ASMFD时从集群安装目录中直接复制过去的,并且动态链接库文件是一个静态文件,在运行过程中是不会想改此文件,所以我们可以通过md5sum的值和文件修改的时间来判断动态链接库文件是否发生损坏。

  • 通过Linux的md5sum
[grid@19crac1 ~]$ md5sum /lib/modules/3.10.0-1160.el7.x86_64/extra/usm/oracleoks.ko
 917f8970e89e5f6023b5a93b7eb3fc3e  /lib/modules/3.10.0-1160.el7.x86_64/extra/usm/oracleoks.ko

 [grid@19crac1 ~]$ cd /oracle/app/19.3.0/grid/usm/install/Oracle/
 [grid@19crac1 Oracle]$ find ./ -name "oracleoks.ko"
 ./EL7UEK/x86_64/4.1.12-112.16.4/4.1.12-112.16.4-x86_64/bin/oracleoks.ko
 ./EL7UEK/x86_64/5.4.17-2011.0.7/5.4.17-2011.0.7-x86_64/bin/oracleoks.ko
 ./EL7/x86_64/3.10.0-862/3.10.0-862-x86_64/bin/oracleoks.ko

如果不知道内核版本号,可以通过系统命令查询,如下:

[grid@19crac1 ~]$ uname -r
  3.10.0-1160.el7.x86_64

  [grid@19crac1 Oracle]$ md5sum ./EL7/x86_64/3.10.0-862/3.10.0-862-x86_64/bin/oracleoks.ko
  917f8970e89e5f6023b5a93b7eb3fc3e  ./EL7/x86_64/3.10.0-862/3.10.0-862-x86_64/bin/oracleoks.ko

如果md5sum出来的值一样,说明文件未损坏。

  • 通过Linux的stat命令判断
[grid@19crac1 Oracle]$ stat /lib/modules/3.10.0-1160.el7.x86_64/extra/usm/oracleoks.ko
   File: ‘/lib/modules/3.10.0-1160.el7.x86_64/extra/usm/oracleoks.ko’
   Size: 13277202  	Blocks: 25936      IO Block: 4096   regular file
 Device: fd00h/64768d	Inode: 10489581    Links: 1
 Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
 Access: 2023-01-02 18:27:50.550788198 +0800
 Modify: 2023-01-02 18:27:49.215788152 +0800
 Change: 2023-01-02 18:27:49.220788152 +0800
  Birth: -

 [grid@19crac1 Oracle]$ stat ./EL7/x86_64/3.10.0-862/3.10.0-862-x86_64/bin/oracleoks.ko
   File: ‘./EL7/x86_64/3.10.0-862/3.10.0-862-x86_64/bin/oracleoks.ko’
   Size: 13277202  	Blocks: 25936      IO Block: 4096   regular file
 Device: fd09h/64777d	Inode: 539971356   Links: 1
 Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
 Access: 2023-01-02 18:26:50.432786126 +0800
 Modify: 2022-08-02 18:59:18.000000000 +0800
 Change: 2023-01-02 18:26:49.138786081 +0800
  Birth: -

1.4 so文件的验证

用户态动态链接库文件的路径如下

/opt/oracle/extapi/64/asm/orcl/1/libafd19.so
/oracle/app/19.3.0/grid/lib/libafd19.so

同样采用1.3中提到的mk5sum的方式来确认文件是否有损坏。

如果上述状态异常或者文件不一致时,需要对ASMFD进行重新安装

2,重新安装ASMFD

ASMFD重启安装需要停节点的数据库和集群软件,需要提前做好停机的准备工作,特别是有ACFS文件系统的,也需要做好相应文件系统卸载准备,ASMFD重新安装,对当前ASM中已经配置的磁盘是无任何影响的,即不会修改磁盘头的信息也不回修改磁盘中的数据。详细的操作如下,这里只给出了操作的名字,日志信息无进行展示。

  • 停集群
#/oracle/app/19.3.0/grid/bin/crsctl stop crs
  • 停ACFS内核
#/oracle/app/19.3.0/grid/bin/acfsload  stop
  • 安装ASMFD
#/oracle/app/19.3.0/grid/bin/afdroot install -v
  • 扫描磁盘
#/oracle/app/19.3.0/grid/bin/asmcmd afd_scan

如果扫描磁盘后,无法发现ASM磁盘,请确认是否配置正确的磁盘扫描路径:afd_diskstring参数,如果在Linux平台,系统自带的多路径下的路径为** /dev/mapper/**,如果使用其它多路径软件,请查询相应多路径官方文档。

#/oracle/app/19.3.0/grid/bin/asmcmd afd_dsset='/dev/mapper/data*'
  • 查看磁盘标签
#/oracle/app/19.3.0/grid/bin/asmcmd afd_lsdsk
  • 加载ACFS
#/oracle/app/19.3.0/grid/bin/acfsload start
  • 启动集群
#/oracle/app/19.3.0/grid/bin/crsctl start crs

——————作者介绍———————–
姓名:黄廷忠
现就职:Oracle中国高级服务团队
曾就职:OceanBase、云和恩墨、东方龙马等
电话、微信、QQ:18081072613
个人博客: (http://www.htz.pw)
CSDN地址: (https://blog.csdn.net/wwwhtzpw)
博客园地址: (https://www.cnblogs.com/www-htz-pw)


ASMFD系列四:检查AFD状态和重新安装AFD:等您坐沙发呢!

发表评论

gravatar

? razz sad evil ! smile oops grin eek shock ??? cool lol mad twisted roll wink idea arrow neutral cry mrgreen

快捷键:Ctrl+Enter