[OCI] Oracle Grid Infrastructure 19c (Oracle Restart + ASM)
![[OCI] Oracle Grid Infrastructure 19c (Oracle Restart + ASM)](/_next/image?url=https%3A%2F%2Fcdn.hashnode.com%2Fuploads%2Fcovers%2F65605419d28f19cc44df7ef1%2Fd022eac1-1acd-4def-8ec1-7612950afe1c.png&w=3840&q=75)
Ingeniero informático, Oracle ACE, DBA y Arquitecto OCI, con más de 15 años de experiencia en plataformas Oracle. Certificado en OCI Certified Architect Professional y OCI Migration and Integration Certified Professional.
En el articulo de hoy vamos a proceder a montar un Oracle Restart Grid Infrastructure en un IaaS que hemos definido en OCI con Oracle Linux 9, región eu-frankfurt-1.
¿Porque 19c y no 26ai? Porque queremos utilizar el autograde para pasar de 19c a 26ai, y una vez se encuentre en 26ai, utilizar la última versión de ZDM para probar el "instant deploy".
Más o menos, nuestro laboratorio va ser el siguiente:
Así que sin más, vamos al lío.
Preparación ASM
El IaaS he adjuntado dos block volumenes a mayores para la parte de DATA y RECO, de 50Gb cada uno.
Para montar ambos block volumenes en linux tenemos que copiar el valor iqn de cada volumen para saber quien es quien.
En OCI para obtenerlo tenemos que ir a los detalles de cada volumen:
Y en la ventana que se abre, copiamos el siguiente valor:
Buscamos la equivalencia en linux:
[root@~]# ls -l /dev/disk/by-path/ | grep iscsi
[root@~]# iscsiadm -m session -P 3 | grep -E 'Target:|Attached scsi disk'
Con la información que hemos obtenido, sabemos que:
/sdb es ASM_DATA_BOOT
/sdc es ASM_RECO_DATA.
Con esta información, ya podemos preparar los discos ASM.
- Definimos las particiones:
[root@~]# parted -s /dev/sdb mklabel gpt
[root@~]# parted -s /dev/sdb mkpart primary 1MiB 100%
[root@~]# parted -s /dev/sdc mklabel gpt
[root@~]# parted -s /dev/sdc mkpart primary 1MiB 100%
Verificamos:
[root@~]# lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINTS
NAME SIZE TYPE FSTYPE MOUNTPOINTS
sda 100G disk
├─sda1 100M part vfat /boot/efi
├─sda2 2G part xfs /boot
└─sda3 44.5G part LVM2_member
├─ocivolume-root 29.5G lvm xfs /
└─ocivolume-oled 15G lvm xfs /var/oled
sdb 50G disk
└─sdb1 50G part
sdc 50G disk
└─sdc1 50G part
- Instalamos ASMLib:
[root@~]# dnf config-manager --enable ol9_addons
[root@~]# dnf install -y oracleasm-support
[root@~]# dnf install ./oracleasmlib-3.1.3-1.el9.x86_64.rpm
Una vez instalado, configuramos oracleasm con el comando "oracleasm configure -i" y reiniciamos el servicio "systemctl restart oracleasm".
- Definimos las etiquetas a nivel ASM
[root@~]# oracleasm createdisk DATA01 /dev/sdb1
[root@~]# oracleasm createdisk RECO01 /dev/sdc1
Y verificamos con "oracleasm listdisks".
Instalación Grid Infrastructure 19.32
Después de preparar toda la estructura de directorios junto con la definición de los usuarios oracle y grid, así como los grupos, comenzamos a instalar la parte de Grid Infrastructure.
La fase de preparación se resumiría como:
[root@~]# groupadd -f oinstall
[root@~]# groupadd -f dba
[root@~]# groupadd -f asmadmin
[root@~]# groupadd -f asmdba
[root@~]# groupadd -f asmoper
[root@~]# useradd -g oinstall -G asmadmin,asmdba,asmoper,dba grid
[root@~]# useradd -g oinstall -G dba,asmdba oracle
[root@~]# mkdir -p /u01/app/oracle/product/19.0.0/db_1
[root@~]# mkdir -p /u01/app/grid
[root@~]# mkdir -p /u01/app/19.0.0/grid
[root@~]# mkdir -p /u01/app/oraInventory
[root@~]# mkdir -p /u01/software
[root@~]# chown -R grid:oinstall /u01
[root@~]# chown -R oracle:oinstall /u01/app/oracle
[root@~]# chmod -R 775 /u01
El siguiente punto sería:
- Definir el fichero response, dejo por aquí el enlace para descargar del que hemos usado.
Descargar el parche Patch 39467003: GI RELEASE UPDATE 19.32.0.0.0.
Descargar Oracle Database 19c desde aquí, tanto grid como home.
Después de descomprimir el zip de Oracle Grid en /u01/app/19.0.0/grid, procedemos a su instalación:
[grid@~]# cd $ORACLE_HOME
[grid@~]# ./gridSetup.sh -silent -responseFile /home/grid/grid.rsp -applyRU /u01/software/39467003 -waitforcompletion -ignorePrereqFailure
Una vez completado, bajo el usuario root lanzamos los scripts orainstRoot.sh y root.sh.
[root@~]# sh /u01/app/oraInventory/orainstRoot.sh
[root@~]# sh /u01/app/19.0.0/grid/root.sh
Volvemos a conectar con el usuario grid, y verificamos con "crsctl stat res -t" lo tenemos todo correcto.
En mi caso, después de revisar el output del comando y revisar el log para ver si ha habido errores, vi que la parte de asm algo erróneo, y después de ejecutar "srvctl status asm", se confirmaron mis sospechas, asm no existía, así que lo tuve que configurar después.
Dejo por aquí como lo configure, por si os ocurre lo mismo:
[grid@intheshadow ~]$ asmca -silent -configureASM \
-sysAsmPassword 'XXXXXX' \
-asmsnmpPassword 'XXXXXX' \
-diskString 'ORCL:*' \
-diskGroupName DATA \
-diskList 'ORCL:DATA01' \
-redundancy EXTERNAL \
-au_size 4
[grid@intheshadow ~]$ srvctl status asm
ASM is running on intheshadow
Como último paso, antes de crear el diskgroup de RECO, revisamos de nuevo los recursos con crsctl stat res -t.
Listo, ya podemos crear el diskgroup de RECO. Aquí podemos tomar dos caminos para hacerlo, o bien vía instrucción DDL o usando asmca.
En mi caso opte por usar asmca:
[grid@~]# asmca -silent -createDiskGroup \
-diskString 'ORCL:*' \
-diskGroupName RECO \
-diskList 'ORCL:RECO01' \
-redundancy EXTERNAL \
-au_size 4 \
-sysAsmPassword 'XXXXXX'
Instalación Oracle Database 19.32
El primer paso, además de configurar el .bash_profile de Oracle, debemos descomprimir el zip de Oracle en /u01/app/oracle/product/19.0.0/dbhome_1.
Una vez hecho y antes de lanzar el runinstaller, verificamos en el fichero /etc/oraInst.loc que está todo correcto.
El fichero response que he utilizado, lo podemos descargar desde aquí.
Lanzamos la instalación:
[oracle@~]# cd $ORACLE_HOME
[oracle@~]# ./runInstaller -silent -waitforcompletion -applyRU /u01/software/39467003 -responseFile /home/oracle/oracle.rsp
Una vez completado, bajo el usuario root lanzamos el script root.sh.
[root@~]# . /u01/app/oracle/product/19.0.0/dbhome_1/root.sh
Tenemos la instalación lista, pero sin base de datos aún.
En próximos capítulos continuaremos con nuestro laboratorio.
Espero que os guste. ¡Nos vemos en el próximo artículo!
![[26ai] SQL: Calendar functions/Aggregation Filters "CALENDAR"](/_next/image?url=https%3A%2F%2Fcdn.hashnode.com%2Fuploads%2Fcovers%2F65605419d28f19cc44df7ef1%2F587e3328-9877-4c7a-aad7-7811e251f81e.png&w=3840&q=75)
![[OCI] Recreación PDB$SEED](/_next/image?url=https%3A%2F%2Fcdn.hashnode.com%2Fuploads%2Fcovers%2F65605419d28f19cc44df7ef1%2F289ede5b-558c-4f93-b5c0-fa04680c91ca.png&w=3840&q=75)
![[OCI] Clone PDB](/_next/image?url=https%3A%2F%2Fcdn.hashnode.com%2Fuploads%2Fcovers%2F65605419d28f19cc44df7ef1%2F8ce0c665-4a5d-459d-91cf-ffe3f47d8176.png&w=3840&q=75)
![[OCI] Check Jobs DBCli](/_next/image?url=https%3A%2F%2Fcdn.hashnode.com%2Fuploads%2Fcovers%2F65605419d28f19cc44df7ef1%2F1376a869-58fa-491e-926a-a6ead08f9c80.png&w=3840&q=75)