ASM磁盘组如何更换磁盘

63次阅读
没有评论

共计 5902 个字符,预计需要花费 15 分钟才能阅读完成。

这篇文章将为大家详细讲解有关 ASM 磁盘组如何更换磁盘,丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

更换存储操作步骤
1、增加新磁盘,对新磁盘创建新 asm disk
2、把新 asm disk 加入 asm group
3、等待 asm group 数据重平衡完毕
4、再从 asm group 删除旧磁盘对应的旧 asm disk
5、等待 asm group 数据重平衡完毕
6、拆下旧磁盘

磁盘组 asm group 要改变大小:
如果原来磁盘组 1T,现在想换成 100G
如 asm group 是外部冗余,里面只有一个 asm disk,这个 asm disk 1T,则新增一个 asm disk 100G,再删除 1T 的 asm disk
如 asm group 是 normal 冗余,里面有两个 asm disk,这两个 asm disk 总计 1T,则新增两个 asm disk 总结 100G,再删除 1T 的两个 asm dis

v$asm_operation
显示 asm 重平衡的信息
V$ASM_OPERATION displays one row for every active Oracle ASM long running operation executing in the Oracle ASM instance.
select * from v$asm_operation;       – 此语句在 ASM 实例上执行才能看到准确信息

ASM_POWER_LIMIT
ASM_POWER_LIMIT 指定用于磁盘再平衡的自动存储管理实例的最大功耗。上限越高,再平衡的速度就越快。较低的值需要更长的时间,但是消耗更少的处理和 I / O 资源。
ASM_POWER_LIMIT specifies the maximum power on an Automatic Storage Management instance for disk rebalancing. The higher the limit, the faster rebalancing will complete. Lower values will take longer, but consume fewer processing and I/O resources

ASM_POWER_LIMIT 设置为 0 时,不会自动重平衡,但是可以使用下面的语句来手动重平衡(比如白天加盘了,晚上再让它手动执行)
alter diskgroup DATA rebalance power 10;      – 此语句只能在 ASM 实例上运行, 且连接方式为 as sysasm

旧磁盘可以直接物理拆除,拆除后对应的 asm disks 自动消失了,这个 asm disk 可以给后面的磁盘重用,比如 sdd1 对应的 asm disk 是 /dev/oracleasm/disks/OCPFRA1,把物理磁盘 sdd 拆掉后,/dev/oracleasm/disks/OCPFRA1 自动消失了,如果以后来了个新磁盘 sdk,可以 oracleasm createdisk OCPFRA1 /dev/sdk1

ASM 磁盘组更换磁盘的实践案例,对空间不足的 asm group 更换空间更大的 asm disk(本案例 4 - 9 步骤对应本文最上说明更换存储操作步骤的 1 - 6 个步骤)

1、确定空间不足的 ASM 磁盘组,结果是 FRA,可用空间 36%
SQL select name,total_mb,free_mb,round((free_mb/total_mb)*100) from gv$asm_diskgroup;
NAME                   TOTAL_MB    FREE_MB ROUND((FREE_MB/TOTAL_MB)*100)
——————– ———- ———- —————————–
DATA                       6141       4195                            68
FRA                        2047        739                            36

2、确定 FRA 的冗余方式和对应的 asm disk,结果是 EXTERN 和 /dev/oracleasm/disks/OCPFRA1
SQL select a.path,a.name,a.mode_status,b.name diskgroupname,b.type from v$asm_disk a,v$asm_diskgroup b where a.group_number=b.group_number and b.name= FRA
PATH                                               NAME                 MODE_ST DISKGROUPN TYPE
————————————————– ——————– ——- ———- ——
/dev/oracleasm/disks/OCPFRA1                       FRA_0000             ONLINE  FRA        EXTERN

3、确定 /dev/oracleasm/disks/OCPFRA1 对应的物理磁盘信息、对应的数据库对象,结果是 sdd1 容量 2G、对应表 TABLE_TEW
[root@ASMDB ~]# ll /dev/oracleasm/disks/OCPFRA1
brw-rw—- 1 grid dba 8, 49 Jun  7 19:11 /dev/oracleasm/disks/OCPFRA1

[root@ASMDB ~]# ll /dev |grep disk |grep 8 |grep 49
brw-r—– 1 root disk    8,  49 Jun  7 16:11 sdd1

[root@ASMDB ~]# fdisk -l |grep sdd
Disk /dev/sdd: 2147 MB, 2147483648 bytes
/dev/sdd1               1         261     2096451   83  Linux

[oracle@ASMDB ~]$ sqlplus / as sysdba
SQL select tablespace_name,file_name from dba_data_files where file_name like %FRA%
TABLESPACE_NAME      FILE_NAME
——————– ————————————————————
TEW                  +FRA/tew01.dbf

SQL select table_name,tablespace_name from dba_tables  where tablespace_name= TEW and rownum
TABLE_NAME                     TABLESPACE_NAME
—————————— ——————–
TABLE_TEW                      TEW

SQL select count(*) from TABLE_TEW;
  COUNT(*)
———-
    601480

4、新增的物理磁盘是 sdg1,创建 asm disk 为 /dev/oracleasm/disks/OCPFRA2
[root@ASMDB ~]# oracleasm createdisk OCPFRA2 /dev/sdg1

[root@ASMDB ~]# oracleasm scandisks
Reloading disk partitions: done
Cleaning any stale ASM disks…
Scanning system for ASM disks…

[root@ASMDB ~]# oracleasm listdisks
OCPDATA1
OCPDATA2
OCPDATA3
OCPFRA1
OCPFRA2

[grid@ASMDB ~]$ asmcmd lsdsk –candidate
Path
/dev/oracleasm/disks/OCPFRA2

5、把新 asm disk 加入 asm group,必须使用 as sysasm
[grid@ASMDB ~]$ sqlplus / as sysasm
SQL alter diskgroup FRA add disk /dev/oracleasm/disks/OCPFRA2 rebalance power 10;
Diskgroup altered.

6、等待 asm group 数据重平衡完毕,即 v$asm_operation 查询结果为空,重平衡后立即发现 asm group 的空间和 asm disk 有变化,空间变成了新旧两块 asm disk 的总空间,可用空间 74%,新 asm disk /dev/oracleasm/disks/OCPFRA2 加上来了
SQL select * from v$asm_operation;
GROUP_NUMBER OPERA STAT      POWER     ACTUAL      SOFAR   EST_WORK   EST_RATE
———— —– —- ———- ———- ———- ———- ———-
EST_MINUTES ERROR_CODE
———– ——————————————–
           2 REBAL RUN          10         10        495        785        672
          0
.
.
.
SQL select * from v$asm_operation;
no rows selected

SQL select name,total_mb,free_mb,round((free_mb/total_mb)*100) from gv$asm_diskgroup;
NAME                   TOTAL_MB    FREE_MB ROUND((FREE_MB/TOTAL_MB)*100)
——————– ———- ———- —————————–
DATA                       6141       4195                            68
FRA                        5114       3779                            74

SQL select a.path,a.name,a.mode_status,b.name diskgroupname,b.type from v$asm_disk a,v$asm_diskgroup b where a.group_number=b.group_number and b.name= FRA
PATH                                               NAME                 MODE_ST DISKGROUPN TYPE
————————————————– ——————– ——- ———- ——
/dev/oracleasm/disks/OCPFRA1                       FRA_0000             ONLINE  FRA        EXTERN
/dev/oracleasm/disks/OCPFRA2                       FRA_0001             ONLINE  FRA        EXTERN

7、再从 asm group 删除旧磁盘对应的旧 asm disk,参考第三步信息,旧磁盘 sdd1 对应 asm disk 是 /dev/oracleasm/disks/OCPFRA1,但是这里不能写 asm disk 路径名称,只能写 asm disk 名称,即 v$asm_disk.name
SQL alter diskgroup FRA drop disk FRA_0000 rebalance power 10;
Diskgroup altered.

8、等待 asm group 数据重平衡完毕,即 v$asm_operation 查询结果为空,重平衡后立即发现 asm group 的空间和 asm disk 有变化,空间变成了新 asm disk 的总空间,可用空间 57%,旧 asm disk 被删除了,且验证该 asm group 上的表正常
SQL select * from v$asm_operation;
no rows selected

SQL select name,total_mb,free_mb,round((free_mb/total_mb)*100) from gv$asm_diskgroup;
NAME                   TOTAL_MB    FREE_MB ROUND((FREE_MB/TOTAL_MB)*100)
——————– ———- ———- —————————–
DATA                       6141       4195                            68
FRA                        3067       1734                            57

SQL select a.path,a.name,a.mode_status,b.name diskgroupname,b.type from v$asm_disk a,v$asm_diskgroup b where a.group_number=b.group_number and b.name= FRA
PATH                                               NAME                 MODE_ST DISKGROUPN TYPE
————————————————– ——————– ——- ———- ——
/dev/oracleasm/disks/OCPFRA2                       FRA_0001             ONLINE  FRA        EXTERN

[oracle@ASMDB ~]$ sqlplus / as sysdba
SQL select count(*) from TABLE_TEW;
  COUNT(*)
———-
    601480
9、拆下旧磁盘,重启电脑后启动 DB,发现一切正常,验证结果和上面第 8 步的结果一致

关于“ASM 磁盘组如何更换磁盘”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-24发表,共计5902字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)