Tablespaces de la base de datos Oracle.
A continuación se indican algunos comandos de administración de los espacios
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
/**
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
/*
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
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
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,
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,
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
/*
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
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,
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;
/*
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,
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,
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,
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
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
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,
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,
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.
12. Los índices deben ir separados por tablespaces de sus respectivas tablas.
No hay comentarios:
Publicar un comentario