0% found this document useful (0 votes)
125 views

Add Remove Disk ASM PDF

This document discusses adding and dropping disks from an existing ASM disk group. It identifies candidate disks that are available to add, shows how to add two disks to the "TESTDB_DATA1" disk group using ALTER DISKGROUP with a REBALANCE clause, and monitors the rebalance operation. It then demonstrates dropping the same two disks that were added using a similar ALTER DISKGROUP statement.

Uploaded by

harssh
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
125 views

Add Remove Disk ASM PDF

This document discusses adding and dropping disks from an existing ASM disk group. It identifies candidate disks that are available to add, shows how to add two disks to the "TESTDB_DATA1" disk group using ALTER DISKGROUP with a REBALANCE clause, and monitors the rebalance operation. It then demonstrates dropping the same two disks that were added using a similar ALTER DISKGROUP statement.

Uploaded by

harssh
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

Adding / Dropping Disks From a ASM Disk Group

by Jeff Hunter, Sr. Database Administrator

Contents
Introduction
Identify Candidate Disks
Add Disks to a Disk Group
Drop Disks from a Disk Group
About the Author

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.
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

You might also like