Moviendo un datafile para resolver un filesystem lleno

El método más sencillo de hacer espacio en un filesystem lleno es mover uno de los datafiles afectados a un nuevo filesystem. Si se disponde de hueco no habrá que esperar más tiempo que el que tarde en realizarse el cp del datafile a su nueva ubicación. Existen dos maneras de mover estos datafile en funcion de lo bloqueada que este la bbdd.

ALTER DATABASE
(datafiles tipo sistema)

Si la cosa está muy complicada es posible que Oracle ni siquiera pueda permanecer abierta por tratarse de alguno de los ficheros o tablespace de los vitales.

  1. Con la bbdd parada, movemos el fichero (o uno de los ficheros) a su nueva ubicación, tan sencillo como un cp del sistema operativo. La intención es hacer hueco en el filesystem para que sistema pueda seguir funcionando.
  2. Nos conectamos como sys y montamos la bbdd.
  3. Realizamos el alter del datafile
    alter database rename file '/system/oradata/XXX/undotbspc01.dbf' to '/datos/oradata/XXX/undotbspc01.dbf';
  4. Por ultmo abrimos al servicio la bbdd
    alter database open;

ALTER TABLESPACE
(cualquier otro tipo de datafile)

Para tablespaces de los no vitales el siguiente método tiene un impacto menor ya que el sistema no necesita ser parado.

  1. Conectarse como sys a una instancia abierta.
  2. Poner offline el tablespace afectado con la instrucción
    alter tablespace datos offline;
  3. Realizar el alter de tablespace con el modificador rename.
    alter tablespace datos rename datafile '/datos01/oradata/XXX/datos01.dbf' to '/datos02/oradata/XXX/datos01.dbf';
  4. Volver a abrir el tablespace con la instrucción:
    alter tablespace datos online;