-- ##########################################################
-- # CHECK LIST DE BANCO DE DADOS ORACLE
-- # DATA DA CRIAÇÃO: 24/03/2022
-- # CRIADO POR: Igor Fortunato
-- # EXECUTAR NO SQLPLUS DENTRO DO CONTAINER CDB$ROOT
-- ##########################################################
set lines 300;
alter session set nls_date_format='dd/mm/yyyy-hh24:mi:ss';
set serveroutput ON
DECLARE -- DECLARANDO AS VARIAVEIS
v_data_atual date; --------------------------------- 00 - Analise Realizada no dia
v_tipo_de_genciamento VARCHAR2(10); ---------------- 01 - SGBD: ORACLE
---------------------------------------------------- 02 - Gerenciado pelo
v_instance_name VARCHAR2(16); ---------------------- 03 - Instancia
v_host_name VARCHAR2(64); -------------------------- 04 - Host
v_status VARCHAR2(12); ----------------------------- 05 - Status
v_startup_time VARCHAR2(40); ----------------------- 06 - Ultimo Start
v_count_username_ativo NUMBER; --------------------- 07 - Sessoes Ativas
v_count_username_inativo NUMBER; ------------------- 08 - Sessoes Inativos
v_session_current_utilization NUMBER; -------------- 09 - Sessoes Correntes
v_session_limit_value NUMBER; ---------------------- 10 - Limite de Sessoes
v_current_utilization NUMBER; ---------------------- 11 - Processos Correntes
v_limit_value NUMBER; ------------------------------ 12 - Limite de Processos
v_current_size_sga NUMBER; ------------------------- 13 - Tamanho Atual da SGA
v_current_size_pga NUMBER; ------------------------- 14 - Tamanho Atual da PGA
v_versao_oracle VARCHAR2(10); ---------------------- 15 - Versao do Oracle
v_quantidade_de_cpus NUMBER; ----------------------- 16 - Quantidade de CPUs
v_limite_maximo_de_cursores NUMBER; ---------------- 17 - Limite Maximo de Cursores
---------------------------------------------------- 18 - INFORMACOES SOBRE CURSORES ABERTOS
v_database_role VARCHAR2(10); ---------------------- 19 - Funcao do Banco de Dados
v_open_mode VARCHAR2(15); -------------------------- 20 - Banco de Dados no Modo
v_sevidores_dataguard VARCHAR2(40); ---------------- 21 - DATAGUARD - Os Servidores Primary e Standby
---------------------------------------------------- 22 - ORACLE RAC - Ativo e Ativo
v_oracle_rac_one_node VARCHAR2(5); ----------------- 23 - ORACLE RAC ONE NODE - Ativo e Passivo
v_t_database_size NUMBER; -------------------------- 24 - Tamanho do Banco de dados
v_t_used_space NUMBER; ----------------------------- 24 - Tamanho do Banco de dados
v_t_free_space NUMBER; ----------------------------- 24 - Tamanho do Banco de dados
---------------------------------------------------- 25 - TODOS OS DISCOS GERENCIADO PELO ASM DO ORACLE
---------------------------------------------------- 26 - SESSAO MAIS ANTIGA
BEGIN -- Inicio
-- 00 - Analise Realizada no dia
select sysdate
into v_data_atual
from dual;
-- 01 - SGBD: ORACLE
-- 02 - Gerenciado pelo
select value
into v_tipo_de_genciamento
from V$SYSTEM_PARAMETER
where name = 'instance_type';
-- 03 - Instancia
-- 04 - Host
-- 05 - Status
-- 06 - Ultimo Start
select DISTINCT i.instance_name, i.host_name, i.status,
to_char(i.startup_time,'DD/MM/YYYY - HH24:MI:SS')
into v_instance_name, v_host_name, v_status, v_startup_time
from v$instance i;
-- 07 - Sessoes Ativas
select count(s.username)
into v_count_username_ativo
from v$session s where s.status = 'ACTIVE';
-- 08 - Sessoes Inativos
select count(s.username)
into v_count_username_inativo
from v$session s where s.status = 'INACTIVE';
-- 09 - Sessoes Correntes
-- 10 - Limite de Sessoes
select r.current_utilization, r.limit_value
into v_session_current_utilization, v_session_limit_value
from v$resource_limit r where rownum <=1 and r.resource_name = 'sessions' ;
-- 11 - Processos Correntes
-- 12 - Limite de Processos
select r.current_utilization, r.limit_value
into v_current_utilization, v_limit_value
from v$resource_limit r where r.resource_name = 'processes' ;
-- 13 - Tamanho Atual da SGA
SELECT BYTES current_size_sga
into v_current_size_sga
FROM v$sgastat where NAME = 'fixed_sga';
-- 14 - Tamanho Atual da PGA
SELECT VALUE/1024/1024 current_size_pga
into v_current_size_pga
FROM V$PGASTAT where NAME like '%aggregate PGA target parameter%';
-- 15 - Versao do Oracle
select value
into v_versao_oracle
from V$SYSTEM_PARAMETER
where name = 'optimizer_features_enable';
-- 16 - Quantidade de CPUs
select value
into v_quantidade_de_cpus
from V$SYSTEM_PARAMETER
where name = 'cpu_count';
-- 17 - Limite Maximo de Cursores
select value
into v_limite_maximo_de_cursores
from v$parameter where name = 'open_cursors';
-- 18 - INFORMACOES SOBRE CURSORES ABERTOS
-- 19 - Funcao do Banco de Dados
select DATABASE_ROLE
into v_database_role
from v$database;
-- 20 - Banco de Dados no Modo
select open_mode
into v_open_mode
from v$database;
-- 21 - DATAGUARD - Os Servidores Primary e Standby
select value
into v_sevidores_dataguard
from v$parameter where name= 'log_archive_config';
-- 22 - ORACLE RAC - Ativo e Ativo
-- 23 - ORACLE RAC ONE NODE - Ativo e Passivo
select parallel
into v_oracle_rac_one_node
from v$instance;
-- 24 - Tamanho do Banco de dados
select round(sum(used.bytes) / 1024 / 1024) database_size,
round(sum(used.bytes) / 1024 / 1024) - round(free.p / 1024 / 1024) used_space,
round(free.p / 1024 / 1024) free_space
into v_t_database_size, v_t_used_space, v_t_free_space
from (select bytes from v$datafile
union all
select bytes from v$tempfile ) used,
(select sum(bytes) as p from dba_free_space) free
group by free.p ;
-- 25 - TODOS OS DISCOS GERENCIADO PELO ASM DO ORACLE
-- 26 - SESSAO MAIS ANTIGA
dbms_output.put_line('==================================');
dbms_output.put_line('.');
dbms_output.put_line('CHECK LIST - BANCO DE DADOS');
dbms_output.put_line('00 - Analise Realizada no dia: '||v_data_atual);
dbms_output.put_line('01 - SGBD: ORACLE');
dbms_output.put_line('02 - Gerenciado pelo: '||v_tipo_de_genciamento);
dbms_output.put_line('03 - Instancia: '|| v_instance_name);
dbms_output.put_line('04 - Host onde esta o Banco de Dados : '|| v_host_name);
dbms_output.put_line('05 - Status do Banco de Dados: '|| v_status);
dbms_output.put_line('06 - Ultimo Start: '||v_startup_time);
dbms_output.put_line('07 - Sessoes Ativas: '||v_count_username_ativo);
dbms_output.put_line('08 - Sessoes Inativas: '||v_count_username_inativo);
dbms_output.put_line('09 - Sessoes Correntes: '||v_session_current_utilization);
dbms_output.put_line('10 - Limite de Sessoes: '||v_session_limit_value);
dbms_output.put_line('11 - Processos Correntes: '||v_current_utilization);
dbms_output.put_line('12 - Limite de Processos: '||v_limit_value);
dbms_output.put_line('13 - Tamanho Atual da SGA: '||v_current_size_sga ||' bytes');
dbms_output.put_line('14 - Tamanho Atual da PGA: '||v_current_size_pga ||' megabytes');
dbms_output.put_line('15 - Versao do Oracle: '||v_versao_oracle);
dbms_output.put_line('16 - Quantidade de CPUs: '||v_quantidade_de_cpus);
dbms_output.put_line('17 - Limite Maximo de Cursores: '||v_limite_maximo_de_cursores);
dbms_output.put_line('18 - QUANTIDADE DE USUARIOS E QUANTIDADE DE SESSOES POR USUARIO');
-- CURSOR PARA CONSULTAR TODOS OS CURSORES
DECLARE -- DECLARANDO AS VARIAVEIS
v_count_cursores NUMBER;
v_username_cursores VARCHAR2(40);
v_posicao int default 0;
-- DECLARACAO DO CURSOR
CURSOR cursores_abertos IS
select count(a.value), s.username
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'
and s.username is not null
group by username
order by 1 desc;
-- INICIO
BEGIN
-- ABRINDO O CURSOR
OPEN cursores_abertos;
-- EXECUTAR LOOP
LOOP
-- EXTRAINDO OS DADOS DA CONSULTA
FETCH cursores_abertos INTO v_count_cursores,v_username_cursores;
-- SAIR DO LOOP QUANDO CONSULTAR TODOS OS DADOS EXISTENTES
EXIT WHEN cursores_abertos%NOTFOUND;
-- IMPRIMENDO OS DADOS NA TELA
v_posicao:=v_posicao+1;
dbms_output.put_line('Quant. de Usuarios: '||v_posicao||' - '||v_username_cursores||' - Quant. de Sessoes por Usuario: '||v_count_cursores);
END LOOP;
-- FECHANDO O CURSOR
CLOSE cursores_abertos;
END;
-- FIM DO CURSOR PARA CONSULTAR TODOS OS CURSORES
dbms_output.put_line('19 - Funcao do Banco de Dados: '||v_database_role);
dbms_output.put_line('20 - Banco de Dados no Modo: '||v_open_mode);
dbms_output.put_line('21 - DATAGUARD - Os Servidores Primary e Standby: '||v_sevidores_dataguard);
dbms_output.put_line('22 - ORACLE RAC: - Caso seja um "ORACLE RAC" os servidores seram listados:');
-- CURSOR PARA CONSULTAR ORACLE RAC ATIVO E ATIVO
DECLARE -- DECLARANDO AS VARIAVEIS
v_oracle_rac_nos_ativos VARCHAR2(256);
v_posicao int default 0;
-- DECLARACAO DO CURSOR
CURSOR oracle_rac IS
select INST_NAME
from v$active_instances;
BEGIN
-- ABRINDO O CURSOR
OPEN oracle_rac;
-- EXECUTAR LOOP
LOOP
-- EXTRAINDO OS DADOS DA CONSULTA
FETCH oracle_rac INTO v_oracle_rac_nos_ativos;
-- SAIR DO LOOP QUANDO CONSULTAR TODOS OS DADOS EXISTENTES
EXIT WHEN oracle_rac%NOTFOUND ;
-- IMPRIMENDO OS DADOS NA TELA
v_posicao:=v_posicao+1;
dbms_output.put_line('Node '||v_posicao||' - '||v_oracle_rac_nos_ativos);
END LOOP;
-- FECHANDO O CURSOR
CLOSE oracle_rac;
END;
-- FIM DO CURSOR PARA CONSULTAR ORACLE RAC ATIVO E ATIVO
dbms_output.put_line('23 - Cluster: '||v_oracle_rac_one_node);
dbms_output.put_line('24 - Tamanho do Banco de dados: '||v_t_database_size||' mb - Uso: '||v_t_used_space||' mb - Livre: '||v_t_free_space||' mb');
dbms_output.put_line('25 - TODOS OS DISCOS GERENCIADO PELO ASM DO ORACLE:');
-- CURSOR PARA CONSULTAR TODOS OS DISCOS DO ASM
DECLARE -- DECLARANDO AS VARIAVEIS
v_data2_disco_name VARCHAR2(60);
v_data2_disco_pct_used NUMBER;
v_free_disco NUMBER;
v_posicao int default 0;
-- DECLARACAO DO CURSOR
CURSOR discos_do_asm IS
SELECT
name, ROUND((1-(free_mb/total_mb))*100,2) pct_used, free_mb free_mb_disco
FROM v$asm_diskgroup
ORDER BY pct_used DESC;
-- INICIO
BEGIN
-- ABRINDO O CURSOR
OPEN discos_do_asm;
-- EXECUTAR LOOP
LOOP
-- EXTRAINDO OS DADOS DA CONSULTA
FETCH discos_do_asm INTO v_data2_disco_name,v_data2_disco_pct_used,v_free_disco;
-- SAIR DO LOOP QUANDO CONSULTAR TODOS OS DADOS EXISTENTES
EXIT WHEN discos_do_asm%NOTFOUND;
-- IMPRIMENDO OS DADOS NA TELA
v_posicao:=v_posicao+1;
dbms_output.put_line('Disco: '||v_posicao||' - '||v_data2_disco_name||' - Em Uso: '||v_data2_disco_pct_used||'%'||' - Free: '||v_free_disco||' megabytes');
END LOOP;
-- FECHANDO O CURSOR
CLOSE discos_do_asm;
END;
-- FIM DO CURSOR PARA CONSULTAR TODOS OS DISCOS DO ASM
dbms_output.put_line('26 - TOP 10 DAS SESSOES ATIVAS MAIS ANTIGAS:');
-- CURSOR PARA CONSULTAR 0S TOP 10
DECLARE -- DECLARANDO AS VARIAVEIS
v_session_username VARCHAR2(20);
v_session_sid NUMBER;
v_session_serial NUMBER;
v_sql_id VARCHAR2(15);
v_logon_time DATE;
v_posicao int default 0;
-- DECLARACAO DO CURSOR
CURSOR top_10 IS
select distinct a.username, a.sid, a.serial#, b.sql_id, a.logon_time, a.status
into v_session_username, v_session_sid, v_session_serial, v_sql_id, v_logon_time, v_status
from v$session a, v$sql b
where rownum <=10
and a.status in ('ACTIVE')
and a.type = 'USER'
and a.sql_hash_value = b.hash_value
and a.sql_address = b.address
-- and a.username not in ('SYS','SYSTEM','SYSRAC')
order by a.logon_time desc;
-- INICIO
BEGIN
-- ABRINDO O CURSOR
OPEN top_10;
-- EXECUTAR LOOP
LOOP
-- EXTRAINDO OS DADOS DA CONSULTA
FETCH top_10 INTO v_session_username,v_session_sid,v_session_serial,v_sql_id,v_logon_time,v_status;
-- SAIR DO LOOP QUANDO CONSULTAR TODOS OS DADOS EXISTENTES
EXIT WHEN top_10%NOTFOUND;
-- IMPRIMENDO OS DADOS NA TELA
v_posicao:=v_posicao+1;
dbms_output.put_line('Username: '||v_posicao||'- '||v_session_username||' Sid: '||v_session_sid||' Serial: '||v_session_serial||' Sql_id: '||v_sql_id||' Logon: '||v_logon_time||' Status: '||v_status);
END LOOP;
-- FECHANDO O CURSOR
CLOSE top_10;
END;
-- FIM DO CURSOR PARA CONSULTAR 0S TOP 10
END; -- Fim
/
-- # CHECK LIST DE BANCO DE DADOS ORACLE
-- # DATA DA CRIAÇÃO: 24/03/2022
-- # CRIADO POR: Igor Fortunato
-- # EXECUTAR NO SQLPLUS DENTRO DO CONTAINER CDB$ROOT
-- ##########################################################
set lines 300;
alter session set nls_date_format='dd/mm/yyyy-hh24:mi:ss';
set serveroutput ON
DECLARE -- DECLARANDO AS VARIAVEIS
v_data_atual date; --------------------------------- 00 - Analise Realizada no dia
v_tipo_de_genciamento VARCHAR2(10); ---------------- 01 - SGBD: ORACLE
---------------------------------------------------- 02 - Gerenciado pelo
v_instance_name VARCHAR2(16); ---------------------- 03 - Instancia
v_host_name VARCHAR2(64); -------------------------- 04 - Host
v_status VARCHAR2(12); ----------------------------- 05 - Status
v_startup_time VARCHAR2(40); ----------------------- 06 - Ultimo Start
v_count_username_ativo NUMBER; --------------------- 07 - Sessoes Ativas
v_count_username_inativo NUMBER; ------------------- 08 - Sessoes Inativos
v_session_current_utilization NUMBER; -------------- 09 - Sessoes Correntes
v_session_limit_value NUMBER; ---------------------- 10 - Limite de Sessoes
v_current_utilization NUMBER; ---------------------- 11 - Processos Correntes
v_limit_value NUMBER; ------------------------------ 12 - Limite de Processos
v_current_size_sga NUMBER; ------------------------- 13 - Tamanho Atual da SGA
v_current_size_pga NUMBER; ------------------------- 14 - Tamanho Atual da PGA
v_versao_oracle VARCHAR2(10); ---------------------- 15 - Versao do Oracle
v_quantidade_de_cpus NUMBER; ----------------------- 16 - Quantidade de CPUs
v_limite_maximo_de_cursores NUMBER; ---------------- 17 - Limite Maximo de Cursores
---------------------------------------------------- 18 - INFORMACOES SOBRE CURSORES ABERTOS
v_database_role VARCHAR2(10); ---------------------- 19 - Funcao do Banco de Dados
v_open_mode VARCHAR2(15); -------------------------- 20 - Banco de Dados no Modo
v_sevidores_dataguard VARCHAR2(40); ---------------- 21 - DATAGUARD - Os Servidores Primary e Standby
---------------------------------------------------- 22 - ORACLE RAC - Ativo e Ativo
v_oracle_rac_one_node VARCHAR2(5); ----------------- 23 - ORACLE RAC ONE NODE - Ativo e Passivo
v_t_database_size NUMBER; -------------------------- 24 - Tamanho do Banco de dados
v_t_used_space NUMBER; ----------------------------- 24 - Tamanho do Banco de dados
v_t_free_space NUMBER; ----------------------------- 24 - Tamanho do Banco de dados
---------------------------------------------------- 25 - TODOS OS DISCOS GERENCIADO PELO ASM DO ORACLE
---------------------------------------------------- 26 - SESSAO MAIS ANTIGA
BEGIN -- Inicio
-- 00 - Analise Realizada no dia
select sysdate
into v_data_atual
from dual;
-- 01 - SGBD: ORACLE
-- 02 - Gerenciado pelo
select value
into v_tipo_de_genciamento
from V$SYSTEM_PARAMETER
where name = 'instance_type';
-- 03 - Instancia
-- 04 - Host
-- 05 - Status
-- 06 - Ultimo Start
select DISTINCT i.instance_name, i.host_name, i.status,
to_char(i.startup_time,'DD/MM/YYYY - HH24:MI:SS')
into v_instance_name, v_host_name, v_status, v_startup_time
from v$instance i;
-- 07 - Sessoes Ativas
select count(s.username)
into v_count_username_ativo
from v$session s where s.status = 'ACTIVE';
-- 08 - Sessoes Inativos
select count(s.username)
into v_count_username_inativo
from v$session s where s.status = 'INACTIVE';
-- 09 - Sessoes Correntes
-- 10 - Limite de Sessoes
select r.current_utilization, r.limit_value
into v_session_current_utilization, v_session_limit_value
from v$resource_limit r where rownum <=1 and r.resource_name = 'sessions' ;
-- 11 - Processos Correntes
-- 12 - Limite de Processos
select r.current_utilization, r.limit_value
into v_current_utilization, v_limit_value
from v$resource_limit r where r.resource_name = 'processes' ;
-- 13 - Tamanho Atual da SGA
SELECT BYTES current_size_sga
into v_current_size_sga
FROM v$sgastat where NAME = 'fixed_sga';
-- 14 - Tamanho Atual da PGA
SELECT VALUE/1024/1024 current_size_pga
into v_current_size_pga
FROM V$PGASTAT where NAME like '%aggregate PGA target parameter%';
-- 15 - Versao do Oracle
select value
into v_versao_oracle
from V$SYSTEM_PARAMETER
where name = 'optimizer_features_enable';
-- 16 - Quantidade de CPUs
select value
into v_quantidade_de_cpus
from V$SYSTEM_PARAMETER
where name = 'cpu_count';
-- 17 - Limite Maximo de Cursores
select value
into v_limite_maximo_de_cursores
from v$parameter where name = 'open_cursors';
-- 18 - INFORMACOES SOBRE CURSORES ABERTOS
-- 19 - Funcao do Banco de Dados
select DATABASE_ROLE
into v_database_role
from v$database;
-- 20 - Banco de Dados no Modo
select open_mode
into v_open_mode
from v$database;
-- 21 - DATAGUARD - Os Servidores Primary e Standby
select value
into v_sevidores_dataguard
from v$parameter where name= 'log_archive_config';
-- 22 - ORACLE RAC - Ativo e Ativo
-- 23 - ORACLE RAC ONE NODE - Ativo e Passivo
select parallel
into v_oracle_rac_one_node
from v$instance;
-- 24 - Tamanho do Banco de dados
select round(sum(used.bytes) / 1024 / 1024) database_size,
round(sum(used.bytes) / 1024 / 1024) - round(free.p / 1024 / 1024) used_space,
round(free.p / 1024 / 1024) free_space
into v_t_database_size, v_t_used_space, v_t_free_space
from (select bytes from v$datafile
union all
select bytes from v$tempfile ) used,
(select sum(bytes) as p from dba_free_space) free
group by free.p ;
-- 25 - TODOS OS DISCOS GERENCIADO PELO ASM DO ORACLE
-- 26 - SESSAO MAIS ANTIGA
dbms_output.put_line('==================================');
dbms_output.put_line('.');
dbms_output.put_line('CHECK LIST - BANCO DE DADOS');
dbms_output.put_line('00 - Analise Realizada no dia: '||v_data_atual);
dbms_output.put_line('01 - SGBD: ORACLE');
dbms_output.put_line('02 - Gerenciado pelo: '||v_tipo_de_genciamento);
dbms_output.put_line('03 - Instancia: '|| v_instance_name);
dbms_output.put_line('04 - Host onde esta o Banco de Dados : '|| v_host_name);
dbms_output.put_line('05 - Status do Banco de Dados: '|| v_status);
dbms_output.put_line('06 - Ultimo Start: '||v_startup_time);
dbms_output.put_line('07 - Sessoes Ativas: '||v_count_username_ativo);
dbms_output.put_line('08 - Sessoes Inativas: '||v_count_username_inativo);
dbms_output.put_line('09 - Sessoes Correntes: '||v_session_current_utilization);
dbms_output.put_line('10 - Limite de Sessoes: '||v_session_limit_value);
dbms_output.put_line('11 - Processos Correntes: '||v_current_utilization);
dbms_output.put_line('12 - Limite de Processos: '||v_limit_value);
dbms_output.put_line('13 - Tamanho Atual da SGA: '||v_current_size_sga ||' bytes');
dbms_output.put_line('14 - Tamanho Atual da PGA: '||v_current_size_pga ||' megabytes');
dbms_output.put_line('15 - Versao do Oracle: '||v_versao_oracle);
dbms_output.put_line('16 - Quantidade de CPUs: '||v_quantidade_de_cpus);
dbms_output.put_line('17 - Limite Maximo de Cursores: '||v_limite_maximo_de_cursores);
dbms_output.put_line('18 - QUANTIDADE DE USUARIOS E QUANTIDADE DE SESSOES POR USUARIO');
-- CURSOR PARA CONSULTAR TODOS OS CURSORES
DECLARE -- DECLARANDO AS VARIAVEIS
v_count_cursores NUMBER;
v_username_cursores VARCHAR2(40);
v_posicao int default 0;
-- DECLARACAO DO CURSOR
CURSOR cursores_abertos IS
select count(a.value), s.username
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'
and s.username is not null
group by username
order by 1 desc;
-- INICIO
BEGIN
-- ABRINDO O CURSOR
OPEN cursores_abertos;
-- EXECUTAR LOOP
LOOP
-- EXTRAINDO OS DADOS DA CONSULTA
FETCH cursores_abertos INTO v_count_cursores,v_username_cursores;
-- SAIR DO LOOP QUANDO CONSULTAR TODOS OS DADOS EXISTENTES
EXIT WHEN cursores_abertos%NOTFOUND;
-- IMPRIMENDO OS DADOS NA TELA
v_posicao:=v_posicao+1;
dbms_output.put_line('Quant. de Usuarios: '||v_posicao||' - '||v_username_cursores||' - Quant. de Sessoes por Usuario: '||v_count_cursores);
END LOOP;
-- FECHANDO O CURSOR
CLOSE cursores_abertos;
END;
-- FIM DO CURSOR PARA CONSULTAR TODOS OS CURSORES
dbms_output.put_line('19 - Funcao do Banco de Dados: '||v_database_role);
dbms_output.put_line('20 - Banco de Dados no Modo: '||v_open_mode);
dbms_output.put_line('21 - DATAGUARD - Os Servidores Primary e Standby: '||v_sevidores_dataguard);
dbms_output.put_line('22 - ORACLE RAC: - Caso seja um "ORACLE RAC" os servidores seram listados:');
-- CURSOR PARA CONSULTAR ORACLE RAC ATIVO E ATIVO
DECLARE -- DECLARANDO AS VARIAVEIS
v_oracle_rac_nos_ativos VARCHAR2(256);
v_posicao int default 0;
-- DECLARACAO DO CURSOR
CURSOR oracle_rac IS
select INST_NAME
from v$active_instances;
BEGIN
-- ABRINDO O CURSOR
OPEN oracle_rac;
-- EXECUTAR LOOP
LOOP
-- EXTRAINDO OS DADOS DA CONSULTA
FETCH oracle_rac INTO v_oracle_rac_nos_ativos;
-- SAIR DO LOOP QUANDO CONSULTAR TODOS OS DADOS EXISTENTES
EXIT WHEN oracle_rac%NOTFOUND ;
-- IMPRIMENDO OS DADOS NA TELA
v_posicao:=v_posicao+1;
dbms_output.put_line('Node '||v_posicao||' - '||v_oracle_rac_nos_ativos);
END LOOP;
-- FECHANDO O CURSOR
CLOSE oracle_rac;
END;
-- FIM DO CURSOR PARA CONSULTAR ORACLE RAC ATIVO E ATIVO
dbms_output.put_line('23 - Cluster: '||v_oracle_rac_one_node);
dbms_output.put_line('24 - Tamanho do Banco de dados: '||v_t_database_size||' mb - Uso: '||v_t_used_space||' mb - Livre: '||v_t_free_space||' mb');
dbms_output.put_line('25 - TODOS OS DISCOS GERENCIADO PELO ASM DO ORACLE:');
-- CURSOR PARA CONSULTAR TODOS OS DISCOS DO ASM
DECLARE -- DECLARANDO AS VARIAVEIS
v_data2_disco_name VARCHAR2(60);
v_data2_disco_pct_used NUMBER;
v_free_disco NUMBER;
v_posicao int default 0;
-- DECLARACAO DO CURSOR
CURSOR discos_do_asm IS
SELECT
name, ROUND((1-(free_mb/total_mb))*100,2) pct_used, free_mb free_mb_disco
FROM v$asm_diskgroup
ORDER BY pct_used DESC;
-- INICIO
BEGIN
-- ABRINDO O CURSOR
OPEN discos_do_asm;
-- EXECUTAR LOOP
LOOP
-- EXTRAINDO OS DADOS DA CONSULTA
FETCH discos_do_asm INTO v_data2_disco_name,v_data2_disco_pct_used,v_free_disco;
-- SAIR DO LOOP QUANDO CONSULTAR TODOS OS DADOS EXISTENTES
EXIT WHEN discos_do_asm%NOTFOUND;
-- IMPRIMENDO OS DADOS NA TELA
v_posicao:=v_posicao+1;
dbms_output.put_line('Disco: '||v_posicao||' - '||v_data2_disco_name||' - Em Uso: '||v_data2_disco_pct_used||'%'||' - Free: '||v_free_disco||' megabytes');
END LOOP;
-- FECHANDO O CURSOR
CLOSE discos_do_asm;
END;
-- FIM DO CURSOR PARA CONSULTAR TODOS OS DISCOS DO ASM
dbms_output.put_line('26 - TOP 10 DAS SESSOES ATIVAS MAIS ANTIGAS:');
-- CURSOR PARA CONSULTAR 0S TOP 10
DECLARE -- DECLARANDO AS VARIAVEIS
v_session_username VARCHAR2(20);
v_session_sid NUMBER;
v_session_serial NUMBER;
v_sql_id VARCHAR2(15);
v_logon_time DATE;
v_posicao int default 0;
-- DECLARACAO DO CURSOR
CURSOR top_10 IS
select distinct a.username, a.sid, a.serial#, b.sql_id, a.logon_time, a.status
into v_session_username, v_session_sid, v_session_serial, v_sql_id, v_logon_time, v_status
from v$session a, v$sql b
where rownum <=10
and a.status in ('ACTIVE')
and a.type = 'USER'
and a.sql_hash_value = b.hash_value
and a.sql_address = b.address
-- and a.username not in ('SYS','SYSTEM','SYSRAC')
order by a.logon_time desc;
-- INICIO
BEGIN
-- ABRINDO O CURSOR
OPEN top_10;
-- EXECUTAR LOOP
LOOP
-- EXTRAINDO OS DADOS DA CONSULTA
FETCH top_10 INTO v_session_username,v_session_sid,v_session_serial,v_sql_id,v_logon_time,v_status;
-- SAIR DO LOOP QUANDO CONSULTAR TODOS OS DADOS EXISTENTES
EXIT WHEN top_10%NOTFOUND;
-- IMPRIMENDO OS DADOS NA TELA
v_posicao:=v_posicao+1;
dbms_output.put_line('Username: '||v_posicao||'- '||v_session_username||' Sid: '||v_session_sid||' Serial: '||v_session_serial||' Sql_id: '||v_sql_id||' Logon: '||v_logon_time||' Status: '||v_status);
END LOOP;
-- FECHANDO O CURSOR
CLOSE top_10;
END;
-- FIM DO CURSOR PARA CONSULTAR 0S TOP 10
END; -- Fim
/
0 Comentários