DBMS_APPLICATION_INFO

The DBMS_APPLICATION_INFO package allows programs to add information to the V$SESSION and V$SESSION_LONGOPS views to make tracking of session activities more accurate.

Once the program initiates it registers itself using the SET_MODULE procedure. In doing so it also sets the initial action:

BEGIN
DBMS_APPLICATION_INFO.set_module(module_name => ‘add_order’,
action_name => ‘insert into orders’);

— Do insert into ORDERS table.
END;
/

Subsequent processing can use the SET_ACTION procedure to make sure the action description stays relevant:
Assuming that the “fireid” user is to be audtited:

BEGIN
DBMS_APPLICATION_INFO.set_action(action_name => ‘insert into order_lines’);

— Do insert into ORDER_LINES table.
END;
/

The SET_CLIENT_INFO procedure can be used if any additional information is needed:

BEGIN
DBMS_APPLICATION_INFO.set_action(action_name => ‘insert into orders’);
DBMS_APPLICATION_INFO.set_client_info(client_info => ‘Issued by Web Client’);

— Do insert into ORDERS table.
END;
/

The information set by these procedures can be read from the V$SESSION view as follows:

SET LINESIZE 500
SELECT sid,
serial#,
username,
osuser,
module,
action,
client_info
FROM v$session;

The SET_SESSION_LONGOPS procedure can be used to show the progress of long operations by inserting rows in the V$SESSION_LONGOPS view:

DECLARE
v_rindex PLS_INTEGER;
v_slno PLS_INTEGER;
v_totalwork NUMBER;
v_sofar NUMBER;
v_obj PLS_INTEGER;
BEGIN
v_rindex := DBMS_APPLICATION_INFO.set_session_longops_nohint;
v_sofar := 0;
v_totalwork := 10;

WHILE v_sofar < 10 LOOP
— Do some work
DBMS_LOCK.sleep(5);

v_sofar := v_sofar + 1;
DBMS_APPLICATION_INFO.set_session_longops(rindex => v_rindex,
slno => v_slno,
op_name => ‘Batch Load’,
target => v_obj,
context => 0,
sofar => v_sofar,
totalwork => v_totalwork,
target_desc => ‘BATCH_LOAD_TABLE’,
units => ‘rows processed’);
END LOOP;
END;
/

The information in the V$SESSION_LONGOPS view can be queried using:

SELECT opname,
target_desc,
sofar,
totalwork,
units
FROM v$session_longops;

Procedimento para matar as sessoes ociosas

Esta procedure deve ficar em um banco de dados, rodando de 30 em 30 min para remover as sessoes ociosas que estejam com a sessao a mais de 1 horas.

CREATE OR REPLACE PROCEDURE KILL_SESSIONS
IS
BEGIN
declare
Stmt_Str VARCHAR2(200);
Cur_Hdl INT;
Rows_Processed NUMBER;
Sid_V VARCHAR2(30);
Serial#_V VARCHAR2(30);

CURSOR pri IS
SELECT Sid, Serial#, Username
FROM V$Session
WHERE Program in (‘JDBC Thin Client’,’PLSQLDev.exe’,’Digitalizacao.exe’, ‘ORACLE.EXE’)
And Username Is Not Null
And Username in(‘XXXX’, ‘XXXX’)
and floor(last_call_et/120)> 1 — sem fazer nenhuma atividade !!!!
And Status = ‘INACTIVE’;

BEGIN
FOR usr in pri
LOOP
Sid_V := usr.Sid;
Serial#_V := Usr.Serial#;
Stmt_Str := ‘ALTER SYSTEM KILL SESSION ”’ || Sid_V || ‘,’ || Serial#_V || ”” || ‘ IMMEDIATE’;

Execute Immediate(stmt_str); — Oracle 8i feature
END LOOP;
Commit;
—null;
END;
end;

WGET no site OTN – Instalando o Oracle XE e o APEX sem interface gráfica

Instalando o Oracle XE e o APEX sem interface gráfica

Para baixar o APEX e o oracle EXPRESS em um linux sem interface grafica,
vamos usar o plugin do firefox para exportar os cookies. Entao instale o plugin,
no seu browser local da sua maquina (windows ou linux) e faça o login normalmente usando sua conta do otn. Recomendo limpar os cookies antes dessa tarefa. Para somente exportar o cookie da sua conta.

Instale o plugin

https://addons.mozilla.org/en-US/firefox/addon/8154

Depois de instalado, vá até ferramentas exportar cookie. Exporte os cookies com o nome sugerido (cookies.txt) e depois copie o arquivo para a maquina que não tem o console gráfico. Logo depois na mesma pasta execute os comandos abaixo.

Para o apex:

wget –load-cookies cookies.txt http://download.oracle.com/otn/java/appexpress/apex_3.2.zip

Para o banco:

wget –load-cookies cookies.txt http://download.oracle.com/otn/linux/oracle10g/xe/10201/oracle-xe-univ-10.2.0.1-1.0.i386.rpm

Primeiro Treinamento Oracle RAC 11G – realizado em BH

Bom pessoal,

O primeiro treinamento oficial da Oracle no Brasil foi realizado nas dependencias da Casa de Software S/A no periodo de 27/07 a 31/07/2009.

Foi um sucesso !!!

A base de dados remota da oracle nao decepcionou em momento algum. Em cada dia, auxiliam com scripts mais elaborados que se caso o aluno errar em algum ponto, a instalacao é refeita de forma automatizada ate o ponto do exercicio em questao, sem perda de tempo !

Nao foram editadas muitas novidades na versao 11g em relação a 10g. Ao que se pensava, agora o instalador corrige algumas intervencoes que antes deveriam ser feitas durante a instalacao pelo dba, isso melhorou bastante. O que se viu tambem é que, o database control ficou excepcional.

O Database control agora contempla a grande maioria das funcionalidades que antes so estavam presentes no Grid Control. A parte critica que, era a interconexao – agora pode ser monitorada pelo database control. O database control se parece em muito com o grid control nessa versao quando instalado em modo RAC.

Foram 4 alunos sendo dois dba’s de Rondonia – Ministerio Publico, (muito legal o pessoal de la diga de passagem) e um dba da prodemge e ainda um dba da prossegur.

Foi sensacional, adoramos quase que o treinamento finaliza na quinta feira – logicamente porque quando tudo funciona certinho não tem delongas …

Mas sim, retornarmos na sexta feira e ainda fizemos alguns testes de desastre e recuperacao, crash em nodes e foi muito bacana – claro conseguimos restaurar e tudo funcionar novamente.

Um abraço aos alunos e que nos encontremos novamente, com mais novidades do mundo oracle.

Andre.