问题概述
当前xx移动账务A数据库迁移需搭建ADG同步,现有存储已扩容,添加46块共享磁盘,但账务A数据库各节点上存在未知用处的共享磁盘(未使用状态),且节点上磁盘数量不一致,导致存储扩容后,AIX主机扫描磁盘出现各节点磁盘盘符不一致情况。
系统环境
操作系统:AIX 7.1
部署业务:账务A数据库(Oracle 12c RAC集群)
节点ip:节点1:192.168.X.1 节点2:192.168.X.2
存储:HP XP24000 存储
操作说明
涉及操作主要是从主机方面来处理ASM存储扩容及出现盘符不一致问题。
操作流程
1. 扫描磁盘
执行扫盘命令:cfgmgr -v
注意:需要在每个节点服务器上都要执行此命令,扫描出机器中新增的物理磁盘。
2. 确认新增磁盘情况
在2个节点服务器上查看磁盘设备看是否系统成功识别,当前看到两节点服务器新增存储磁盘已识别;但由于数据库两节点磁盘数量不一致,添加后的共享磁盘盘符不一致,如下所示:
#数据库节点服务器1
xxx:/home/xxx>lsdev -Cc disk | egrep hdisk1[0-9][0-9]hdisk101 Available 0B-00-02 XP MPIO Disk XP24000 Fibre
hdisk102 Available 0B-00-02 XP MPIO Disk XP24000 Fibre
hdisk103 Available 0B-00-02 XP MPIO Disk XP24000 Fibre
hdisk104 Available 0B-00-02 XP MPIO Disk XP24000 Fibre
hdisk105 Available 0B-00-02 XP MPIO Disk XP24000 Fibre
hdisk106 Available 0B-00-02 XP MPIO Disk XP24000 Fibre
......
......
hdisk144 Available 0B-00-02 XP MPIO Disk XP24000 Fibre
hdisk145 Available 0B-00-02 XP MPIO Disk XP24000 Fibre
hdisk146 Available 0B-00-02 XP MPIO Disk XP24000 Fibre
hdisk147 Available 0B-00-02 XP MPIO Disk XP24000 Fibre
hdisk148 Available 0B-00-02 XP MPIO Disk XP24000 Fibre
注:红色标记为节点1服务器上已存在磁盘,hdisk104-hdisk149这46块为扫描后新增磁盘。
#数据库节点服务器2
xxx:/home/xxx>lsdev -Cc disk | egrep hdisk1[0-9][0-9]hdisk101 Available 0B-00-02 XP MPIO Disk XP24000 Fibre
hdisk102 Available 0B-00-02 XP MPIO Disk XP24000 Fibre
hdisk103 Available 0B-00-02 XP MPIO Disk XP24000 Fibre
hdisk104 Available 0B-00-02 XP MPIO Disk XP24000 Fibre
hdisk105 Available 0B-00-02 XP MPIO Disk XP24000 Fibre
hdisk106 Available 0B-00-02 XP MPIO Disk XP24000 Fibre
hdisk107 Available 0B-00-02 XP MPIO Disk XP24000 Fibre
hdisk108 Available 0B-00-02 XP MPIO Disk XP24000 Fibre
……
……
hdisk151 Available 0B-00-02 XP MPIO Disk XP24000 Fibre
hdisk152 Available 0B-00-02 XP MPIO Disk XP24000 Fibre
hdisk153 Available 0B-00-02 XP MPIO Disk XP24000 Fibre
注:红色标记为节点2服务器上已存在磁盘,hdisk108-hdisk153这46块为扫描后新增磁盘。
3. 查看两节点新增46块磁盘的设备信息
确认是否一一对应为同一块硬盘设备。
首先查看节点1 hdisk104硬盘设备与节点2hdisk108硬盘设备:
节点1上hdisk104是扫盘后新增的第一块硬盘,节点2上hdisk108是扫盘第一块硬盘。
#数据库节点服务器1
xxx:/home/xxx>lsattr -El hdisk104 |grep lun_id
lun_id 0x60000000000000 Logical Unit Number ID False
------------------------------------------------------------------------
#数据库节点服务器2
xxx:/home/xxx>lsattr -El hdisk108 |grep lun_id
lun_id 0x60000000000000 Logical Unit Number ID False
查看节点1 hdisk149硬盘设备与节点2 hdisk153硬盘设备:
注:节点1上hdisk149是扫盘后新增的第一块硬盘,节点2上hdisk153是扫盘第一块硬盘。
#数据库节点服务器1
xxx:/home/xxx>lsattr -El hdisk149 |grep lun_id
lun_id 0x8d000000000000 Logical Unit Number ID False
----------------------------------------------------------------------
#数据库节点服务器2
xxx:/home/xxx>lsattr -El hdisk153 |grep lun_id
lun_id 0x8d000000000000 Logical Unit Number ID False
我们查看了两节点服务器上对应新增硬盘设备的lun_id,发现设备lun_id相同可以确定是同一块硬盘设备。到此可以通过遍历方式获取两节点服务器上新增磁盘设备信息中的lun_id,确认对应设备是来自同一块硬盘硬盘存储设备。
#!/bin/ksh
#此脚本为遍历获取扫盘后新增硬盘的lun_id信息
#脚本要在两台节点上都执行,比对两节点服务器上的输出信息即可
while read line
do
lunid=`lsattr -El $line | grep lun_id |awk {print $2} `
echo ${line}” ”${lunid}
#hdisk.count文件为两节点服务器上执行脚本时对应节点服务器上新增存储块设备列表(eg:hdisk104,可通过lsdev -Cc disk命令获取)
done
由于ASM扩容对硬盘有强一致性要求,遍历确认硬盘信息是必要的步骤(此处篇幅过长,只展示获取脚本,其他不作赘述)。
4. 修改硬盘设备盘符
修改硬盘设备盘符在当前情况有两种处理方式
修改两台节点上新增硬盘设备盘符
只修改节点1上新增硬盘设备盘符
由于节点2服务器上硬盘盘符划分信息比节点1服务器上盘符划分要多4个,修改节点1新增硬盘盘符与节点2新增硬盘盘符保持一致是可行的。为减少风险操作,避免故障发生,此处选择第二种方式:只修改节点1上新增硬盘设备盘符。
另外需要注意修改盘符需要从大到小的顺序修改,避免重复盘符出现,导致失败。
为保证安全性,通常我们先执行修改一块设备的磁盘盘符,修改后提交到数据库侧进行测试。示例如下:
#节点1服务器上操作
#修改新增的最后一块硬盘hdisk149,与节点2上最后一块硬盘盘符保持一致,修改成hdisk153
#执行命令(root权限)如下:
xxx:/home/xxx> rendev -l hdisk149 -n hdisk153
#查看修改后hdisk153 lun_id 及/dev目录下hdisk153块设备及rhdisk153字符设备是否已更改过来
xxx:/home/xxx> lsattr -El hdisk153 |grep lun_id
lun_id 0x8d000000000000 Logical Unit Number ID False
xxx:/home/xxx> ls -l /dev/*disk153
brw------- 1 root system 15,149 Mar 16 16:34 /dev/hdisk153
crw------- 1 root system 15,149 Mar 18 09:01 /dev/rhdisk153
如上所示,修改后hdisk153硬盘设备lun_id未变动,/dev/目录下块设备和字符设备均已修改成功。
接下来修改rhdisk153字符设备权限及块设备hdisk153 reserve_policy属性:
#节点1和节点2服务器需要执行操作
#执行命令(root权限)如下:
xxx:/home/xxx> chdev -l hdisk153 -a reserve_policy=no_reserve
xxx:/home/xxx> chown oracle:dba /dev/rhdisk153
xxx:/home/xxx> chmod 660 /dev/rhdisk153
修改成功后,告知数据库侧测试添加rhdisk153,看数据库中是否可以识别到。此示例中数据库侧识别成功,之后执行批量化修改其他硬盘设备(部分遍历操作脚本如下)。
#!/bin/ksh
#此脚本为遍历修改节点1上新增硬盘设备盘符(共45块,除去hdisk149已操作)
#脚本在节点1服务器上执行
while read line1 line2
do
rendev -l ${line1} -n ${line2}
done#hdisk2.count文件为节点1与节点2对应新增硬盘设备(块设备名)倒序排列列表
#示例内容如下(共45行):
#hdisk148 hdisk152
#hdisk147 hdisk151
#······
#hdisk104 hdisk108
#!/bin/ksh
#此脚本为遍历修改新增硬盘设备eserve_policy及对应字符设备权限
#示例中共45块,除去hdisk149已操作
#脚本在节点1和节点2服务器上执行,需要root权限
while read line1 line2
do
chdev -l ${line1} -a reserve_policy=no_reserve
chown oracle:dba /dev/${line2}
chmod 660 /dev/${line2}
done#hdisk_rhdisk.count文件为节点上与节点2上对应新增硬盘块设备及字符设备对应列表
#示例内容如下(共45行):
#hdisk108 rhdisk108
#hdisk109 rhdisk109
#······
#hdisk151 rhdisk151
#hdisk152 rhdisk152
问题总结
根据此次问题的发生及处理方式有以下几点总结:
ASM磁盘扩容对共享存储的要求:硬盘设备盘符一样且是同一块硬盘设备。
遇到磁盘盘符修改操作,查看各节点对应硬盘设备是否是同一块硬盘可查看硬盘lun_id信息。
批量化操作执行的前提是已验证过执行过程的可行性、准确性。
更多精彩干货分享
点击下方名片关注
IT那活儿
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/129814.html
摘要:问题九库控制文件扩展报错库的扩展报错,用的是裸设备,和还是原来大小,主库的没有报错,并且大小没有变,求解释。专家解答从报错可以看出,控制文件从个块扩展到个块时报错,而裸设备最大只支持个块,无法扩展,可以尝试将参数改小,避免控制文件报错。 链接描述引言 近期我们在DBASK小程序新关联了运维之美、高端存储知识、一森咖记、运维咖啡吧等数据领域的公众号,欢迎大家阅读分享。 问答集萃 接下来,...
摘要:一般用到最多的软件就是分区助手,分区助手可以调整我们磁盘的空间,也可以重新可视化磁盘分区。这里简单的记录如何使用分区助手将磁盘重新格式化分区。当然这是在我们的分区助手软件中操作的。利用分区助手是不是很简单一般我们新购买的磁盘默认就一个盘符,或者是我们在给电脑系统重新做系统的时候需要调整盘符。一般用到最多的软件就是分区助手,分区助手可以调整我们磁盘的空间,也可以重新可视化磁盘分区。在这篇文章中...
摘要:本文记录一些下的卷管理和配置方法。例如上面的命令创建了一个名叫的,并将全部划分用于。使用查看的分配情况,下面是该命令的输出样例格式化。格式化时需要指定一个日志设备,可以用刚刚创建的日志类型的对应的设置名,或者使用一个已经存在的日志设备。 我们知道,现在操作系统都具有默认的卷管理系统来管理磁盘。详见存储技术之卷管理和文件系统。总体来说,从下向上分为物理磁盘(PV)、逻辑卷组(VG)、逻辑...
摘要:平台采用分布式存储系统作为虚拟化存储,用于对接虚拟化计算及通用数据存储服务,消除集中式网关,使客户端直接与存储系统进行交互,并以多副本纠删码多级故障域数据重均衡故障数据重建等数据保护机制,确保数据安全性和可用性。云计算平台通过硬件辅助的虚拟化计算技术最大程度上提高资源利用率和业务运维管理的效率,整体降低 IT 基础设施的总拥有成本,并有效提高业务服务的可用性、可靠性及稳定性。在解决计算资源的...
阅读 1235·2023-01-11 13:20
阅读 1543·2023-01-11 13:20
阅读 996·2023-01-11 13:20
阅读 1651·2023-01-11 13:20
阅读 3958·2023-01-11 13:20
阅读 2456·2023-01-11 13:20
阅读 1290·2023-01-11 13:20
阅读 3452·2023-01-11 13:20