Si encontramos permanentemente el mensaje "Checkpoint not complete" en el alert log, es porque la cantidad de redolog's no es suficiente para la cantidad de Modificaciónes que se realizan en la base de datos.
La acción que hay que realizar es agregar mas Grupos de Redo
ALTER DATABASE
ADD LOGFILE GROUP 4 ('/oracle/dbs/log4.rdo')
SIZE 50M;
Oracle Sql Comando, Funciones, Administración, Tablespace, Tablas, Jobs, Ocupacion,Cursores, Memoria, Espacio Libre, Sentencias Sql, Tamaño, Ficheros.
martes, 30 de abril de 2013
miércoles, 24 de abril de 2013
Redo log
Vista de Archivos Redo logs
select * from v$logfile;
Vista del historico de Redo logs
Cambiar el Redo log activo
alter system switch logfile;
Crear y borrar grupos de Redo log
alter database drop logfile group 4;
miércoles, 17 de abril de 2013
Espacios - Tamaño - Ocupación
Tamaño ocupado por la base de datos
select sum(BYTES)/1024/1024 MB from DBA_EXTENTS
Tamaño de los ficheros de datos de la base de datos:
select sum(bytes)/1024/1024 MB from dba_data_files
Tamaño ocupado por una tabla concreta sin incluir los índices de la misma
select sum(bytes)/1024/1024 MB from user_segments
where segment_type='TABLE' and segment_name='NOMBRETABLA'
Tamaño ocupado por una tabla concreta incluyendo los índices de la misma
select sum(bytes)/1024/1024 Table_Allocation_MB from user_segments
where segment_type in ('TABLE','INDEX') and
(segment_name='NOMBRETABLA' or segment_name in
(select index_name from user_indexes where table_name='NOMBRETABLA'))
Tamaño ocupado por una columna de una tabla:
select sum(vsize('NOMBRECOLUMNA'))/1024/1024 MB from NOMBRETABLA
Espacio ocupado por usuario:
SELECT owner, SUM(BYTES)/1024/1024 FROM DBA_EXTENTS MB
GROUP BY owner
Espacio ocupado por los diferentes segmentos (tablas, índices, undo, rollback, cluster, ...)
SELECT SEGMENT_TYPE, SUM(BYTES)/1024/1024 FROM DBA_EXTENTS MB
GROUP BY SEGMENT_TYPE
Espacio ocupado por todos los objetos de la base de datos, muestra los objetos que más ocupan primero
SELECT SEGMENT_NAME, SUM(BYTES)/1024/1024 FROM DBA_EXTENTS MB
GROUP BY SEGMENT_NAME
ORDER BY 2 DESC
Sentencias Sql
Sentencias SQL completas ejecutadas con un texto determinado en el SQL
FROM v$session c, v$sqltext d
WHERE c.sql_hash_value = d.hash_value
and upper(d.sql_text) like '%WHERE CAMPO LIKE%'
ORDER BY c.sid, d.piece
Una sentencia SQL concreta (filtrado por sid)
SELECT c.sid, d.piece, c.serial#, c.username, d.sql_text
FROM v$session c, v$sqltext d
WHERE c.sql_hash_value = d.hash_value and sid = 105
ORDER BY c.sid, d.piece
Memoria - Cursores
Memoria Share_Pool libre y usada
select name,to_number(value) bytes
from v$parameter where name ='shared_pool_size'
union all
select name,bytes
from v$sgastat where pool = 'shared pool' and name = 'free memory'
Cursores abiertos por usuario:
select b.sid, a.username, b.value Cursores_Abiertos
from v$session a,
v$sesstat b,
v$statname c
where c.name in ('opened cursors current')
and b.statistic# = c.statistic#
and a.sid = b.sid
and a.username is not null
and b.value >0
order by 3
Aciertos de la caché (no debe superar el 1 por ciento):
trunc(sum(reloads)/sum(pins)*100,2) Porcentaje_aciertos
from v$librarycache
where namespace in ('TABLE/PROCEDURE','SQL AREA','BODY','TRIGGER');
Ficheros - Archivos de datos - Ubicación
Ficheros de Datos
Ficheros temporales
Tablespaces
select * from V$TABLESPACE
Otras vistas muy interesantes
select * from V$ARCHIVE
select * from V$LOG
select * from V$LOGFILE
select * from V$LOGHIST
select * from V$ARCHIVED_LOG
select * from V$DATABASE
Tablas - Objetos
Propietarios objetos
from dba_objects
group by owner
order by Numero desc
Muestra los datos de una tabla especificada
Tablas del usuario
Todos los objetos propiedad del usuario conectado a Oracle
Sesiones Activas
Vista que muestra las conexiones actuales a Oracle:
select osuser, username, machine, program
from v$session
order by osuser
Vista que muestra el número de conexiones actuales a Oracle agrupado por aplicación
from v$session
group by program
order by Numero_Sesiones desc
Vista que muestra los usuarios de Oracle conectados y el número de sesiones por usuario
select username Usuario_Oracle, count(username) Numero_Sesiones
from v$session
group by username
order by Numero_Sesiones desc
Consultas SQL útiles Información / Administración de Oracle
Estado de la base de datos
select * from v$instance
Parámetros generales de Oracle
select * from v$system_parameter
Versión de Oracle
select value from v$system_parameter where name = 'compatible'
Ubicación y nombre del fichero spfile
select value from v$system_parameter where name = 'spfile'
Ubicación y número de ficheros de control
select value from v$system_parameter where name = 'control_files'
Nombre de la base de datos
select value from v$system_parameter where name = 'db_name'
Diccionario de datos
select * from dictionary
select table_name from dictionary
martes, 16 de abril de 2013
Tablespace - Espacio - Tablas
Ver - Tablespace - Espacios - Ocupación
df.tablespace_name "Tablespace",
df.bytes / (1024 * 1024) "Tamaño (Mb)",
Sum(fs.bytes) / (1024 * 1024) "Libre (Mb)",
Nvl(Round(SUM(fs.bytes) * 100 / df.bytes),1) "% Libre",
Round((df.bytes - SUM(fs.bytes)) * 100 / df.bytes) "% Usado"
From dba_free_space fs,
(Select tablespace_name,SUM(bytes) bytes From dba_data_files
Group by tablespace_name ) df
Where
fs.tablespace_name (+) = df.tablespace_name
Group by df.tablespace_name,df.bytes
Union All
Select
df.tablespace_name tspace,
fs.bytes / (1024 * 1024),
Sum(df.bytes_free) / (1024 * 1024),
Nvl(Round((SUM(fs.bytes) - df.bytes_used) * 100 / fs.bytes), 1),
Round((SUM(fs.bytes) - df.bytes_free) * 100 / fs.bytes)
From dba_temp_files fs,
( Select tablespace_name,bytes_free,bytes_used From v$temp_space_header
Group by tablespace_name,bytes_free,bytes_used) df
Where
fs.tablespace_name (+) = df.tablespace_name
Group by df.tablespace_name,fs.bytes,df.bytes_free,df.bytes_used
Order by 5 Desc;
Ver Ocupación por Tabla (Incluyendo Indices) del usuario conectado
from
(
select sum(user_segments.bytes)/1024/1024 Table_Allocation_MB,user_indexes.table_name
from user_segments, user_indexes
where user_segments.segment_type in ('INDEX') and user_segments.segment_name=user_indexes.index_name
GROUP BY user_indexes.table_name
union all
select sum(bytes)/1024/1024 Table_Allocation_MB,segment_name from user_segments
where segment_type in ('TABLE')
GROUP BY segment_name
)
group by table_name order by 1 desc
También podemos agregarle a la consulta la ocupación de los tipos de datos LOB.
select sum(Table_Allocation_MB), table_name from (select sum(user_segments.bytes)/1024/1024 Table_Allocation_MB,user_indexes.table_name from user_segments, user_indexes where user_segments.segment_type in ('INDEX') and user_segments.segment_name=user_indexes.index_nameGROUP BY user_indexes.table_name
union all
select sum(bytes)/1024/1024 Table_Allocation_MB,segment_name from user_segmentswhere segment_type in ('TABLE')GROUP BY segment_name
UNION ALL
select sum(bytes)/1024/1024 Table_Allocation_MB,segment_name from user_segmentswhere segment_type IN ('LOBINDEX','LOBSEGMENT')GROUP BY segment_name) group by table_nameorder by 1 desc
Manejo de Jobs
Tablas Relacionadas
select * from user_source;
select * from dba_jobs;
select * from users_jobs;
Crear Jobs
begin
dbms_job.submit( :jobno,
'owner.storeprocedure;',
sysdate + (1/24/60)*5,
'sysdate + (1/24/60)*30'
);
end;
/
commit;
Borrar Jobs
begin
dbms_job.remove (24);
end;
/
commit;
-------modifica jobs----
begin
dbms_job.change(<Job number>,
'owner.storeprocedure;',
sysdate + (1/24/60)*5,
'sysdate + (1/24/60)*5'
);
end;
/
commit;
Habilta/Deshabilita jobs
begin
dbms_job.broken(<JOBNUMBER>,FALSE);
end;
/
commit;
Suscribirse a:
Entradas (Atom)