Saludos, este post lo dedicare para explicar de manera breve que es ASM, las ventajas de usar ASM y dar un pequeño ejemplo de la creación de una instancia simple ASM.
ASM es Administración Automática de Almacenamiento o sus siglas en ingles Automatic Storage Management, es una nueva característica introducida desde la versión 10G cuyo objetivo es simplificar la administración de los archivos de base de datos como datafile, control file, spfile , log file y archive log.
Acerca de ASM (Administración Automática de Almacenamiento) ASM Esta característica tiene como objetivo simplificar la administración de los archivos relacionados con la base de datos Oracle como:
ASM es Administración Automática de Almacenamiento o sus siglas en ingles Automatic Storage Management, es una nueva característica introducida desde la versión 10G cuyo objetivo es simplificar la administración de los archivos de base de datos como datafile, control file, spfile , log file y archive log.
Acerca de ASM (Administración Automática de Almacenamiento) ASM Esta característica tiene como objetivo simplificar la administración de los archivos relacionados con la base de datos Oracle como:
- Database files
- Control files
- Online redo log files
- Archived redo log files
- Archivo Flash recovery area
- Archivos RMAN
Exceptiones:
- Archivos tracer
- Archivos log
- Archivos del sistema operativo
Esta utilidad ASM es administrada por una instancia Oracle tipo ASM. Esta instancia Oracle ASM no es una versión completa sino que es muy ligera, solo se necesita de estructuras de memoria SGA y procesos background para poder trabajar.

- Simplifica la administración de los archivos Oracle. Debido que a la base ASM se le presenta los grupos de discos para almacenar los archivos, estos por debajo pueden crecer, balancear y administrar de manera independiente y transparente. Por ejemplo, que pasaría si en una base de datos no ASM manejada por archivos del file system del sistema operativo nos estemos quedando sin espacio y nuestra base requiera de mas espacio, bueno, la tarea es agregar discos y agregar datafiles direccionados a las nuevas unidades agregadas, ahora en una base ASM esto es más simple, solo se tiene que agregar los discos al grupo de disco ASM y de forma automática se pondrá a disponibilidad el espacio a los grupos de discos.
Creación de una instancia ASM simple de manera manual.
Como indique, ASM es un file system manjado exclusivamente por Oracle, como lo hace esto? Lo logra por medio de una instancia Oracle tipo ASM quien es el encargado de administrar el file system y proporcionar este servicio a otras bases de datos Oracle para que almacen sus archivos en el repositorio Oracle ASM intance.
Previo a esto deberá estar instalado Oracle Database 10g o superior para poder realizar la creación de una instancia ASM simple en un sistema operativo windows.
Nuestro ejercicio constará de:
Creación de los directorios
Estos directorios son para registrar los archivos log y tracer que se generará la instancia ASM
C:\>mkdir C:\Oracle\BDHome_1\10\admin\+ASM\bdump
Creación de discos ASM con la utilidad ASMTOOL
Lo ideal es presentar a la instancia ASM dispositivos RAW, pero como es una práctica podemos crear archivos que sirvan a la ASM con la utilidad ASMTOOL es una herramienta que nos permitirá crear en al file sytem unidades ASM para nuestra instancia.
Esto puede crearse antes o después de crear la instancia ASM. Crear en la carpeta oraasmdisk en la unidad C antes de ejecutar en el cmd los comandos ASMTOOL
C:\>asmtool -create c:\oraasmdisk\asmdsk01.asm 2048m
Creación del CSS (Cluster Synchronization Services) requerido para ASM
C:\>set ORACLE_HOME=C:\Oracle\BDHome_1\10\db_1\BIN
Creación del archivo de parámetros de inicialización ini+ASM.ORA
Abrimos un bloc de notas y guardamos la siguiente configuración en la ruta C:\Oracle\BDHome_1\10\db_1\database
#Se indoca el tipo de instancia ASM
Crear e iniciar la instancia ASM
Una vez creada la instancia la iniciamos
C:\>set oracle_sid=+ASM
El error presenta es normal, ya que todavía no hemos presentados los discos al grupo
Asociar los discos ASM creados a la instancia ASM.
Presentaremos los discos creados al grupo para que puedan ser usados como repositorios.
SQL> create diskgroup dgroup1 normal redundancy disk
SQL> startup force;
Como indique, ASM es un file system manjado exclusivamente por Oracle, como lo hace esto? Lo logra por medio de una instancia Oracle tipo ASM quien es el encargado de administrar el file system y proporcionar este servicio a otras bases de datos Oracle para que almacen sus archivos en el repositorio Oracle ASM intance.
- Creación de los directorios
- Creación de discos ASM con la utilidad ASMTOOL
- Creación del CSS (Cluster Synchronization Services) requerido para ASM
- Creación del archivo de parámetros de inicialización ini+ASM.ORA
- Creación e iniciar la instancia ASM
Creación de los directorios
Estos directorios son para registrar los archivos log y tracer que se generará la instancia ASM
C:\>mkdir C:\Oracle\BDHome_1\10\admin\+ASM\bdump
C:\>mkdir C:\Oracle\BDHome_1\10\admin\+ASM\cdump
C:\>mkdir C:\Oracle\BDHome_1\10\admin\+ASM\hdump
C:\>mkdir C:\Oracle\BDHome_1\10\admin\+ASM\pfile
C:\>mkdir C:\Oracle\BDHome_1\10\admin\+ASM\udump
Lo ideal es presentar a la instancia ASM dispositivos RAW, pero como es una práctica podemos crear archivos que sirvan a la ASM con la utilidad ASMTOOL es una herramienta que nos permitirá crear en al file sytem unidades ASM para nuestra instancia.
C:\>asmtool -create c:\oraasmdisk\asmdsk02.asm 2028m
C:\>set ORACLE_HOME=C:\Oracle\BDHome_1\10\db_1\BIN
C:\>localconfig.bat add
Step 1: creating new OCR repository
Successfully accumulated necessary OCR keys.
Creating OCR keys for user 'victor endara', privgrp ''..
Operation successful.
Step 2: creating new CSS service
successfully created local CSS service
successfully added CSS to home
Creación del archivo de parámetros de inicialización ini+ASM.ORA
instance_type=ASM
#Nombre de la instancia
DB_UNIQUE_NAME = +ASM
#Ruta de donde tomara los discos
ASM_DISKSTRING = 'C:\oraasmdisk\*'
_ASM_ALLOW_ONLY_RAW_DISKS=FALSE
remote_login_passwordfile=exclusive
LARGE_POOL_SIZE = 16M
#ruta en donde se crearan los tracer y logs
BACKGROUND_DUMP_DEST ='C:\Oracle\BDHome_1\10\admin\+ASM\bdump'
USER_DUMP_DEST = 'C:\Oracle\BDHome_1\10\admin\+ASM\udump'
CORE_DUMP_DEST = 'C:\Oracle\BDHome_1\10\admin\+ASM\cdump'
#Nombre del grupo de disco a crear
ASM_DISKGROUPS='dgroup1'
Crear e iniciar la instancia ASM
Primero crearemos la instancia ASM indicando que arrancará con el archivo ini+ASM.ORA que creamos en el paso anterior.
C:\>ORADIM -NEW -ASMSID +ASM -pfile 'C:\Oracle\BDHome_1\10\db_1\database\init+ASM.ora' -SYSPWD oracle -STARTMODE auto
Instancia creada.
- NEW indicamos que agregaremos una nueva instancia
- ASMSID indicamos el nombre de la instancia ASM
- PFILE indicamos la ruta del archivo de inicialización con la que arrancará la instancia
- SYSPWD indicamos la clave para crear el archivo password para ingresar posteriomente
C:\>sqlplus sys/oracle as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Conectado a una instancia inactiva.
SQL> startup
Instancia de ASM iniciada
Total System Global Area 88080384 bytes
Fixed Size 1247444 bytes
Variable Size 61667116 bytes
ASM Cache 25165824 bytes
ORA-15032: no se han realizado todas las modificaciones
ORA-15063: ASM ha detectado un numero insuficiente de discos para el grupo de
discos "DGROUP1"
Asociar los discos ASM creados a la instancia ASM.
Presentaremos los discos creados al grupo para que puedan ser usados como repositorios.
2 'C:\oraasmdisk\asmdsk01.asm',
3 'C:\oraasmdisk\asmdsk02.asm';
Grupo de discos creado.SQL> startup force;
Instancia de ASM iniciada
Total System Global Area 88080384 bytes
Fixed Size 1247444 bytes
Variable Size 61667116 bytes
ASM Cache 25165824 bytes
Grupos de discos de ASM montados
SQL> select name, state, total_mb, free_mb from V$ASM_DISKGROUP;
NAME STATE TOTAL_MB FREE_MB
------------------------------ ----------- ---------- ----------
DGROUP1 MOUNTED 4076 3974
SQL> SELECT name, path FROM v$asm_disk;
NAME PATH
------------- ------------------------------------------
DGROUP1_0000 C:\ORAASMDISK\ASMDSK01.ASM
DGROUP1_0001 C:\ORAASMDISK\ASMDSK02.ASM
Listo!!! Ahora ya tenemos nuestra instancia ASM básica disponible para presentarlo como almacenamiento.