Cambio ubicación ficheros de control en Oracle

Hola a todos, vamos a comentar una de las acciones que como DBAs vamos a tener que realizar alguna vez si trabajamos en entornos de BBDD Oracle, el cambio de ubicación de los ficheros de control de la Base de datos. Para hacerlo en entornos de producción hay que tener cuidado, porque requiere reinicio de la instancia, y se deben parar las aplicaciones afectadas que conectan a la BBDD, así que puede haber corte de servicio.

Ubicación actual de los ficheros de control

El primer paso del proceso es conocer la ubicación actual de los ficheros de control. Esto se puede realizar de dos maneras:

Ejecutando la instrucción «show parameter», ya que los ficheros de control se configuran como un parámetro en el spfile.

SQL> show parameter control_files

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
control_files                        string      C:\oracle\oradata\BBDD\
					         control01.ctl, C:\oracle\
						 oradata\BBDD\control02.ctl
SQL>

También se puede conocer la ubicación ejecutando una consulta a la vista v$spparameter

SQL> select name, value from v$spparameter where name = 'control_files';

NAME
--------------------------------------------------------------------------------
VALUE
--------------------------------------------------------------------------------
control_files
C:\oracle\oradata\BBDD\control01.ctl

control_files
C:\oracle\oradata\BBDD\control02.ctl

SQL>

Cambio de ubicación de los ficheros de control

Una vez que conocemos la ubicación de los ficheros, para cambiar la ubicación de los mismos, hay que cambiar el parámetro control_files, pero solo en spfile para que los cambios empiecen a funcionar después del reinicio. Para hacer esta operación es necesario tener privilegios de administrador.

SQL> alter system set control_files='E:\ORADATA\BBDD\Controlfile\control01.ctl','E:\ORADATA\BBDD\Controlfile\control02.ctl' scope=spfile;

Sistema modificado.

SQL>

Una vez configurado el parámetro, hay que parar la BBDD y mover los ficheros a la nueva ubicación.

SQL> shutdown immediate
Base de datos cerrada.
Base de datos desmontada.
Instancia ORACLE cerrada.
SQL>
Cambio ubicación ficheros de control Oracle gpsos

Inicio de la instancia

Cuando se han copiado los ficheros, hay que revisar que el usuario propietario de la instalación tiene permisos en la unidad, ya que el siguiente paso es levantar la instancia, y ya utilizará los ficheros en la nueva ubicación.

SQL> startup
Instancia ORACLE iniciada.

Total System Global Area 5167382528 bytes
Fixed Size                  8757568 bytes
Variable Size            1073745600 bytes
Database Buffers         4076863488 bytes
Redo Buffers                8015872 bytes
Base de datos montada.
Base de datos abierta.
SQL>

Para terminar hay que revisar que se están utilizando los ficheros de control de la nueva ubicación.

SQL> show parameter control_files

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
control_files                        string      E:\ORADATA\BBDD\Controlfile\cont
		                                 rol01.ctl, E:\ORADATA\BBDD\Contr
                                                 olfile\control02.ctl
												 
SQL>

Esperamos que os haya sido de utilidad.

Un saludo.

Equipo de base de datos

Si no quieres perderte trucos como este y estar al día de este mundo, suscríbete a nuestra newsletter. Te mantendremos informados con un solo email al mes.

¿Aún no conoces Query Performance? Descubre cómo puede ayudarte en tu entorno Oracle. Más información en su página de LinkedIn.

Sígue a GPS en LinkedIn

Si tienes dudas sobre su administración o relacionada con Oracle o SQL Server, ¡¡no dudes en contactar con nosotros que estaremos encantados de ayudar!!