Cómo cambiar el SID de una base de datos Oracle
En Oracle, el SID (System Identifier) identifica de forma única una instancia de base de datos dentro del sistema operativo. Aunque es común confundirlo con el nombre de la base de datos (DB_NAME
), el SID se utiliza para iniciar y conectar la instancia localmente y remotamente. Este procedimiento NO CAMBIA el nombre de la base.
En este artículo te mostramos cómo cambiar el SID de una base de datos Oracle de forma controlada y segura.
¿Se puede cambiar directamente el SID?
No. El SID no se cambia dentro de Oracle como el DB_NAME
. En cambio, se crea una nueva instancia (nuevo SID) que apunta a la misma base de datos física.
Pasos para cambiar el SID
1. Detener la instancia actual
Desde SQL*Plus:
SHUTDOWN IMMEDIATE;
2. Crear una nueva estructura de entorno con el nuevo SID
Define el nuevo ORACLE_SID
en tu entorno o editar el archivo setEnv.sh:
export ORACLE_SID=ORCLNEW
Este valor debe ser configurado en tu entorno de usuario o en el script de inicio del sistema operativo.
nano /home/oracle/scripts/setEnv.sh3. Crear el nuevo archivo de parámetros para el nuevo SID
Copia el archivo de parámetros existente (spfile o init.ora) y renómbralo con el nuevo SID:
cd $ORACLE_HOME/dbs
cp initANTIGUO_SID.ora initNUEVO_SID.ora
O si usas SPFILE:
cp spfileANTIGUO_SID.ora spfileNUEVO_SID.ora
En mi caso tengo que copiar el archivo SPFILE spfileorcl.ora a spfileorclnew.ora
cp spfileorcl.ora spfileorclnew.ora
Abre el archivo y asegúrate de que el parámetro db_name
esté correcto y que los paths (en caso de tener rutas absolutas) estén bien configurados.
4. Iniciar la instancia con el nuevo SID y probar
Verificamos que la base levante con el nuevo SID y verificamos el nuevo SID
echo $ORACLE_SIDsqlplus / as sysdbaselect instance_name from v$instance;STARTUP;
lsnrctl reloadlsnrctl status
sqlplus system@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.20.28)(PORT=1521)))(CONNECT_DATA=(SID=ORCLNEW)))select instance_name from v$instance;
5. Opcional: Eliminar archivos de la instancia anterior
Una vez que confirmes que todo está bien funcionando, puedes eliminar archivos de parámetros o configuraciones relacionadas con el antiguo SID.
¿Qué más debo tener en cuenta?
- Actualiza tus scripts de arranque del sistema. en caso de que tengas configurado inicio automático
- Actualiza configuraciones en
oratab
(en Unix/Linux). - Revisa
listener.ora
ytnsnames.ora
si contienen referencias al SID antiguo.
Conclusión
Aunque no se puede cambiar el SID directamente en Oracle, puedes crear una nueva instancia que apunte a la misma base de datos y así "renombrarla" desde el punto de vista del sistema operativo. Este procedimiento es seguro si se siguen los pasos correctamente y es muy útil en entornos donde se clonan bases de datos o se reubican servidores.
¿Te ha tocado cambiar un SID antes? ¡Déjanos tu experiencia o pregunta en los comentarios!
No hay comentarios:
Publicar un comentario