Si nunca has manejado un catalogo de RMAN, el DBID no era de gran importancia ya que si queriamos renombrar nuestra instancia, lo unico que teniamos que hacer era recrear el control file, y listo, nuestra base de datos tenia un nuevo nombre, pero hay que saber que el DBID se mantenia igual.
Oracle tiene una utileria llamada DBNEWID para poder cambiar el DBID de la instancia asi como el nombre de la instancia, y esta utileria tiene unas cuantas ramificaciones que hay que saber:
- En el momento que cambiamos el DBID, cualquier respaldo y archived redo logs anterior a este proceso no nos va a servir para recuperar nuestra base de datos, se vuelven obsoletos para esta version de la base de datos, ya que a la vez tenemos que abrir la base de datos con la opcion de resetlogs, el cual recrea los online redo logs y regresa la secuencia a 1.
- Si nada mas cambiamos el DBNAME, los respaldos y archived redo logs siguen sirviendonos ya que no tenemos que abrir la base de datos con open resetlogs, lo unico que hay que tomar en cuenta que tenemos que cambiar el parametro DB_NAME.
- Si cambiamos el nombre con la utileria DBNEWID, hay que tomar en cuenta que no cambia el nombre unico global, GLOBAL_NAME, este lo cambiamos via el comando ALTER DATABASE
- Si cambiamos el DBID, vamos a tener que recrear el password file.
- Asegurarnos que tenemos un buen respaldo de nuestra base de datos, ya que en este proceso vamos a abrir la base de datos con resetlogs y éste, en el peor de los casos, va a ser nuestro punto a restaurar.
- Para poder hacer este proceso, la base de datos tiene que estar en modo MOUNT.
oracle@localhost [TESTDB] /mount/oracle
root $ sqlplus
SQL*Plus: Release 11.2.0.2.0 Production on
Mon Dec 13 07:38:14 2010
Copyright (c) 1982, 2010, Oracle.
All rights reserved.
Enter user-name: /as sysdba
Connected to:
Oracle Database 11g Enterprise Edition
Release 11.2.0.2.0 - 64bit Production
With the OLAP, Data Mining and Real
Application Testing options
TESTDB >shutdown immediate
TESTDB >startup mount
ORACLE instance started.
TESTDB >exit
- En la linea de comandos vamos a llamar a la utileria DBNEWID, que se encuentra en $ORACLE_HOME/bin.
oracle@localhost [TESTDB] /mount/oracle
root $ nid target=sys/sys_password@TESTDB
DBNEWID: Release 11.2.0.2.0 - Production on
Mon Dec 13 07:39:04 2010
Copyright (c) 1982, 2009, Oracle and/or its affiliates.
All rights reserved.
Connected to database TESTDB (DBID=3071275785)
Connected to server version 11.2.0
Control Files in database:
/mount/u01/oracle/TESTDB/control/control01.ctl
/mount/u01/oracle/TESTDB/control/control02.ctl
/mount/u01/oracle/TESTDB/control/control03.ctl
Change database ID of database TESTDB? (Y/[N]) => Y
Proceeding with operation
Changing database ID from 3071275785
to 3073734488
Control File /mount/u01/oracle/TESTDB/control/control01.ctl - modified
Control File /mount/u01/oracle/TESTDB/control/control02.ctl - modified
Control File /mount/u01/oracle/TESTDB/control/control03.ctl - modified
Datafile /mount/u01/oracle/TESTDB/data/system.db - dbid changed
Datafile /mount/u01/oracle/TESTDB/data/undotbs1.db - dbid changed
Datafile /mount/u01/oracle/TESTDB/data/sysaux.db - dbid changed
Datafile /mount/u01/oracle/TESTDB/data/users01.db - dbid changed
Datafile /mount/u01/oracle/TESTDB/data/temp01.db - dbid changed
Control File /mount/u01/oracle/TESTDB/control/control01.ctl - dbid changed
Control File /mount/u01/oracle/TESTDB/control/control02.ctl - dbid changed
Control File /mount/u01/oracle/TESTDB/control/control03.ctl - dbid changed
Instance shut down
Database ID for database TESTDB changed
to 3073734488.
All previous backups and archived redo logs
for this database are unusable.
Database has been shutdown,
open database with RESETLOGS option.
Succesfully changed database ID.
DBNEWID - Completed succesfully.
- Una vez que termino la utileria, hay que abrir la base de datos en modo MOUNT
oracle@localhost [TESTDB] /mount/oracle
root $ sqlplus
SQL*Plus: Release 11.2.0.2.0 Production on
Mon Dec 13 07:39:28 2010
Copyright (c) 1982, 2010, Oracle.
All rights reserved.
Enter user-name: /as sysdba
Connected to an idle instance.
TESTDB >startup mount
ORACLE instance started.
Database mounted.
- Ahora tenemos que abrir la base de datos con la opcion RESETLOGS, es recomendable que despues de que la base de datos este abierta, tengamos que hacer un respaldo completo de nuestra base de datos.
TESTDB >alter database open resetlogs;
Database altered.
- Por ultimo, si quieres revisar el cambio del DBID puedes hacer el siguiente query
TESTDB >select DBID,name from v$database;
DBID NAME
---------- ---------------------------
3073734488 TESTDB
Esta utileria de Oracle es muy util para cuando hemos clonado una BD via un respaldo caliente o frio que no fue con RMAN, ya que RMAN hace este paso de manera implicita. Lo unico es que es una utileria muy facil de usar pero a su vez muy peligrosa ya que nos puede dejar sin un respaldo util para nuestras BDs.
No hay comentarios.:
Publicar un comentario