Adding / Dropping Disks From a ASM Disk Group

磁盘组规划出现问题,需要踢出磁盘,具体添加删除步骤如下:

 

Adding / Dropping Disks From a ASM Disk Group

by Jeff Hunter, Sr. Database Administrator

Contents

 

 

Introduction

This short article provides the steps necessary to add a candidate disk to an already existing disk group on the Linux platform. It also documents the steps necessary to remove disks from a running disk group.

For the purpose of this document, I already have an existing disk group named TESTDB_DATA1. I am not using the ASMLib libraries.

Identify Candidate Disks

The current disk group configuration, (TESTDB_DATA1 and candidate disks not assigned to any disk group) has the following configuration:

$ ORACLE_SID=+ASM; export ORACLE_SID
$ sqlplus "/ as sysdba"

SELECT
    NVL(a.name, '[CANDIDATE]')      disk_group_name
  , b.path                          disk_file_path
  , b.name                          disk_file_name
  , b.failgroup                     disk_file_fail_group
FROM
    v$asm_diskgroup a RIGHT OUTER JOIN v$asm_disk b USING (group_number)
ORDER BY
    a.name;

Disk Group Name Path            File Name            Fail Group     
--------------- --------------- -------------------- ---------------
TESTDB_DATA1    /dev/raw/raw1   TESTDB_DATA1_0000    CONTROLLER1
                /dev/raw/raw2   TESTDB_DATA1_0001    CONTROLLER1
                /dev/raw/raw3   TESTDB_DATA1_0002    CONTROLLER2
                /dev/raw/raw4   TESTDB_DATA1_0003    CONTROLLER2

[CANDIDATE]     /dev/raw/raw5
                /dev/raw/raw6
                /dev/raw/raw7

In this example, I will be adding two new disks (/dev/raw/raw5 and /dev/raw/raw6) to the current disk group.

Add Disks to a Disk Group

Finally, let's add the two new disks to the disk group. This needs to be done within the ASM instance and connected as a user with SYSDBA privileges:

$ ORACLE_SID=+ASM; export ORACLE_SID
$ sqlplus "/ as sysdba"

SQL> ALTER DISKGROUP testdb_data1 ADD
  2  FAILGROUP controller1 DISK '/dev/raw/raw5'
  3  FAILGROUP controller2 DISK '/dev/raw/raw6' REBALANCE POWER 11;

Diskgroup altered.

After submitting the SQL to add the new disks to the disk group, query the dynamic performance view V$ASM_OPERATION in the ASM instance to check the status of the rebalance operation. The V$ASM_OPERATION view will return one row for every active Automatic Storage Management long running operation executing in the Automatic Storage Management instance.

SQL> SELECT group_number, operation, state, power, est_minutes FROM v$asm_operation;

GROUP_NUMBER OPERATION STATE   POWER EST_MINUTES
------------ --------- ------ ------ -----------
           1 REBAL     RUN        11           9

Continue to query this view to monitor the rebalance operation. When this row is gone, the ASM rebalance operation will be complete.

After adding the new disks, this is a new view of the disk group configuration:

Disk Group Name Path            File Name            Fail Group     
--------------- --------------- -------------------- ---------------
TESTDB_DATA1    /dev/raw/raw1   TESTDB_DATA1_0000    CONTROLLER1
                /dev/raw/raw2   TESTDB_DATA1_0001    CONTROLLER1
                /dev/raw/raw3   TESTDB_DATA1_0002    CONTROLLER2
                /dev/raw/raw4   TESTDB_DATA1_0003    CONTROLLER2
                /dev/raw/raw5   TESTDB_DATA1_0004    CONTROLLER1
                /dev/raw/raw6   TESTDB_DATA1_0005    CONTROLLER2

[CANDIDATE]     /dev/raw/raw7

Drop Disks from a Disk Group

Now, let's drop the same two new disks from the disk group. This needs to be done within the ASM instance and connected as a user with SYSDBA privileges:

$ ORACLE_SID=+ASM; export ORACLE_SID
$ sqlplus "/ as sysdba"

SQL> ALTER DISKGROUP testdb_data1 DROP
  2  DISK testdb_data1_0004, testdb_data1_0005  REBALANCE POWER 11;

Diskgroup altered.

The current disk group configuration, (TESTDB_DATA1 and candidate disks not assigned to any disk group) now has the following configuration:

Disk Group Name Path            File Name            Fail Group     
--------------- --------------- -------------------- ---------------
TESTDB_DATA1    /dev/raw/raw1   TESTDB_DATA1_0000    CONTROLLER1
                /dev/raw/raw2   TESTDB_DATA1_0001    CONTROLLER1
                /dev/raw/raw3   TESTDB_DATA1_0002    CONTROLLER2
                /dev/raw/raw4   TESTDB_DATA1_0003    CONTROLLER2

                                                  
[CANDIDATE]     /dev/raw/raw5
                /dev/raw/raw6
                /dev/raw/raw7

About the Author

Jeffrey Hunter is an Oracle Certified Professional, Java Development Certified Professional, Author, and an Oracle ACE. Jeff currently works as a Senior Database Administrator for The DBA Zone, Inc. located in Pittsburgh, Pennsylvania. His work includes advanced performance tuning, Java and PL/SQL programming, developing high availability solutions, capacity planning, database security, and physical / logical database design in a UNIX / Linux server environment. Jeff's other interests include mathematical encryption theory, tutoring advanced mathematics, programming language processors (compilers and interpreters) in Java and C, LDAP, writing web-based database administration tools, and of course Linux. He has been a Sr. Database Administrator and Software Engineer for over 20 years and maintains his own website site at: http://www.iDevelopment.info. Jeff graduated from Stanislaus State University in Turlock, California, with a Bachelor's degree in Computer Science and Mathematics.

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值