Usando los bloques logicos en ASM

Hoy vamos a ver una entrada que nos puede causar grandes dolores de cabeza .

Uno de los problemas con los que nos podemos encontrar cuando se modifica la tecnología de los discos físicos utilizados en el ASM es el cambio del tamaño de bloque lógico.

Supongamos que nos ofrecen un nuevo disco /dev/xvdz

Nosotros intentamos añadirlo al ASM, pero recibimos un error ORA-01378

Errors in file /u01/app/oracle/diag/rdbms/test/TEST/trace/TEST_ora_40862.trc:
ORA-01378: The logical block size (512) of file +REDO is not compatible with the disk sector size 
(media sector size is 4096 and host sector size is 4096)

Veamos las características de este disco

sudo fdisk -l /dev/xvdz
Disk /dev/xvdd: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x00000000

Y veamos ahora otro de los discos que tenemos

The other disks  have sector size 512
Disk /dev/xvdp: 2147.5 GB, 2147483648000 bytes
255 heads, 63 sectors/track, 261083 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Si nos fijamos, el problema que tenemos es que el sector size de nuestro nuevo disco es 8 veces mayor que el del disco viejo (521 / 4096) .

Como solucionamos ahora nuestro problema?

Tal y como indican el el blog flashdba ASM tiene un parámetro en el fichero de configuración llamado ORACLEASM_USE_LOGICAL_BLOCK_SIZE que por defecto esta a false, que era el parámetro por defecto de oracleasm-support-2.1.8.
Podemos ver su valor en el fichero /etc/sysconfig/oracleasm

# ORACLEASM_USE_LOGICAL_BLOCK_SIZE: 'true' means use the logical block size
# reported by the underlying disk instead of the physical. The default
# is 'false'
ORACLEASM_USE_LOGICAL_BLOCK_SIZE=false

Lo que vamos ha hacer es modificarlo a TRUE, de manera que el ASM sea capaz de usar los bloques de manera lógica y no se aferre a la configuración física de los mismos, esto lo hacemos con el script
oracleasm-configure.sh

  • -b|—logical-blocks sets logical blocksize usage
  • -p|—physical-blocks set physical blocksize usage

Veamos ahora cual es la información que nos dará nuestro ASM

[oracle@testserver ~]$ sysasm
 SQL> select NAME,SECTOR_SIZE,BLOCK_SIZE,DATABASE_COMPATIBILITY,COMPATIBILITY,((TOTAL_MB-FREE_MB)*100/TOTAL_MB) PERCENT_USED from v$asm_diskgroup;

NAME         SECTOR_SIZE BLOCK_SIZE DATABASE_COMPATIBILI COMPATIBILITY        PERCENT_USED
-------------------- --------- ---------- -------------------- -------------------- ------------
REDO               4096       4096 10.1.0.0.0           10.1.0.0.0             .249023438
FRA                 512       4096 10.1.0.0.0           12.1.0.0.0             44.1858724
DATA                512       4096 11.2.0.0.0           11.2.0.0.0             90.4637587

Como podeis ver, es un problema que se nos puede dar en bases de datos con ASM antiguos en los que llevemos a cabo un cambio de tecnología física.

Mas informacion en

Oracle ASMLib: Physical and Logical Blocksize

Eliminar un DR del Dataguard

Hoy vamos a ver un a entrada rápida de como eliminamos un DR de una configuración de dataguard.

Tenemos un entorno donde tenemos 2 Physycal standby y queremos eliminar la primera de ellas TEST_STBY1

Comprobemos la configuración de nuestro entorno, nos conectamos a la primaria y ejecutamos:

-bash-4.2$ . oraenv
ORACLE_SID = [oracle] ? TEST
The Oracle base has been set to /opt/app/oracle
-bash-4.2$ export ORACLE_SID=TEST
-bash-4.2$ dgmgrl /

DGMGRL> show configuration verbose;
Configuration - DR_TWO_STANDBY
  Protection Mode: MaxPerformance
  Databases:
    TEST      - Primary database
    TEST_STBY1    - Physical standby database
    TEST_STBY2 - Physical standby database
  Properties:
    FastStartFailoverThreshold      = '30'
    OperationTimeout                = '30'
    FastStartFailoverLagLimit       = '30'
    CommunicationTimeout            = '180'
    FastStartFailoverAutoReinstate  = 'TRUE'
    FastStartFailoverPmyShutdown    = 'TRUE'
    BystandersFollowRoleChange      = 'ALL'
Fast-Start Failover: DISABLED
Configuration Status:
SUCCESS

DGMGRL> show database  'TEST_STBY1';
Database - TEST_STBY1
  Role:            PHYSICAL STANDBY
  Intended State:  APPLY-ON
  Transport Lag:   14 hours 4 minutes 14 seconds
  Apply Lag:       14 hours 4 minutes 14 seconds
  Real Time Query: OFF
  Instance(s):
    TEST
Database Status:
SUCCESS

Tenemos claro que es la que queremos eliminar , de echo, podemos ver como lleva 14 horas. de retraso .
Para eliminarla ejecutaremos el comando Remove Database , si vemos el ejemplo, poderes ver como siempre ponemos el nombre de la base de datos entre comillas simples, en caso de no hacerlo, el dataguard lo tomará como minúsculas


DGMGRL> disable database 'TEST_STBY1';
Disabled.

DGMGRL> remove database 'TEST_STBY1';
Removed database "TEST_STBY1" from the configuration

DGMGRL> show configuration verbose;

Configuration - MyTEST_STBY1
  Protection Mode: MaxPerformance
  Databases:
    TEST      - Primary database
    TEST_STBY2 - Physical standby database
  Properties:
    FastStartFailoverThreshold      = '30'
    OperationTimeout                = '30'
    FastStartFailoverLagLimit       = '30'
    CommunicationTimeout            = '180'
    FastStartFailoverAutoReinstate  = 'TRUE'
    FastStartFailoverPmyShutdown    = 'TRUE'
    BystandersFollowRoleChange      = 'ALL'
Fast-Start Failover: DISABLED
Configuration Status:
SUCCESS

DGMGRL> quit

Ya lo hemos eliminado, pero , deberemos de comprobar en nuestra base de datos primaria que no hemos dejado restos, para ello, buscaremos que los servicios y los destinos de archivado estén limpios de nuestra configuración anterior.

-bash-4.2$ sqlplus "/as sysdba"

SQL> set linesize 800;
SQL> show parameter log_archive_dest_

NAME                                 TYPE        VALUE

log_archive_dest_1                   string      location=USE_DB_RECOVERY_FILE_
                                                 DEST, valid_for=(ALL_LOGFILES,
                                                  ALL_ROLES)
log_archive_dest_2                   string      service="TEST_STBY1", LGWR ASYNC NOAFFIRM
                                             
log_archive_dest_3                   string      service="TEST_STBY2", LGWR ASYNC NOAFFIRM 
												
SQL>   show parameter log_archive_config;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_config                   string      dg_config=(TEST,TEST_STBY1,TEST_STBY2)

Podemos ver como el broker no ha limpiado la configuración, por lo que lo haremos nosotros a mano

SQL> alter system set log_archive_dest_2='' scope=both;
SQL> alter system set log_archive_config='dg_config=(TEST,TEST_STBY2)' scope=both;



SQL> show parameter log_archive_config;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_config                   string      dg_config=(TEST,TEST_STBY)
SQL> show parameter log_archive_dest_

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_1                   string      location=USE_DB_RECOVERY_FILE_
                                                 DEST, valid_for=(ALL_LOGFILES,
                                                  ALL_ROLES)
log_archive_dest_2                   string
log_archive_dest_3                   string      service="TEST_STBY2", LGWR ASYNC NOAFFIRM
SQL>

Con esto, podremos afirmar que nuestra configuración está limpia

Renombrado un ASM diskgroup

Hoy vamos a ver una entrada muy rapida sobre como renombrar un diskgroup exsistente en ASM.

Lo primero que tenemos que tener en cuenta es que , deberemos de parar todas las bases de datos que esten escribiendo sobre ese diskgroup.

Para nuestro caso hemos creado un grupo llamado WRONG_DATA01


test1.pamplona.name:oracle  crsctl stat res -t
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.LISTENER.lsnr
               ONLINE  ONLINE       test1                STABLE
ora.WRONG_DATA01.dg
               OFFLINE OFFLINE      test1                STABLE
ora.test1_FRA_01.dg
               OFFLINE OFFLINE      test1                STABLE
ora.test1_REDO_01.dg
               ONLINE  OFFLINE      test1                STABLE
ora.test1_REDO_02.dg
               OFFLINE OFFLINE      test1                STABLE
ora.asm
               ONLINE  OFFLINE      test1                Instance Shutdown,STARTING
ora.ons
               OFFLINE OFFLINE      test1                STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.cssd
      1        ONLINE  ONLINE       test1                STABLE
ora.diskmon
      1        OFFLINE OFFLINE                               STABLE
ora.evmd
      1        ONLINE  INTERMEDIATE test1                STABLE
--------------------------------------------------------------------------------

Lo primero y mas logico, es que deberemos de desmontar el dislkgroup a renombrar

test1.pamplona.name:oracle  srvctl stop  diskgroup -diskgroup WRONG_DATA01

test1.pamplona.name:oracle  crsctl stat res -t
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.LISTENER.lsnr
               ONLINE  ONLINE       test1                STABLE
ora.WRONG_DATA01.dg
               OFFLINE OFFLINE      test1                STABLE
ora.test1_FRA_01.dg
               ONLINE  ONLINE       test1                STABLE
ora.test1_REDO_01.dg
               ONLINE  ONLINE       test1                STABLE
ora.test1_REDO_02.dg
               ONLINE  ONLINE       test1                STABLE
ora.asm
               ONLINE  ONLINE       test1                Started,STABLE
ora.ons
               OFFLINE OFFLINE      test1                STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.cssd
      1        ONLINE  ONLINE       test1                STABLE
ora.diskmon
      1        OFFLINE OFFLINE                               STABLE
ora.evmd
      1        ONLINE  ONLINE       test1                STABLE
--------------------------------------------------------------------------------

Una vez desmontado, procedermos a renombrarlo.
EL renombrado cuenta con dos fases

  • Fase 1 : Esta fase solamente genera el fichero de configuracion
  • Fase 2 Basandose en la fase uno lleva a cabo el cambio .

Veamos a cabo como se lleva a cabo.

Fase 1

A pesar de ser la fase 1 la llamaremos como phase=both y añadiremos el flag check=true , esto nos asegura que no llevara a cabo cambios en las cabeceras de los discos ASM .

renamedg phase=both dgname=WRONG_DATA01 newdgname=test1_DATA_01 asm_diskstring=’/dev/oracleasm/disks/’ check=true verbose=true

test1.pamplona.name:oracle  renamedg phase=both dgname=WRONG_DATA01 newdgname=test1_DATA_01 asm_diskstring='/dev/oracleasm/disks/' check=true verbose=true
Parsing parameters..
Parameters in effect:

         Old DG name       : WRONG_DATA01
         New DG name          : test1_DATA_01
         Phases               :
                 Phase 1
                 Phase 2
         Discovery str        : /dev/oracleasm/disks/
         Check              : TRUE
         Clean              : TRUE
         Raw only           : TRUE
renamedg operation: phase=both dgname=WRONG_DATA01 newdgname=test1_DATA_01 asm_diskstring=/dev/oracleasm/disks/ check=true verbose=true
Executing phase 1
Discovering the group
Performing discovery with string:/dev/oracleasm/disks/
Identified disk UFS:/dev/oracleasm/disks/test1_DATA_01_0001 with disk number:0 and timestamp (33066256 1704307712)
Identified disk UFS:/dev/oracleasm/disks/test1_DATA_01_0002 with disk number:1 and timestamp (33066256 1704307712)
Checking for hearbeat...
Re-discovering the group
Performing discovery with string:/dev/oracleasm/disks/
Identified disk UFS:/dev/oracleasm/disks/test1_DATA_01_0001 with disk number:0 and timestamp (33066256 1704307712)
Identified disk UFS:/dev/oracleasm/disks/test1_DATA_01_0002 with disk number:1 and timestamp (33066256 1704307712)
Checking if the diskgroup is mounted or used by CSS
Checking disk number:0
Checking disk number:1
Generating configuration file..
Completed phase 1
Executing phase 2
Looking for /dev/oracleasm/disks/test1_DATA_01_0001
Leaving the header unchanged
Looking for /dev/oracleasm/disks/test1_DATA_01_0002
Leaving the header unchanged
Completed phase 2
Terminating kgfd context 0x7fb9d6aff0a0

Esta fase nos habra dejado un fichero de configuracion llamado renamedg_config

Fase 2

Este es el comendo que realmente nos llevara a cabo el cambio


renamedg phase=two dgname=WRONG_DATA01 newdgname=test1_DATA_01 asm_diskstring=’/dev/oracleasm/disks/’ verbose=true config=’./renamedg_config’

importanteComo podeis ver es muy sencillo, pero es muy importante tener en cuenta que, este cambio solo se lleva a cabo a nivel de sistema operativo y ASM , no a nivel de ficheros de configuracion o de base de datos, por lo que tendreis que revisar:

  • Ubicacion de pfiles y spfiles
  • Ubicacion de controlfiles dentro de los ficheros de arranque
  • Ubicacion de ficheros de base datos (datafiles,tempfiles, redologs)

desinstalacion del grid control

Tras un largo periodo de inactividad, vamos a añadir una pequeña entrada con la manera de desinstalar el grid control de Oracle .

Al contrario de cuando se tiene una base ded datos sencilla de Oracle donde con borrar binarios, inventario y oratab el sistema ( en unix) queda lo sufucientemente limpio como para llevar a cabo una reinstalacion, si tenemos que reinstalar un grid infraestructure por que ha habido problemas en la instalacion o por que queremos quitarlo, no se puede hacer «a las bravas».

La manera de lelvarlo a cabo es muy sencilla.
Solamente tenemos que ir al $GRID_HOME/deinstall y ejecutar ./deinstall
Este proceso se ha de ejecutar como propietario del grid, y , al igual que la instalacion, en un momento determinado nos solicitará la ejecucion de una cadena como root.

[grid@serverpruebas ] cd  $GRID_HOME/deinstall
[grid@serverpruebas ] ls 
bootstrap.pl         bootstrap_files.lst  deinstall            deinstall.pl         deinstall.xml        jlib                 readme.txt           response             sshUserSetup.sh      utl
[grid@serverpruebas ]./deinstall 	
Checking for required files and bootstrapping ...
Please wait ...
Location of logs /tmp/deinstall2016-11-03_09-31-33PM/logs/

############ ORACLE DECONFIG TOOL START ############


######################### DECONFIG CHECK OPERATION START #########################
## [START] Install check configuration ##


Checking for existence of the Oracle home location /opt/app/oracle/product/12.1.0/grid
Oracle Home type selected for deinstall is: Oracle Grid Infrastructure for a Standalone Server
Oracle Base selected for deinstall is: /opt/app/oracle
Checking for existence of central inventory location /opt/app/oraInventory
Checking for existence of the Oracle Grid Infrastructure home /opt/app/oracle/product/12.1.0/grid

## [END] Install check configuration ##

Traces log file: /tmp/deinstall2016-11-03_09-31-33PM/logs//crsdc_2016-11-03_09-32-36PM.log

Network Configuration check config START

Network de-configuration trace file location: /tmp/deinstall2016-11-03_09-31-33PM/logs/netdc_check2016-11-03_09-32-38-PM.log

Network Configuration check config END

Asm Check Configuration START

ASM de-configuration trace file location: /tmp/deinstall2016-11-03_09-31-33PM/logs/asmcadc_check2016-11-03_09-32-39-PM.log

ASM configuration was not detected in this Oracle home. Was ASM configured in this Oracle home (y|n) [n]: y
Automatic Storage Management (ASM) instance is detected in this Oracle home /opt/app/oracle/product/12.1.0/grid.
ASM Diagnostic Destination : /opt/app/oracle
ASM Diskgroups :
ASM diskstring : 
Diskgroups will not be dropped
 If you want to retain the existing diskgroups or if any of the information detected is incorrect, you can modify by entering 'y'. Do you  want to modify above information (y|n) [n]:
Database Check Configuration START

Database de-configuration trace file location: /tmp/deinstall2016-11-03_09-31-33PM/logs/databasedc_check2016-11-03_09-32-50-PM.log

Database Check Configuration END

######################### DECONFIG CHECK OPERATION END #########################


####################### DECONFIG CHECK OPERATION SUMMARY #######################
Oracle Grid Infrastructure Home is: /opt/app/oracle/product/12.1.0/grid
The following nodes are part of this cluster: null
The cluster node(s) on which the Oracle home deinstallation will be performed are:null
Oracle Home selected for deinstall is: /opt/app/oracle/product/12.1.0/grid
Inventory Location where the Oracle home registered is: /opt/app/oraInventory
ASM instance will be de-configured from this Oracle home
Do you want to continue (y - yes, n - no)? [n]: y
A log of this session will be written to: '/tmp/deinstall2016-11-03_09-31-33PM/logs/deinstall_deconfig2016-11-03_09-32-35-PM.out'
Any error messages from this session will be written to: '/tmp/deinstall2016-11-03_09-31-33PM/logs/deinstall_deconfig2016-11-03_09-32-35-PM.err'

######################## DECONFIG CLEAN OPERATION START ########################
Database de-configuration trace file location: /tmp/deinstall2016-11-03_09-31-33PM/logs/databasedc_clean2016-11-03_09-32-53-PM.log
ASM de-configuration trace file location: /tmp/deinstall2016-11-03_09-31-33PM/logs/asmcadc_clean2016-11-03_09-32-53-PM.log
ASM Clean Configuration START
ASM Clean Configuration END

Network Configuration clean config START

Network de-configuration trace file location: /tmp/deinstall2016-11-03_09-31-33PM/logs/netdc_clean2016-11-03_09-33-02-PM.log

De-configuring Listener configuration file...
Listener configuration file de-configured successfully.

De-configuring Naming Methods configuration file...
Naming Methods configuration file de-configured successfully.

De-configuring backup files...
Backup files de-configured successfully.

The network configuration has been cleaned up successfully.

Network Configuration clean config END


---------------------------------------->

Run the following command as the root user or the administrator on node "serverpruebas-m".

/tmp/deinstall2016-11-03_09-31-33PM/perl/bin/perl -I/tmp/deinstall2016-11-03_09-31-33PM/perl/lib -I/tmp/deinstall2016-11-03_09-31-33PM/crs/install /tmp/deinstall2016-11-03_09-31-33PM/crs/install/roothas.pl -force  -deconfig -paramfile "/mp/deinstall2016-11-03_09-31-33PM/response/deinstall_OraGI12Home1.rsp"

Press Enter after you finish running the above commands

<----------------------------------------



######################### DECONFIG CLEAN OPERATION END #########################


####################### DECONFIG CLEAN OPERATION SUMMARY #######################
ASM instance was de-configured successfully from the Oracle home
The stopping and de-configuring of Oracle Restart failed. Fix the problem and rerun this tool to completely remove the Oracle Restart configuration and the software
Oracle Restart was already stopped and de-configured on node "serverpruebas-m"
Oracle Restart is stopped and de-configured successfully.
#######################################################################


############# ORACLE DECONFIG TOOL END #############

Using properties file /tmp/deinstall2016-11-03_09-31-33PM/response/deinstall_2016-11-03_09-32-35-PM.rsp
Location of logs /tmp/deinstall2016-11-03_09-31-33PM/logs/

############ ORACLE DEINSTALL TOOL START ############





####################### DEINSTALL CHECK OPERATION SUMMARY #######################
A log of this session will be written to: '/tmp/deinstall2016-11-03_09-31-33PM/logs/deinstall_deconfig2016-11-03_09-32-35-PM.out'
Any error messages from this session will be written to: '/tmp/deinstall2016-11-03_09-31-33PM/logs/deinstall_deconfig2016-11-03_09-32-35-PM.err'

######################## DEINSTALL CLEAN OPERATION START ########################
## [START] Preparing for Deinstall ##
Setting LOCAL_NODE to serverpruebas-m
Setting CRS_HOME to true
Setting oracle.installer.invPtrLoc to /tmp/deinstall2016-11-03_09-31-33PM/oraInst.loc
Setting oracle.installer.local to false

## [END] Preparing for Deinstall ##

Setting the force flag to false
Setting the force flag to cleanup the Oracle Base
Oracle Universal Installer clean START


Detach Oracle home '/opt/app/oracle/product/12.1.0/grid' from the central inventory on the local node : Done

Failed to delete the directory '/opt/app/oracle/product/12.1.0/grid'. The directory is in use.
Delete directory '/opt/app/oracle/product/12.1.0/grid' on the local node : Failed <<<<

Delete directory '/opt/app/oraInventory' on the local node : Done

Failed to delete the directory '/opt/app/oracle/product/12.1.0/grid'. The directory is in use.
The Oracle Base directory '/opt/app/oracle' will not be removed on local node. The directory is not empty.

Oracle Universal Installer cleanup was successful.

Oracle Universal Installer clean END


## [START] Oracle install clean ##

Clean install operation removing temporary directory '/tmp/deinstall2016-11-03_09-31-33PM' on node 'serverpruebas-m'

## [END] Oracle install clean ##


######################### DEINSTALL CLEAN OPERATION END #########################


####################### DEINSTALL CLEAN OPERATION SUMMARY #######################
Successfully detached Oracle home '/opt/app/oracle/product/12.1.0/grid' from the central inventory on the local node.
Failed to delete directory '/opt/app/oracle/product/12.1.0/grid' on the local node.
Successfully deleted directory '/opt/app/oraInventory' on the local node.
Oracle Universal Installer cleanup was successful.


Run 'rm -r /etc/oraInst.loc' as root on node(s) 'serverpruebas-m' at the end of the session.

Run 'rm -r /opt/ORCLfmap' as root on node(s) 'serverpruebas-m' at the end of the session.
Run 'rm -r /etc/oratab' as root on node(s) 'serverpruebas-m' at the end of the session.
Oracle deinstall tool successfully cleaned up temporary directories.
#######################################################################


############# ORACLE DEINSTALL TOOL END #############

Como veis, tremendamente sencillo si se hace de manera ordenada

ASMLIB en redhat7

Hoy vamos a ver en una sencilla entrada los pasos para instalar ASMlib en redhat 7

Tal como nos indica la web de Oracle, lo primero que hay que hacer es descargar los paquetes correspondientes a la distribución.
En nuestro caso serán los paquetes

oracleasmlib-2.0.12-1.el7.x86_64.rpm
oracleasm-support-2.1.8-3.el7.x86_64.rpm

descargamos estos paquetes a nuestro directorio, y los instalamos con la opcion localinstall del YUM, esto nos encontrará automáticamente el paquete kmod-oracleasm.x86_64

[root@localhost ~]# yum localinstall ./oracleasmlib-2.0.12-1.el7.x86_64.rpm oracleasm-support-2.1.8-3.el7.x86_64.rpm
Complementos cargados:langpacks, product-id, search-disabled-repos, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Examinando ./oracleasmlib-2.0.12-1.el7.x86_64.rpm: oracleasmlib-2.0.12-1.el7.x86_64
Marcando ./oracleasmlib-2.0.12-1.el7.x86_64.rpm para ser instalado
Examinando oracleasm-support-2.1.8-3.el7.x86_64.rpm: oracleasm-support-2.1.8-3.el7.x86_64
Marcando oracleasm-support-2.1.8-3.el7.x86_64.rpm para ser instalado
Resolviendo dependencias
--> Ejecutando prueba de transacción
---> Paquete oracleasm-support.x86_64 0:2.1.8-3.el7 debe ser instalado
---> Paquete oracleasmlib.x86_64 0:2.0.12-1.el7 debe ser instalado
--> Procesando dependencias: oracleasm >= 1.0.4 para el paquete: oracleasmlib-2.0.12-1.el7.x86_64
--> Ejecutando prueba de transacción
---> Paquete kmod-oracleasm.x86_64 0:2.0.8-15.el7 debe ser instalado
--> Resolución de dependencias finalizada
Dependencias resueltas
===========================================================================================================
 Package                     Arquitectura     Versión         Repositorio                             Tamaño
============================================================================================================
Instalando:
 oracleasm-support           x86_64           2.1.8-3.el7     /oracleasm-support-2.1.8-3.el7.x86_64   242 k
 oracleasmlib                x86_64           2.0.12-1.el7    /oracleasmlib-2.0.12-1.el7.x86_64       39 k
Instalando para las dependencias:
 kmod-oracleasm              x86_64           2.0.8-15.el7    local                                   35 k
Resumen de la transacción
=====================================================================================================
Instalar  2 Paquetes (+1 Paquete dependiente)
Tamaño total: 316 k
Tamaño total de la descarga: 35 k
Tamaño instalado: 405 k
Is this ok [y/d/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Instalando    : kmod-oracleasm-2.0.8-15.el7.x86_64    1/3
  Instalando    : oracleasmlib-2.0.12-1.el7.x86_64      2/3
  Instalando    : oracleasm-support-2.1.8-3.el7.x86_64  3/3
Nota: Reenviando petición a 'systemctl enable oracleasm.service'.
Created symlink from /etc/systemd/system/multi-user.target.wants/oracleasm.service to /usr/lib/systemd/system/oracleasm.service.
  Comprobando   : oracleasmlib-2.0.12-1.el7.x86_64             1/3
  Comprobando   : oracleasm-support-2.1.8-3.el7.x86_64         2/3
  Comprobando   : kmod-oracleasm-2.0.8-15.el7.x86_64           3/3
Instalado:
  oracleasm-support.x86_64 0:2.1.8-3.el7
 oracleasmlib.x86_64 0:2.0.12-1.el7
Dependencia(s) instalada(s):
  kmod-oracleasm.x86_64 0:2.0.8-15.el7

Mediante este paquete propio de redHat kmod-oracleasm nos ahorramos los problemas que teníamos anteriormente con los módulos del kernel y que solucionábamos de manera casera con cargar módulos de oracleasm sin la versión exacta del kernel

mas info en :

  • https://access.redhat.com/solutions/315643
  • http://www.oracle.com/technetwork/server-storage/linux/asmlib/rhel7-2773795.html