domingo, 3 de marzo de 2013

NID (11g) Cambiando de Nombre una Base de Datos

El cambio de Nombre de Base de Datos, es una operación muy sencilla en la 11g. Se realiza a nivel de Sistema Operativo con el comando nid ($ORACLE_HOME/bin/nid).

IMPORTANTE:- Si la Base de Datos a la que vamos a cambiar el SID tiene configurado el Enterprise Manager (dbconsole), habría que borrarlo antes del cambio de nombre y recrearlo después de cambiarle el nombre. Se puede revisar el procedimiento para Crear, Configurar y Borrar el EM aqui.


Los pasos para ejecutar el cambio de nombre, son muy sencillos. 

1.- initNewBd.ora

Como vamos a arrancar la Base de Datos con un nombre nuevo, también necesitamos un nuevo fichero de configuración o init.ora. Para ello, podemos crear uno de nuestro propio SPFILE con la sentencia: 

SQL > CREATE PFILE='$ORALCE_HOME/dbs/initNewBd.ora' FROM SPFILE;

Una vez creado, lo editamos y modificamos el parámetro de db_name al nuevo nombre que va a tener la Base de Datos. Así como Todos los parámetros que hagan referencia a la antigua base de datos. Es decir, los parámetros que tengamos tipo OldBd.__.NombreParámetro pasarían a ser NewBd.__.NombreParámetro:

     OldBd.__.db_cache_size=2130706432
     ...
     *.db_name=OldBd

Modificado sería: 

     NewBd.__.db_cache_size=2130706432
     ...
     *.db_name=NewBd


2.- Ejecución del NID.

Se hace a nivel de Sistema Operativo. Tenemos que tener exportada, en las variables de entorno, el nombre de la Base de Datos que queramos cambiar el nombre. Y asegurarnos que la Base de Datos está Montada en Modo Exclusivo. Y con la contraseña del usuario SYS ya ejecutamos el cambio de nombre: 

$ export ORACLE_SID=OldBd
$ sqlplus "/As sysdba"

SQL > Shutdown immediate
SQL > Startup Mount Exclusive
SQL > EXIT

$ nid TARGE=sys/  DBNAME=NewBd

3.- Levantando la NewBd

Una vez que ejecutemos el cambio de nombre y nos haya salido correctamente. Levantamos la Base de datos. Que como nos sugiere al final de la ejecución del NID, tendremos que levantarla en dos fases Primero la montamos, y después la abrimos con la clausula NORESETLOGS: 

$ export ORACLE_SID=NewBd
$ sqlplus "/As sysdba"

SQL > Startup mount
SQL > Alter Database Open NORESETLOGS;

y ya tendríamos la Base de Datos cambiada el nombre. Así de sencillo. 

Fuente :- Metalink  ID Note [863800.1] :- (How to Change the DBID, DBNAME Using NID Utility in version 10gR2 onwards)


No hay comentarios: