Agregar nuevo disco a Diskgroup en Oracle Grid 19c

State Type Rebal Sector Logical_Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name
MOUNTED EXTERN N 512 512 4096 2194304 209588 1260 0 1260 0 N DATA/

Vamos a suponer que únicamente se ha agregado un nuevo disco duro y es necesario realizar la creación de la nueva partición y hacer un formateo de la misma.

Desde la herramienta fdisk podemos realizar esta tarea:

root@pruebas~# fdisk /dev/sdb

Con el comando ‘n‘ se realiza la creación de una nueva partición. Dejamos todos los valores por default ya que vamos a utilizar todo el espacio del nuevo disco duro.

Con el comando ‘w‘ confirmamos que se escriban los cambios que se han realizado.

Luego de haber creado la partición, se realiza el formateo

root@pruebas~# mkfs.ext4 /dev/sdb1

A nivel de sistema operativo nuestro nuevo disco duro está preparado.

Seguidamente, haciendo uso de la herramienta oracleasm realizamos la creación y etiquetado de un nuevo disco duro.

root@pruebas~# oracleasm createdisk ASMDISK3 /dev/sdb1

Desde SQLPlus agregamos el nuevo disco duro al diskgroup que ya está creado, en nuestro caso es +DATA

SQL> ALTER DISKGROUP DATA ADD DISK '/dev/oracleasm/disks/ASMDISK3' NAME ASMDISK3 REBALANCE POWER 100;

Con lo anterior, podemos verificar desde asmcmd que se han agregado los nuevo 200Gb de espacio.

[grid@pruebas ~]$ asmcmd lsdg
State Type Rebal Sector Logical_Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name
MOUNTED EXTERN N 512 512 4096 4194304 409588 204384 0 204384 0 N DATA/

EDIT: 04/08/2022

Eliminar un disco del diskgroup:

Para eliminar es necesario quitar el disco primeramente del diskgroup que tenemos configurado en ASM, lo cual lo hacemos de la siguiente manera:

$ sqlplus / as sysasm
SQL> ALTER DISKGROUP DATA DROP DISK 'ASMDISK4';

En mi caso mi diskgroup tiene el nombre DATA y el disco que quiero quitar tiene el nombre ASMDISK4.

Seguidamente podemos devolver el disco al sistema operativo:

Primero escaneamos los discos disponibles con OracleASM

# oracleasm scandisks
Reloading disk partitions: done
Cleaning any stale ASM disks...
Scanning system for ASM disks...
[root@pruebas disks]# oracleasm status
Checking if ASM is loaded: yes
Checking if /dev/oracleasm is mounted: yes
[root@pruebas disks]# oracleasm configure
ORACLEASM_ENABLED=true
ORACLEASM_UID=grid
ORACLEASM_GID=oinstall
ORACLEASM_SCANBOOT=true
ORACLEASM_SCANORDER=""
ORACLEASM_SCANEXCLUDE=""
ORACLEASM_SCAN_DIRECTORIES=""
ORACLEASM_USE_LOGICAL_BLOCK_SIZE="false"

Por último lo eliminamos del ASM:

# oracleasm deletedisk ASMDISK4
Clearing disk header: done
Dropping disk: done