Views

Sunday, March 26, 2017

Oracle - Adding Candidate Disk to Diskgroup

Adding Candidate disk to Diskgroup.

ORACLE_SID = [london] ? +ASM
The Oracle base remains unchanged with value /u01/app/oracle
-bash-4.1$ sqlplus / as sysasm

SQL*Plus: Release 11.2.0.4.0 Production on Tue Mar 17 21:46:21 2017

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

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Automatic Storage Management option

-- Check for Candiate Disks

SQL> col disk_file_path for a30
SQL> col disk_file_name for a30
col disk_file_fail_group for a20
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  DISK_FILE_PATH  DISK_FILE_NAME   DISK_FILE_FAIL_GROUP
---------------  --------------- ---------------  --------------------
DATA             /dev/raw/raw5   DATA_0005         DATA_0005
DATA             /dev/raw/raw6   DATA_0006         DATA_0006
DATA             /dev/raw/raw7   DATA_0007         DATA_0007
DATA             /dev/raw/raw8   DATA_0008         DATA_0008
[CANDIDATE]      /dev/raw/raw9

-- Add Candiate Disks to Diskgroup DATA with rebalance power 5

SQL> ALTER DISKGROUP DATA ADD DISK '/dev/raw/raw9' NAME DATA_0009 REBALANCE POWER 5;

Diskgroup altered.

-- Check status of rebalance operation

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

GROUP_NUMBER OPERA STAT      POWER EST_MINUTES
------------ ----- ---- ---------- -----------
           1 REBAL RUN           5          21

SQL> /

GROUP_NUMBER OPERA STAT      POWER EST_MINUTES
------------ ----- ---- ---------- -----------
           1 REBAL RUN           5          30

SQL> /

GROUP_NUMBER OPERA STAT      POWER EST_MINUTES
------------ ----- ---- ---------- -----------
           1 REBAL RUN           5          23

SQL> /

GROUP_NUMBER OPERA STAT      POWER EST_MINUTES
------------ ----- ---- ---------- -----------
           1 REBAL RUN           5          28

SQL> /

GROUP_NUMBER OPERA STAT      POWER EST_MINUTES
------------ ----- ---- ---------- -----------
           1 REBAL RUN           5          27

SQL> /

GROUP_NUMBER OPERA STAT      POWER EST_MINUTES
------------ ----- ---- ---------- -----------
           1 REBAL RUN           5          21

SQL> /

GROUP_NUMBER OPERA STAT      POWER EST_MINUTES
------------ ----- ---- ---------- -----------
           1 REBAL RUN           5          20

SQL> /

GROUP_NUMBER OPERA STAT      POWER EST_MINUTES
------------ ----- ---- ---------- -----------
           1 REBAL RUN           5          19

SQL> /

GROUP_NUMBER OPERA STAT      POWER EST_MINUTES
------------ ----- ---- ---------- -----------
           1 REBAL RUN           5          19

-- List for All Disks in Diskgroup

SQL> col disk_file_path for a30
col disk_file_name for a30
col disk_file_fail_group for a20
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     DISK_FILE_PATH    DISK_FILE_NAME    DISK_FILE_FAIL_GROUP
------------------- ----------------- ----------------- --------------------
DATA                /dev/raw/raw5     DATA_0005         DATA_0005
DATA                /dev/raw/raw6     DATA_0006         DATA_0006
DATA                /dev/raw/raw7     DATA_0007         DATA_0007
DATA                /dev/raw/raw8     DATA_0008         DATA_0008
DATA                /dev/raw/raw9     DATA_0009         DATA_0009

-- Check Diskgroup detail for free space

SELECT
    distinct name group_name
  , sector_size sector_size
  , block_size block_size
  , state state
  , type type
  , round(total_mb/1024) "total_gb"
  , round(free_mb/1024) "free_gb"
  , round((total_mb - free_mb) / 1024) "used_gb"
  , round((1- (free_mb / total_mb))*100, 2)  "pct_used"
from v$asm_diskgroup ORDER BY name
/

Disk Group   Sector   Block
Name           Size    Size  State       Type     total_gb    free_gb    used_gb Pct. Used
----------- ------- -------  ----------- ------ ---------- ---------- ---------- ---------
DATA            512   4,096  MOUNTED     EXTERN       500        93       407     81.04

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

GROUP_NUMBER OPERA State            POWER EST_MINUTES
------------ ----- ----------- ---------- -----------
           1 REBAL RUN                  5           9

SQL> /

GROUP_NUMBER OPERA State            POWER EST_MINUTES
------------ ----- ----------- ---------- -----------
           1 REBAL RUN                  5           8

SQL> /

GROUP_NUMBER OPERA State            POWER EST_MINUTES
------------ ----- ----------- ---------- -----------
           1 REBAL RUN                  5           5

SQL> /

GROUP_NUMBER OPERA State            POWER EST_MINUTES
------------ ----- ----------- ---------- -----------
           1 REBAL RUN                  5           0

-- Check for Rebalance trace file generated (RBAL trace)

-bash-4.1$
-bash-4.1$ ls -ltr |tail
-rw-r----- 1 oracle dba      117 Mar 17 21:51 +ASM_ora_20715.trm
-rw-r----- 1 oracle dba     1654 Mar 17 21:51 +ASM_ora_20715.trc
-rw-r----- 1 oracle dba      366 Mar 17 22:24 +ASM_gmon_4051.trm
-rw-r----- 1 oracle dba    32946 Mar 17 22:24 +ASM_gmon_4051.trc
-rw-r----- 1 oracle dba  3345448 Mar 17 22:44 +ASM_arb0_21994.trm
-rw-r----- 1 oracle dba 21387585 Mar 17 22:44 +ASM_arb0_21994.trc
-rw-r----- 1 oracle dba    79656 Mar 17 22:44 alert_+ASM.log
-rw-r----- 1 oracle dba    11613 Mar 17 23:00 +ASM_rbal_4049.trm
-rw-r----- 1 oracle dba   102497 Mar 17 23:00 +ASM_rbal_4049.trc

-- Rebalance operation finished

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

no rows selected

We can check from RBAL trace file as well whether rebalance operation is completed.

+ASM_rbal_4049.trc
==================
*** 2017-03-17 21:51:43.100
kfgbRebalGrp: queued rebalance (power 5) for group 1/0xab586a15 (DATA)

*** 2017-03-07 21:51:45.802
kfdp_query(DATA): 10
.....
.....

*** 2017-03-17 22:24:29.280
----- Abridged Call Stack Trace -----
ksedsts()+465<-kfdp_query()+530<-kfdPstSyncPriv()+585<-kfgbRefreshNow()+835<-kfgbTryFn()+1942<-kfgbTimeout()+1025<-kfgbDriver()+2813<-ksbcti()+513<-ksbabs()+1735<-ksbrdp  ()+1045<-opirip()+623<-opidrv()+603<-sou2o()+103<-opimai_real()+250<-ssthrdmain()+265<-main()+201
<-__libc_start_main()+253
----- End of Abridged Call Stack Trace -----

kfgbRelease: de-queued rebalance of group 1/0xab586a15 (DATA)

No comments:

Post a Comment

Leave a Reply...