MigraTI - Soluções em banco de dados

Guob 2017

terça-feira, 27 de outubro de 2009

Criando triggers de login

Segue abaixo passos rapidos de como criar uma trigger de login.
Após este procedimento você poderá criar a trigger com quantos campos achar necessário, basta programar.


SQL> select instance_name from v$instance;

INSTANCE_NAME
----------------
lana

SQL> CREATE TABLE connection_lana (login_date DATE,user_name VARCHAR2(30));

Table created.

SQL> select * from connection_lana;

no rows selected

SQL> CREATE OR REPLACE TRIGGER teste_login after LOGON ON DATABASE
when (USER LIKE 'SYS')
DECLARE
v_sid number;
v_module varchar2(48);
BEGIN
INSERT INTO connection_lana
(login_date, user_name)
VALUES
(SYSDATE, USER);
END teste_login;
/

Trigger created.

SQL> select trigger_name,status from dba_triggers where trigger_name='TESTE_LOGIN';

TRIGGER_NAME STATUS
------------------------------ --------
TESTE_LOGIN ENABLED

SQL> conn / as sysdba
Connected.
SQL> select * from connection_lana;

LOGIN_DAT USER_NAME
--------- ------------------------------
27-OCT-09 SYS

SQL>

sexta-feira, 16 de outubro de 2009

Rman Parte 2

Bom dia.

A correria do dia a dia me impede de atualizar o blog todo dia. ;(

Bom conforme comentado no post antigo, segue a segunda parte do Rman.
Vou demonstrar como recuperar alguns archives do catalogo.

Primeiro você deve saber se o archive ainda esta Guardado, com a opção.

list archivelog all;


Se os archives estiverem com o status "AVAILABLE" é porque você ainda pode recuperar o arquivo.

Vamos aos comandos.

#Para restaurar apenas um archive da fita basta você utilizar o comando abaixo.
run {
allocate channel CANAL type SBP_TAPE;
set archivelog destination to "CAMINHO";
restore archivelog logseq=469 thread=1;
}

#Para você restaurar uma sequencia de archives você pode utilizar o famoso until, segue abaixo.
run {allocate channel CANAL type disk;
set archivelog destination to "CAMINHO";
restore archivelog from logseq 469 until logseq=475;
}

Este procedimento pode ser bem demorado, caso seu backup estiver sendo compactado (compress=Y) nos parametros do RMAN.

Breve Rman Parte 3.
Como duplicar uma base com o Rman.

quinta-feira, 1 de outubro de 2009

Rman Parte 1

Bom.

Muitos ambientes estão começando a utilizar esta funcionalidade do Oracle.
O que passa a oferecer no mercado um nicho de oportunidades para nos especializarmos.

Como o que eu mais faço aqui na empresa é trabalhar com backup, estou começando a fuçar nesta tecnologia.

Então vamos a alguns comandos muito uteis para nos entendermos neste aplicativo que para muitos pode ser considerado um bixode sete cabeças.


Para iniciarmos, começamos com o "show all"
Ete comando irá lhe mostrar todas as configurações pré setadas no catalogo de backup.
exmplo de uma configuração.


Vamos a parte pratica.

[oracle@machine archive]$ rman catalog=user/senha@instance target=user/senha@instance

Recovery Manager: Release 9.2.0.7.0 - 64bit Production

Copyright (c) 1995, 2002, Oracle Corporation. All rights reserved.

connected to target database: INSTANCE (DBID=268364877)
connected to recovery catalog database

RMAN> show all;

starting full resync of recovery catalog
full resync complete
RMAN configuration parameters are:
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 15 DAYS;
CONFIGURE BACKUP OPTIMIZATION ON;
CONFIGURE DEFAULT DEVICE TYPE TO 'SBT_TAPE';
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE 'SBT_TAPE' TO '%F';
CONFIGURE DEVICE TYPE DISK PARALLELISM 1;
CONFIGURE DEVICE TYPE 'SBT_TAPE' PARALLELISM 1;
CONFIGURE CHANNEL 1 DEVICE TYPE 'SBT_TAPE' PARMS 'ENV=(TDPO_OPTFILE=/opt/tivoli/tsm/client/oracle/bin64/tdpo.opt)';
CONFIGURE CHANNEL 1 DEVICE TYPE DISK FORMAT '/home23/oracle/backup/rman/files/%d_%s_%p';
CONFIGURE MAXSETSIZE TO UNLIMITED;
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/home23/oracle/backup/rman/files/control-corp2-bkp.ctl';

RMAN>


[oracle@machine archive]$ rman catalog=user/senha@instance target=user/senha@instance

Você deve se perguntar o porquê desta linha complicada para conectar no rman.
Você tem de executar esta linha pelo seguinte motivo, o catalogo do Rman pode estar em outra instancia/maquina, por isso especifiquei no script onde exatamente ele vai conectar.

target esta igual ao catalog pois o target é o destino seria de qual banco que estou efetuando a conexão.

Digamos que tenho dois bancos.
o banco A tem o catalogo, mas é o banco B que quero efetuar o backup.
então a linha ficaria assim
[oracle@machine archive]$ rman catalog=user_do_banco_A/senha@instance_A target=user_do_banco_B/senha@instance_B

Alguns parâmetros estão tão explícitos que é desnecessário comentar, mas mesmo assim vamos lá.

CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF [NDAYS] DAYS; --Janela de retenção dos backup´s é de 15 dias.
CONFIGURE BACKUP OPTIMIZATION ON|OFF; --Backup otimizado esta habilitado. Serve para só fazer backuo de uma tablespace se a mesma houve alguma alteração.
CONFIGURE DEFAULT DEVICE TYPE TO 'SBT_TAPE'|'DISK'; --Informa o dispositivo padrão de backup.
CONFIGURE CONTROLFILE AUTOBACKUP ON|OFF; --faz backup do control file automaticamente ou não.
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE 'SBT_TAPE' TO '%F'; --Formata o backup do control file para fita
CONFIGURE DEVICE TYPE DISK PARALLELISM 1; --grava em disco de forma serial
CONFIGURE DEVICE TYPE 'SBT_TAPE' PARALLELISM 1; -- Grava em fita de forma serial
CONFIGURE CHANNEL 1 DEVICE TYPE 'SBT_TAPE' PARMS... --Configura o canal 1 do dispositivo de fita atrás são os parâmetros de configuração da fita.
CONFIGURE CHANNEL 1 DEVICE TYPE DISK FORMAT '/home23/oracle/backup/rman/files/%d_%s_%p'; --Configura o canal de disco e o formato.
CONFIGURE MAXSETSIZE TO UNLIMITED; -- Configura o tamanho maximo dos arquivos do Rman.
CONFIGURE SNAPSHOT CONTROLFILE NAME TO ...; -- Configura o snapshot do controlfile do Rman.


Acho que é isso ;D

Logo logo parte 2.