RAC DB file system structure
+++++++++++++++++++++++++++++
1. Spfile ---- will be in ASM diskgroup and shared by both DB instance
srvctl config database -d DEVDB
SQL> show paremeter spfile
Spfile: +DATA/DEVDB/PARAMETERFILE/spfile.268.1228381485
pfile ---- will be in OS storage and not-shared by both DB instance
node1 - initDEVDB1.ora - /u01/app/oracle/product/19.0.0.0/dbhome_1/dbs
node2 - initDEVDB2.ora - /u01/app/oracle/product/19.0.0.0/dbhome_1/dbs
create pfile from spfile;
create spfile from pfile;
2. Controlfile ---- will be in ASM diskgroup and shared by both DB instance
select name from v$controlfile;
SQL> select name from v$controlfile;
NAME
--------------------------------------------------------------------------------
+DATA/DEVDB/CONTROLFILE/current.261.1228381237
+RECO/DEVDB/CONTROLFILE/current.256.1228381237
3. Datafiles: (system, sysaux, undo, temp, users)
---- will be in ASM diskgroup
---- Some datafiles shared by both DB instance
---- Some datafiles non-shared by both DB instance
system, sysaux, users, temp ---- will be in ASM diskgroup and shared by both DB instance
undo --------- will be in ASM diskgroup but not shared by both DB instance
select name from v$datafile;
select name from v$tempfile;
SQL> select name from v$controlfile;
NAME
--------------------------------------------------------------------------------
+DATA/DEVDB/CONTROLFILE/current.261.1228381237
+RECO/DEVDB/CONTROLFILE/current.256.1228381237
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
+DATA/DEVDB/DATAFILE/system.257.1228381099
+DATA/DEVDB/DATAFILE/sysaux.258.1228381145
+DATA/DEVDB/DATAFILE/undotbs1.259.1228381169
+DATA/DEVDB/DATAFILE/undotbs2.265.1228381415
+DATA/DEVDB/DATAFILE/users.260.1228381171
SQL> select name from v$tempfile;
NAME
--------------------------------------------------------------------------------
+DATA/DEVDB/TEMPFILE/temp.264.1228381245
SQL>
4. redolog file
--------- will be in ASM diskgroup but not shared by both DB instance
select group#, member from v$logfile;
SQL> select group#, member from v$logfile;
GROUP# MEMBER
---------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2 +DATA/DEVDB/ONLINELOG/group_2.263.1228381241
2 +RECO/DEVDB/ONLINELOG/group_2.258.1228381241
1 +DATA/DEVDB/ONLINELOG/group_1.262.1228381241
1 +RECO/DEVDB/ONLINELOG/group_1.257.1228381241
3 +DATA/DEVDB/ONLINELOG/group_3.266.1228381483
3 +RECO/DEVDB/ONLINELOG/group_3.259.1228381483
4 +DATA/DEVDB/ONLINELOG/group_4.267.1228381483
4 +RECO/DEVDB/ONLINELOG/group_4.260.1228381483
8 rows selected.
SQL> select GROUP#,THREAD# from v$log;
GROUP# THREAD#
---------- ----------
1 1
2 1
3 2
4 2
5. Archive logs
--------- will be in ASM diskgroup but not shared by both DB instance
DEVDB1 DEDVB2
1 - thread #1 3 - thread #2
2 - thread #1 4 - thread #2
archive log list
show parameter recovery
convert database from No Archive Mode to Archive Mode - MOUNT MODE
convert database from Archive Mode to No Archive Mode - MOUNT MODE
srvctl status database -d DEVDB
srvctl stop database -d DEVDB
srvctl status database -d DEVDB
sqlplus / as sysdba >>> DEVDB1/DEVDB2
startup mount;
alter database archivelog;
--- alter database noarchivelog;
shut immediate
srvctl start database -d DEVDB
srvctl status database -d DEVDB
6. password file
--------- will be in ASM diskgroup and shared by both DB instance
srvctl config database -d DEVDB
Password file: +DATA/DEVDB/PASSWORD/pwddevdb.256.1228381081
passwordfile ---- will be in OS storage and not-shared by both DB instance
node1 - orapwDEVDB1 - /u01/app/oracle/product/19.0.0.0/dbhome_1/dbs
node2 - orapwDEVDB2 - /u01/app/oracle/product/19.0.0.0/dbhome_1/dbs
- sysdba remote authentication
- DR/stsandby sync
https://mallik034.blogspot.com/2022/08/how-to-copy-password-file-from-asm-to-fs.html
pwget --dbuniquename DEVDB
pwcopy '+DATA/DEVDB/PASSWORD/pwddevdb.256.1228381081' '/tmp/orapwDEVDB'
7. diagnostic files
--------- will be in local storage and not shared by both DB instance
$ORACLE_BASE/diag -> /u01/app/oracle/diag
rdbms - DB diagnostic files
/u01/app/oracle/diag/rdbms/devdb/DEVDB1/trace
/u01/app/oracle/diag/rdbms/devdb/DEVDB2/trace
alert log
trace file
trm file
incident files
core-dump files
autifile files
Spfile & pfile
Controlfile
datafile
redo logs
archive logs
password file
diagnostic file
ASM architecture
++++++++++++++++++++
Types of database
standalone
- standalone without ASM (NFS/SAN/NAS)
- standalone with ASM (ASM)
RAC
- RAC database (ASM)
- RAC onenode database (ASM)
1. setup 2 servers (oraclelab1 & oraclelab2)
2. Download 19c GI software and install on node1, as part of installation it will copy to other node2 (./gridSetp.sh)
- +ASM1 & +ASM2 + ASM storage
- Clusterware
3. Download 19c DB software and install on node1, as part of installation it will copy to other node2 (./runInstaller)
- Oracle Home (RAC Oracle Home)
4. create database - DEVDB (./dbca) (NFS/ASM)
- DEVDB1 & DEVDB2
Why oracle recommend to run database on ASM?
1. Oracle Restart capability
2. Mirroring & Stripping
3. High speed Read and Write
4. ACFS (similar to NFS)
Prio to 10g:
================
cluster software installation
node1: node2:
/u01/cluster /u01/cluster
asm software installation
node1: node2:
/u01/asm /u01/asm
oracle software installation
node1: node2:
/u01/dbhome_1 /u01/dbhome_1
In 10g and post
GI software = cluster software + ASM software
GI software Installation (cluster + ASM)
node1: node2:
/u01/grid /u01/grid
oracle software installation
node1: node2:
/u01/dbhome_1 /u01/dbhome_1
GI -> Cluster + ASM
ASM
++++++++++++
- ASM Instance
- ASM Storage
Database Architecture = DEVDB
==================================
oracle architecture = Instance + Database (datafiles / storage files)
Instance = logical structure (Memory + BG process)
Memory = SGA + PGA
BG process = Mandatory BG process (SMON, PMON, DBWR, LGWR, CKPT) + Non-Mandatory BG Process (Arc, MMON, JobQ etc)
Database (datafiles / storage files) = physical structure
- system , sysaux, undo, temp, users
ASM Instance only Architecture:
==================================
- core fundamental understanding of oracle architecture
- Instance only architecture
Instance = logical structure (Memory + BG process)
Memory = PGA + SGA (shared pool, large pool, BBC, LBC, Java Pool)
BG process = Mandatory BG process (SMON, PMON, DBWR, LGWR, CKPT) + Non-Mandatory BG Process
ASM specific memory + ASM specific BG process
SGA - ASM cache
- It will keep track of all ASM diskgroups and ASM disks - metadata information
RBAL (ARBn) - rebalance
GMON - disk level operation (disk add/drop)
MARK - allocating AUs
PZ9n - gv$
Onnn - ASM to ASM exchanging message
ASMB - bridge between ASM & database
ora_asmb_DEVDB1
asm_asmb_+ASM1
ora_asmb_DEVDB2
asm_asmb_+ASM2
Database:
==========
select instance_name, status from v$instance;
select name, open_mode from v$database;
v$instance v$database
shutdown NA NA
nomount STARTED NA
mount MOUNTED MOUNTED
open OPEN READ WRITE
ASM:
==========
select instance_name, status from v$instance;
select name, open_mode from v$database;
v$instance v$database
shutdown NA NA
nomount STARTED NA
mount NA NA
open NA NA
DB: DEVDB
===========
srvctl stop database -d DEVDB -o immediate/abort/normal/transactional
srvctl start database -d DEVDB -o nomount/mount/open
srvctl status database -d DEVDB
srvctl config database -d DEVDB
srvctl stop database -d DEVDB
srvctl start database -d DEVDB
On all RAC nodes
sqlplus / as sysdba
SQL> shutdown immediate/abort/normal/transactional
SQL> startup nomount/mount/open;
ASM: +ASM1/+ASM2
=========
srvctl stop asm -o immediate/abort/normal/transactional (abort) (srvctl stop asm)
srvctl start asm -o nomount/mount/open (srvctl start asm)
srvctl status asm
srvctl config asm
srvctl stop asm
srvctl start asm
On all RAC nodes
sqlplus / as sysasm
SQL> shutdown immediate/abort/normal/transactional (abort)
SQL> startup nomount/mount/open;
Spfile & pfile - Yes
Controlfile - NA
datafile - NA
redo logs - NA
archive logs - NA
password file - YES
diagnostic file - YES
1. spfile ---- will be in ASM diskgroup and shared by both ASM instance
srvctl config asm
SQL> show parameter spfile
SQL> show parameter spfile
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string +OCR/oracle-clu/ASMPARAMETERFI
LE/registry.253.1228302843
+OCR/oracle-clu/ASMPARAMETERFILE/registry.253.1228302843
pfile ---- will be in OS storage and not-shared by both ASM instance
node1 - init+ASM1.ora - /u01/app/19.0.0.0/grid/dbs
node2 - init+ASM2.ora - /u01/app/19.0.0.0/grid/dbs
create pfile from spfile;
create spfile from pfile;
2. password file
--------- will be in ASM diskgroup and shared by both ASM instance
srvctl config asm
Password file: +OCR/orapwASM
--------- will be in local storage and not shared by both DB instance
node1 - $GRID_HOME/dbs/orapw+ASM1
node2 - $GRID_HOME/dbs/orapw+ASM2
pwcopy '+OCR/orapwASM' '/tmp/orapwASM'
pwcopy '/tmp/orapw+ASM' '+OCR/orapwASM'
If password is missing - Then recreate password file
orapwd file='+OCR/orapwASM' password=<password>
3. diagnostic files
--------- will be in local storage and not shared by both DB instance
$ORACLE_BASE/diag -> /u01/app/oracle/diag
asm - DB diagnostic files
/u01/app/oracle/diag/asm/+asm/+ASM1/trace
/u01/app/oracle/diag/asm/+asm/+ASM2/trace
alert log
trace file
trm file
incident files
core-dump files
autifile files
ASM diskgroup administration
- create DG
- modify DG (add / drop)
- Drop DG
mirroring / redundancy
External
Normal
High
striping
ASM storage:
============
Database logical structure:
======================================
Physical - DBA can see datafiles (OS/NFS/ASM/SAN/NAS)
-> tablespace
-> segments
-> extents
-> datablock (these datablock are created with 8k size at the time of database creation)
logical understanding for ASM:
===============================
ASM file -> made up of ASM extents -> These ASM extents are made up of ASM AU
These AU size defined at the time of Diskgroup creation (These AU size is smallest unit of ASM storage)
ASM file kept under ASM diskgroup -> ASM diskgroups are nothing but ASM storages (OCR, DATA, RECO)
These diskgroups are made-up using ASM disks (ASMDISK1, ASMDISK2, ASMDISK3)
mirroring / redundancy
++++++++++++++++++++++++
Mirroring & Stripping
=======================
Mirroring ( Redundancy or Fault tolerance)
- External (1 original + No Duplicate copy)
- Normal (1 original + 1 Duplicate)
- High (1 original + 2 Duplicate)
We DBA can decide at the time of diskgroup creation
DATA, RECO, OCR - we create on Day_2 as external redundancy (./asmca - GUI)
with default AU - 4MB
We can create these diskgroups manually using sqlplus / as sysasm command line
- create DG
- modify DG (add / drop)
- Drop DG
1. CREATE DISKGROUP
========================
- external redundancy
- normal redundancy
- high redundancy
brw-rw----. 1 root disk 8, 64 Mar 25 22:50 sde
brw-rw----. 1 root disk 8, 80 Mar 25 22:50 sdf
brw-rw----. 1 root disk 8, 96 Mar 25 22:50 sdg
brw-rw----. 1 root disk 8, 112 Mar 25 22:50 sdh
brw-rw----. 1 root disk 8, 128 Mar 25 22:50 sdi
brw-rw----. 1 root disk 8, 144 Mar 25 22:50 sdj
brw-rw----. 1 root disk 8, 160 Mar 25 22:50 sdk
brw-rw----. 1 root disk 8, 176 Mar 25 22:50 sdl
brw-rw----. 1 root disk 8, 192 Mar 25 22:50 sdm
brw-rw----. 1 root disk 8, 208 Mar 25 22:50 sdn
fdisk /dev/sde
fdisk /dev/sdf
fdisk /dev/sdg
fdisk /dev/sdh
fdisk /dev/sdi
fdisk /dev/sdj
fdisk /dev/sdk
fdisk /dev/sdl
fdisk /dev/sdm
fdisk /dev/sdn
Command (m for help): n
Command (m for help): w
oracleasm createdisk D1 /dev/sde1
oracleasm createdisk D2 /dev/sdf1
oracleasm createdisk D3 /dev/sdg1
oracleasm createdisk D4 /dev/sdh1
oracleasm createdisk D5 /dev/sdi1
oracleasm createdisk D6 /dev/sdj1
oracleasm createdisk D7 /dev/sdk1
oracleasm createdisk D8 /dev/sdl1
oracleasm createdisk D9 /dev/sdm1
oracleasm createdisk D10 /dev/sdn1
External - No copy (only original copy) (min 1 Fail groups)
Normal - 1 Original + 1 Duplicate copy (min 2 Fail groups)
High - 1 Original + 2 Duplicate copy (min 3 Fail groups)
create diskgroup
- GUI - ./asmca (/u01/app/19.0.0.0/grid/bin) - +DATA +RECO
- 4MB AU
- command line in ASM
- 1MB/2MB/4MB AU
CREATE DISKGROUP dgroupA NORMAL REDUNDANCY
DISK '/dev/oracleasm/disks/D1'; -------------- fail
CREATE DISKGROUP dgroupA HIGH REDUNDANCY
DISK '/dev/oracleasm/disks/D1',
'/dev/oracleasm/disks/D2'; -------------- fail
CREATE DISKGROUP dgroupA NORMAL REDUNDANCY
DISK '/dev/oracleasm/disks/D1',
'/dev/oracleasm/disks/D2';
CREATE DISKGROUP dgroupB HIGH REDUNDANCY
DISK '/dev/oracleasm/disks/D3',
'/dev/oracleasm/disks/D4',
'/dev/oracleasm/disks/D5';
CREATE DISKGROUP dgroupC EXTERNAL REDUNDANCY
DISK '/dev/oracleasm/disks/D6';
CREATE DISKGROUP dgroupC EXTERNAL REDUNDANCY
DISK '/dev/oracleasm/disks/D6',
'/dev/oracleasm/disks/D7';
CREATE DISKGROUP dgroupA NORMAL REDUNDANCY
DISK '/dev/oracleasm/disks/D1',
'/dev/oracleasm/disks/D2';
CREATE DISKGROUP dgroupA NORMAL REDUNDANCY
FAILGROUP FG1
DISK '/dev/oracleasm/disks/D1'
FAILGROUP FG2
DISK '/dev/oracleasm/disks/D2';
CREATE DISKGROUP dgroupA NORMAL REDUNDANCY
FAILGROUP FG1
DISK '/dev/oracleasm/disks/D1' NAME DGA_D1
FAILGROUP FG2
DISK '/dev/oracleasm/disks/D2' NAME DGA_D2;
CREATE DISKGROUP dgroupA NORMAL REDUNDANCY AU_SIZE=1/2/4/8
FAILGROUP FG1
DISK '/dev/oracleasm/disks/D1' NAME DGA_D1
FAILGROUP FG2
DISK '/dev/oracleasm/disks/D2' NAME DGA_D2;
CREATE DISKGROUP dgroupB HIGH REDUNDANCY
DISK '/dev/oracleasm/disks/D3',
'/dev/oracleasm/disks/D4',
'/dev/oracleasm/disks/D5';
CREATE DISKGROUP dgroupB HIGH REDUNDANCY
FAILGROUP FG1
DISK '/dev/oracleasm/disks/D3' NAME DGB_D3
FAILGROUP FG2
DISK '/dev/oracleasm/disks/D4' NAME DGB_D4
FAILGROUP FG3
DISK '/dev/oracleasm/disks/D5' NAME DGB_D5;
CREATE DISKGROUP dgroupB HIGH REDUNDANCY AU_SIZE=1/2/4/8
FAILGROUP FG1
DISK '/dev/oracleasm/disks/D3' NAME DGB_D3
FAILGROUP FG2
DISK '/dev/oracleasm/disks/D4' NAME DGB_D4
FAILGROUP FG3
DISK '/dev/oracleasm/disks/D5' NAME DGB_D5;
DB:
===
v$ - dynamic perf views (coming from memory - SGA)
dba_ - data dictionary view (coming from datafiles system)
ASM:
=====
v$ - dynamic perf views (ASM will not support dba_)
v$asm_diskgroup
v$asm_disk
2. ALTER DISKGROUP
========================
a. When diskgroup is full - We add new disks (Multiple of 2 disks NR, Multiple of 3 disks HR)
b. When a disk is bad or poor performance - we replace the disks
- add disks from DG
- drop disks from DG
dgroupA - NR
dgroupB - HR
dgroupC - ER
ALTER DISKGROUP dgroupA ADD DISK
'/dev/oracleasm/disks/D8',
'/dev/oracleasm/disks/D9';
ALTER DISKGROUP dgroupB ADD DISK
'/dev/oracleasm/disks/D8',
'/dev/oracleasm/disks/D9',
'/dev/oracleasm/disks/D10';
ALTER DISKGROUP dgroupC ADD DISK
'/dev/oracleasm/disks/D8';
dgroupA
++++++++++++
4 DGA_D1 FG1 /dev/oracleasm/disks/D1
4 DGA_D2 FG2 /dev/oracleasm/disks/D2
ALTER DISKGROUP dgroupA ADD DISK
'/dev/oracleasm/disks/D8',
'/dev/oracleasm/disks/D9';
dgroupA
++++++++++++
4 DGA_D1 FG1 /dev/oracleasm/disks/D1
4 DGROUPA_0003 DGROUPA_0003 /dev/oracleasm/disks/D9
4 DGA_D2 FG2 /dev/oracleasm/disks/D2
4 DGROUPA_0002 DGROUPA_0002 /dev/oracleasm/disks/D8
DGA_D1 -> /dev/oracleasm/disks/D1 --- BAD or poor performance
-> We need to replace this disks
ALTER DISKGROUP dgroupA DROP DISK 'D1'; ---- fail
ALTER DISKGROUP dgroupA DROP DISK '/dev/oracleasm/disks/D1'; ---- fail
ALTER DISKGROUP dgroupA DROP DISK 'DGA_D1'; - Works
ALTER DISKGROUP dgroupA ADD DISK
'/dev/oracleasm/disks/D10';
- While dropping disk we need provide disk name whatever defined inside ASM
- While adding disk we need provide disk path
Rebalance:
++++++++++++++
2026-03-26T11:06:08.789202+05:30
SUCCESS: ALTER DISKGROUP dgroupA ADD DISK
'/dev/oracleasm/disks/D8',
'/dev/oracleasm/disks/D9'
2026-03-26T11:06:10.916065+05:30
NOTE: Attempting voting file refresh on diskgroup DGROUPA
NOTE: Refresh completed on diskgroup DGROUPA. No voting file found.
2026-03-26T11:06:10.929921+05:30
NOTE: starting rebalance of group 4/0x77d02569 (DGROUPA) at power 1
NOTE: starting process ARBA
Starting background process ARBA
2026-03-26T11:06:10.947553+05:30
ARBA started with pid=43, OS id=29381
NOTE: starting process ARB0
Starting background process ARB0
2026-03-26T11:06:10.964242+05:30
ARB0 started with pid=45, OS id=29383
NOTE: assigning ARBA to group 4/0x77d02569 (DGROUPA) to compute estimates
NOTE: assigning ARB0 to group 4/0x77d02569 (DGROUPA) with 1 parallel I/O
2026-03-26T11:06:11.120833+05:30
NOTE: F1X0 on disk 3 (fmt 1) relocated at fcn 0.17: AU 0 -> AU 2
NOTE: 03/26/26 11:06:10 DGROUPA.F1X0 copy 3 relocating from 65534:4294967294 to 3:2 at FCN 0.17
2026-03-26T11:06:12.172574+05:30
NOTE: stopping process ARB0
NOTE: stopping process ARBA
NOTE: Starting expel slave for group 4/0x77d02569 (DGROUPA)
2026-03-26T11:06:12.207183+05:30
NOTE: GroupBlock outside rolling migration privileged region
NOTE: requesting all-instance membership refresh for group=4
2026-03-26T11:06:12.234663+05:30
NOTE: membership refresh pending for group 4/0x77d02569 (DGROUPA)
2026-03-26T11:06:12.236496+05:30
GMON querying group 4 at 78 for pid 26, osid 4844
2026-03-26T11:06:12.237285+05:30
SUCCESS: refreshed membership for 4/0x77d02569 (DGROUPA)
2026-03-26T11:06:13.973090+05:30
SUCCESS: rebalance completed for group 4/0x77d02569 (DGROUPA)
SQL> show parameter power
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
asm_power_limit integer 1
monitor and check rebalance operation
- desc v$asm_operation;
INST_ID OPERA STAT POWER SOFAR EST_WORK EST_RATE EST_MINUTES
------- ----- ---- ----- ----- -------- -------- -----------
1 REBAL RUN 1 516 53736 2012 26
DB -> 450+ parameters
ASM -> 70+ / 80+ parameters
v$parameter
3. DROP DISKGROUP
========================
drop diskgroup dgroupA;
drop diskgroup dgroupB;
drop diskgroup dgroupC;
drop diskgroup DATA;
1. ASM Architecture:
- Instance only Architecture
- INSTANCE + Storage
2. DB supports v$ & dba_ but ASM support v$
v$asm_diskgroup
v$asm_disk
v$asm_operation;
DB - Spfile (480+ parameters static or dynamic)
ASM - Spfile (80+ parameters static or dynamic)
- asm_power_limit
3. ASM specific memory & ASM specific BG process
ASM cache
ASMB
4. How to increase rebalance
asm_power_limit
5. How to monitor rebalance / estimate
- desc v$asm_operation;
6. connecting to DB, ASM, ASM storage
sqlplus / as sysdba
sqlplus / as sysasm
asmcmd -p
7. ASM storage structure / ASM logical structure
AU, ASM Extents, ASM file, ASM disks, ASM diskgroup
8. DB_BLOCK_SIZE Vs AU
9. ASM advantages
- Redundancy (External, Normal, High)
- Fail Group
- Striping
- High speed read and write (Multiple parallel IO)
- Autorestart feature
10. DB start-up sequence and ASM startup sequence
11. ASM diskgroup administration
create / alter / drop
12. ASM, DB maintenance - Bounce
HAS (os process / os daemon) -> CRS -> ASM -> DB
crsctl check has
crsctl stop has
crsctl start has
crsctl check crs
crsctl stop crs
crsctl start crs
srvctl status asm
srvctl stop asm
srvctl start asm
srvctl status database -d DEVDB
srvctl stop database -d DEVDB
srvctl start database -d DEVDB
13. change diskgroup redundancy?
DEVDB -> +DATA (External Redundancy)
Change redundancy of DATA diskgroup to NORMAL / HIGH?
- No
14. change AU size of a diskgroup?
DEVDB -> +DATA (AU=4MB)
Change AU size of DATA diskgroup to 8MB?
- No
15. change diskgroup name?
DEVDB -> +DATA groups
Change name of DATA diskgroup DATAC?
- Possible (This need downtime for DEVDB)
DATA -> DATAC
16. How to map asm disks to diskgroup?
/dev/oracleasm/disks/ASMDISK1 - OCR
/dev/oracleasm/disks/ASMDISK2 - DATA
/dev/oracleasm/disks/ASMDISK3 - RECO
ASMCMD [+DATA] > lsdsk -G OCR
ASMCMD [+DATA] > lsdsk -G DATA
ASMCMD [+DATA] > lsdsk -G RECO
select GROUP_NUMBER,NAME,FAILGROUP,PATH from V$ASM_DISK order by GROUP_NUMBER;
select GROUP_NUMBER,NAME from V$ASM_DISKGROUP order by GROUP_NUMBER;
17. How to map asm disks to OS disks?
/dev/oracleasm/disks/ASMDISK1 - /dev/sdb1
/dev/oracleasm/disks/ASMDISK2 - /dev/sdc1
/dev/oracleasm/disks/ASMDISK3 - /dev/sdd1
oracleasm querydisk -d ASMDISK1
oracleasm querydisk -d ASMDISK2
oracleasm querydisk -d ASMDISK3
[oracle@oraclelab1 dev]$ ll sd*
brw-rw----. 1 root disk 8, 0 Mar 20 11:30 sda
brw-rw----. 1 root disk 8, 1 Mar 20 11:30 sda1
brw-rw----. 1 root disk 8, 2 Mar 20 11:30 sda2
brw-rw----. 1 root disk 8, 16 Mar 20 11:31 sdb
brw-rw----. 1 root disk 8, 17 Mar 20 11:31 sdb1
brw-rw----. 1 root disk 8, 32 Mar 20 11:31 sdc
brw-rw----. 1 root disk 8, 33 Mar 20 11:31 sdc1
brw-rw----. 1 root disk 8, 48 Mar 20 11:31 sdd
brw-rw----. 1 root disk 8, 49 Mar 20 11:31 sdd1
brw-rw----. 1 root disk 8, 64 Mar 26 10:43 sde
brw-rw----. 1 root disk 8, 65 Mar 26 10:44 sde1
brw-rw----. 1 root disk 8, 80 Mar 26 10:43 sdf
brw-rw----. 1 root disk 8, 81 Mar 26 10:44 sdf1
brw-rw----. 1 root disk 8, 96 Mar 26 10:43 sdg
brw-rw----. 1 root disk 8, 97 Mar 26 10:44 sdg1
brw-rw----. 1 root disk 8, 112 Mar 26 10:43 sdh
brw-rw----. 1 root disk 8, 113 Mar 26 10:44 sdh1
brw-rw----. 1 root disk 8, 128 Mar 26 10:43 sdi
brw-rw----. 1 root disk 8, 129 Mar 26 10:44 sdi1
brw-rw----. 1 root disk 8, 144 Mar 26 10:43 sdj
brw-rw----. 1 root disk 8, 145 Mar 26 10:44 sdj1
brw-rw----. 1 root disk 8, 160 Mar 26 10:44 sdk
brw-rw----. 1 root disk 8, 161 Mar 26 10:44 sdk1
brw-rw----. 1 root disk 8, 176 Mar 26 10:44 sdl
brw-rw----. 1 root disk 8, 177 Mar 26 10:44 sdl1
brw-rw----. 1 root disk 8, 192 Mar 26 10:44 sdm
brw-rw----. 1 root disk 8, 193 Mar 26 10:44 sdm1
brw-rw----. 1 root disk 8, 208 Mar 26 10:44 sdn
brw-rw----. 1 root disk 8, 209 Mar 26 10:44 sdn1
[oracle@oraclelab1 dev]$ oracleasm querydisk -d ASMDISK1
Disk "ASMDISK1" is a valid ASM disk on device [8,17]
[oracle@oraclelab1 dev]$
[oracle@oraclelab1 dev]$ oracleasm querydisk -d ASMDISK2
Disk "ASMDISK2" is a valid ASM disk on device [8,33]
[oracle@oraclelab1 dev]$
[oracle@oraclelab1 dev]$ oracleasm querydisk -d ASMDISK3
Disk "ASMDISK3" is a valid ASM disk on device [8,49]
[oracle@oraclelab1 dev]$
18. diskgrup creation
Creation DG - using command line
Creation DG - using command GUI (./asmca)
19. Why oracle recommend to run database on ASM?
- Redundancy (External, Normal, High)
- Fail Group
- Striping
- High speed read and write (Multiple parallel IO)
- Autorestart feature
- ACFS (similar to NFS)
Striping
+++++++++++++++
- fine grained (CF)
- course grained (Remaining all)
Disk headers
+++++++++++++++++
HEADER_STATUS