Oracle, Script, conceptos y chunches

Empezaremos a recolectar información acerca de Oracle de acuerdo como se nos va presentando las cosas en el proyecto JDA, la primera situación que se nos presento es el manejo de espacio para los TableSpace

Este script nos informa de los tamaños y objetos por bloque que contiene los TableSpaces

 

--
SELECT tablespace_name,
ROUND(sum(bytes)/1024/1024,0)
FROM dba_free_space
WHERE tablespace_name NOT LIKE 'TEMP%'
GROUP BY tablespace_name;

SELECT TABLESPACE_NAME "TABLESPACE", FILE_ID,
COUNT(*) "PIECES",
MAX(blocks) "MAXIMUM",
MIN(blocks) "MINIMUM",
AVG(blocks) "AVERAGE",
SUM(blocks) "TOTAL"
FROM DBA_FREE_SPACE
GROUP BY TABLESPACE_NAME, FILE_ID;
--

 

Para ver el tamaño de un Tablespace

SELECT tablespace_name, file_name, bytes/(1024*1024) AS "[Mb]" FROM dba_temp_files WHERE tablespace_name like 'TEMP%';

 

Tamaño de los Volumens donde esta las basedata

select name,state,total_mb,free_mb from v$asm_diskgroup;

select group_number, name, path, os_mb, total_mb, free_mb from v$asm_disk;
select * from v$asm_disk;

 

 

Para ver cuantos TableSpace existen

SELECT * FROM V$TABLESPACE

 

Para crear TableSpaces

--
CREATE TABLESPACE TS_SSIDATA DATAFILE '+DATA1/SSCALDEV/69F98A6850942F46E053B60110ACC7DF/DATAFILE/TS_SSIDATA.dbf' SIZE 500M;
CREATE TABLESPACE TS_SSIIDX DATAFILE '+DATA1/SSCALDEV/69F98A6850942F46E053B60110ACC7DF/DATAFILE/TS_SSIIDX.dbf' SIZE 500M;
--

 

 Para modificar tableSpaces

--
ALTER DATABASE datafile '+DATA1/SSCALDEV/69F98A6850942F46E053B60110ACC7DF/DATAFILE/TS_SSIDATA.dbf' resize 2048M;
ALTER DATABASE datafile '+DATA1/SSCALDEV/69F98A6850942F46E053B60110ACC7DF/DATAFILE/TS_SSIIDX.dbf' resize 2048M;
commit
--

 

 La forma más exacta de saber lo que “realmente” está consumido de los data files es sumando los bytes de la DBA_EXTENTS:

--
Select Tablespace_name, Sum(bytes) total
From Dba_extents
Group by Tablespace_name;

Select Tablespace_name, Sum(bytes) total
From Dba_data_files
Group by Tablespace_name;
--

 

Mostrar los nombres de las tablas que están en un TableSpace

--
select owner,TABLE_NAME,TABLESPACE_NAME 
from dba_tables 
where TABLESPACE_NAME = 'TS_SSIDATA'

select TABLE_NAME
from dba_tables 
where TABLESPACE_NAME = 'TS_SSIDATA'
--

 

Tu puedes utiliza el siguiente código para recuperar el tamaño por tabla en un esquema, para un tamaño total retira la condición que el objeto sea tabla

SELECT segment_name AS "TABLE_NAME",
SUM (BYTES) AS "[Bytes]",
SUM (BYTES) / 1024 AS "[Kb]",
SUM (BYTES) / (1024*1024) AS "[Mb]",
SUM (BYTES) / (1024*1024*1024) AS "[Gb]"
FROM user_segments
WHERE segment_type = 'TABLE'
GROUP BY segment_name;



select owner, sum(bytes) / (1024*1024) AS "[Mb]"
from dba_segments
group by owner
order by "[Mb]"


Sesiones

--
SET LINESIZE 100
COLUMN spid FORMAT A10
COLUMN username FORMAT A10
COLUMN program FORMAT A45

SELECT s.inst_id,
s.sid,
s.serial#,
--s.sql_id,
p.spid,
s.username,
s.program
FROM gv$session s
JOIN gv$process p ON p.addr = s.paddr AND p.inst_id = s.inst_id
WHERE s.type != 'BACKGROUND';
--

 

Kill sesiones

alter system kill session '404,25431, @2' immediate;

ALTER SYSTEM DISCONNECT SESSION '31,58911' immediate;

 

Espacio en discos
select group_number, name, path, os_mb, total_mb, free_mb from v$asm_disk;


select name,state,total_mb,free_mb from v$asm_diskgroup;

 

Activar/Desactivar Archivelog de Oracle

El tener activado el Archivelog es el primer paso para poder realizar una copia en caliente de nuestra Base de Datos mediante Rman, a continuación explicaremos como activar/desactivar esta opción para tener otra opción más de realizar copias de seguridad de nuestra Base de Datos, aquí una pequeña explicación del modo archivelog.

El modo archivelog de una base de datos Oracle protege contra la pérdida de datos cuando se produce un fallo en el medio físico.

  1. Se puede realizar una copia de seguridad mientras la base de datos está levantada.
  2. Con este modo de base de datos se puede restaurar una copia de seguridad de los archivos dañados utilizando estos archivos para actualizar los archivos mientras nuestra base de datos está levantada.
  3. Se puede recuperar la base de datos en un número de cambio del sistema específico.
  4. Se puede restaurar la base de datos en un punto específico en el tiempo.
  5. Teniendo en cuenta estas características básicas del modo archivelog de base de datos ORACLE, vamos a exponer en este documento cómo se activa y cómo se desactiva.

Alguna de las consecuencias que tiene desactivarlo son las siguientes:

  1. Las copias de seguridad ya no se pueden hacer on-line (habría que aplicar otro tipo de copias de seguridad).
  2. No se podrá recuperar la base de datos en un tiempo concreto.

Lo primero que tenemos que saber si nuestra base de dato tiene activo o no el Archivelog, para verlo:

– Entramos en la consola de sqlplus e introducimos el siguiente comando  archive log list, lo que nos dirá si tenemos o no activado el archivelog y si el archivado automático está funcionando

 

DESACTIVACIÓN DEL MODO ARCHIVELOG

Para desactivar el modo archivelog, realizamos los siguientes pasos:

– Nos conectamos a la base de datos y la paramos, despues de pararla la montamos

shutdown immediate

startup mount

– Desactivamos el modo archivelog

alter database noarchivelog

– Abrimos la base de datos

alter database open

– Desactivamos el archivado automático

alter system archive log stop

 

 

ACTIVACIÓN DEL ARCHIVELOG

– Para activar el modo archivelog, el init.ora debe de estar arrancado con los siguientes parámetros.

log_archive_start = true
log_archive_dest_1 = “location=/database/archivelog/bbdd REOPEN=5”
log_archive_format = arch_%t_%s.arc

– Si la base de datos está funcionando y esos parámetros están en el init.ora, nos conectamos a la base de datos y la paramos con un

shutdown immediate

– A continuación montamos la base de datos:

startup mount

– Cuando montamos la base de datos ejecutamos el siguiente comando:

alter database archivelog

– Despues abrimos nuestra base de datos y activamos el archivado automático

alter database open

alter system archive log start

 

 

Links de Interes

Administración de usuarios en Oracle Database
Gestión de Base de Datos

Activar/Desactivar Archivelog de Oracle

 

Cursores

 

show parameter pga_aggregate_limit;

select * from V$SESSTAT

select * from v$open_cursor

show parameter cursor

alter system set open_cursors=600;

select s.username, max(a.value)
from v$sesstat a, v$statname b, v$session s
where a.statistic# = b.statistic#
and s.sid (+)= a.sid
and b.name = 'opened cursors current'
group by s.username



 

 

También te podría gustar...