Cambio de nombre de una CDB Oracle

El cambio de nombre de una CDB Oracle no consiste únicamente en modificar el parámetro db_name. En una arquitectura Multitenant, el proceso implica actualizar metadatos internos de la base de datos, regenerar el DBID mediante la utilidad DBNEWID (NID), revisar servicios, validar la configuración de Clusterware y asumir el impacto sobre los backups RMAN existentes.

En este artículo veremos cómo realizar el cambio de nombre de una CDB Oracle 19c de forma segura, detallando cada paso del procedimiento y las validaciones necesarias para garantizar una vuelta a producción sin incidencias.

Procedimiento de Cambio de Nombre de una CDB Oracle 19c

Objetivo

Realizar el cambio de nombre de una Container Database (CDB) Oracle 19c desde:

ORADB_CDBORADBCDB

La(s) Pluggable Database(s) (PDB) asociadas no sufrirán modificaciones y conservarán sus nombres actuales.

1. Alcance

Este procedimiento aplica a bases de datos Oracle 19c configuradas en arquitectura Multitenant (CDB/PDB), tanto en entornos standalone como administrados mediante Oracle Clusterware.

2. Prerrequisitos

Antes de iniciar el procedimiento, verificar lo siguiente:

  • Disponer de una ventana de mantenimiento aprobada.
  • Confirmar la detención de aplicaciones que utilicen la base de datos.
  • Disponer de acceso SYSDBA al servidor Oracle.
  • Verificar espacio suficiente para generar respaldos.
  • Confirmar que la base de datos se encuentra operativa y sin errores.
  • Identificar si la base de datos está registrada en Oracle Clusterware.
  • Disponer de un respaldo reciente de la base de datos.
Cambio de nombre de una CDB Oracle

3. Cambios previstos

Parámetros a modificar

ParámetroValor actualNuevo valor
db_nameORADB_CDBORADBCDB
db_unique_nameORADB_CDBORADBCDB
service_namesORADB_CDBORADBCDB

Parámetros que se actualizarán automáticamente

ParámetroNuevo valor
instance_nameORADBCDB

4. Consideraciones importantes

El uso de la utilidad NID (DBNEWID) genera un nuevo DBID para la base de datos.

Como consecuencia:

  • Todos los backups RMAN anteriores dejarán de ser utilizables.
  • Los archived logs existentes dejarán de ser válidos para recuperación.
  • Será obligatorio ejecutar un nuevo backup completo una vez finalizado el procedimiento.
  • Si existe un catálogo RMAN, deberá actualizarse según las políticas de respaldo de la organización.

5. Respaldo previo

5.1 Exportación lógica mediante Data Pump

Ejecutar:

FECHA=$(date +%Y%m%d)
expdp "'/ as sysdba'" \
FULL=Y \
DIRECTORY=EXPDP \
DUMPFILE=ORADB_${FECHA}%U.dmp \ LOGFILE=ORADB${FECHA}_exp.log \
PARALLEL=4 \
COMPRESSION=ALL \
METRICS=Y \
LOGTIME=ALL \
REUSE_DUMPFILES=Y

Validar que el proceso finaliza correctamente.

Resultado esperado:

Job "SYS"."SYS_EXPORT_FULL_01" successfully completed

6. Detención de la base de datos

sqlplus / as sysdba
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
EXIT;

7. Cambio de nombre mediante DBNEWID

Ejecutar:

nid TARGET=/ DBNAME=ORADBCDB

Cuando aparezca el mensaje:

Change database ID and database name ORADB_CDB to ORADBCDB? (Y/[N])

Responder:

Y

Validar que el proceso finaliza correctamente.

Resultado esperado:

DBNEWID – Completed successfully.

8. Actualización de parámetros de la instancia

Iniciar la instancia en modo NOMOUNT:

sqlplus / as sysdba
STARTUP NOMOUNT;
ALTER SYSTEM SET db_name='ORADBCDB' SCOPE=SPFILE;
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER SYSTEM SET db_unique_name='ORADBCDB' SCOPE=SPFILE;
ALTER SYSTEM SET service_names='ORADBCDB' SCOPE=BOTH;
ALTER DATABASE OPEN RESETLOGS;

9. Actualización del GLOBAL_NAME

Ejecutar:

ALTER DATABASE RENAME GLOBAL_NAME TO ORADBCDB;

10. Validaciones posteriores

10.1 Validar nombre de la base

SELECT name FROM v$database;

Resultado esperado:

ORADBCDB

10.2 Validar instancia

SELECT instance_name FROM v$instance;

Resultado esperado:

ORADBCDB

10.3 Validar parámetros

SHOW PARAMETER db_name;
SHOW PARAMETER db_unique_name;
SHOW PARAMETER instance_name;

Todos deben reflejar el nuevo nombre:

ORADBCDB

10.4 Validar estado de la base

SELECT name, open_mode FROM v$database;

Resultado esperado:

OPEN_MODE = READ WRITE

10.5 Validar PDBs

SHOW PDBS;

o

SELECT NAME, OPEN_MODE FROM V$PDBS;

Resultado esperado:

Todas las PDBs en estado READ WRITE.

10.6 Validar GLOBAL_NAME

SELECT * FROM GLOBAL_NAME;

Resultado esperado:

ORADBCDB.DOMINIO.LOCAL

10.7 Validar servicios Oracle

SELECT NAME FROM V$SERVICES ORDER BY NAME;

Verificar que el servicio ORADBCDB se encuentre registrado correctamente.

11. Validación del Listener

Ejecutar:

lsnrctl status LISTENER

Validar:

  • Servicio ORADBCDB registrado.
  • Instancia ORADBCDB en estado READY.

Ejemplo:

Service "ORADBCDB"
Instance "ORADBCDB", status READY

12. Actualización de Oracle Clusterware (si aplica)

12.1 Verificar registro actual

srvctl config database -d ORADBCDB

Si la base aún aparece registrada con el nombre anterior:

srvctl config database -d ORADB_CDB

12.2 Eliminar registro antiguo

srvctl remove database -d ORADB_CDB -force

12.3 Registrar nuevamente la base

Nota: Sustituir el Oracle Home por el correspondiente al entorno.

srvctl add database \
-d ORADBCDB \
-o /u01/app/oracle/product/19.0.0/dbhome_1 \
-p +DATOS/ORADBCDB/spfileORADBCDB.ora \
-r PRIMARY \
-a DATOS

12.4 Registrar la instancia

srvctl add instance \
-d ORADBCDB \
-i ORADBCDB \
-n SERVDB1

12.5 Validar configuración

srvctl config database -d ORADBCDB

13. Prueba operativa

Detener y arrancar la base utilizando Clusterware.

srvctl stop database -d ORADBCDB
srvctl start database -d ORADBCDB
srvctl status database -d ORADBCDB

Resultado esperado:

Database is running.

14. Nuevo respaldo RMAN

Una vez completado el procedimiento, generar un nuevo respaldo completo.

rman target /
BACKUP DATABASE PLUS ARCHIVELOG;

15. Actividades posteriores

  • Actualizar archivos tnsnames.ora.
  • Actualizar scripts de monitorización.
  • Actualizar procedimientos operativos.
  • Actualizar configuraciones de backup.
  • Validar conectividad de aplicaciones.
  • Validar tareas programadas y procesos batch.
  • Actualizar documentación técnica.

Tras estos pasos habremos realizado el cambio de nombre de una CDB. Algún DBA Oracle tendría conocimientos para realizarlo. Si no dispones de alguien que realice estos pasos, confía en los profesionales. Somos expertos en bases de datos Oracle, y disponemos de un servicio de mantenimiento Oracle. Puedes contactarnos sin compromiso si necesitas ayuda con este tipo de tareas.

¿Aún no conoces Query Performance? Descubre cómo puede ayudarte en tu entorno Oracle. Más información en su página de LinkedIn.

Sígue a GPS en LinkedIn

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *