测试一体机ASM failgroup的相关问题处理
环境:3台虚拟机 RHEL 7.3 + Oracle RAC 11.2.0.4
问题现象:RAC运行正常,ASM磁盘组Normal冗余,有failgroup整体故障,有failgroup配置错误。
温馨提示:本文并不是市场上任何一款商业的一体机产品,只是我为了学习这类分布式存储架构自己模拟的实验环境,为了区分我暂时称之为xData吧_。
1.问题现象确认
SQL> select group_number, name, total_mb, free_mb, USABLE_FILE_MB, offline_disks, state, type from v$asm_diskgroup;
GROUP_NUMBER NAME TOTAL_MB FREE_MB USABLE_FILE_MB OFFLINE_DISKS STATE TYPE
------------ ------------------------------ ---------- ---------- -------------- ------------- ---------------------- ----------
1 CRS 2000 1170 585 0 MOUNTED NORMAL
2 DATA 40960 35652 7586 0 MOUNTED NORMAL
SQL> select group_number, disk_number, name, path, failgroup, mode_status, voting_file from v$asm_disk order by 1, 2;
GROUP_NUMBER DISK_NUMBER NAME PATH FAILGROUP MODE_STATUS VO
------------ ----------- ------------------------------ ----------------------- -------------------- -------------- --
0 0 /dev/CELL01-data2 ONLINE N
0 1 /dev/CELL01-data1 ONLINE N
0 2 /dev/CELL01-crs1 ONLINE Y
1 1 CRS_0001 /dev/CELL02-crs2 CRS_0001 ONLINE Y
1 2 CRS_0002 /dev/CELL03-crs3 CRS_0002 ONLINE Y
2 0 DATA_0000 /dev/CELL03-data1 DATA_0000 ONLINE N
2 1 DATA_0001 /dev/CELL03-data2 DATA_0001 ONLINE N
2 2 DATA_0002 /dev/CELL02-data1 CELL02 ONLINE N
2 3 DATA_0003 /dev/CELL02-data2 CELL02 ONLINE N
9 rows selected.
可以看到不但CELL01节点的所有盘被删除,而且CELL03节点的数据盘,failgroup目前也配置不正确!
2.重新加入CELL01的盘
由于时间超过默认的3.6h,offline的盘已经被删除,只有重新加入CELL01的盘才可以。
alter diskgroup CRS add disk '/dev/CELL01-crs1';
alter diskgroup DATA ADD FAILGROUP CELL01 disk '/dev/CELL01-data1', '/dev/CELL01-data2' rebalance power 5;
直接这样加盘很可能会遇到下面这类错误,因为这些盘之前是被使用过的:
SQL> alter diskgroup CRS add disk '/dev/CELL01-crs1';
alter diskgroup CRS add disk '/dev/CELL01-crs1'
*
ERROR at line 1:
ORA-15032: not all alterations performed
ORA-15033: disk '/dev/CELL01-crs1' belongs to diskgroup "CRS"
这个问题可以通过dd盘头,也可以加盘尝试加force参数来解决,我这里选择dd盘头的方式:
[root@db01 ~]# dd if=/dev/zero of=/dev/CELL01-crs1 bs=8k count=1000
1000+0 records in
1000+0 records out
8192000 bytes (8.2 MB) copied, 0.0691801 s, 118 MB/s
dd盘头之后再次尝试添加就可以顺利完成:
SQL> alter diskgroup CRS add disk '/dev/CELL01-crs1';
Diskgroup altered.
同样的,将CELL01的数据盘也重新加入到DATA磁盘组中,failgroup名称为CELL01:
SQL> alter diskgroup DATA ADD FAILGROUP CELL01 disk '/dev/CELL01-data1', '/dev/CELL01-data2' rebalance power 5;
Diskgroup altered.
通过v$asm_operation视图可以查看磁盘重新平衡的进度,直到下面的查询不再返回结果说明重平衡完成:
SQL> select * from v$asm_operation;
GROUP_NUMBER OPERATION STATE POWER ACTUAL SOFAR EST_WORK EST_RATE EST_MINUTES ERROR_CODE
------------ ---------- -------- ---------- ---------- ---------- ---------- ---------- ----------- --------------------
2 REBAL RUN 5 5 366 529 348 0
SQL> select * from v$asm_operation;
no rows selected
3.修改failgroup的配置
CELL03的数据盘,failgroup目前配置还不正确。
SQL> alter diskgroup DATA drop disk DATA_0000, DATA_0001;
Diskgroup altered.
查询v$asm_operation视图可以查看磁盘重新平衡的进度,完成后再重新加回磁盘组,指定确切的failgroup(CELL03):
SQL> alter diskgroup DATA ADD FAILGROUP CELL03 disk '/dev/CELL03-data1', '/dev/CELL03-data2' rebalance power 5;
Diskgroup altered.
再次关注重平衡进度,最后查询一切正常,结果如下:
SQL> col path for a50
SQL> select group_number, disk_number, name, path, failgroup, mode_status, voting_file from v$asm_disk order by 1, 2;
GROUP_NUMBER DISK_NUMBER NAME PATH FAILGROUP MODE_STATUS VO
------------ ----------- ------------------------------ ----------------------- -------------------- -------------- --
1 0 CRS_0000 /dev/CELL01-crs1 CRS_0000 ONLINE Y
1 1 CRS_0001 /dev/CELL02-crs2 CRS_0001 ONLINE Y
1 2 CRS_0002 /dev/CELL03-crs3 CRS_0002 ONLINE Y
2 0 DATA_0000 /dev/CELL03-data1 CELL03 ONLINE N
2 1 DATA_0001 /dev/CELL03-data2 CELL03 ONLINE N
2 2 DATA_0002 /dev/CELL02-data1 CELL02 ONLINE N
2 3 DATA_0003 /dev/CELL02-data2 CELL02 ONLINE N
2 4 DATA_0004 /dev/CELL01-data1 CELL01 ONLINE N
2 5 DATA_0005 /dev/CELL01-data2 CELL01 ONLINE N
9 rows selected.
SQL> select group_number, name, total_mb, free_mb, USABLE_FILE_MB, offline_disks, state, type from v$asm_diskgroup;
GROUP_NUMBER NAME TOTAL_MB FREE_MB USABLE_FILE_MB OFFLINE_DISKS STATE TYPE
------------ ------------------------------ ---------- ---------- -------------- ------------- ---------------------- ----------
1 CRS 3000 2033 516 0 MOUNTED NORMAL
2 DATA 61440 56012 17766 0 MOUNTED NORMAL
说明:一般我会将磁盘组的兼容性参数设置为11.2,如有特殊需求,还可以设置disk_repair_time(默认3.6h)。
SQL> col COMPATIBILITY for a30
SQL> col DATABASE_COMPATIBILITY for a30
SQL> select NAME, COMPATIBILITY, DATABASE_COMPATIBILITY from v$asm_diskgroup;
NAME COMPATIBILITY DATABASE_COMPATIBILITY
------------------------------ ------------------------------ ------------------------------
CRS 11.2.0.0.0 11.2.0.0.0
DATA 11.2.0.0.0 11.2.0.0.0
--设置DATA磁盘组disk_repair_time(可理解为磁盘离线删除的时间)属性为4.5h
SQL> ALTER DISKGROUP data SET ATTRIBUTE 'disk_repair_time' = '4.5h';
Diskgroup altered.
测试一体机ASM failgroup的相关问题处理的更多相关文章
- 测试一体机ASM Disk online操作
环境:3台虚拟机 RHEL 7.3 + Oracle RAC 11.2.0.4 问题现象:RAC运行正常,ASM磁盘组Normal冗余,节点主机重启,offline状态的asm disk短时间内可以直 ...
- ASM FailGroup验证
ASM-FailGroup验证 一.FailGroup有效性验证 创建DiskGroup,在Redundancy选项 High:至少3块disk,至少3个failgroup,每一个extent存在1主 ...
- 测试functional的bind以及相关功能
注:在VS2010 UPDATE1下测试通过 /*测试functional的bind以及相关功能*/ #include <iostream> #include <functional ...
- linux下测试web访问及网络相关的命令
curl命令 curl是linux系统命令行下用来简单测试web访问的工具. curl -xip:port www.baidu.com -x可以指定ip和端口,省略写hosts,方便实用 -I ...
- 快速准备(复制替换)一套新测试环境,CentOS7 MySQL相关配置
拿到一个新环境,需要找相关配置,我有一个办法,相对能比较快速地复制一套环境出来. 修改机器配置: virsh 相关几条命令,已完成,后续我再整理补充... 虚拟化相关,参考:https://www.c ...
- 【RF库测试】Exit For Loop 相关
1.Exit For Loop If:满足条件时,跳出循环,后面的循环不再执行 2.Continue For Loop If:满足条件时,跳出本次循环,继续执行后面的循环
- Oracle ASM 详解
ASM:Automatic Storage Management, 是Oracle 主推的一种面向Oracle的存储解决方案, ASM 和 RDBMS 非常相似,ASM 也是由实例和文件组成, 也可以 ...
- ORACLE ASM 日常管理
ASM概述 Automatic Storage Management(ASM)是Oracle数据库10g中一个非常出色的新特性,它以平台无关的方式提供了文件系统.逻辑卷管理器以及软件RAID等服务.A ...
- 探索ORACLE之ASM概念(完整版)
探索ORACLE之ASM概念(完整版) 本文出自https://www.jb51.net/article/43527.htm ASM是Oracle 10g R2中为了简化Oracle数据库的管理而推出 ...
随机推荐
- 用C# 7.0的switch...case模式匹配取代一堆if语句
今天在重构代码时对下面的一堆if语句实在看着不顺眼. if(activation == null) { _logger.LogError("x1"); return Boolean ...
- cvLoadImage函数详解
cvLoadImage是一个计算机函数,用途是图像处理,函数原型是IplImage* cvLoadImage( const char* filename, int flags=CV_LOAD_IMAG ...
- HDU 3183 - A Magic Lamp - [RMQ][ST算法]
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3183 Problem DescriptionKiki likes traveling. One day ...
- tensorflow 的tf.where详解
最近在用到数据筛选,观看代码中有tf.where()的用法,不是很常用,也不是很好理解.在这里记录一下 tf.where( condition, x=None, y=None, name=None ) ...
- 关于数据库DML、DDL、DCL区别
总体解释:DML(data manipulation language): 它们是SELECT.UPDATE.INSERT.DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据 ...
- [administrator][netctl] 给未插线未UP端口设置IP
以下内容均为使用netctl配置工具前提下: 需求: Tstation管理口做日常使用.没有千兆交换.所以加一个一块千兆的卡.这块卡是为了做数据传输专用的. 目前主要就是每周给T7备份使用.但是由于是 ...
- Python3+Selenium环境配置
一.所需工具 1.Python3.6安装包 2.Selenium安装包(selenium-server-standalone-3.8),如果是Python3的话可以不用下载selenium压缩包,Py ...
- LeetCode 463 Island Perimeter 解题报告
题目要求 You are given a map in form of a two-dimensional integer grid where 1 represents land and 0 rep ...
- Java之旅_高级教程_数据结构
摘自:http://www.runoob.com/java/java-data-structures.html 了解即可 Java 数据结构 Java 工具包提供了强大的数据结构.在Java中的数据结 ...
- pandas网页操作基础
ipython notebook 命令行输入ipython notebook 此时,浏览器会自动运行并打开ipython网页 基本操作 如上图所示,新建一个项目 导入相关模块,建立一个数据集 制造数据 ...