viernes, 6 de marzo de 2015

Administrando Datafiles y Tablespaces de la base de datos Oracle.

Administrando Datafiles y 
Tablespaces de la base de datos Oracle.

A continuación se indican algunos comandos de administración de los espacios 
que alojan los datos de la base de datos. También se agregan algunas 
recomendaciones de cómo mantener los recursos.

Consulta de DATAFILES

/**
SELECT * FROM DBA_DATA_FILES  ORDER BY TABLESPACE_NAME,FILE_ID ;


Consulta de TABLESPACES
SELECT * FROM dba_tablespaces;


Crea un tablespace
CREATE TABLESPACE cbar01
DATAFILE '/oradata/bdcr/data/cbar01.dbf' SIZE 1024M
EXTENT MANAGEMENT LOCAL
SEGMENT SPACE MANAGEMENT AUTO;
COMMIT;


**/

Aumenta el anterior tablespace

/*
ALTER DATABASE DATAFILE '/oradata/bdcr/data/cbar01.dbf' AUTOEXTEND ON;

Consulta el tamaño de un tablespace
select sum(bytes) from dba_free_space where TABLESPACE_NAME='SYSTEM';


Consulta el espacio libre de la base de datos por tablespace y blocks
SELECT * from dba_free_space

**/


Otro ejemplo de creación de tablespace, en que el incremento se define por NEXT 320k.
Es un aumento menor y esta afectando la columna de: INCREMENT_BY
/*
CREATE TABLESPACE cbar04
DATAFILE '/oradata/bdcr/data/cbar04.dbf' SIZE 5120k
AUTOEXTEND ON NEXT 320 K
EXTENT MANAGEMENT LOCAL
SEGMENT SPACE MANAGEMENT AUTO;
COMMIT;
*/

Ejemplo en cómo se adiciona un datafile a un tablespace existente en este caso al SYSTEM.
En este ejemplo estamos aumentado aproximadamente medio giga.
Dando un incremento INCREMENT_BY, de next 102240K, 
que en el INCREMENT_BY se refleja como 1280

/*
ALTER TABLESPACE SYSTEMxxxx
    ADD DATAFILE '/oradata/bdcr/data/system_02xxxx.dbf' SIZE 488281k
      AUTOEXTEND ON
      NEXT 10240K;
**/

El siguiente es un ejemplo de cómo aumentar el tamaño de un datafile, 
el anterior que hemos creado, y ahora lo estamos aumentando a 1G.

/*
alter database datafile '/oradata/bdcr/data/system_02xx.dbf' RESIZE 1G;
**/

Cuando estamos haciendo cambios en datafiles y tablespaces, debemos de 
manera continúa verificar los cambios con la siguiente consulta a los datafiles.


/*
SELECT * FROM dba_data_files ORDER BY  TABLESPACE_NAME,FILE_ID;

**/


Dentro de la verificación debemos de ir viendo el tamaño que asignamos a los recursos 
de datafiles y tablespace.

Retomemos la consulta de espacios libres de los recursos mencionados, 
para que cualquier implementación sea vigilada y controlada de manera
 diaria y permanente.

/*
  SELECT df.tablespace_name TABLESPACE, df.total_space TOTAL_SPACE,
fs.free_space FREE_SPACE, df.total_space_mb TOTAL_SPACE_MB,
(df.total_space_mb - fs.free_space_mb) USED_SPACE_MB,
fs.free_space_mb FREE_SPACE_MB,
ROUND(100 * (fs.free_space / df.total_space),2) PCT_FREE
FROM (SELECT tablespace_name, SUM (bytes) TOTAL_SPACE,
      ROUND( SUM (bytes) / 1048576) TOTAL_SPACE_MB
      FROM dba_data_files
      GROUP BY tablespace_name) df,
     (SELECT tablespace_name, SUM (bytes) FREE_SPACE,
       ROUND( SUM (bytes) / 1048576) FREE_SPACE_MB
       FROM dba_free_space
       GROUP BY tablespace_name) fs
WHERE df.tablespace_name = fs.tablespace_name(+)
ORDER BY fs.tablespace_name;

**/

RECOMENDACIONES:

1. Todo datafile no debe contar con un crecimiento al máximo permitido, 
ya que su portabilidad, manejo y respaldo, puede verse
 afectada en caso de cualquier posible contingencia.
2. Ejemplo de ellos es en tener archivos muy grandes de 34 gigas por ejemplo.
3. Que los archivos dificulten su paso a otros espacios.
4. Que el respaldo sea muy grande en solo un archivo.
5. Que se dañe con mayor facilidad el archivo y su recuperación sea compleja, 
hasta tener un dato total de todo su contenido.

6. Lo mejor es ir agregando información clasificada, sea por históricos, de proceso, 
de recepciones, de periodos, por fechas.
7. Sea que queden en un esquema o varios esquemas.
8. En el caso del SYSTEM también es lo necesario, acumular en 
archivos datafiles pequeños.
9. Hay un proceso de recuperación de los contenidos de los datafiles 
y sus tablespaces, pero sólo a casos necesarios se debe realizar.
10. Los datafiles no deben tener RESIZE decrementables, 
y menos cuando hay  
contenido de datos, 
ya que puede ser perdida de los datos indiscutiblemente, para ello hay un proceso 
a seguir que se verá en otro documento complementario.
11. Este proceso se relaciona con el incremento que sufren los tablespaces, 
hay que relacionar ese crecimiento para poder ir cuadrando cambios.
12. Los índices deben ir separados por tablespaces de sus respectivas tablas.


No hay comentarios:

Publicar un comentario