Oracle 数据库现在大部分都用 ASM 管理磁盘,在操作系统上不能直观看出盘是否是 ASM Disk 。因此我们一般会在安装 Oracle 配置 ASM 前将盘改个特定字符串开头的名字,以便系统开发和运维人员一眼就能看出它们是 Oracle ASM Disk 。
那如果在安装 Oracle 配置 ASM 前没有改名怎么办? 做 IT 运维都是整天战战兢兢如履薄冰。要是哪天被不知情的同事把 ASM 用到的磁盘格了,导致生产系统故障,需要面对长时间从备份恢复数据 或者 丢失部分数据的话, DBA 面临的可就是 “ 被 ” 删库不得不跑路了。
Oracle 中给已有 ASM_Diskgroup 中磁盘改名也是比较 easy 的。以 Oracle RAC on AIX 为例, AIX 上缺省磁盘名都是 hdiskXX ,我们可以 rendev 命令对盘进行改名( Linux 系统上用 UDEV 实现)。既然要对底层盘改名,那最好是有一个短暂的数据库停机时间窗口。如果没有停机时间窗口, Oracle RAC 逐个节点操作,完成在线改名,步骤如下:
我们再来说说对新命名盘为什么还要用 hdisk 前缀,比如上面示例中改名为 hdisk_ora_ocr1, hdisk_ora_ocr2, hdisk_ora_ocr3 。如果不用 hdisk 前缀,直接改名为 ora_ocr1, ora_ocr2, ora_ocr3 行不行?答案是这样会很麻烦。
Oracle RAC 从 11gR2 开始,把 GI(Grid Infrastructure) 集群的配置信息存在 本地,并启用了一个很重要的守护进程( gpnpd ),相应的配置文件则存在 $GRID_HOME/gpnp/hostname
/profiles/peer/profile.xml 。 Oracle 依据这个配置文件中 DiscoveryString="/dev/rhdisk*" 找 ASM OCR 所在盘,然后启动集群 ASM 。如果把盘名前缀改成了非 hdisk 开头,则需要修正这个 profile.xml ,而这个 profile.xml 有 wallet 机制保护,不能直接编辑,需要用 Oracle gpnptool 工具去改,想想是不是有点麻烦。
做运维讲究大道至简,不能也没必要把问题搞得更复杂(如果出于好奇想研究研究,您可以参考 Oracle DOC: https://community.oracle.com/docs/DOC-1006976 )。 AIX 上盘名最长可达 15 个字符,前缀依然用 hdisk ,后面还有 10 个字符,应该足够表达 ASM 盘的用途了。这样就可以轻松改好已有 ASM diskgroup 盘的名字,再也不用担心误操作 “ 被 ” 删库跑路了。
如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!
赞2
添加新评论0 条评论