History
ASM was first released with Oracle 10g Release 1.
[edit]Features
- ASM takes control of disk devices (no disk partitioning needed)
- More space can be transparently added
- I/Os are spread over all the available disks (striping)
- ASM can maintain redundant copies of the data (mirror)
- Storage can be migrated between disks
- Same disk (or set of disks) can be shared amongst many DBs
[edit]Installing ASM
It is recommended to install ASM in a separate Oracle home so that upgrades can be done independently from the databases.
Use the DBCA utility to create the ASM instance.
[edit]Starting and stopping
Start the ASM instance:
$ export ORACLE_SID=+ASM $ sqlplus "/ as sysdba" SQL*Plus: Release 10.2.0.1.0 - Production on Sun Sep 3 00:28:09 2006 Copyright (c) 1982, 2005, Oracle. All rights reserved. Connected to an idle instance. SQL> startup ASM instance started Total System Global Area 83886080 bytes Fixed Size 1217836 bytes Variable Size 57502420 bytes ASM Cache 25165824 bytes ASM diskgroups mounted
Stop the ASM instance:
$ export ORACLE_SID=+ASM $ sqlplus "/ as sysdba" shutdown immediate
[edit]Adding diskgroups
SQL> create diskgroup orag2 external redundancy disk 'ORCL:VOL5'; Diskgroup created.
SQL> select group_number,disk_number,mode_status,name from v$asm_disk; GROUP_NUMBER DISK_NUMBER MODE_STATUS NAME ------------ ----------- -------------- ------------------------------------- 0 5 ONLINE 1 0 ONLINE VOL1 1 1 ONLINE VOL2 1 2 ONLINE VOL3 1 3 ONLINE VOL4 2 0 ONLINE VOL5 6 rows selected.
[edit]Recreating a diskgroup
All ASM metadata must be cleared before attempting to re-create a diskgroup. Example Command:
dd if=/dev/zero of=/dev/rdsk/c1t4d0s4 bs=8192 count=12800
When done, restart ASM and create the diskgroup from scratch.
[edit]Rebalancing
The rebalancing speed is controlled by the ASM_POWER_LIMIT initialization parameter. Setting it to 0 will disable disk rebalancing.
To force rebalancing of a diskgroup:
ALTER DISKGROUP data REBALANCE POWER 11 WAIT;
[edit]Converting to ASM
One can use Rman to convert a datafile, tablespace or entire database from/to ASM. Here are the steps required to migrate an entire database to ASM:
[edit]Convert a database to ASM
Ensure the database is using an SPFILE and not a PFILE (it's about time after all!). Set parameters on the target database. For example, if we set both DB_CREATE_FILE_DEST and DB_RECOVERY_FILE_DEST we should get mirrored controlfiles and duplexed log files by default:
SQL> alter system set DB_CREATE_FILE_DEST = '+DATA'; SQL> alter system set DB_RECOVERY_FILE_DEST_SIZE = 17G; SQL> alter system set DB_RECOVERY_FILE_DEST = '+RECOVER'; SQL> alter system set CONTROL_FILES = '+DATA';
Start the database in NOMOUNT mode and restore the controlfile into the new location from the old location:
RMAN> connect target / RMAN> STARTUP NOMOUNT RMAN> RESTORE CONTROLFILE FROM 'old_control_file_name';
Mount the database and copy the database into the ASM disk group:
RMAN> ALTER DATABASE MOUNT; RMAN> CONFIGURE DEVICE TYPE DISK PARALLELISM 8; RMAN> BACKUP AS COPY DATABASE FORMAT '+DATA';
Switch all datafiles to the new ASM location and open the database:
RMAN> SWITCH DATABASE TO COPY; RMAN> ALTER DATABASE OPEN;
Add new tempfiles and drop the old tempfiles:
SQL> alter tablespace temp add tempfile; SQL> alter database tempfile '...' DROP; SQL> select * from dba_temp_files;
Optionally, move SPFILE into ASM:
SQL> CREATE SPFILE '+DATA' FROM PFILE;
Move redo log files into ASM - for each group:
SQL> ALTER DATABASE DROP LOGFILE GROUP 1; SQL> ALTER DATABASE ADD LOGFILE GROUP 1 SIZE 100M;
If a logfile is active and cannot be dropped, issue an ALTER DATABASE SWITCH LOGFILE; command and try again.
[edit]Convert a tablespace to ASM
Ensure the database in in archive log mode, and from rman:
connect target; sql "alter tablespace TSNAME offline"; backup as copy tablespace TSNAME format '+DATA'; switch tablespace TSNAME to copy; sql "alter tablespace TSNAME online"; exit;
[edit]Convert a datafile to ASM
Ensure the database in in archive log mode, and from rman:
connect target; sql "alter database datafile '...' offline"; backup as copy datafile '...' format '+DATA'; switch datafile '..' to copy; sql "alter database datafile '...' online"; exit;
[edit]Monitoring
Some of the views that can be used to monitor ASM configuration and activity:
- V$ASM_DISK - ASM disks
- V$ASM_DISK_STAT - cached view of V$ASM_DISK for faster access (used by Enterprise Manager)
- V$ASM_DISKGROUP - ASM diskgroups
- V$ASM_DISKGROUP_STAT - cached view of V$ASM_DISKGROUP for faster access (used by Enterprise Manager)
- V$ASM_OPERATION - status of ongoing disk operations (like rebalancing)
No comments:
Post a Comment