代码改变世界

ASM磁盘组剔盘、加盘实施过程

2017-04-13 17:47  AlfredZhao  阅读(...)  评论(...编辑  收藏

Task:从一个ASM磁盘组中剔除一块盘,加入到另一个ASM磁盘组。

环境:AIX6.1 + Oracle RAC 11.2.0.3
前期准备:
1.查看DG磁盘组空间情况:

--查看DG磁盘组空间情况:
ASMCMD> lsdg
State    Type    Rebal  Sector  Block       AU  Total_MB  Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Voting_files  Name
MOUNTED  EXTERN  N         512   4096  1048576   9728000    19046                0           19046              0             N  DATADG/
MOUNTED  EXTERN  N         512   4096  1048576   3584000  1261514                0         1261514              0             N  RECOVERYDG/

2.查看ASM磁盘信息:

--查看ASM磁盘信息
ASMCMD> lsdsk -k
Total_MB  Free_MB   OS_MB  Name             Failgroup        Failgroup_Type  Library  Label  UDID  Product  Redund   Path
  512000      950  512000  DATADG_0007      DATADG_0007      REGULAR         System                         UNKNOWN  /dev/rhdisk23
  512000      945  512000  DATADG_0008      DATADG_0008      REGULAR         System                         UNKNOWN  /dev/rhdisk24
  512000      953  512000  DATADG_0009      DATADG_0009      REGULAR         System                         UNKNOWN  /dev/rhdisk25
  512000      948  512000  DATADG_0011      DATADG_0011      REGULAR         System                         UNKNOWN  /dev/rhdisk26
  512000      948  512000  DATADG_0012      DATADG_0012      REGULAR         System                         UNKNOWN  /dev/rhdisk27
  512000      953  512000  DATADG_0020      DATADG_0020      REGULAR         System                         UNKNOWN  /dev/rhdisk28
  512000      949  512000  DATADG_0021      DATADG_0021      REGULAR         System                         UNKNOWN  /dev/rhdisk29
  512000      948  512000  DATADG_0022      DATADG_0022      REGULAR         System                         UNKNOWN  /dev/rhdisk30
  512000      947  512000  DATADG_0023      DATADG_0023      REGULAR         System                         UNKNOWN  /dev/rhdisk31
  512000      946  512000  DATADG_0024      DATADG_0024      REGULAR         System                         UNKNOWN  /dev/rhdisk32
  512000      957  512000  DATADG_0025      DATADG_0025      REGULAR         System                         UNKNOWN  /dev/rhdisk33
  512000      950  512000  DATADG_0026      DATADG_0026      REGULAR         System                         UNKNOWN  /dev/rhdisk34
  512000      956  512000  DATADG_0027      DATADG_0027      REGULAR         System                         UNKNOWN  /dev/rhdisk35
  512000      946  512000  DATADG_0028      DATADG_0028      REGULAR         System                         UNKNOWN  /dev/rhdisk36
  512000      950  512000  DATADG_0029      DATADG_0029      REGULAR         System                         UNKNOWN  /dev/rhdisk37
  512000   178001  512000  RECOVERYDG_0006  RECOVERYDG_0006  REGULAR         System                         UNKNOWN  /dev/rhdisk38
  512000   177979  512000  RECOVERYDG_0007  RECOVERYDG_0007  REGULAR         System                         UNKNOWN  /dev/rhdisk39
  512000   177968  512000  RECOVERYDG_0008  RECOVERYDG_0008  REGULAR         System                         UNKNOWN  /dev/rhdisk40
  512000   177984  512000  RECOVERYDG_0009  RECOVERYDG_0009  REGULAR         System                         UNKNOWN  /dev/rhdisk41
  512000   177983  512000  RECOVERYDG_0010  RECOVERYDG_0010  REGULAR         System                         UNKNOWN  /dev/rhdisk42
  512000   177984  512000  RECOVERYDG_0011  RECOVERYDG_0011  REGULAR         System                         UNKNOWN  /dev/rhdisk43
  512000      939  512000  DATADG_0000      DATADG_0000      REGULAR         System                         UNKNOWN  /dev/rhdisk44
  512000     1288  512000  DATADG_0001      DATADG_0001      REGULAR         System                         UNKNOWN  /dev/rhdisk45
  512000     1286  512000  DATADG_0002      DATADG_0002      REGULAR         System                         UNKNOWN  /dev/rhdisk46
  512000     1287  512000  DATADG_0003      DATADG_0003      REGULAR         System                         UNKNOWN  /dev/rhdisk47
  512000   177965  512000  RECOVERYDG_0000  RECOVERYDG_0000  REGULAR         System                         UNKNOWN  /dev/rhdisk48

实施步骤:

1.从RECOVERYDG磁盘组中剔除一块磁盘

从 RECOVERYDG 剔除/dev/rhdisk38,对应信息:
  512000   178001  512000  RECOVERYDG_0006  RECOVERYDG_0006  REGULAR         System                         UNKNOWN  /dev/rhdisk38

查询asm磁盘组中的asm磁盘信息:

SQL> select disk_number, state, name, total_mb, free_mb from v$asm_disk where group_number = 2;

DISK_NUMBER STATE                    NAME                                                                                         TOTAL_MB    FREE_MB
----------- ------------------------ ------------------------------------------------------------------------------------------ ---------- ----------
          6 NORMAL                   RECOVERYDG_0006                                                                                512000     177536
          7 NORMAL                   RECOVERYDG_0007                                                                                512000     177514
          8 NORMAL                   RECOVERYDG_0008                                                                                512000     177503
          9 NORMAL                   RECOVERYDG_0009                                                                                512000     177520
         10 NORMAL                   RECOVERYDG_0010                                                                                512000     177520
         11 NORMAL                   RECOVERYDG_0011                                                                                512000     177521
          0 NORMAL                   RECOVERYDG_0000                                                                                512000     177501

7 rows selected.

删除计划剔除的磁盘:

sqlplus / as sysasm
SQL> alter diskgroup RECOVERYDG drop disk RECOVERYDG_0006;

2.等待同步完成

等待同步完成

select * from v$asm_operation;
select disk_number, state, name, total_mb, free_mb from v$asm_disk where group_number = 2;

16:31:05 SQL> select disk_number, state, name, total_mb, free_mb from v$asm_disk where group_number = 2;

DISK_NUMBER STATE    NAME                             TOTAL_MB    FREE_MB
----------- -------- ------------------------------ ---------- ----------
          6 DROPPING RECOVERYDG_0006                    512000     180387
          7 NORMAL   RECOVERYDG_0007                    512000     176893
          8 NORMAL   RECOVERYDG_0008                    512000     176879
          9 NORMAL   RECOVERYDG_0009                    512000     176899
         10 NORMAL   RECOVERYDG_0010                    512000     176897
         11 NORMAL   RECOVERYDG_0011                    512000     176896
          0 NORMAL   RECOVERYDG_0000                    512000     176874

16:56:44 SQL> /

DISK_NUMBER STATE    NAME                             TOTAL_MB    FREE_MB
----------- -------- ------------------------------ ---------- ----------
          7 NORMAL   RECOVERYDG_0007                    512000     120678
          8 NORMAL   RECOVERYDG_0008                    512000     120684
          9 NORMAL   RECOVERYDG_0009                    512000     120689
         10 NORMAL   RECOVERYDG_0010                    512000     120681
         11 NORMAL   RECOVERYDG_0011                    512000     120691
          0 NORMAL   RECOVERYDG_0000                    512000     120690

6 rows selected.

alert.log也会有对应的日志记录:

Thu Apr 13 16:57:02 2017
NOTE: disk 6 (RECOVERYDG_0006) in group 2 (RECOVERYDG) is offline for reads
NOTE: disk 6 (RECOVERYDG_0006) in group 2 (RECOVERYDG) is offline for writes
SUCCESS: disk RECOVERYDG_0006 (6.2744176951) dropped from diskgroup RECOVERYDG

3.将磁盘加入到DATADG磁盘组

将/dev/rhdisk38 加入到 DATADG:
alter diskgroup DATADG add disk '/dev/rhdisk38' rebalance power 7;

查看rebalance情况:
select disk_number, state, name, total_mb, free_mb from v$asm_disk where group_number = 1;

16:59:56 SQL> select disk_number, state, name, total_mb, free_mb from v$asm_disk where group_number = 1;

DISK_NUMBER STATE    NAME                             TOTAL_MB    FREE_MB
----------- -------- ------------------------------ ---------- ----------
          7 NORMAL   DATADG_0007                        512000       1021
          8 NORMAL   DATADG_0008                        512000       1016
          9 NORMAL   DATADG_0009                        512000       1024
         11 NORMAL   DATADG_0011                        512000       1019
         12 NORMAL   DATADG_0012                        512000       1020
         20 NORMAL   DATADG_0020                        512000       1025
         21 NORMAL   DATADG_0021                        512000       1020
         22 NORMAL   DATADG_0022                        512000       1020
         23 NORMAL   DATADG_0023                        512000       1018
         24 NORMAL   DATADG_0024                        512000       1017
         25 NORMAL   DATADG_0025                        512000       1029

DISK_NUMBER STATE    NAME                             TOTAL_MB    FREE_MB
----------- -------- ------------------------------ ---------- ----------
         26 NORMAL   DATADG_0026                        512000       1021
         27 NORMAL   DATADG_0027                        512000       1028
         28 NORMAL   DATADG_0028                        512000       1018
         29 NORMAL   DATADG_0029                        512000       1021
          4 NORMAL   DATADG_0004                        512000     510647
          0 NORMAL   DATADG_0000                        512000       1011
          1 NORMAL   DATADG_0001                        512000       1356
          2 NORMAL   DATADG_0002                        512000       1354
          3 NORMAL   DATADG_0003                        512000       1355

20 rows selected.

alert.log同样也有日志记录:

Thu Apr 13 16:59:54 2017
SUCCESS: disk DATADG_0004 (4.2744176966) added to diskgroup DATADG

4.等待同步完成

等待同步完成:
select * from v$asm_operation;


GROUP_NUMBER OPERA STAT      POWER     ACTUAL      SOFAR   EST_WORK   EST_RATE EST_MINUTES ERROR_CODE
------------ ----- ---- ---------- ---------- ---------- ---------- ---------- ----------- --------------------------------------------
           1 REBAL RUN           7          7      10833     492997       7195          67

Elapsed: 00:00:00.46
17:00:49 SQL> 

可以在同步的期间根据实际业务需求调整rebalance的级别:

17:04:59 SQL> alter diskgroup datadg rebalance power 5;

Diskgroup altered.

17:06:34 SQL> select * from v$asm_operation;

GROUP_NUMBER OPERA STAT      POWER     ACTUAL      SOFAR   EST_WORK   EST_RATE EST_MINUTES ERROR_CODE
------------ ----- ---- ---------- ---------- ---------- ---------- ---------- ----------- --------------------------------------------
           1 REBAL RUN           5          5      11106     240895       6817          33

Elapsed: 00:00:00.46

最后同步完成,上述查询将不会有结果输出。

最后可以查看下DG磁盘组空间情况:

--查看DG磁盘组空间情况
ASMCMD> lsdg
State    Type    Rebal  Sector  Block       AU  Total_MB  Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Voting_files  Name
MOUNTED  EXTERN  Y         512   4096  1048576  10240000   531040                0          531040              0             N  DATADG/
MOUNTED  EXTERN  N         512   4096  1048576   3072000   713616                0          713616              0             N  RECOVERYDG/
ASMCMD> 

至此,整个ASM磁盘组的删盘加盘实施操作已经完成。