Professional Documents
Culture Documents
Introduction To Automatic Storage Management: An Overview of ASM, The Oracle 10g File and Volume Management System
Introduction To Automatic Storage Management: An Overview of ASM, The Oracle 10g File and Volume Management System
SKILLBUILDERS
Topics
Introduction to ASM
Benefits
Architecture
Installation tips
Starting ASM
ASM Disks, Diskgroups and Failgroups
Managing ASM with asmcmd
ASM from the Database Instance
ASM and SAN Tips
Miscellaneous Release 2 enhancements
2005-2006 SkillBuilders, Inc.
What is ASM?...
ASM = Automatic Storage Management
It
...What is ASM?
Mirrors and stripes data (RAID 1+0)
Mirrored
stripes
Good R/W performance
Good availability
Works with
Single
Benefits of ASM...
Simpler administration
Manage
ASM
balances IO load
...Benefits of ASM...
Performance
Raw
device performance
Oracle
Redundancy
2
or 3 way mirroring
...Benefits of ASM
High Availability
Add
SE and EE
Automated S.A.M.E.
S.A.M.E.
Stripe
performance
Uses optimal stripe size for Oracle datafiles
Typically 1MB
128k stripe for control files
Other Points...
ASM built on top of raw devices
Don't
migrate incrementally
10g DBMS_FILE_TRANSER can be used
RMAN commands
2005-2006 SkillBuilders, Inc.
10
...Other Points
ASM files are not visible to OS
Use RMAN to backup
10g BIGFILES are designed for ASM
Or
OMF points to
disk group
11
12
Each
13
RBAL
ARBn
GMON
14
Create
separately
CSS required
2005-2006 SkillBuilders, Inc.
R2
15
ASM Parameters
instance_type='asm'
instance_type='asm'
+asm.asm_diskgroups='DATAFILE_GROUP','FLASHBACK_GROUP'
+asm.asm_diskgroups='DATAFILE_GROUP','FLASHBACK_GROUP'
asm_diskstring='c:\asmdisks\_file*'
asm_diskstring='c:\asmdisks\_file*'
asm_power_limit=1
asm_power_limit=1 ## 11 (low),
(low), 11
11 (high)
(high)
processes=55
#set
to
handle
2
processes=55
#set to handle 2 database
database instances
instances
large_pool_size=12M
large_pool_size=12M
shared_pool_size=40m
shared_pool_size=40m
db_cache_size=24m
db_cache_size=24m
remote_login_passwordfile='exclusive'
remote_login_passwordfile='exclusive'
user_dump_dest='C:\oracle\product\10.2.0\admin\+ASM\udump'
user_dump_dest='C:\oracle\product\10.2.0\admin\+ASM\udump'
background_dump_dest='C:\oracle\product\10.2.0\admin\+ASM\bdump'
background_dump_dest='C:\oracle\product\10.2.0\admin\+ASM\bdump'
core_dump_dest='C:\oracle\product\10.2.0\admin\+ASM\cdump'
core_dump_dest='C:\oracle\product\10.2.0\admin\+ASM\cdump'
compatible='10.2.0.1.0'
compatible='10.2.0.1.0'
16
Starting ASM
Default ASM
instance name
Must
(always)
connect as
SYSDBA
Mounts
disks; no
database to
open!
17
ASM Disks
ASM disks must be discovered
SQL>
SQL> select
select name,
name, path,
path, total_mb,
total_mb, free_mb,
free_mb,
22
reads,
writes
reads, writes
33 from
v$asm_disk;
from v$asm_disk;
NAME
PATH
TOTAL_MB
FREE_MB
NAME
PATH
TOTAL_MB
FREE_MB
------------------------------------------------------- --------------- ---------- ---------GROUP1_0003
34710
29769
GROUP1_0003 /dev/raw/raw4
/dev/raw/raw4
34710
29769
GROUP1_0002
/dev/raw/raw3
34710
29852
GROUP1_0002 /dev/raw/raw3
34710
29852
GROUP1_0001
/dev/raw/raw2
34710
29213
GROUP1_0001 /dev/raw/raw2
34710
29213
GROUP1_0000
/dev/raw/raw1
32718
28416
GROUP1_0000 /dev/raw/raw1
32718
28416
2005-2006 SkillBuilders, Inc.
ASM instance
shows all
available disks
Database shows
disks in use by
that database
18
ASM Diskgroups
Like a volume or storage group
Contain ASM files
Used by one or more database instances
ASM_DISKGROUP parameter identifies
diskgroups mounted
Striping for balanced IO load across disks
Files
19
ASM Failgroups
Failgroups provide ASM (internal) mirroring
Mirroring options
External
Normal
2-way
High
3-way
20
Creating Diskgroup
+ASM>
+ASM> create
create diskgroup
diskgroup group1
group1 normal
normal redundancy
redundancy
22 failgroup
fgroup1
disk
'/dev/raw/raw1',
failgroup fgroup1 disk '/dev/raw/raw1', '/dev/raw/raw2'
'/dev/raw/raw2'
33 failgroup
failgroup fgroup2
fgroup2 disk
disk '/dev/raw/raw3',
'/dev/raw/raw3', '/dev/raw/raw4';
'/dev/raw/raw4';
Diskgroup
Diskgroup created.
created.
SQL>
SQL> select
select ** from
from v$asm_diskgroup;
v$asm_diskgroup;
GROUP_NUMBER
SECTOR_SIZE
GROUP_NUMBER NAME
NAME
SECTOR_SIZE BLOCK_SIZE
BLOCK_SIZE
----------------------- ----------------------- --------------------- ------------------11 GROUP1
512
4096
GROUP1
512
4096
ALLOCATION_UNIT_SIZE
TYPE
TOTAL_MB
ALLOCATION_UNIT_SIZE STATE
STATE
TYPE
TOTAL_MB
--------------------------------------------------------- ------------------1048576
136848
1048576 MOUNTED
MOUNTED NORMAL
NORMAL
136848
FREE_MB
FREE_MB
------------136744
136744
+ASM>
+ASM> select
select g.name
g.name as
as group_name,
group_name, d.name
d.name as
as disk_name,
disk_name, d.path,
d.path, d.failgro
d.failgro
22 from
v$asm_diskgroup
g,
v$asm_disk
d
from v$asm_diskgroup g, v$asm_disk d
33 where
where g.group_number
g.group_number == d.group_number
d.group_number
GROUP_NAME
PATH
FAILGROUP
GROUP_NAME DISK_NAME
DISK_NAME
PATH
FAILGROUP
----------------------------------------------------- ---------------- ---------------- ------GROUP1
GROUP1_0003
/dev/raw/raw4
FGROUP2
GROUP1
GROUP1_0003
/dev/raw/raw4
FGROUP2
GROUP1
GROUP1_0002
/dev/raw/raw3
FGROUP2
GROUP1
GROUP1_0002
/dev/raw/raw3
FGROUP2
GROUP1
GROUP1_0001
/dev/raw/raw2
FGROUP1
GROUP1
GROUP1_0001
/dev/raw/raw2
FGROUP1
GROUP1
GROUP1_0000
/dev/raw/raw1
FGROUP1
GROUP1
GROUP1_0000
/dev/raw/raw1
FGROUP1
2005-2006 SkillBuilders, Inc.
21
Altering Diskgroup
Easily add or remove disks while database open
Automatic rebalancing starts
+ASM>
+ASM> alter
alter diskgroup
diskgroup group1
group1 drop
drop disk
disk GROUP1_0002;
GROUP1_0002;
Diskgroup
Diskgroup altered.
altered.
+ASM>
+ASM> select
select ** from
from v$asm_operation
v$asm_operation
22 //
GROUP_NUMBER
POWER
ACTUAL
SOFAR
GROUP_NUMBER OPERA
OPERA STAT
STAT
POWER
ACTUAL
SOFAR EST_WORK
EST_WORK EST_RATE
EST_RATE
--------------------------------------------------------------------------- ----- ---- ---------- ---------- ---------- ---------- ---------11 REBAL
11
11
181
1275
338
REBAL RUN
RUN
181
1275
338
EST_MINUTES
EST_MINUTES
--------------------33
22
DROP removes
file from ASM
diskgroup
FILE_NAME
BYTES
FILE_NAME
BYTES
---------------------------------------------------------------------------------- ---------+GROUP1/linux3/datafile/class.1083.1
5242880
+GROUP1/linux3/datafile/class.1083.1
5242880
LINUX>
LINUX> drop
drop tablespace
tablespace class;
class;
Tablespace
Tablespace dropped.
dropped.
2005-2006 SkillBuilders, Inc.
23
LINUX>
LINUX> create
create tablespace
tablespace class
class datafile
datafile '+group1'
'+group1' size
size 1m;
1m;
Tablespace
Tablespace created.
created.
LINUX>
LINUX> select
select file_name,
file_name, bytes
bytes from
from dba_data_files
dba_data_files
22 where
tablespace_name
=
'CLASS';
where tablespace_name = 'CLASS';
FILE_NAME
BYTES
FILE_NAME
BYTES
---------------------------------------------------------------------------------- ---------+GROUP1/linux3/datafile/class.1083.3
1048576
+GROUP1/linux3/datafile/class.1083.3
1048576
LINUX>
LINUX> alter
alter tablespace
tablespace class
class add
add datafile
datafile '+group1'
'+group1' size
size 1m;
1m;
Tablespace
Tablespace altered.
altered.
Use diskgroup
name in ALTER
2005-2006 SkillBuilders, Inc.
24
ASMCMD
Command line interface
Alternative to managing with SQL or OEM
Supports scripting
[oracle@springsteen
[oracle@springsteen oracle]$
oracle]$ ORACLE_SID=+ASM
ORACLE_SID=+ASM
[oracle@springsteen
oracle]$
asmcmd
[oracle@springsteen oracle]$ asmcmd
ASMCMD>
ASMCMD> ls
ls -l
-l group1/linux3/datafile
group1/linux3/datafile
Type
Redund
Sys
Type
Redund Striped
Striped Time
Time
Sys
DATAFILE
MIRROR
COARSE
JAN
05
10:00:00
Y
DATAFILE MIRROR COARSE
JAN 05 10:00:00 Y
DATAFILE
MIRROR
COARSE
JAN
DATAFILE MIRROR COARSE
JAN 05
05 10:00:00
10:00:00 YY
DATAFILE
DATAFILE MIRROR
MIRROR COARSE
COARSE JAN
JAN 05
05 10:00:00
10:00:00 YY
DATAFILE
DATAFILE MIRROR
MIRROR COARSE
COARSE JAN
JAN 05
05 10:00:00
10:00:00 YY
DATAFILE
DATAFILE MIRROR
MIRROR COARSE
COARSE JAN
JAN 05
05 10:00:00
10:00:00 YY
DATAFILE
DATAFILE MIRROR
MIRROR COARSE
COARSE JAN
JAN 05
05 10:00:00
10:00:00 YY
DATAFILE
DATAFILE MIRROR
MIRROR COARSE
COARSE JAN
JAN 05
05 10:00:00
10:00:00 YY
DATAFILE
DATAFILE MIRROR
MIRROR COARSE
COARSE JAN
JAN 05
05 10:00:00
10:00:00 YY
ASMCMD>
ASMCMD> du
du
Used_MB
Mirror_used_MB
Used_MB
Mirror_used_MB
6790
13591
6790
13591
2005-2006 SkillBuilders, Inc.
Commands
similar to Unix
Name
Name
DAVES_TS.1162.9
DAVES_TS.1162.9
DEFAULT_USERS.13
DEFAULT_USERS.13
EXAMPLE.269.1
EXAMPLE.269.1
SKILL.1221.7
SKILL.1221.7
SYSAUX.257.1
SYSAUX.257.1
SYSTEM.256.1
SYSTEM.256.1
UNDOTBS1.258.1
UNDOTBS1.258.1
USERS.957.7
USERS.957.7
25
R2 Enhancements...
OEM provides ASM migration utility
DBMS_FILE_TRANSFER
26
...R2 Enhancements...
New views
V$ASM_DISK_STAT, V$ASM_DISKGROUP_STAT
More efficient than V$DISK, V$ASM_DISKGROUPUsable
free space
Space that's safe to use considering mirroring
27
...R2 Enhancements
SHUTDOWN returns error if database connected
ORA-15097
ASM_POWER_LIMIT=0
Disables
28
29
30
Summary...
ASM is a built-in file system and volume manager
Provides automated S.A.M.E.
Easier disk management
Use instead of other file systems
At startup:
ASM_DISKSTRING controls disk discovery
ASM_DISKGROUP names diskgroups to be mounted
31
...Summary
Diskgroup is the main object
Define disks in the group
Define failgroups for redundancy
32
Helpful Resources
Class from SkillBuilders, free tutorials
See
www.skillbuilders.com
www.idevelopment.info
Jeff
12
33
Q&A
34
Thank You
Thank you for coming to the presentation!
Thanks to SEOUC for inviting me to speak!