viernes, 25 de abril de 2025

Oracle Database Container Database: Renombrando el nombre de una PDB

Es posible cambiar el nombre a una base de datos acoplada dentro de un contenedor, despues de haber sido creada.?

La respuesta es si y el procedimiento no es para nada complejo.

Vamos a ver, tenemos el siguiente grupo de PDBs dentro de un contenedor de base de datos.
Tenemos la PDB "LABDEV"  y queremos cambiar su nombre a "LABVA",  estos son los pasos que debes seguir para hacerlo:
  1. Es necesario que cierre la PDB que deseas cambiar el nombre.
  2. Procede luego a abrir el PDB en modo restrictivo.
  3. Conectarse a la PDB que vamos a renombrar.
  4. Con el comando ALTER PLUGGABLE DATABASE vamos a renombrar el "global_name".
  5. Una vez ejecutado el comando, vamos a cerrar nuevamente el PDB
  6. Volver a abrir la PDB en modo normal y verifica que el modo de restricción en la columna RESTRICTED tenga como valor "NO".
Ahora haz renombrado tu PDB !!!.

Veamos un ejemplo.

SQL> show pdbs
    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 LABOR1DEV                      READ WRITE NO
         4 LABORATOR2DEV                  READ WRITE NO
         5 LAB3DEV                        READ WRITE NO
         6 LABORO4DEV                     READ WRITE NO
         7 LABO5DEV                       READ WRITE NO
         8 LAB6DEV                        READ WRITE NO
         9 LAB7DEV                        READ WRITE NO
        10 LABDEV                         READ WRITE NO

SQL> alter pluggable database all close;

Pluggable database altered.

SQL> alter pluggable database all save state;

Pluggable database altered.

SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 LABOR1DEV                      MOUNTED
         4 LABORATOR2DEV                  MOUNTED
         5 LAB3DEV                        MOUNTED
         6 LABORO4DEV                     MOUNTED
         7 LABO5DEV                       MOUNTED
         8 LAB6DEV                        MOUNTED
         9 LAB7DEV                        MOUNTED
        10 LABDEV                         MOUNTED

SQL> alter pluggable database LABDEV open restricted;

Pluggable database altered.

SQL> alter session set container=LABDEV;

Session altered.

SQL> alter pluggable  database rename global_name to LABVAL;

Pluggable database altered.

SQL> connect / as sysdba
Connected.
SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 LABOR1DEV                      MOUNTED
         4 LABORATOR2DEV                  MOUNTED
         5 LAB3DEV                        MOUNTED
         6 LABORO4DEV                     MOUNTED
         7 LABO5DEV                       MOUNTED
         8 LAB6DEV                        MOUNTED
         9 LAB7DEV                        MOUNTED
        10 LABVAL                         READ WRITE YES

SQL> alter pluggable database LABVAL close immediate;

Pluggable database altered.

SQL> alter pluggable database LABVAL open;

Pluggable database altered.

SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 LABOR1DEV                      MOUNTED
         4 LABORATOR2DEV                  MOUNTED
         5 LAB3DEV                        MOUNTED
         6 LABORO4DEV                     MOUNTED
         7 LABO5DEV                       MOUNTED
         8 LAB6DEV                        MOUNTED
         9 LAB7DEV                        MOUNTED
        10 LABVAL                         READ WRITE NO

SQL> alter pluggable database LABVAL close;

Pluggable database altered.

SQL>

Nota importante:

Los archivos de la base de datos, van a mantener los nombres originales del PDB inicial. Si se ha utilizado el nombre del PDB o alguna referencia específica en alguno de los archivos, es recomendable renombrar dicho archivo para evitar confusiones.

Veamos un ejemplo nuevamente:

SQL> show pdbs
    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 PDB1                           READ WRITE NO
         4 LAB2                           READ WRITE NO

SQL> alter session set container=lab2;

Session altered.

SQL>  select tablespace_name, status, contents from dba_tablespaces;

TABLESPACE_NAME                STATUS    CONTENTS
------------------------------ --------- ---------------------
SYSTEM                         ONLINE    PERMANENT
SYSAUX                         ONLINE    PERMANENT
UNDOTBS1                       ONLINE    UNDO
TEMP                           ONLINE    TEMPORARY
USERS                          ONLINE    PERMANENT

SQL> select NAME from v$datafile;

NAME
---------------------------------------------------------------------------------------------------
/opt/app/oracle/oradata/CDB/33A1D26BA92BDE59E063AA00000B07F0/datafile/o1_mf_system_n0qysyf6_.dbf
/opt/app/oracle/oradata/CDB/33A1D26BA92BDE59E063AA00000B07F0/datafile/o1_mf_sysaux_n0qysyfc_.dbf
/opt/app/oracle/oradata/CDB/33A1D26BA92BDE59E063AA00000B07F0/datafile/o1_mf_undotbs1_n0qysyfc_.dbf
/opt/app/oracle/oradata/CDB/33A1D26BA92BDE59E063AA00000B07F0/datafile/o1_mf_users_n0qysyfc_.dbf

SQL> create tablespace tbs_data datafile 
'/opt/app/oracle/oradata/CDB/33A1D26BA92BDE59E063AA00000B07F0/datafile/tbs_data_lab2_01.dbf' 
size 10M;

Tablespace created.

SQL> select NAME from v$datafile;

NAME
---------------------------------------------------------------------------------------------------
/opt/app/oracle/oradata/CDB/33A1D26BA92BDE59E063AA00000B07F0/datafile/o1_mf_system_n0qysyf6_.dbf
/opt/app/oracle/oradata/CDB/33A1D26BA92BDE59E063AA00000B07F0/datafile/o1_mf_sysaux_n0qysyfc_.dbf
/opt/app/oracle/oradata/CDB/33A1D26BA92BDE59E063AA00000B07F0/datafile/o1_mf_undotbs1_n0qysyfc_.dbf
/opt/app/oracle/oradata/CDB/33A1D26BA92BDE59E063AA00000B07F0/datafile/o1_mf_users_n0qysyfc_.dbf
/opt/app/oracle/oradata/CDB/33A1D26BA92BDE59E063AA00000B07F0/datafile/tbs_data_lab2_01.dbf

SQL> connect / as sysdba
Connected.

SQL> alter pluggable database lab2 close immediate;

Pluggable database altered.

SQL> alter pluggable database lab2 open restricted;

Pluggable database altered.

SQL> alter session set container=lab2;

Session altered.

SQL> alter pluggable database rename global_name to pdb2;

Pluggable database altered.

SQL> connect / as sysdba
Connected.
SQL> alter pluggable database pdb2 close immediate;

Pluggable database altered.

SQL> alter pluggable database pdb2 open;

Pluggable database altered.

SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 PDB1                           READ WRITE NO
         4 PDB2                           READ WRITE NO
SQL> alter session set container=pdb2;

Session altered.

SQL>  select NAME from v$datafile;

NAME
---------------------------------------------------------------------------------------------------
/opt/app/oracle/oradata/CDB/33A1D26BA92BDE59E063AA00000B07F0/datafile/o1_mf_system_n0qysyf6_.dbf
/opt/app/oracle/oradata/CDB/33A1D26BA92BDE59E063AA00000B07F0/datafile/o1_mf_sysaux_n0qysyfc_.dbf
/opt/app/oracle/oradata/CDB/33A1D26BA92BDE59E063AA00000B07F0/datafile/o1_mf_undotbs1_n0qysyfc_.dbf
/opt/app/oracle/oradata/CDB/33A1D26BA92BDE59E063AA00000B07F0/datafile/o1_mf_users_n0qysyfc_.dbf
/opt/app/oracle/oradata/CDB/33A1D26BA92BDE59E063AA00000B07F0/datafile/tbs_data_lab2_01.dbf

SQL> alter database move datafile 
'/opt/app/oracle/oradata/CDB/33A1D26BA92BDE59E063AA00000B07F0/datafile/tbs_data_lab2_01.dbf' to 
'/opt/app/oracle/oradata/CDB/33A1D26BA92BDE59E063AA00000B07F0/datafile/tbs_data_pdb2_01.dbf';

Database altered.

SQL>  select NAME from v$datafile;

NAME
---------------------------------------------------------------------------------------------------
/opt/app/oracle/oradata/CDB/33A1D26BA92BDE59E063AA00000B07F0/datafile/o1_mf_system_n0qysyf6_.dbf
/opt/app/oracle/oradata/CDB/33A1D26BA92BDE59E063AA00000B07F0/datafile/o1_mf_sysaux_n0qysyfc_.dbf
/opt/app/oracle/oradata/CDB/33A1D26BA92BDE59E063AA00000B07F0/datafile/o1_mf_undotbs1_n0qysyfc_.dbf
/opt/app/oracle/oradata/CDB/33A1D26BA92BDE59E063AA00000B07F0/datafile/o1_mf_users_n0qysyfc_.dbf
/opt/app/oracle/oradata/CDB/33A1D26BA92BDE59E063AA00000B07F0/datafile/tbs_data_pdb2_01.dbf

SQL>

No hay comentarios:

Publicar un comentario

Te agradezco tus comentarios. Te esperamos de vuelta.

Todos los Sábados a las 8:00PM