• ASM diskgroup中数据不均衡的另外一种可能原因


    今天,一同事让帮忙看看一个问题。

    主要的问题是:业务人员创建一个大小为100GB的表空间时失败,提示空间不足。但是使用asmcmd lsdg命令查看时,该diskgroup还剩余1.5TB的空间。

    (1).我用让同事执行如下命令,查看该diskgroup中各个磁盘的空间使用情况:

    col path for a50
    set linesize 200
    set pagesize 200
    select group_number, MOUNT_STATUS, TOTAL_MB, FREE_MB, NAME, FAILGROUP, PATH from v$asm_disk where group_number=1 order by 1, 6, 5;

     可以看出,这个diskgroup中共有177个磁盘,前面174块磁盘都是32GB大小,页后来新增的3块磁盘是500GB大小。前面32GB的盘数据分布均衡,每块盘只剩余32MB左右的空间,而后来新增的3块盘,基本上没有使用。

    (2).一般情况下不会出现这种情况,因为向diskgroup中加盘时,会自动触发rebalance。为了防止因为某些原因没有做数据重组,建议手动发起rebalance操作。

    SQL> alter diskgroup data rebalance power 8;

    (3).手动发起rebalance操作,数据重组完成后,这3块磁盘仍然未写入任何数据。一时没想明白是什么原因,一般情况下,即使diskgroup中磁盘的大小不一致,也不会像现在这样,完全不写入数据。建议同事从diskgroup中删除这3块磁盘,然后新增32GB的盘加入该diskgroup.

    (4).同事删盘时报错,如下所示:

    (5).从错误日志可以看出,提示这3块磁盘是quorum disk。很奇怪 ,查看ASM的日志,看看当初加盘的日志。结果发现了如下日志:

    可以看出,这3块磁盘被当作quorum disk加入了diskgroup中了,所以不允许存放任何用户数据。

    (6).解决办法:

    知道了原因, 处理就非常简单了。

    SQL> alter diskgroup data drop quorum disk 'data_0174','data_0175','data_0176';

    总结:

    为什么会出现这样的问题呢? 后来得知这3块磁盘是通过asmca图形界面进行添加的。

     可以看到,在图形界面,有Quorum选项,当初在向diskgroup中添加磁盘时,肯定是把这个选项也选中了。 其实非常不建议使用asmca的图形界面来管理磁盘,因为它还有另外一个大坑:那就是没办法指定failgroup,默认一个磁盘就是一个failgroup。而在一些分布式环境,需要将一个存储节点中的所有磁盘做成一个failgroup。所以,磁盘管理,还是用命令行吧。

  • 相关阅读:
    jquery和js常用的遍历数组的方法
    jquery获取某组件距离边框的距离
    jquery获取鼠标移动时的位置
    springboot整合websocket实现登录挤退现象
    使用Gitblit搭建Git服务器教程
    Gradle史上最详细解析
    推荐5个提高Java开发效率的工具
    JBoss7详细配置指南
    XMLBEANS的使用总结
    使用XMLBeans 处理XML
  • 原文地址:https://www.cnblogs.com/missyou-shiyh/p/13251582.html
Copyright © 2020-2023  润新知