Exadata Database ASM restructure Testing

=============================
Exadata Database ASM restructure
=============================

SQL> select name, total_mb, free_mb, required_mirror_free_mb
  2  from v$asm_diskgroup;
 

NAME                             TOTAL_MB    FREE_MB REQUIRED_MIRROR_FREE_MB
------------------------------ ---------- ---------- -----------------------
DATA_QR01                           24768      10056                    8256
DBFS_DG                              2880       1576                     960
RECO_QR01                           13824      12628                    4992

SQL> select dg.name, count(*), d.total_mb,
  2  min(d.free_mb) MIN_FREE_MB, max(d.free_mb) MAX_FREE_MB
  3  from v$asm_disk d, v$asm_diskgroup dg
  4  where dg.group_number=d.group_number and d.mount_status='CACHED'
  5  group by dg.name, d.total_mb;

NAME                             COUNT(*)   TOTAL_MB MIN_FREE_MB MAX_FREE_MB
------------------------------ ---------- ---------- ----------- -----------
DBFS_DG                                36         80          12          60
DATA_QR01                              36        688         248         308
RECO_QR01                              12        320         284         296
RECO_QR01                              24        416         372         392
SQL> select * from gv$asm_operation;

no rows selected

SQL> alter diskgroup reco_qr01
  2  drop disks in failgroup qr01cel01
  3  force rebalance power 0;

Diskgroup altered.

SQL> select path, free_mb, header_status, mount_status
  2  from v$asm_disk
  3  where path like '%RECO_QR01%cel01';

PATH
-------------------------------------------------------
   FREE_MB HEADER_STATU MOUNT_S
---------- ------------ -------------------------------

o/192.168.1.11/RECO_QR01_CD_11_qr01cel01
         0 MEMBER       CLOSED

o/192.168.1.11/RECO_QR01_CD_10_qr01cel01
         0 MEMBER       CLOSED

o/192.168.1.11/RECO_QR01_CD_01_qr01cel01
         0 MEMBER       CLOSED

o/192.168.1.11/RECO_QR01_CD_00_qr01cel01
         0 MEMBER       CLOSED

o/192.168.1.11/RECO_QR01_CD_06_qr01cel01
         0 MEMBER       CLOSED

:
:
 
o/192.168.1.11/RECO_QR01_CD_05_qr01cel01
         0 MEMBER       CLOSED

12 rows selected.

SQL> select path, free_mb, header_status, mount_status
2  from v$asm_disk
  3  where path like '%RECO_QR01%cel01';

Notice that the reconfigured grid disks are listed with HEADER_STATUS=CANDIDATE.

o/192.168.1.11/RECO_QR01_CD_05_qr01cel01
         0 CANDIDATE    CLOSED

12 rows selected.

Create diskgroup again
++++++++++++++++++
 
SQL> alter diskgroup reco_qr01 add disk
  2  'o/192.168.1.11/RECO_QR01_CD_00_qr01cel01',
  3  'o/192.168.1.11/RECO_QR01_CD_01_qr01cel01',
  4  'o/192.168.1.11/RECO_QR01_CD_02_qr01cel01',
  5  'o/192.168.1.11/RECO_QR01_CD_03_qr01cel01',
  6  'o/192.168.1.11/RECO_QR01_CD_04_qr01cel01',
  7  'o/192.168.1.11/RECO_QR01_CD_05_qr01cel01',
  8  'o/192.168.1.11/RECO_QR01_CD_06_qr01cel01',
  9  'o/192.168.1.11/RECO_QR01_CD_07_qr01cel01',
 10  'o/192.168.1.11/RECO_QR01_CD_08_qr01cel01',
 11  'o/192.168.1.11/RECO_QR01_CD_09_qr01cel01',
 12  'o/192.168.1.11/RECO_QR01_CD_10_qr01cel01',
 13  'o/192.168.1.11/RECO_QR01_CD_11_qr01cel01'
 14  rebalance power 11 nowait;

Diskgroup altered.

Check
+++++++++ 
select * from gv$asm_operation;

---- Check header status is member and mount status is cached
SQL> select path, free_mb, header_status, mount_status

SQL> select dg.name, count(*), d.total_mb,
 min(d.free_mb) MIN_FREE_MB, max(d.free_mb) MAX_FREE_MB
 from v$asm_disk d, v$asm_diskgroup dg
 where dg.group_number=d.group_number and d.mount_status='CACHED'
 group by dg.name, d.total_mb;
 from v$asm_disk
 where path like '%RECO_QR01%cel01';


Drop the disks associated with the second cell (qr01cel02).

SQL> alter diskgroup reco_qr01
 drop disks in failgroup qr01cel02 force rebalance power 0;

Diskgroup altered.

Check free space on cell disk [Exadata Storage]
------------------------------------------------------------
CellCLI command to show the free space on each cell disk.

CellCLI> list celldisk attributes name, freeSpace where freeSpace != 0
rebalance power 11 nowait;

 CellCLI> list celldisk attributes name, freeSpace where freeSpace != 0

         CD_00_qr01cel01         96M
         CD_01_qr01cel01         96M
         CD_02_qr01cel01         96M
         CD_03_qr01cel01         96M
         CD_04_qr01cel01         96M
         CD_05_qr01cel01         96M
         CD_06_qr01cel01         96M
         CD_07_qr01cel01         96M
         CD_08_qr01cel01         96M
         CD_09_qr01cel01         96M
         CD_10_qr01cel01         96M
         CD_11_qr01cel01         96M

CellCLI>

Create a set of grid disks, which consume all of the available free space. Specify
prefix=DATA2_QR01.

 
CellCLI> create griddisk all harddisk prefix=DATA2_QR01

GridDisk DATA2_QR01_CD_00_qr01cel01 successfully created
GridDisk DATA2_QR01_CD_01_qr01cel01 successfully created
GridDisk DATA2_QR01_CD_02_qr01cel01 successfully created
GridDisk DATA2_QR01_CD_03_qr01cel01 successfully created
GridDisk DATA2_QR01_CD_04_qr01cel01 successfully created
GridDisk DATA2_QR01_CD_05_qr01cel01 successfully created
GridDisk DATA2_QR01_CD_06_qr01cel01 successfully created
GridDisk DATA2_QR01_CD_07_qr01cel01 successfully created
GridDisk DATA2_QR01_CD_08_qr01cel01 successfully created
GridDisk DATA2_QR01_CD_09_qr01cel01 successfully created
GridDisk DATA2_QR01_CD_10_qr01cel01 successfully created
GridDisk DATA2_QR01_CD_11_qr01cel01 successfully created
 
Check
+++++++++
CellCLI> list griddisk attributes name, size, ASMModeStatus where name like 'DATA2.*'

         DATA2_QR01_CD_00_qr01cel01      96M     UNUSED
         DATA2_QR01_CD_01_qr01cel01      96M     UNUSED
         DATA2_QR01_CD_02_qr01cel01      96M     UNUSED
         DATA2_QR01_CD_03_qr01cel01      96M     UNUSED
         DATA2_QR01_CD_04_qr01cel01      96M     UNUSED
         DATA2_QR01_CD_05_qr01cel


Exadata grid disks are consumed inside ASM in two ways.

 - add disks to an existing ASM disk group
 - create a new ASM disk group based on Exadata grid disks.

SQL> alter diskgroup reco_qr01
  2  add disk 'o/192.168.1.11/DATA2_QR01_CD_00_qr01cel01'
  3  rebalance power 0;

Diskgroup altered.


Check
======

SQL> select dg.name GNAME, d.name DNAME, d.header_status, d.path
  2  from v$asm_disk d left outer join
  3  (select * from v$asm_diskgroup where group_number != 0) dg
  4  on d.group_number = dg.group_number
  5  where dg.name is not null and d.path like 'o/%/DATA2%';

GNAME                          DNAME                          HEADER_STATU
------------------------------ ------------------------------ ------------
PATH
--------------------------------------------------------------------------------

RECO_QR01                      DATA2_QR01_CD_00_QR01CEL01     MEMBER

o/192.168.1.11/DATA2_QR01_CD_00_qr01cel01


Remove the recently added disk from your disk group
====================================================

SQL> alter diskgroup reco_qr01
2 drop disk DATA2_QR01_CD_00_QR01CEL01
3 rebalance power 11 wait;
Diskgroup altered.

Create a new ASM disk group consuming the peviously create grid disks
=====================================================================
SQL> create diskgroup data2_qr01 normal redundancy
2 disk 'o/*/DATA2_QR01*'
3 attribute 'compatible.rdbms' = '11.2.0.0.0',
4 'compatible.asm' = '11.2.0.0.0',
5 'cell.smart_scan_capable' = 'TRUE',
6 'au_size' = '4M';

Diskgroup created.

Check output
+++++++++++
RECO_QR01_CD_03_QR01CEL02      MEMBER
o/192.168.1.12/RECO_QR01_CD_03_qr01cel02

QL> select name, header_status, path from v$asm_disk
 where PATH like '%DATA1%';

alter diskgroup RECO_QR01_CD_03_QR01CEL02;
;
drop disk 'RECO_QR01_CD_03_qr01cel02'
;
rebalance power 11 wait;

create diskgroup data2_qr01 normal redundancy
    disk 'o/*/DATA1_QR01*'
    attribute 'compatible.rdbms' = '11.2.0.0.0',
    'compatible.asm' = '11.2.0.0.0',
    'cell.smart_scan_capable' = 'TRUE',
    'au_size' = '4M';

Comments

Popular posts from this blog

Oracle DataGuard – How to resize Redo Log and Standby Redo Log

Exadata - Smart Scan Testing

Exadata Flash Cache - Management