ASM磁盘的磁盘的增加与删除(UDEV)

时间:2022-10-24 07:41:28

ASM磁盘的磁盘的增加与删除

 

 

在现在流行的RAC系统安装中,ASM的安装主要是两种安装模式

第一种是最常用的ASMLIB的方式。就需要根据linux的内核的版本去oracle的官网站到asmlib的驱动包。

第二种方式是使用udev的方式。

 

 

udev的方式,我是在刘相兵的网站上看到的这种方式的,认真的学习过他的视频之后,逐渐喜欢上了这种安装的方式。毕竟少了一个asmlib的软件,也少了一层系统管理维护的额外开销。

 

我有相关的使用udev安装的方式的文档。可以查看具体的安装方法。

 

要先管理维护一个racasm就首先要搞清楚是使用asmlib的安装方式,还是使用udev的安装方式。

 

如果是使用asmlib做驱动了,那么就会在/etc/init.d/下有一个oracleasm的文件,该文件是一个可执行的文件。如果能找到这个文件,就可以初步判定是使用asmlib的方式。

 

增加磁盘

 

我现在演示的是在UDEV的方式下添加和删除磁盘。需要注意的是,这些操作都是在sysasm操作下完成的,如果在sysdba权限下,是操作不了的,会报权限不足。

 

[root@db1 ~]# su - grid

[grid@db1 ~]$ sqlplus / as sysasm

 

SQL*Plus: Release 11.2.0.1.0 Production on Wed Mar 5 15:48:35 2014

 

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

 

 

Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production

With the Real Application Clusters and Automatic Storage Management options

 

SQL>

 

首先确定有几个磁盘组

SQL>  select group_number, name, total_mb, free_mb from v$asm_diskgroup;

 

GROUP_NUMBER NAME                             TOTAL_MB    FREE_MB

------------ ------------------------------ ---------- ----------

           1 DATA                                 6144       4045

 

确定该磁盘组里有几个磁盘

SQL> l

  1* select group_number,disk_number,  MOUNT_STATUS, LIBRARY ,path,label from v$asm_disk

SQL> /

 

GROUP_NUMBER DISK_NUMBER MOUNT_S LIBRARY    PATH                 LABEL

------------ ----------- ------- ---------- -------------------- -------------------------------

           0           0 CLOSED  System     /dev/random

           0           1 CLOSED  System     /dev/asm-diske

           1           2 CACHED  System     /dev/asm-diskd

           1           1 CACHED  System     /dev/asm-diskc

           1           0 CACHED  System     /dev/asm-diskb

 

可以看到group 1里也就是data磁盘组里,有3块磁盘,现在将/dev/asm-diske这一块磁盘,加到DATA磁盘组里

使用以下命令,将asm-diske加到磁盘组中,

alter diskgroup DATA add disk '/dev/asm-diske';

命令很快执行完了,但是此时asm需要有一个rebalance的操作,可以去查看到这个操作

 

[grid@db1 ~]$ sqlplus / as sysasm

 

SQL*Plus: Release 11.2.0.1.0 Production on Thu Mar 6 10:39:56 2014

 

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

 

 

Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production

With the Real Application Clusters and Automatic Storage Management options

 

SQL> select * from v$asm_operation;

 

GROUP_NUMBER OPERA STAT      POWER     ACTUAL      SOFAR   EST_WORK   EST_RATE

------------ ----- ---- ---------- ---------- ---------- ---------- ----------

EST_MINUTES ERROR_CODE

----------- --------------------------------------------

           1 REBAL RUN           1          1         22        522        285

          1

 

 

SQL> /

 

GROUP_NUMBER OPERA STAT      POWER     ACTUAL      SOFAR   EST_WORK   EST_RATE

------------ ----- ---- ---------- ---------- ---------- ---------- ----------

EST_MINUTES ERROR_CODE

----------- --------------------------------------------

           1 REBAL RUN           1          1         88        523        539

          0

 

SQL> /

 

GROUP_NUMBER OPERA STAT      POWER     ACTUAL      SOFAR   EST_WORK   EST_RATE EST_MINUTES

------------ ----- ---- ---------- ---------- ---------- ---------- ---------- -----------

ERROR_CODE

--------------------------------------------

           1 REBAL RUN           1          0        512        525        722           0

 

 

 

SQL> /

 

GROUP_NUMBER OPERA STAT      POWER     ACTUAL      SOFAR   EST_WORK   EST_RATE EST_MINUTES

------------ ----- ---- ---------- ---------- ---------- ---------- ---------- -----------

ERROR_CODE

--------------------------------------------

           1 REBAL WAIT          1

 

 

 

SQL> /

 

GROUP_NUMBER OPERA STAT      POWER     ACTUAL      SOFAR   EST_WORK   EST_RATE EST_MINUTES

------------ ----- ---- ---------- ---------- ---------- ---------- ---------- -----------

ERROR_CODE

--------------------------------------------

           1 REBAL WAIT          1

 

 

 

SQL> /

 

no rows selected

 

可以看到rebalance的操作的OPERA STAT列的状态由REBAL RUN,逐渐转变成REBAL WAIT,最后这个查询就查不到任何记录,这个时候表明rebalance的操作已经完成。

 

接下来可以去验证该操作。

 

SQL> select group_number, disk_number, os_mb, total_mb, free_mb from v$asm_disk;

 

GROUP_NUMBER DISK_NUMBER      OS_MB   TOTAL_MB    FREE_MB

------------ ----------- ---------- ---------- ----------

           0           0      16384          0          0

           1           3       2048       2048       1534

           1           2       2048       2048       1530

           1           1       2048       2048       1530

           1           0       2048       2048       1497

 

可以看到group_number1的磁盘组data,有4个磁盘,并且free_mb基本都是在1530左右,这就表明数据已经rebalancediske上了。

 

至此添加磁盘的操作基本完毕。

 

 

 

删除磁盘

 

在删除的时候,跟添加有点不一样,需要知道这个diske在磁盘组里叫什么名字,否则直接去删/dev/asm-diske,是删不掉的。

 

SQL> select group_number,name,path, disk_number, os_mb, total_mb, free_mb from v$asm_disk;

 

GROUP_NUMBER NAME                           PATH                 DISK_NUMBER      OS_MB   TOTAL_MB    FREE_MB

------------ ------------------------------ -------------------- ----------- ---------- ---------- ----------

           0            /dev/random     0      16384          0          0

           1 DATA_0003   /dev/asm-diske   3  2048       2048       1534

           1 DATA_0002   /dev/asm-diskd    2  2048       2048       1530

           1 DATA_0001   /dev/asm-diskc      1  2048       2048       1530

           1 DATA_0000    /dev/asm-diskb     0  2048       2048       1497

可以看到diske的名字叫做DATA_0003,现在就去删除这个disk

 

SQL> alter diskgroup DATA drop disk 'DATA_0003';

 

Diskgroup altered.

 

此时再去查v$asm_operation视图,可以看到正在操作的过程。

SQL> select * from v$asm_operation;

 

GROUP_NUMBER OPERA STAT      POWER     ACTUAL      SOFAR   EST_WORK   EST_RATE EST_MINUTES

------------ ----- ---- ---------- ---------- ---------- ---------- ---------- -----------

ERROR_CODE

--------------------------------------------

           1 REBAL RUN           1          1         19        510        495           1

 

SQL> /

 

GROUP_NUMBER OPERA STAT      POWER     ACTUAL      SOFAR   EST_WORK   EST_RATE EST_MINUTES

------------ ----- ---- ---------- ---------- ---------- ---------- ---------- -----------

ERROR_CODE

--------------------------------------------

           1 REBAL RUN           1          1        501        526        961           0

 

 

 

SQL> /

 

GROUP_NUMBER OPERA STAT      POWER     ACTUAL      SOFAR   EST_WORK   EST_RATE EST_MINUTES

------------ ----- ---- ---------- ---------- ---------- ---------- ---------- -----------

ERROR_CODE

--------------------------------------------

           1 REBAL REAP          1

 

 

 

SQL> /

 

GROUP_NUMBER OPERA STAT      POWER     ACTUAL      SOFAR   EST_WORK   EST_RATE EST_MINUTES

------------ ----- ---- ---------- ---------- ---------- ---------- ---------- -----------

ERROR_CODE

--------------------------------------------

           1 REBAL WAIT          1

 

 

SQL> /

 

no rows selected

 

 

 

 

再次确认磁盘是否从磁盘组中已经删除

SQL> select group_number,name,path, disk_number, os_mb, total_mb, free_mb from v$asm_disk;

 

GROUP_NUMBER NAME            PATH                 DISK_NUMBER      OS_MB   TOTAL_MB    FREE_MB

------------ --------------- -------------------- ----------- ---------- ---------- ----------

           0                 /dev/random                    0      16384          0          0

           0                 /dev/asm-diske                 1       2048          0          0

           1 DATA_0002       /dev/asm-diskd                 2       2048       2048       1358

           1 DATA_0001       /dev/asm-diskc                 1       2048       2048       1359

           1 DATA_0000       /dev/asm-diskb                 0       2048       2048       1328

可以看到group_number1的磁盘组里只有三块磁盘了表明已经正常删除了

 

 

在查询视图的过程中会有一些字段标志该磁盘是正处于什么状态,这个在后续文档中继续补充