Cambiar de ubicación una base de datos Oracle

      1. INTRODUCCIÓN
      2. Algunas veces es necesario mover o cambiar de ubicación una base de datos por diversas causas.Antes de realizar dicha operación es conveniente realizar un backup completo de la base de datos por si acaso existe un fallo al realizar la operación

      3. PASOS A SEGUIR:
    • Bajamos los servicios de base de datos
    • Bajamos la base de datos

      sqlplus /nolog
      SQL> connect /as sysdba
      SQL> shutdown immediate
      SQL> exit

      Bajamos el listener

      $lsnrctl stop nb_listener

    • Cambiamos los archivos
    • Copiamos o movemos los archivos a la nueva ubicacion

    • Modificación de archivos
    • En caso de que hayamos cambiado de ubicación los controlfile tendremos que editar el archivo init.ora y modificar la ubicación de estos.

    • Startup Mount
    • Iniciamos la base de datos realizanzo un startup mount

      sqlplus /nolog
      SQL> connect /as sysdba
      SQL> startup mount
      SQL> exit

    • Renombrar los datafiles
    • La base de datos tiene que estar en estado mount como hemos visto en el paso anterior.Con la sentencia ALTER DATABASE llevamos a cabo la reubicación de los datafile. Esta operación también habriá que hacerla en caso de que los datafiles hubiesen sido renombrados y no movidos o copiados de sitio.

      SQL> ALTER DATABASE RENAME FILE ‘$ORACLE_HOME/oradata/user_data.dbf’, ‘$ORACLE_HOME/oradata/datos.dbf’ TO ‘$ORACLE_HOME/oradata2/user_data.dbf’, ‘$ORACLE_HOME/oradata2/datos.dbf’;

      Cuando realizamos esta operación los datafiles tienen que estar ya reubicados en el nuevo sitio o renombrados, ya que esta sentencia no los crea, simplemte los renombra o los reubica de sitio ( ver paso 2 )

    • Renombrar los redolog
    • Para renombrar o reubicar los redo log hay que seguir el mismo paso que con los datafiles

      SQL> ALTER DATABASE RENAME FILE ‘$ORACLE_HOME/oradata/redo01.dbf’,’$ORACLE_HOME/oradata/redo02.dbf’ TO ‘$ORACLE_HOME/oradata2/redo01.dbf’, ‘$ORACLE_HOME/oradata2/redo02.dbf’;

    • Levantamos los servicios de la base de datos
    • Abrimos la base de datos

      Si la base de datos estaba en estado mount, la abrimos de la siguiente forma

      SQL> ALTER DATABASE OPEN
      SQL> exit

      Levantamos el listener

      $ lsnrctl start nb_listener