Friday, September 12, 2014

Process to add the ASM disks to ASM DISK GROUPS.

           Process to add the ASM disks to ASM DISK GROUPS.

SQL> select group_number G#, disk_number D#, state, redundancy, name, path, total_mb, free_mb, (total_mb - free_mb) used_mb from v$asm_disk  2  ;
 G#  D# STATE    REDUNDA NAME                 PATH                             TOTAL_MB    FREE_MB    USED_MB
--- --- -------- ------- -------------------- ------------------------------ ---------- ---------- ----------
  0   0 NORMAL   UNKNOWN                      /dev/rhdiskpower27                      0          0          0
  0   1 NORMAL   UNKNOWN                      /dev/rhdiskpower28                      0          0          0
  2   4 NORMAL   UNKNOWN DATA1_0004           /dev/rhdiskpower16                 139425      44724      94701
  1   0 NORMAL   UNKNOWN ARCH1_0000           /dev/rhdiskpower19                  34856      29513       5343
  1   1 NORMAL   UNKNOWN ARCH1_0001           /dev/rhdiskpower20                  34856      29513       5343
  2   3 NORMAL   UNKNOWN DATA1_0003           /dev/rhdiskpower21                  34856      11174      23682
  3   0 NORMAL   UNKNOWN FRA1_0000            /dev/rhdiskpower22                  69712      69241        471
  3   1 NORMAL   UNKNOWN FRA1_0001            /dev/rhdiskpower23                  69712      69243        469
  2   0 NORMAL   UNKNOWN DATA1_0000           /dev/rhdiskpower24                 139425      44721      94704
  2   1 NORMAL   UNKNOWN DATA1_0001           /dev/rhdiskpower25                 139425      44722      94703
  2   2 NORMAL   UNKNOWN DATA1_0002           /dev/rhdiskpower26                 139425      44722      94703
11 rows selected.


SQL> SELECT group_number, disk_number, mount_status, header_status, state, path FROM v$asm_disk ;

GROUP_NUMBER DISK_NUMBER MOUNT_S HEADER_STATU STATE    PATH
------------ ----------- ------- ------------ -------- ------------------------------
           0           0 CLOSED  CANDIDATE    NORMAL   /dev/rhdiskpower27
           0           1 CLOSED  CANDIDATE    NORMAL   /dev/rhdiskpower28
           2           4 CACHED  MEMBER       NORMAL   /dev/rhdiskpower16
           1           0 CACHED  MEMBER       NORMAL   /dev/rhdiskpower19
           1           1 CACHED  MEMBER       NORMAL   /dev/rhdiskpower20
           2           3 CACHED  MEMBER       NORMAL   /dev/rhdiskpower21
           3           0 CACHED  MEMBER       NORMAL   /dev/rhdiskpower22
           3           1 CACHED  MEMBER       NORMAL   /dev/rhdiskpower23
           2           0 CACHED  MEMBER       NORMAL   /dev/rhdiskpower24
           2           1 CACHED  MEMBER       NORMAL   /dev/rhdiskpower25
           2           2 CACHED  MEMBER       NORMAL   /dev/rhdiskpower26
11 rows selected.
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  NORMAL  N         512   4096  1048576     69712    59026                0           29513              0             N  ARCH1/
MOUNTED  EXTERN  N         512   4096  1048576    592556   190063                0          190063              0             N  DATA1/
MOUNTED  EXTERN  N         512   4096  1048576    139424   138484                0          138484              0             N  FRA1/
SQL> ALTER DISKGROUP DATA1 ADD DISK '/dev/rhdiskpower27' REBALANCE POWER 5 ;
 Diskgroup altered.
SQL> select * from v$asm_operation;
GROUP_NUMBER OPERA STAT      POWER     ACTUAL      SOFAR   EST_WORK   EST_RATE
------------ ----- ---- ---------- ---------- ---------- ---------- ----------
EST_MINUTES ERROR_CODE
----------- --------------------------------------------
           2 REBAL RUN           5          5      12960      44526       6979
          4
ALTER DISKGROUP DATA1 ADD DISK '/dev/rhdiskpower28' REBALANCE POWER 11;
 Diskgroup altered.
 select group_number G#, disk_number D#, state, redundancy, name, path, total_mb, free_mb, (total_mb - free_mb) used_mb from v$asm_disk;
 G#  D# STATE    REDUNDA NAME                 PATH                             TOTAL_MB    FREE_MB    USED_MB
--- --- -------- ------- -------------------- ------------------------------ ---------- ---------- ----------
  2   4 NORMAL   UNKNOWN DATA1_0004           /dev/rhdiskpower16                 139425      69424      70001
  1   0 NORMAL   UNKNOWN ARCH1_0000           /dev/rhdiskpower19                  34856      29382       5474
  1   1 NORMAL   UNKNOWN ARCH1_0001           /dev/rhdiskpower20                  34856      29382       5474
  2   3 NORMAL   UNKNOWN DATA1_0003           /dev/rhdiskpower21                  34856      17352      17504
  3   0 NORMAL   UNKNOWN FRA1_0000            /dev/rhdiskpower22                  69712      69241        471
  3   1 NORMAL   UNKNOWN FRA1_0001            /dev/rhdiskpower23                  69712      69243        469
  2   0 NORMAL   UNKNOWN DATA1_0000           /dev/rhdiskpower24                 139425      69423      70002
  2   1 NORMAL   UNKNOWN DATA1_0001           /dev/rhdiskpower25                 139425      69424      70001
  2   2 NORMAL   UNKNOWN DATA1_0002           /dev/rhdiskpower26                 139425      69425      70000
  2   5 NORMAL   UNKNOWN DATA1_0005           /dev/rhdiskpower27                  69712      34709      35003
  2   6 NORMAL   UNKNOWN DATA1_0006           /dev/rhdiskpower28                 139425      69438      69987
11 rows selected.
SQL> /
SQL> SELECT group_number, disk_number, mount_status, header_status, state, path FROM v$asm_disk ;
GROUP_NUMBER DISK_NUMBER MOUNT_S HEADER_STATU STATE    PATH
------------ ----------- ------- ------------ -------- ------------------------------
           2           4 CACHED  MEMBER       NORMAL   /dev/rhdiskpower16
           1           0 CACHED  MEMBER       NORMAL   /dev/rhdiskpower19
           1           1 CACHED  MEMBER       NORMAL   /dev/rhdiskpower20
           2           3 CACHED  MEMBER       NORMAL   /dev/rhdiskpower21
           3           0 CACHED  MEMBER       NORMAL   /dev/rhdiskpower22
           3           1 CACHED  MEMBER       NORMAL   /dev/rhdiskpower23
           2           0 CACHED  MEMBER       NORMAL   /dev/rhdiskpower24
           2           1 CACHED  MEMBER       NORMAL   /dev/rhdiskpower25
           2           2 CACHED  MEMBER       NORMAL   /dev/rhdiskpower26
           2           5 CACHED  MEMBER       NORMAL   /dev/rhdiskpower27
           2           6 CACHED  MEMBER       NORMAL   /dev/rhdiskpower28
11 rows selected.
SQL>
select name,total_mb,free_mb,(free_mb/total_mb)*100,state from v$asm_diskgroup;SQL>
NAME                   TOTAL_MB    FREE_MB (FREE_MB/TOTAL_MB)*100 STATE
-------------------- ---------- ---------- ---------------------- -----------
ARCH1                     69712      58436             83.8248795 MOUNTED
DATA1                    801693     399195             49.7939985 MOUNTED
FRA1                     139424     138484             99.3257976 MOUNTED



1. Please check the ASM status by running the below script and upload the resulting html.

SPOOL ASM_1.HTML
SET MARKUP HTML ON
set echo on
setpagesize 200
alter session set nls_date_format='DD-MON-YYYY HH24:MI:SS';
select 'THIS ASM REPORT WAS GENERATED AT: ==)> ' , sysdate " " from dual;
select 'HOSTNAME ASSOCIATED WITH THIS ASM INSTANCE: ==)> ' , MACHINE " " from v$session where program like '%SMON%';
select * from v$asm_diskgroup;
SELECT * FROM V$ASM_DISK ORDER BY GROUP_NUMBER,DISK_NUMBER;
SELECT * FROM V$ASM_CLIENT;
select * from V$ASM_ATTRIBUTE;
select * from v$asm_operation;
select * from gv$asm_operation;
select * from v$version;
show parameter asm
show parameter cluster
show parameter instance_type
show parameter instance_name
show parameter spfile
showsga
spool off
exit


ASM Lun Migration



while true
do
sqlplus -s "/as sysasm" @chk.sql
sleep 10
done


chk.sql
---------------------------------------------------------------------------------------
COL % FORMAT 100.0
SELECT name, free_mb, total_mb, free_mb/total_mb*100 "%", STATE FROM v$asm_diskgroup;
setlinesize 300 pages 300;
col path for a30
column name format a20;
column G# format 99;
column D# format 99;
col state for a10
col HEADER_STATUS for a10
selecta.group_number G#, a.disk_number D#, a.state, header_status,
a.redundancy, a.name,a.path, a.OS_MB/1024 size_GB,a.total_mb, a.free_mb, (a.total_mb - a.free_mb) used_mb
fromv$asm_diska order by a.name;
select * from v$asm_operations;
exit;
---------------------------------------------------------------------------------------
Pre-checks:
------------
1. Ensure all the databases associated with ASM are backedup with Full or Level0.
2. Take a MD backup for all the DGS.--> ASMCMD>md_backup mdbkup_10JUN2012 -G DATA1,ARCH1,FRA1
3. crs_stat -t
4. lsnrctl status
5. set the rebalance power to 0.


Main steps:
1. Create a DUMMY disk group.
2. Add all the CANDIDATE Luns to the Dummy disk group.
3. Check if all the Disk groups in MOUNTED status
4. Monitor the ASM alert log.
5. Remove all the added Luns from DUMMY disk group one by one (you may not be able to remove the last Lun) and rebalance for each Lun.
6. Now all the removed Luns (from DUMMY) will be in FORMER status and rebalance when required.
7. Add each FORMER Lun into FRA1, ARCH1 and DATA1 disk groups and rebalance when required.
8. Check if all the Disk groups in MOUNTED status
9. Monitor the ASM alert log and check for any erros
10. Run the below command to check the status of each Diskgroup:

SQL>ALTER DISKGROUP DATA1 CHECK ALL; --> check the output of this in the alert log.

create a diskgroup:
creatediskgroup DUMMY external redundancy disk '/dev/rdsk/emcpower112g'; --> PATH from v$asm_disk

Add the other Luns:
ALTER DISKGROUP SUMMY ADD DISK '<LUN_NAME>';

Drop a disk from any diskgroup :
ALTER DISKGROUP DUMMY DROP DISK DUMMY_0000; --> NAME from v$asm_disk for the Lun -->/dev/rdsk/emcpower112g


Rebalance the diskgroup:
ALTER DISKGROUP DUMMY REBALANCE POWER 5 wait;


The following are the Luns to be migrated:
/dev/rdsk/emcpower112g
/dev/rdsk/emcpower116g
/dev/rdsk/emcpower120g
/dev/rdsk/emcpower12g
/dev/rdsk/emcpower16g
/dev/rdsk/emcpower20g
/dev/rdsk/emcpower24g
/dev/rdsk/emcpower28g
/dev/rdsk/emcpower32g
/dev/rdsk/emcpower36g
/dev/rdsk/emcpower40g
/dev/rdsk/emcpower42g
/dev/rdsk/emcpower45g
/dev/rdsk/emcpower49g
/dev/rdsk/emcpower58g
/dev/rdsk/emcpower63g
/dev/rdsk/emcpower66g
/dev/rdsk/emcpower72g
/dev/rdsk/emcpower78g
/dev/rdsk/emcpower80g
/dev/rdsk/emcpower88g
/dev/rdsk/emcpower92g

 

$ df -h |grepdbs

dropdiskgroup dummy force including contents;

select * from v$asm_operation;

selectname,state from v$asm_diskgroup;

select GROUP_NUMBER,NAME,HEADER_STATUS,TOTAL_MB,FREE_MB from V$ASM_DISK;

Alter System Set ASM_POWER_LIMIT=1;




ALTER SYSTEM SET asm_diskstring='/dev/sdp*,/dev/sdq*,/dev/oracleasm/disks/*' SCOPE=BOTH;
 alter diskgroup DATA mount
alter diskgroup FRA mount

 CREATE DISKGROUP REDO1 EXTERNAL REDUNDANCY  DISK '/dev/oracleasm/disks/PROD_REDO1' SIZE 20464M  ATTRIBUTE 'compatible.asm'='11.2.0.0.0','au_size'='1M' /* ASMCA */
CREATE DISKGROUP REDO2 EXTERNAL REDUNDANCY  DISK '/dev/oracleasm/disks/PROD_REDO2' SIZE 20464M  ATTRIBUTE 'compatible.asm'='11.2.0.0.0','au_size'='1M' /* ASMCA */
 alter diskgroup FRA add disk '/dev/oracleasm/disks/PROD_FRA1','/dev/oracleasm/disks/PROD_FRA2' rebalance power 11


No comments:

Post a Comment