Cambiar el Nombre de una Base de Datos Usando NEWID

Consultor Senior de House of Brick

Una de las muchas tareas que realizará un DBA es clonar una base de datos. Por lo general, esto se hace desde una base de datos de producción hasta una base de datos de control de calidad o prueba para proporcionar datos de volumen de producción. Si la base de datos se encuentra en una máquina virtual, la clonación podría producirse a nivel de máquina virtual.

La clonación hace exactamente lo que significa, creando un duplicado exacto de una base de datos. Desafortunadamente, eso termina con dos bases de datos con el mismo nombre y DBID en su red. A veces puede resolverlo lo suficiente con alias a nivel de TNSNAMES.

Otras veces, tendrá que cambiar el nombre de la base de datos y el DBID internamente. Oracle tiene una utilidad para esto, la aplicación NEWID.

Este documento detallará los pasos necesarios para realizar el cambio de nombre de la base de datos utilizando NEWID.

Terminología y definiciones

En el presente documento se utilizarán la siguiente terminología y definiciones.

SID – Identificador de sitio Oracle. Este es el nombre de la base de datos que se está cambiando.
Archivo de parámetros PFILE – Oracle. Ubicado en la carpeta OR ORACLE_HOME / dbs.
SPFILE-Archivo de parámetros del servidor Oracle. También se encuentra en la carpeta OR ORACLE_HOME / dbs.
ORATAB: Archivo de configuración de Oracle que asocia los SID de Oracle con Oracle homes. Ubicado en /etc/oratab.
TNSNAMES: Archivo de configuración de red de Oracle que asocia las conexiones entrantes con los SID de Oracle. Se encuentra en la carpeta OR ORACLE_HOME / network / admin.

Nombre de la base de datos
El nombre de la base de datos, o SID, se cambia de prd a qa. Se hará referencia a ello cuando proceda en el documento.

Descripción general del proceso
Hay cuatro pasos a seguir para cambiar un nombre de base de datos Oracle (SID).

  1. Trabajo de preparación preliminar
  2. Use la aplicación NID
  3. Cambie las referencias SID
  4. Inicie la base de datos y finalice los cambios

1. Trabajo de preparación preliminar

Después del cambio de nombre de la base de datos, será necesario realizar cambios en el archivo de parámetros de Oracle. Si la base de datos utiliza un archivo de parámetros del servidor (SPFILE) en lugar de un archivo de parámetros (PFILE), deberá convertir de un SPFILE a un PFILE antes de que se produzca el cambio de nombre de la base de datos.

1.1 Determinación de si el ARCHIVO SPFILE está en uso
Ejecute la siguiente consulta para ver si su base de datos se inició con un ARCHIVO PFILE o SPFILE:

Figura 1.1 Consulta para ver si el archivo SPFILE está en uso

SQL> SELECCIONE DECODIFICAR(valor, NULL, ‘PFILE’, ‘SPFILE’) «Tipo de archivo de inicio
«DESDE sys.v_ parameter parámetro DONDE name = ‘spfile’;

Ejecute esta consulta para determinar si la base de datos comienza con un PFILE o un SPFILE.

Si la base de datos comienza con un PFILE, no es necesario ningún trabajo de preparación adicional y puede continuar con el paso 2: Usar la aplicación NID. De lo contrario, continúe con el siguiente paso.

1.2 Creación de un PFILE a partir de un SPFILE
Ejecute el siguiente sql para crear un PFILE a partir de un SPFILE:

Figura 1.2 Creación de un PFILE a partir de un SPFILE.

SQL> crear pfile a partir de spfile;

Ejecute este comando para crear un PFILE a partir de un SPFILE.

Esto creará un PFILE en el directorio OR ORACLE_HOME / dbs. Utilizará el SID actual en el nombre. Dado que el SID actual de la base de datos es prd, el nombre será initprd.ora. Copie el archivo para tener el nuevo SID en su nombre. Para este ejemplo, el nuevo nombre sería initqa.ora. Consulte la Figura 1.3 para ver un ejemplo de cómo copiar el archivo.

Figura 1.3 Copiar el PFILE antiguo a su nuevo nombre


$ cd OR ORACLE_HOME/dbs
pw pwd
/u01/app/oracle/product/11.2.0/db_1 / dbs
is se inicia –ls.ora
9-rw-r 1 1 oracle oinstall 1106 Oct 11 20: 17 initprd.ora
cp cp initprd.ora initqa.ora
$

Ejemplo de copiar el antiguo PFILE, initdwprd.ora al nuevo PFILE, initdwqa.ora.

Use la aplicación NID

Para usar la aplicación NID, deberá iniciar sesión en el servidor de base de datos como usuario de Oracle y realizar los siguientes pasos.

  1. Apagar la base de datos
  2. Iniciar la base de datos en modo de montaje
  3. Ejecutar el comando NID
  4. Apagar la base de datos

2.1 Apagar la base de datos
Inicie una sesión SQLPlus e ingrese el comando apagar inmediatamente. La figura 2.1 muestra este paso.

Figura 2.1 Apagar la base de datos

$ sqlplus / as sysdba

SQL * Plus: Versión 11.2.0.3.0 Producción en Sábado Oct 11 20:02:24 2014

Copyright © 1982, 2011, Oracle, Todos los derechos reservados.

Conectado a:
Oracle Database 11g Enterprise Edition Versión 11.2.0.3.0-Producción
Con las opciones de Particionamiento, OLAP, Minería de datos y Pruebas de aplicaciones reales

SQL> apagado inmediato
Base de datos cerrada.
Base de datos desmontada.
Apagar instancia de ORACLE.
SQL>

Ejemplo de salida al cerrar la base de datos.

2.2 Iniciar la base de datos en modo de montaje

Iniciar una sesión de SQLPlus e introducir el comando de montaje de inicio. La figura 2.2 muestra lo que se está haciendo.

Figura 2.2 Iniciar la base de datos en modo de montaje

$ sqlplus / as sysdbaSQL * Plus: Versión 11.2.0.3.0 Producción el Sábado 11 de octubre 20: 02: 24 2014 Derechos de autor © 1982, 2011, Oracle, Todos los derechos reservados.

Conectado a una instancia inactiva.

SQL> montaje de inicio
instancia de ORACLE iniciada.
Área global total del Sistema 535662593 bytes
Tamaño fijo 1346140 bytes
Tamaño variable 260048292 bytes
Búferes de base de datos 268435456 bytes
Búferes de rehacer 5832704 bytes
Montado en base de datos.
SQL>

Ejemplo de salida al iniciar la base de datos en modo de montaje.

Enter exit para volver al indicador de shell.

2.3 Ejecute el comando NID
El comando NID es el programa Oracle que cambia el SID de la base de datos. Para usarlo, necesitará la contraseña de la cuenta SYS y el nuevo SID para la base de datos. Con el nuevo SID como qa, la línea de comandos será nid target=SYS dbname=qa. Después de pulsar intro, se le solicitará la contraseña de la cuenta del sistema. Introduzca la contraseña. Se le pedirá que confirme que desea cambiar el SID. Véase la figura 2.3.1 para la visualización en pantalla.

Figura 2.3.1 Visualización en pantalla del comando NID en ejecución

$ nid target = SYS dbname = qa
DBNEWID: Versión 11.2.0.3.0 – Producción en Sábado Oct 11 20:05:54 2014

Copyright © 1982, 2011, Oracle y / o sus filiales. Todos los derechos reservados.

Contraseña:
Conectado a la base de datos PRD (DBID=3949194393)

Conectarse al servidor versión 11.2.0

Controlar archivos en la base de datos:
/u01/app/oracle/oradata/prd/control01.ctl
/ u01 / app/oracle/oradata/prd / control02.ctl

¿Cambiar el ID de la base de datos y el nombre de la base de datos PRD a QA? (Y/) => _

Salida desde el inicio del comando NID.

Ingrese Y para confirmar el cambio del nombre de la base de datos como se muestra en la figura 2.3.2

Figura 2.3.2 Confirmando el cambio del nombre de la base de datos

$ nid target = SYS dbname = qa
DBNEWID: Versión 11.2.0.3.0-Producción el sábado Oct 11 20:05:54 2014

Copyright © 1982, 2011, Oracle y / o sus filiales. Todos los derechos reservados.

Contraseña:
Conectado a la base de datos PRD (DBID=3949194393)

Conectarse al servidor versión 11.2.0

Controlar archivos en la base de datos:
/u01/app/oracle/oradata/prd/control01.ctl
/ u02 / app/oracle/oradata/prd / control02.ctl

¿Cambiar el ID de la base de datos y el nombre de la base de datos PRD a QA? (Y/) = > Y

Respondiendo Y a la confirmación.

El programa hará los cambios internos y mostrará su progreso. Cuando haya terminado, se le devolverá a la línea de comandos de shell como se muestra en la Figura 2.3.3.

Figura 2.3.3 Salida del programa NID

Archivo de datos / u02 / app/oracle/oradata/prd / dw03.db-dbid cambió, escribió un nuevo nombre
Archivo de datos / u02 / app/oracle/oradata/prd / dw04.db-dbid cambió, escribió un nuevo nombre
Archivo de datos / u02 / app/oracle/oradata/prd / dw05.db-dbid cambió, escribió un nuevo nombre
Archivo de datos / u01 / app/oracle/oradata/prd / temp01.db-dbid cambió, escribió un nuevo nombre
Archivo de control / u01 / app/oracle/oradata/prd / control01.ctl-dbid cambió, escribió un nuevo nombre
Archivo de control / u02 / app/oracle/oradata/prd / control02.se cambió ctl – dbid, se escribió un nuevo nombre
Se apagó la instancia

Se cambió el nombre de la base de datos a QA.
Modifique el archivo de parámetros y genere un nuevo archivo de contraseña antes de reiniciar.
ID de base de datos para el control de calidad de la base de datos cambiado a 1714809981
Todas las copias de seguridad anteriores y los registros de rehecho archivados para esta base de datos no se pueden usar.
La base de datos no conoce las copias de seguridad previas ni los registros archivados en el área de recuperación.
Se ha cerrado la base de datos, abra la base de datos con la opción RESETLOGS.
Se cambió con éxito el nombre y el ID de la base de datos.
DBNEWID-Completado con éxito.

$

Salida del programa NID que muestra una finalización exitosa.

2.4 Apagar la base de datos
La base de datos tendrá que volver a apagarse. Repita el inicio de una sesión de SQLPlus e ingrese el comando apagar inmediatamente como se muestra en el Paso 2.1.

3. Cambiar referencias SID

Los cambios deberán realizarse en los archivos de parámetros de la base de datos, tnsnames, oratab y de entorno para reflejar el cambio del SID de la base de datos.

  1. El archivo de parámetros de Oracle debe cambiarse de nombre y editarse.
  2. Oratab necesita cambiar el nombre del SID.
  3. el archivo ora necesita el SID renombrado
  4. Si el ORACLE_SID está establecido en el perfil, deberá cambiarse.

3.1 El archivo de parámetros de Oracle debe cambiarse de nombre y editarse

El archivo de parámetros de Oracle deberá editarse y cambiar dos líneas. Cambie al lugar donde se almacena el archivo de parámetros, la carpeta OR ORACLE_HOME/dbs. Véase un ejemplo en la figura 3.1.1.

Figura 3.1.1 Cambiar a la carpeta de archivos de parámetros


$ cd OR ORACLE_HOME/dbs
pw pwd
/u01/app/oracle/product/11.2.0/db_1 / dbs
is is –ls initqa.ora
9-rw-r 1 1 oracle oinstall 1106 Oct 11 20: 17 initqa.ora
$

Ejemplo de cambio a la carpeta de archivo de parámetros para prepararse para editar el archivo de parámetros.

Edite el archivo y localice las dos líneas que deben cambiarse. Las líneas comienzan con dbname e instance_name. Consulte la Figura 3.1.2 para ver un ejemplo de cómo se vería el archivo de parámetros antes de los cambios.

Figura 3.1.2 Consulta para ver si el ARCHIVO SPFILE está en uso.


dbname=»prd»
db_recovery_file_dest_size=64424509440
db_recovery_file_dest=»/u01/app/oracle/flash_recovery_area»
fast_start_mttr_target=120
instance_name=prd

Las líneas resaltadas deben cambiarse a un nuevo nombre de SID.

Tendrá que cambiar el valor de SID para las dos líneas de SID antiguo, prd, al nuevo SID, qa. Véase la figura 3.1.3 para ver cómo se verían las líneas después de los cambios.

Figura 3.1.3 Consulta para ver si el ARCHIVO SPFILE está en uso


dbname=»qa»
db_recovery_file_dest_size=64424509440
db_recovery_file_dest=»/u01/app/oracle/flash_recovery_area»
fast_start_mttr_target=120
instance_name=qa

Archivo de parámetros que muestra los cambios de nombre de SID después de la edición.

Guarde el archivo y salga del editor.

3.2 Oratab necesita cambiar el nombre del SID

El archivo ORATAB de Oracle,/etc / oratab, necesitará cambiar la referencia del SID del SID antiguo. prd al nuevo SID. qa. Edite el archivo y cambie la entrada SID antigua al nuevo SID. Véase un ejemplo en la figura 3.2.1.

Figura 3.2.1 Ejemplo de archivo ORATAB modificado/etc / oratab

# No se permiten varias entradas con el mismoSID ORACLE_SID.
#
#
#1120:/u01/app/oracle/product/11.2.0:N
orcl:/u01/app/oracle/product/11.2.0/db_1:Y
#prd:/u01/app/oracle/product/11.2.0/db_1:Y
qa:/u01/app/oracle/product/11.2.0/db_1:Y;

Ejemplo de archivo ORATAB mostrando cambiado SID referencia de dwprd a dwqa. El valor cambiado está en negrita.

3.3 TNSNAMES debe cambiar el nombre del SID a

El archivo TNSNANES de Oracle, tnsnames.ora, necesitará cambiar la referencia del SID del antiguo SID. dwprd al nuevo SID. dwqa. También necesitará cambiar la dirección del HOST para que coincida con el nuevo sistema. TNSNAMES se encuentra en la carpeta OR ORACLE_HOME / network / admin. Edite el archivo y cambie la entrada SID antigua al nuevo SID, y cambie la dirección de HOST para que coincida con el nuevo sistema. Véase un ejemplo en la figura 3.3.1.

Figura 3.3.1 Ejemplo de archivo TNSNAMES modificado OR ORACLE_HOME / network/admin / tnsnames.ora

(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)QA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP) (HOST = 192.188.1.86) (PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = qa)
(UR = A)
)
)

Ejemplo de archivo TNSNAMES que muestra la referencia SID cambiada de dwprd a dwqa y la dirección de HOST establecida en nueva dirección. El valor cambiado está en negrita.

3.4 Si el ORACLE_SID está establecido en el perfil, será necesario cambiarlo.

Generalmente, la variable de entorno $ORACLE_SID se establece en el valor SID en el script de perfil de inicio de sesión, $HOME/.perfil o $HOME/.bash_profile. Localice y cambie la configuración de SID al nuevo valor. La figura 3.4.1 muestra un ejemplo de cómo mostrar el valor OR ORACLE_SID desde la línea de comandos.

Figura 3.4.1 Mostrar los $ORACLE_SID valor


$ echo $ORACLE_SID
prd
$

Usando el comando echo para mostrar el $ORACLE_SID valor.

Tendrá que cerrar sesión y volver a iniciar sesión después de cambiar el valor ORACLE_SID en el script de perfil para configurarlo en su entorno.

4. Iniciar la base de datos y finalizar los cambios

El último paso que debe completarse es iniciar la base de datos hasta el nivel de montaje y abrirla con la opción resetlogs. Inicie una sesión de SQLPlus, inicie la base de datos hasta el modo de montaje ingresando montaje de inicio. Si tuvo que crear un PFILE en el paso 1, el comando start es startup pfile=initSID.ora mount. Para nuestro ejemplo, sería startup pfile = initqa.ora mount. A continuación, abra la base de datos con el comando alter database open resetlogs;. Consulte la figura 4.1 para ver un ejemplo de la visualización en pantalla.

Figura 4.1 Iniciar la base de datos y restablecer los registros

$ sqlplus / as sysdba

SQL * Plus: Versión 11.2.0.3.0 Producción en Sábado Oct 11 20:02:24 2014
Copyright © 1982, 2011, Oracle, Todos los derechos reservados.
Conectado a una instancia inactiva.

SQL> montaje de inicio
instancia de ORACLE iniciada.
Área global total del Sistema 535662593 bytes
Tamaño fijo 1346140 bytes
Tamaño variable 260048292 bytes
Búferes de base de datos 268435456 bytes
Búferes de rehacer 5832704 bytes
Montado en base de datos.
SQL> alter database open resetlogs;

Base de datos alterada.

SQL>

Iniciar la base de datos en modo de montaje y abrirla con la opción resetlogs.

Si tuvo que crear un ARCHIVO PFILE en el paso 1, tendrá que volver a convertir el ARCHIVO PFILE en un ARCHIVO SPFILE. Esto se hace mediante el comando CREATE SPFILE. En el símbolo del sistema SQL, escriba el comando create spfile from pfile.

Conclusión

Cambiar el nombre de una base de datos Oracle puede sonar complicado, pero se puede realizar con habilidades básicas de sistemas. Siguiendo los procedimientos descritos en este documento, un DBA puede realizar la tarea con un tiempo de inactividad mínimo para la base de datos.

Leave a Reply

Tu dirección de correo electrónico no será publicada.