En el artículo anterior, se explicaba cómo eliminar tablespaces Oracle vacíos. Estos tablespaces se quedan en la base de datos tras un upgrade SAP o una actualización de un stack de parches en el sistema SAP. A continuación se explican otras posibilidades para optimizar el espacio de base da datos como redimensionar y mover tablespaces Oracle tras un Upgrade SAP.
Espacio de base de datos para Upgrade SAP
En ocasiones, el programa de actualización SUM solicita cierta cantidad de espacio en la base de datos para realizar la actualización/upgrade SAP. Debido a la metodología de utilizar una instancia shadow, una clonación de ciertos objetos de la base de datos original para realizar la actualización sobre esta shadow instance y así permitir minimizar el downtime además de aumentar la seguridad del proceso.
El programa de actualización SUM calcula el espacio requerido en la base de datos, por ejemplo un nuevo tablespace de 55GB o ampliar un tablespace existente con 6250MB. Si en los SAPDATAS (directorios de los data files de las bases de datos SAP de Oracle) actuales no hay espacio suficiente, hay varias opciones:
- En instalaciones UNIX/Linux, ampliar los filesystems montados puede ser una tarea costosa por la estrategia de asignación de espacio.
- En instalaciones Windows ampliar disco no suele ser una solución sencilla por la dificultad de redimensionar las particiones.
En las dos opciones anteriores recuperar el espacio después de asignado suele ser complicado:
Una opción sencilla y rápida es montar un recurso de disco compartido, por ejemplo: almacenamiento en NFS o servidor SAMBA y ampliar el tablespace sobre este espacio. De esta manera se puede continuar con el upgrade SAP.
Reducir tablespaces Oracle tras Upgrade SAP
En ocasiones, una vez finalizado el Upgrade SAP puede suceder que tras crear un tablespace de 55 GB sólo se utiliza el 35% del espacio requerido inicialmente por el SUM.
Ante esta situación es posible redimensionar los tablespaces Oracle, reduciendo el tamaño de los data files para recuperar parte del espacio asignado que no se utiliza. Una forma sencilla es utilizando el programa Brtools y la opción Space management -> Alter data file -> Resize data file:
Para saber el espacio que se puede recuperar de los datafiles de un tablespace, se puede ejecutar de forma sencilla el siguiente script desde sqlplus e indicar el tamaño en que se pueden reducir los datafiles:
COLUMN block_size NEW_VALUE v_block_size SELECT TO_NUMBER(value) AS block_size FROM v$parameter WHERE name = 'db_block_size'; COLUMN tablespace_name FORMAT A20 COLUMN file_name FORMAT A50 COLUMN current_bytes FORMAT 999999999999999 COLUMN shrink_by_bytes FORMAT 999999999999999 COLUMN resize_to_bytes FORMAT 999999999999999 SET VERIFY OFF SET LINESIZE 200 SELECT a.tablespace_name, a.file_name, a.bytes AS current_bytes, a.bytes - b.resize_to AS shrink_by_bytes, b.resize_to AS resize_to_bytes FROM dba_data_files a, (SELECT file_id, MAX((block_id+blocks-1)*&v_block_size) AS resize_to FROM dba_extents GROUP by file_id) b WHERE a.file_id = b.file_id ORDER BY a.tablespace_name, a.file_name;
Mover tablespaces Oracle tras Upgrade SAP
Si se ha creado algún datafile en un almacenamiento temporal, como un recurso NFS montado en el sistema, o una unidad de disco diferente a la del resto de los ficheros de la base de datos, en caso de sistema operativo Windows, se pueden mover los datafiles desde la Brtools de manera sencilla con la opción del menú: Space management -> Move data file.
Se selecciona el datafile correspondiente:
En el parámetro 3, se selecciona el sapdata de destino de manera sencilla:
De esta manera se observa cómo cambia el comando SQL a ejecutar:
En cualquier caso antes de realizar un Upgrade SAP y posteriormente redimensionar o mover tablespaces Oracle se recomienda encarecidamente realizar un backup de la base de datos para poder volver a la situación anterior en caso de error.