[oracle_br] Auditoria do usuário no Oracle

2015-11-24 Por tôpico Cristiano Vasconcelos Barbosa cvasconcel...@gmail.com [oracle_br]
Boa tarde amigos,

Meu cenário Oracle:

banner

Oracle Database 10g Release 10.2.0.3.0 - 64bit Production

full_version
--
  10.2.0.3.0

version_bit


10.2.0.3.0 - 64bit

isDb64bit  isHPUX ARQUIVAMENTO
-- --   ---
True False STARTED

Meu cenário Linux:

LSB Version:
 
:core-3.0-amd64:core-3.0-ia32:core-3.0-noarch:graphics-3.0-amd64:graphics-3.0-ia32:graphics-3.0-noarch
Distributor ID: EnterpriseEnterpriseAS
Description:Enterprise Linux Enterprise Linux AS release 4 (October
Update 7)
Release:4
Codename:   OctoberUpdate7

Problemática:

Me foi requisitado implementar auditorias em usuários conectados ao Oracle,
apesar de muito pesquisar, ainda não encontrei solução para a requisição e
antes que possam sugerir, não temos a menor possibilidade de adquirir o
"Oracle Audit Vault" ou algum outro produto o qual seja pago da oracle ou
de qualquer outro fornecedor, INFELIZMENTE.

O que me foi requisitado, seria uma auditoria que indicasse o que o usuário
está fazendo no banco, seu trajeto no db, que tipo de transação está sendo
feita, sql utilizado, quais objetos ('FUNCTION', 'MATERIALIZED VIEW',
'PACKAGE', 'PACKAGE BODY', 'PROCEDURE', 'JOB', 'SEQUENCE', 'SYNONYM',
 'TABLE', 'TRIGGER', 'TYPE', 'TYPE BODY', 'VIEW', etc) estão sendo usadas,
tempo logado, etc, em fim, seria como uma reversa da conexão do usuário no
DB, Particularmente não tenho a menor ideia de como implementar tal
auditoria, nem se realmente seria possível implementá-la desta forma sem
que se utilizassem outros recursos "PAGOS" da Oracle ou de algum outro
fornecedor.

Neste sentido, requisito aos amigos com maior experiência no Oracle,
sugestões, mesmo rotinas já implementadas por vocês, as quais armazenem e
retornem estas informações, desde que possam ser disponibilizadas, claro.

Agradeço para ajuda e orienteção.


Atenciosamente,

[image: Foto Cristiano Vasconcelos Barbosa]
*Cristiano Vasconcelos Barbosa.'.*
* Analista de Sistemas & Banco de Dados*
| Cel: +55 (85) 9691.8331
--
http://br.linkedin.com/in/cristianovasconcelos


*DEUS MEUMQUE JUS*.'.
*DÓMINI SUMUS*.'.
Contact me: [image: Google Talk] cvasconcel...@gmail.com [image: Skype]
 cvasconcelosb [image: MSN] cvasconcel...@hotmail.com [image: Y! Messenger]
cvasconcel...@yahoo.com.br
[image: My QR VCard]
<http://s.wisestamp.com/links?url=http%3A%2F%2Fbr.linkedin.com%2Fin%2Fcristianovasconcelos=Y3Zhc2NvbmNlbG9zYkBnbWFpbC5jb20%3D>


[oracle_br] Re:Re: PROXY USER by jlchiappa

2015-10-22 Por tôpico Cristiano Vasconcelos Barbosa cvasconcel...@gmail.com [oracle_br]
** transações ** específicas tais como:
Insert, Update, Delete" - vamos deixar bem claro, primeiro, que no
RDBMS Oracle uma TRANSAÇÃO é o que é aberto automaticamente pelo primeiro
INSERT/UPDATE/DELETE que o banco receber numa sessão , e ela é Encerrada
com COMMIT ou ROLLBACK - INSERT/UPDATE/DELETE ** não ** representam em si e
por si uma Transação... Segundo, rigorosamente  NÃO EXISTE  o
conceito de permissão apenas para uma Transação num RDBMS , e em especial
no RDBMS Oracle : as permissões valem imediatamente após o GRANT, e VÃO
PERMANECER presentes até que um REVOKE as elimine,TENHA ou NÃO sido aberta
uma transação, tenha ou não desconectado a sessão que fez o grant, não
importa

[]s

Chiappa

OBS : estando CLARO que permissão por Transação ** não existe **, se for o
caso, Explica direitinho pra gente sobre o seu ambiente (ie, se há um POOL
de conexões aí ou não (e qual é ele, se houver, especificando
softwares/APIs/versões/modo pelo qual o pool foi implementado/criado), diga
se cada comando SQL éexecutado numa nova sessão ou não, que aí a gente pode
tentar te dar alternativas para permissão POR SESSÃO, isso sim existe :
isso vai passar por roles não-default ou por contextos globais sendo
acessados por trigger de logon ou coisas assim, mas Só COm os DETALHES
todos a gente pode te indicar mais direitinho as alternativas...


Amigos,

Boa noite...

Meu oracle é:

banner
--

Oracle Database 10g Enterprise Edition Release 10.2.0.3.0

version_bit

10.2.0.3.0 - 64bi

Arquivamento

STARTED

Amigos, estou precisando implementar o recurso "PROXY USER" e estou tendo
dificuldades, gostaria que algum dos amigos com maior experiência no oracle
demonstrasse com detalhes como o processo ocorre.

Em uma aplicação que é acessada via web, onde o usuário cadastrado no banco
tem apenas o privilégio de sistema de "create session", preciso que o
mesmo, ao conectar-se no sistema adquira o "CONNECT, RESOURCE " e
determinadas permissões do dono do sistema/tabelas para efetuar transações
específicas tais como: Insert, Update, Delete, as quais poderiam ser
repassadas ao usuário que se conecta via web por uma role específica se for
o caso, e ao sair, que essas permissões fossem revogadas.

Agradeço a atenção e a ajuda...


Atenciosamente,

[image: Foto Cristiano Vasconcelos Barbosa]
*Cristiano Vasconcelos Barbosa.'.*
* Analista de Sistemas & Banco de Dados*
| Cel: +55 (85) 9691.8331
--
http://br.linkedin.com/in/cristianovasconcelos


*DEUS MEUMQUE JUS*.'.
*DÓMINI SUMUS*.'.
Contact me: [image: Google Talk] cvasconcel...@gmail.com [image: Skype]
 cvasconcelosb [image: MSN] cvasconcel...@hotmail.com [image: Y! Messenger]
cvasconcel...@yahoo.com.br
[image: My QR VCard]
<http://s.wisestamp.com/links?url=http%3A%2F%2Fbr.linkedin.com%2Fin%2Fcristianovasconcelos=Y3Zhc2NvbmNlbG9zYkBnbWFpbC5jb20%3D>


[oracle_br] PROXY USER

2015-10-21 Por tôpico Cristiano Vasconcelos Barbosa cvasconcel...@gmail.com [oracle_br]
Amigos,

Boa noite...

Meu oracle é:

banner
--

Oracle Database 10g Enterprise Edition Release 10.2.0.3.0

version_bit

10.2.0.3.0 - 64bi

Arquivamento

STARTED

Amigos, estou precisando implementar o recurso "PROXY USER" e estou tendo
dificuldades, gostaria que algum dos amigos com maior experiência no oracle
demonstrasse com detalhes como o processo ocorre.


Em uma aplicação que é acessada via web, onde o usuário cadastrado no banco
tem apenas o privilégio de sistema de "create session", preciso que o
mesmo,  ao conectar-se no sistema adquira o "CONNECT, RESOURCE " e
determinadas permissões do dono do sistema/tabelas para efetuar transações
específicas tais como: Insert, Update, Delete, as quais poderiam ser
repassadas ao usuário que se conecta via web por uma role específica se for
o caso, e ao sair, que essas permissões fossem revogadas.


Agradeço a atenção e a ajuda...



Atenciosamente,

[image: Foto Cristiano Vasconcelos Barbosa]
*Cristiano Vasconcelos Barbosa.'.*
* Analista de Sistemas & Banco de Dados*
| Cel: +55 (85) 9691.8331
--
http://br.linkedin.com/in/cristianovasconcelos


*DEUS MEUMQUE JUS*.'.
*DÓMINI SUMUS*.'.
Contact me: [image: Google Talk] cvasconcel...@gmail.com [image: Skype]
 cvasconcelosb [image: MSN] cvasconcel...@hotmail.com [image: Y! Messenger]
cvasconcel...@yahoo.com.br
[image: My QR VCard]
<http://s.wisestamp.com/links?url=http%3A%2F%2Fbr.linkedin.com%2Fin%2Fcristianovasconcelos=Y3Zhc2NvbmNlbG9zYkBnbWFpbC5jb20%3D>


[oracle_br] Revolve e Grant.

2015-10-15 Por tôpico Cristiano Vasconcelos Barbosa cvasconcel...@gmail.com [oracle_br]
Amigos,

Boa noite...

Meu oracle é:

banner
--

Oracle Database 10g Enterprise Edition Release 10.2.0.3.0

version_bit

10.2.0.3.0 - 64bi

Arquivamento

STARTED

O cenário é o seguinte:

Possuo role RL_EXEMPLO onde possui SELECT, INSERT, UPDATE, DELETE. Esta
role é aplicada a várias tabelas do meu sistema. Foi gerado um arquivo
texto com +/- 200 tabelas que possuem esta role.

Preciso de duas rotinas, uma que faça a leitura deste arquivo texto
e aplique o revoke nas permissões de INSERT, UPDATE E DELETE nestas
tabelas, uma a uma, na sequência e de uma só vez.

E outra rotina que faça justamente o contrário, do acima exposto, ou seja,
que seja aplicada Grant de INSERT, UPDADE E DELETE às referidas tabelas, ou
seja, devolvendo as mesmas ao estado anterior, original caso o que preciso
fazer aconteça errado e precise emergencialmente retornar ao que era antes.

Desde logo, agradeço a atenção e disponibilidade.


-- 
Atenciosamente,


Cristiano Vasconcelos Barbosa.'.
Analista de Sistemas & Banco de Dados
| Cel: +55 (85) 9691.8331
http://br.linkedin.com/in/cristianovasconcelos

DEUS MEUMQUE JUS.'.
DÓMINI SUMUS.'.
Contact me: cvasconcel...@gmail.com


[oracle_br] Registros deletados...

2015-10-13 Por tôpico Cristiano Vasconcelos Barbosa cvasconcel...@gmail.com [oracle_br]
Amigos,

Boa noite...

Meu oracle é:

banner
--

Oracle Database 10g Enterprise Edition Release 10.2.0.3.0

version_bit

10.2.0.3.0 - 64bi

Arquivamento

STARTED

Atualmente não possuo auditoria em tabelas, devido ao alto custo.

Possuo um cenário no qual foram deletados registros de uma tabela
"tb_tabela" da data do dia 01/10 ao dia 09/10, e gostaria de saber se tem
como saber, ESPECIFICAMENTE, o dia a hora e quem teria deletado estes
registros, caso exista alguma solução para minha solicitação, o amigo que
possuí-la, gostaria que disponibilizasse a estrutura para que fosse
possível aplicá-la em meu ambiente.

Desde logo, agradeço a atenção e disponibilidade.


Atenciosamente,

[image: Foto Cristiano Vasconcelos Barbosa]
*Cristiano Vasconcelos Barbosa.'.*
* Analista de Sistemas & Banco de Dados*
| Cel: +55 (85) 9691.8331
--
http://br.linkedin.com/in/cristianovasconcelos


*DEUS MEUMQUE JUS*.'.
*DÓMINI SUMUS*.'.
Contact me: [image: Google Talk] cvasconcel...@gmail.com [image: Skype]
 cvasconcelosb [image: MSN] cvasconcel...@hotmail.com [image: Y! Messenger]
cvasconcel...@yahoo.com.br
[image: My QR VCard]
<http://s.wisestamp.com/links?url=http%3A%2F%2Fbr.linkedin.com%2Fin%2Fcristianovasconcelos=Y3Zhc2NvbmNlbG9zYkBnbWFpbC5jb20%3D>


[oracle_br] Auditoria de usuário no oracle

2015-07-10 Por tôpico Cristiano Vasconcelos Barbosa cvasconcel...@gmail.com [oracle_br]
 logoff_time = TO_CHAR (SYSDATE, 'hh24:mi:ss')
WHERE SYS_CONTEXT ('USERENV', 'SESSIONID') = session_id;

   -- ***
   -- Compute the elapsed minutes
   -- ***
   UPDATE stats$user_log
  SET elapsed_minutes = ROUND ( (logoff_day - logon_day) * 1440)
WHERE SYS_CONTEXT ('USERENV', 'SESSIONID') = session_id;
COMMIT;
END;
/

Time Start: 10/07/2015 14:02:12

USER_ID   SESSION_ID HOST   LAST_PROGRAM  LAST_ACTION  LAST_MODULE
 LOGON_DAY LOGON_TIME LOGOFF_DAY LOGOFF_TIME ELAPSED_MINUTES
- -- -- -  
- -- -- --- ---
QUEST  0 srvorcl01
 10/07/15  12:55:19
QUEST  0 srvorcl01
 10/07/15  12:57:19
QUEST  0 srvorcl01
 10/07/15  13:01:19
QUEST  0 srvorcl01
 10/07/15  13:09:19
SYS0 srvorcl01
 10/07/15  13:09:48
QUEST  0 srvorcl01
 10/07/15  13:19:19
QUEST  0 srvorcl01
 10/07/15  13:21:49
QUEST  0 srvorcl01
 10/07/15  13:23:49
QUEST  0 srvorcl01
 10/07/15  13:27:49
QUEST  0 srvorcl01
 10/07/15  13:29:19
SYS0 srvorcl01
 10/07/15  13:35:23
QUEST  0 srvorcl01
 10/07/15  13:35:49
QUEST  0 srvorcl01
 10/07/15  13:39:20
QUEST  0 srvorcl01
 10/07/15  13:49:20
QUEST  0 srvorcl01
 10/07/15  13:51:50
QUEST  0 srvorcl01
 10/07/15  13:59:20

16 rows selected.
Time End: 10/07/2015 14:02:12
Elapsed Time for Script Execution: 484 msecs

Um segundo agravante, este mais sério, é que a trigger quando implementada
impossibilita conexões ao banco, retornando o erro abaixo:
ORA-00604: ocorreu um erro no nível 1 SQL recursivo
ORA-01438: valor maior que a precisão especificada usado para esta coluna
ORA-06512: em line 2, permitindo apenas conexão do usuário SYS ou de algum
outro que possua role de DBA, usuário convencional, nem pensar.

Apesar do erro apresentado, a estrutura acima descrita poderia ser uma
solução para meu problema, assim, gostaria de pedir ajuda aos amigos do
grupo, para aqueles que possuem maior experiência com cenários de auditoria
e desenvolvimento em PL/SQL para que olhassem esta estrutura e reportassem
como poderia ser dada solução para os erros descritos, ou ainda, caso já
possuma um tipo de auditoria com estas informações ou superiores já
impletentadas em seus cenários, que enviassem para que eu pudesse
implementá-la em meu ambiente de trabalho.

Desde já, agradeço a disponibilidade e ajuda de todos.


Atenciosamente,

[image: Foto Cristiano Vasconcelos Barbosa]
*Cristiano Vasconcelos Barbosa.'.*
* Analista de Sistemas  Banco de Dados*
| Cel: +55 (85) 9691.8331
--
http://br.linkedin.com/in/cristianovasconcelos


*DEUS MEUMQUE JUS*.'.
*DÓMINI SUMUS*.'.
Contact me: [image: Google Talk] cvasconcel...@gmail.com [image: Skype]
 cvasconcelosb [image: MSN] cvasconcel...@hotmail.com [image: Y! Messenger]
cvasconcel...@yahoo.com.br
[image: My QR VCard]
http://s.wisestamp.com/links?url=http%3A%2F%2Fbr.linkedin.com%2Fin%2Fcristianovasconcelossn=Y3Zhc2NvbmNlbG9zYkBnbWFpbC5jb20%3D


[oracle_br] Re:Re: tnsnames.ora

2015-07-01 Por tôpico Cristiano Vasconcelos Barbosa cvasconcel...@gmail.com [oracle_br]
Caros amigos,

Boa tarde!

Mais uma vez gostaria de agradecer aos amigos que responderam minha
solicitação de ajuda.

OBS.: Amigo Chiappa, quanto ao uso do modelo referido no TNSNAMES E
LISTENER, foi a título de exemplificação das várias instâncias que tinha
disponível, todas com ALIAS referentes à instância principal, para que
fosse visto que minha necessidade, seria tanto o nome da instância
principal como as demais de desenvolvimento.

Peço que me perdoe se o modelo sugerido ficou confuso para análise,
contudo, sua ajuda, como sempre, foi de suma importância para elucidar a
questão. Fiz as devidas alterações e atualmente já consigo gerar SPOOL  com
o nome da instância desejada, seja ela a de produção ou desenvolvimento.

Vou tentar melhorar este script para dinamicamente, apontando qual
instância almejada, já possa obter o spool desejado.


Atenciosamente,

[image: Foto Cristiano Vasconcelos Barbosa]
*Cristiano Vasconcelos Barbosa.'.*
* Analista de Sistemas  Banco de Dados*
| Cel: +55 (85) 9691.8331
--
http://br.linkedin.com/in/cristianovasconcelos


*DEUS MEUMQUE JUS*.'.
*DÓMINI SUMUS*.'.
Contact me: [image: Google Talk] cvasconcel...@gmail.com [image: Skype]
 cvasconcelosb [image: MSN] cvasconcel...@hotmail.com [image: Y! Messenger]
cvasconcel...@yahoo.com.br
[image: My QR VCard]
http://s.wisestamp.com/links?url=http%3A%2F%2Fbr.linkedin.com%2Fin%2Fcristianovasconcelossn=Y3Zhc2NvbmNlbG9zYkBnbWFpbC5jb20%3D


[oracle_br] tnsnames.ora

2015-06-30 Por tôpico Cristiano Vasconcelos Barbosa cvasconcel...@gmail.com [oracle_br]
Caros amigos,

Boa tarde!

Meu oracle é:

Current Versions

Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bi
PL/SQL Release 10.2.0.3.0 - Production
CORE 10.2.0.3.0 Production
TNS for Linux: Version 10.2.0.3.0 - Production
NLSRTL Version 10.2.0.3.0 - Production

e gostaria da ajuda dos senhore(a)s para a seguinte questão: Meu arquivo
TNSNAMES.ORA é configurado com diversos ALIAS da minha instância original,
isso porque utilizo alguns servidores de desenvolvimento em máquinas
distintas com a replicação da instância principal, mudando apenas seu
ALIAS, COMO NO CASO ABAIXO.

BASED4,BASED4.WORLD =
  (DESCRIPTION =
(ADDRESS_LIST =
  (ADDRESS = (PROTOCOL = TCP)(HOST = 172.X.X.X)(PORT = 1521))
)
(CONNECT_DATA =
  (SERVER = DEDICATED)
  (SERVICE_NAME = BASE.WORLD)
  (SID = BASEd4)
)
  )

Neste exemplo, o nome real da instância, banco principal, seria o BASE.WORLD,
só que como roda no servidor de desenvolvimento, seu host (está apontando
para um banco de desenvolvimento) e seu SID foi modificado para um ALIAS  
BASEd4.


Agora vem a questão. Em várias pesquisas na net, quando desejo obter o nome
do banco, nas estruturas que tenho e as que pesquisei, ISSO PARA SAÍDA EM
SPOOL, obtenho sempre o nome do banco real, no caso, BASE.WORLD ou apenas
BASE configurado no parâmetro  SERVICE_NAME, só que o que estou
precisando mesmo é diferenciar as instâncias pelo SID do TNSNAMES.ORA, ou
seja, SID = BASEd4 e não pelo SERVICE_NAME = BASE.WORLD, haja vista que
em todos os SERVICE_NAME a saída será sempre a mesma, ou seja BASE.WORLD
que é o nome real do banco, o que vai, para mim, realmente diferenciar, A
NÍVEL DE RELATÓRIO, é o SID, este sim, que traz o ALIAS da instância a
qual desejo o relatório.


Exemplo:


Estrutura de select:


SELECT'Output.compara.info-db_'

   || VALUE

   || '_'

   || TO_CHAR (SYSDATE, 'dd-mm-')

   || '.txt'

  AS spoolfile

  FROM v$parameter

 WHERE (name = 'db_name');

/


Saída:


SPOOLFILE



---

Output.compara.info-db_BASE_30-06-2015.txt



1 row selected.

Time End: 30/06/2015 16:34:09

Elapsed Time for Script Execution: 528 msecs


Na saída do relatório, gerado no servidor de desenvolvimento BASEd4, o nome
do DB que saiu no spool foi BASE, quando eu gostaria que saísse o BASEd4
que é o ALIAS atribuído ao BASE para que não tivesse sempre o trabalho de
renomear o spool gerado.


Gostaria da ajuda dos amigos para ver se seria possível extrair esta
informação de algum lugar. Ela também está disposta no LISTENER.ORA

LISTENER =
  (DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172..X.X.X)(PORT = 1521))
  )

SID_LIST_LISTENER =
  (SID_LIST =
(SID_DESC =
  (GLOBAL_DBNAME = base.world)
  (SID_NAME = BASE)# -- Principal
)
 (SID_DESC =
  (GLOBAL_DBNAME = base.world)
  (SID_NAME = BASEd4) #-- Desenvolvimento
)
  )

Agradeço pela ajuda.


Atenciosamente,

[image: Foto Cristiano Vasconcelos Barbosa]
*Cristiano Vasconcelos Barbosa.'.*
* Analista de Sistemas  Banco de Dados*
| Cel: +55 (85) 9691.8331
--
http://br.linkedin.com/in/cristianovasconcelos


*DEUS MEUMQUE JUS*.'.
*DÓMINI SUMUS*.'.
Contact me: [image: Google Talk] cvasconcel...@gmail.com [image: Skype]
 cvasconcelosb [image: MSN] cvasconcel...@hotmail.com [image: Y! Messenger]
cvasconcel...@yahoo.com.br
[image: My QR VCard]
http://s.wisestamp.com/links?url=http%3A%2F%2Fbr.linkedin.com%2Fin%2Fcristianovasconcelossn=Y3Zhc2NvbmNlbG9zYkBnbWFpbC5jb20%3D


[oracle_br] Estrutura de consulta...

2015-06-22 Por tôpico Cristiano Vasconcelos Barbosa cvasconcel...@gmail.com [oracle_br]
Meu oracle é:

banner
--

Oracle Database 10g Enterprise Edition Release 10.2.0.3.0

version_bit

10.2.0.3.0 - 64bi

Arquivamento

STARTED

Boa noite amigos,

Estou precisando listar de TODAS as minhas tabelas de um determinado Owner,
com campos tipo DATE. Esta estrutura me retorna as tabelas com campo tipo
DATE. select k.table_name,k.column_name from all_tab_columns k, (select *
from all_tables where  owner = 'FULANO' and num_rows  0 ) T
  where k.DATA_TYPE ='DATE' AND K.TABLE_NAME = T.TABLE_NAME. Além disso,
preciso listar o conteúdo dos referidos Campos encontrados, resultado da
pesquisa acima, e checar se a referida data é igual ou superior à SYSDATE,
lembrando que, cada tabela pode ter um ou mais Campos tipo DATE.

Melhor explicando, no meu ambiente, para um determinado Owner, preciso
listar as tabelas, seus referidos Campos e valores os quais sejam do tipo
DATE checando se esses valores são igual ou superior à SYSDATE.

Solicito a ajuda dos amigos que possuem maior habilidade com PL/SQL. Caso
algum dos amigos já tenham passado por igual necessidade e possua a
estrutura, peço que a enviem, em caso contrário, para aqueles os quais são
exímios em PL/SQL, que possam ajudar-me com a referida codificação.

Aguardo retorno e, desde já, agradeço a atenção e ajuda dispensadas à minha
solicitação.


-- 
Atenciosamente,


Cristiano Vasconcelos Barbosa.'.
Analista de Sistemas  Banco de Dados
| Cel: +55 (85) 9691.8331
http://br.linkedin.com/in/cristianovasconcelos

DEUS MEUMQUE JUS.'.
DÓMINI SUMUS.'.
Contact me: cvasconcel...@gmail.com


[oracle_br] snapshot database oracle

2015-06-17 Por tôpico Cristiano Vasconcelos Barbosa cvasconcel...@gmail.com [oracle_br]
Boa tarde amigos,

Meu oracle é:

banner
--

Oracle Database 10g Enterprise Edition Release 10.2.0.3.0

version_bit

10.2.0.3.0 - 64bi

Arquivamento

STARTED

Gostaria de efetuar de um script que gerasse a reversa COMPLETA do banco de
dados, tudo mesmo, desde a criação dos usuários, triggers, functions,
procedures, roles, tabelas, etc. Deveria ser com saída para spool, ou caso
algum dos amigos já possua implementado em sua empresa formas de
armazenamento destas informações em tabelas criadas para este fim, seria
muito bom.

Desde logo agradeço pela ajuda...




Atenciosamente,

[image: Foto Cristiano Vasconcelos Barbosa]
*Cristiano Vasconcelos Barbosa.'.*
* Analista de Sistemas  Banco de Dados*
| Cel: +55 (85) 9691.8331
--
http://br.linkedin.com/in/cristianovasconcelos


*DEUS MEUMQUE JUS*.'.
*DÓMINI SUMUS*.'.
Contact me: [image: Google Talk] cvasconcel...@gmail.com [image: Skype]
 cvasconcelosb [image: MSN] cvasconcel...@hotmail.com [image: Y! Messenger]
cvasconcel...@yahoo.com.br
[image: My QR VCard]
http://s.wisestamp.com/links?url=http%3A%2F%2Fbr.linkedin.com%2Fin%2Fcristianovasconcelossn=Y3Zhc2NvbmNlbG9zYkBnbWFpbC5jb20%3D


[oracle_br] Trigger de logon...

2015-05-28 Por tôpico Cristiano Vasconcelos Barbosa cvasconcel...@gmail.com [oracle_br]
   failed for the trigger.
*Action:   Options are to resolve the compilation/authorization errors,
   disable the trigger, or drop the trigger.
Código de fornecedor 4098

= ATT ==

# -- A TRIGGER NÃO APRESENTA ERROS DE COMPILAÇÃO

  SELECT LINE,
 POSITION,
 REPLACE (TEXT, CHR (10), ' '),
 attribute
FROM SYS.ALL_ERRORS A
   WHERE A.NAME = 'TG_BLOCK_TOOLS_FROM_PROD'
 AND A.TYPE = 'TRIGGER'
 AND A.OWNER = 'SYS'
ORDER BY ATTRIBUTE, LINE, POSITION;

Time Start: 28/05/2015 10:07:29
no rows selected. (SEM ERROS DE COMPILACAO...)
Time End: 28/05/2015 10:07:30
Elapsed Time for Script Execution: 514 msecs


Atenciosamente,

[image: Foto Cristiano Vasconcelos Barbosa]
*Cristiano Vasconcelos Barbosa.'.*
* Analista de Sistemas  Banco de Dados*
| Cel: +55 (85) 9691.8331
--
http://br.linkedin.com/in/cristianovasconcelos


*DEUS MEUMQUE JUS*.'.
*DÓMINI SUMUS*.'.
Contact me: [image: Google Talk] cvasconcel...@gmail.com [image: Skype]
 cvasconcelosb [image: MSN] cvasconcel...@hotmail.com [image: Y! Messenger]
cvasconcel...@yahoo.com.br
[image: My QR VCard]
http://s.wisestamp.com/links?url=http%3A%2F%2Fbr.linkedin.com%2Fin%2Fcristianovasconcelossn=Y3Zhc2NvbmNlbG9zYkBnbWFpbC5jb20%3D


[oracle_br] Trigger de Logon.

2015-05-26 Por tôpico Cristiano Vasconcelos Barbosa cvasconcel...@gmail.com [oracle_br]
Boa tarde!

Meu oracle é:

banner   full_version
 version_bit ARQUIVAMENTO
 -
--  -
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 -  10.2.0.3.0
 10.2.0.3.0 - 64bi   STARTED

Caros amigos, estou precisando de uma trigger de logon que:

A) permita acesso ao banco apenas do sistema web desenvolvido;
B) permita acesso ao banco apenas dos form´s e report´s;
C) que boqueie programas de desenvolvimento tais como: '%TOAD%'-- Toad;
'%T.O.A.D%'-- Toad; '%SQLNAV%'-- SQL Navigator; '%PLSQLDEV%'-- PLSQL
Developer; '%BUSOBJ%'-- Business Objects; '%EXCEL%'-- MS-Excel plug-in;
'%SQLPLUS%'-- SQLPLUS; '%DEVELOPER%'-- Oracle SQL Developer; '%IFBLD%'--
Oracle Forms Developer Builder; '%RWBUILDER%'-- Oracle Reports Builder;
'%RAPTOR%'  entre outros;
D) que permita acesso aos programas acima relacionados na alínea 'C' apenas
para os usuários relacionados, ou ainda, máquinas relacionadas (IP´s).

Caso alguns dos amigos possuam uma trigger do tipo ou mais estruturada
ainda, caso possam ajudar-me, ficaria bastante grato. Tenho que implementar
esta rotina na minha plataforma, já pesquisei algumas trigger´s de logon
mas nenhuma que fosse completa ou que se adequasse ao meu cenário, assim,
gostaria da ajuda dos amigos os quais possuem uma maior experiência com a
administração do Oracle.

Obrigado...


Atenciosamente,

[image: Foto Cristiano Vasconcelos Barbosa]
*Cristiano Vasconcelos Barbosa.'.*
* Analista de Sistemas  Banco de Dados*
| Cel: +55 (85) 9691.8331
--
http://br.linkedin.com/in/cristianovasconcelos


*DEUS MEUMQUE JUS*.'.
*DÓMINI SUMUS*.'.
Contact me: [image: Google Talk] cvasconcel...@gmail.com [image: Skype]
 cvasconcelosb [image: MSN] cvasconcel...@hotmail.com [image: Y! Messenger]
cvasconcel...@yahoo.com.br
[image: My QR VCard]
http://s.wisestamp.com/links?url=http%3A%2F%2Fbr.linkedin.com%2Fin%2Fcristianovasconcelossn=Y3Zhc2NvbmNlbG9zYkBnbWFpbC5jb20%3D


[oracle_br] Automatizando cópia do ARCHIVELOG

2015-05-19 Por tôpico Cristiano Vasconcelos Barbosa cvasconcel...@gmail.com [oracle_br]
Bom dia!,

Gostaria de iniciar agradecendo aos amigos que responderam ao meu
questionamento passado, muito obrigado...

Caros amigos, minha versão do DB oracle é:

banner

Oracle Database 10g Release 10.2.0.3.0 - 64bit Production


MODO
full_version  version_bit   isDb64bit   isHPUX ARQUIVAMENTO
-- -  -
--  ---
10.2.0.3.0 10.2.0.3.0 - 64bit  True  FalseSTARTED

Gostaria de saber se existe algum parâmetro no Oracle o qual possa ser
informado para que o próprio oracle administre a cópia dos ARCHIVELOG´S
após arquivamento dos mesmos para uma nova localização em outro servidor,
servidor remoto, funcionando assim como uma cópia dos ARCHIVESLOG´S como se
fosse uma cópia de backup.

Hoje estou fazendo manualmente, por meio de shell disparado via crontab de
tempo em tempo, sem ter a certeza que o archive já fez ou não seu
arquivamento com ou sem sucesso, neste cenário atual que estou trabalhando,
como poderia confirmar se o ARCHIVELOG já fez seu arquivamento com sucesso
para que pudesse mandá-los íntegros, sem estar com a transação
incompleta???. Algum dos amigos poderiam ajudar-me na formação deste
script/shell???. Teria que interagir com o RMAN forçando o arquivamento ou
teria outra solução mais prática de fazê-lo???.

Agradeço de logo a ajuda dos amigos...


Atenciosamente,

[image: Foto Cristiano Vasconcelos Barbosa]
*Cristiano Vasconcelos Barbosa.'.*
* Analista de Sistemas  Banco de Dados*
| Cel: +55 (85) 9691.8331
--
http://br.linkedin.com/in/cristianovasconcelos


*DEUS MEUMQUE JUS*.'.
*DÓMINI SUMUS*.'.
Contact me: [image: Google Talk] cvasconcel...@gmail.com [image: Skype]
 cvasconcelosb [image: MSN] cvasconcel...@hotmail.com [image: Y! Messenger]
cvasconcel...@yahoo.com.br
[image: My QR VCard]
http://s.wisestamp.com/links?url=http%3A%2F%2Fbr.linkedin.com%2Fin%2Fcristianovasconcelossn=Y3Zhc2NvbmNlbG9zYkBnbWFpbC5jb20%3D


[oracle_br] Objetos...

2015-05-13 Por tôpico Cristiano Vasconcelos Barbosa cvasconcel...@gmail.com [oracle_br]
Boa tarde amigos,

Gostaria de saber se existe alguma forma de saber se um pacote PL/SQL,
procedimento ou função está sendo usado?

Minha plataforma é Oracle Database 10g Enterprise Edition Release
10.2.0.3.0.

Caso algum dos amigos possua uma consulta que me retorne esta informação,
ficaria grato pela ajuda.


Atenciosamente,

[image: Foto Cristiano Vasconcelos Barbosa]
*Cristiano Vasconcelos Barbosa.'.*
* Analista de Sistemas  Banco de Dados*
| Cel: +55 (85) 9691.8331
--
http://br.linkedin.com/in/cristianovasconcelos


*DEUS MEUMQUE JUS*.'.
*DÓMINI SUMUS*.'.
Contact me: [image: Google Talk] cvasconcel...@gmail.com [image: Skype]
 cvasconcelosb [image: MSN] cvasconcel...@hotmail.com [image: Y! Messenger]
cvasconcel...@yahoo.com.br
[image: My QR VCard]
http://s.wisestamp.com/links?url=http%3A%2F%2Fbr.linkedin.com%2Fin%2Fcristianovasconcelossn=Y3Zhc2NvbmNlbG9zYkBnbWFpbC5jb20%3D


[oracle_br] Instalação Oracle

2015-01-16 Por tôpico Cristiano Vasconcelos Barbosa cvasconcel...@gmail.com [oracle_br]
Amigos,

Boa tarde!

Estou tentando instalar o oracle 10*g* Release 2 (10.2) for Linux x86-64
no linux:

-- Tipo de sistema Linux instalado / Kernel / S.O. --
-- Mostrando a versao completa do kernel e as informaces do sistema
--
Linux srvbiod 2.6.32-358.el6.x86_64 #1 SMP Fri Feb 22 00:31:26 UTC 2013
x86_64 x86_64 x86_64 GNU/Linux

-- Checando se voce esta executando o kernel x86_64 em uma plataforma
x86_64: --
x86_64 x86_64

CentOS release 6.6 (Final)
Kernel \r on an \m

Estou seguindo o Oracle_Application_Server-10g_quickinstall da própria
Oracle e não estou obtendo sucesso. Mesmo pós inúmeras pesquisas na net e
tentativas, ainda não consegui instalar a plataforma.

O erro dado é:

[oracle@srvbiod ~]$ ./runInstaller.sh
Iniciando Oracle Universal Installer...

Verificando requisitos do Installer...

Verificando a versão do sistema operacional: deve ser redhat-3, SuSE-9,
redhat-4, UnitedLinux-1.0, asianux-1, asianux-2 or redhat-CentOS release
6.4 (Final)
  Passado


Todos os requisitos do Installer atendidos.

Preparando para iniciar o Oracle Universal Installer de
/tmp/OraInstall2015-01-16_11-07-55AM. Aguarde ...[oracle@srvbiod ~]$ Oracle
Universal Installer, Versão 10.2.0.1.0 Produção
Copyright (C) 1999, 2005, Oracle. Todos os direitos reservados.

Exception java.lang.UnsatisfiedLinkError:
/tmp/OraInstall2015-01-16_11-07-55AM/jre/1.4.2/lib/i386/libawt.so:
libXt.so.6: wrong ELF class: ELFCLASS64 occurred..
java.lang.UnsatisfiedLinkError:
/tmp/OraInstall2015-01-16_11-07-55AM/jre/1.4.2/lib/i386/libawt.so:
libXt.so.6: wrong ELF class: ELFCLASS64
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(Unknown Source)
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
at sun.security.action.LoadLibraryAction.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.awt.NativeLibLoader.loadLibraries(Unknown Source)
at sun.awt.DebugHelper.clinit(Unknown Source)
at java.awt.Component.clinit(Unknown Source)
at
oracle.sysman.oii.oiif.oiifm.OiifmGraphicInterfaceManager.init(OiifmGraphicInterfaceManager.java:222)
at
oracle.sysman.oii.oiic.OiicSessionInterfaceManager.createInterfaceManager(OiicSessionInterfaceManager.java:193)
at
oracle.sysman.oii.oiic.OiicSessionInterfaceManager.getInterfaceManager(OiicSessionInterfaceManager.java:202)
at
oracle.sysman.oii.oiic.OiicInstaller.getInterfaceManager(OiicInstaller.java:436)
at oracle.sysman.oii.oiic.OiicInstaller.runInstaller(OiicInstaller.java:926)
at oracle.sysman.oii.oiic.OiicInstaller.main(OiicInstaller.java:866)
Exception in thread main java.lang.NoClassDefFoundError
at
oracle.sysman.oii.oiif.oiifm.OiifmGraphicInterfaceManager.init(OiifmGraphicInterfaceManager.java:222)
at
oracle.sysman.oii.oiic.OiicSessionInterfaceManager.createInterfaceManager(OiicSessionInterfaceManager.java:193)
at
oracle.sysman.oii.oiic.OiicSessionInterfaceManager.getInterfaceManager(OiicSessionInterfaceManager.java:202)
at oracle.sysman.oii.oiif.oiifm.OiifmAlert.clinit(OiifmAlert.java:151)
at oracle.sysman.oii.oiic.OiicInstaller.runInstaller(OiicInstaller.java:984)
at oracle.sysman.oii.oiic.OiicInstaller.main(OiicInstaller.java:866)

Já tentei inúmeras soluções dispostas na net, INFELIZMENTE sem sucesso, o
pior é que esta mesma instalação já fiz por diversas vezes e jamais tive
problemas, desta vez, não sei o que aconteceu, mas não consegui instalar.

Gostaria da ajuda dos amigos, fico bastante agradecido se algum dos amigos
poder contribuir com solução para meu problema.


Atenciosamente,

[image: Foto Cristiano Vasconcelos Barbosa]
*Cristiano Vasconcelos Barbosa.'.*
* Analista de Sistemas  Banco de Dados*
| Cel: +55 (85) 9691.8331
--
http://br.linkedin.com/in/cristianovasconcelos


*DEUS MEUMQUE JUS*.'.
*DÓMINI SUMUS*.'.
Contact me: [image: Google Talk] cvasconcel...@gmail.com [image: Skype]
 cvasconcelosb [image: MSN] cvasconcel...@hotmail.com [image: Y! Messenger]
cvasconcel...@yahoo.com.br
[image: My QR VCard]
http://s.wisestamp.com/links?url=http%3A%2F%2Fbr.linkedin.com%2Fin%2Fcristianovasconcelossn=Y3Zhc2NvbmNlbG9zYkBnbWFpbC5jb20%3D


[oracle_br] Re:Re: URGENTE - Banco/Sistema degradado ...

2011-07-08 Por tôpico Cristiano Vasconcelos
Caros Amigos,

Aos que gentilmente responderam minha solicitação de ajuda, AGRADEÇO
IMENSAMENTE.

Ao nobre Fernando Franquini que com tão hábil capacidade de julgar,
questionou a contratação de um DBA, acredito jovem SUMIDADE que, VOCÊ NÃO
DEVERIA FAZER PARTE de um grupo de discussões, haja vista, termos, agora
sim, VERDADEIRAS SUMIDADES NO ASSUNTO, tais como, e aí rogo pela liberdade
de citar ambos, Mosan Santos e José Laurindo Chiappa, entre muitos
outros que VERDADEIRAMENTE DOMINAM O ASSUNTO e com muita HUMILDADE,
RESPEITO, DIGNIDADE E ÉTICA PROFISSIONAL ajudam aos demais colegas de
trabalho. Acredito que você por não ter no momento algo de real proveito e
aprazível para dizer, pronunciou-se talvez pensando em si mesmo.
Desejo a você, Fernando Franquini, sucesso e, que não venha no futuro a
precisar do auxílio dos profissionais que realmente enobrecem os grupos de
discussões Oracle, caso contrário, segundo sua visão estreita do que venha a
ser um grupo de discussões e ajuda mútua, você também vai precisar contratar
um VERDADEIRO DBA ORACLE para transmitir-lhe ensinamentos, primeiro de ÉTICA
PROFISSIONAL, depois de Oracle .
-- 
Cristiano Vasconcelos Barbosa .'.
Analista de Sistemas.

DEUS MEUMQUE JUS.'.
DÓMINI SUMUS.'.


[As partes desta mensagem que não continham texto foram removidas]



[oracle_br] URGENTE - Banco/Sistema degradado ...

2011-07-07 Por tôpico Cristiano Vasconcelos
Caros Amigos 

CENÁRIO:

S.O. - Enterprise Linux Enterprise Linux AS release 4 (October Update 7)
  Linux servidor.dominio.istancia.local 2.6.9-78.0.0.0.1.ELsmp #1
SMP Fri Jul 25 16:04:35 EDT 2008 x86_64 x86_64 x86_64 GNU/Linux

DB - Oracle Database 10g Release 10.2.0.3.0 - 64bit Production

CASO:

Não é sempre, mas em determinados momentos nosso sistema torna-se lento e
degradado em performance, quando acontece é entre o período de 12:00 às
13:30, neste período rodam alguns jobs, assim:

a) Gostaria de saber como identificar os jobs que estão rodando naquele
momento e seu tempo de duração de execução.

b) Em relação a performance do banco, como posso identificar qual consulta
e/ou procedimento está degradando o banco naquele momento, com o respectivo
nome do usuário, seu SID e SERIAL e se possível SQLTEXT para que possa
derrubá-lo???

OBRIGADO PELA AJUDA 

-- 
Cristiano Vasconcelos Barbosa .'.
Analista de Sistemas.

DEUS MEUMQUE JUS.'.
DÓMINI SUMUS.'.


[As partes desta mensagem que não continham texto foram removidas]



[oracle_br] Derrubando usuários

2011-06-09 Por tôpico Cristiano Vasconcelos
CENÁRIO:

S.O. - Enterprise Linux Enterprise Linux AS release 4 (October Update 7)
  Linux servidor.dominio.istancia.local 2.6.9-78.0.0.0.1.ELsmp #1
SMP Fri Jul 25 16:04:35 EDT 2008 x86_64 x86_64 x86_64 GNU/Linux

DB - Oracle Database 10g Release 10.2.0.3.0 - 64bit Production

CASO:

Caros amigos, atualmente com a estrutura abaixo, consigo derrubar usuários
com mais de uma hora de conexão inativa, por exemplo, contudo gostaria de
acrescentar a estrutura o texto de sql utilizado pelo usuário, para saber o
que ele estava fazendo, como poderia ser feito isto 

Fiz alguns testes com o v$sql, com o v$sqltext, o v$sqlarea, contudo, ao
final, comparando a saida da estrutura original com a modificada com a
inclusão das referidas visões, o resultado final não são os mesmos. Teria
como implementar o texto de sql nesta estrutura, conservando a mesma saída,
apenas acrescentando o texto sql.

Estou enviando a estrutura completa para que os amigos possam testar e
constatar as saídas como são distintas

Estrutura ORIGINAL:

SELECT'ALTER SYSTEM KILL SESSION '
   || CHR (39)
   || s.sid
   || ','
   || s.serial#
   || CHR (39)
   || ' IMMEDIATE; /* '
   || to_char(s.logon_time, 'DD.MON. - HH24:MI:SS')
   || CHR (32)
   || CHR (39)
   || CHR (32)
   || UPPER (s.osuser)
   || CHR (32)
   || CHR (39)
   || CHR (32)
   || UPPER (s.program)
   || ' */'  as -- KILL SESSION
 FROM v$session s
 WHERE   s.username IS NOT NULL
   AND s.username NOT IN ('SYS', 'SYSTEM')
   AND s.event = 'SQL*Net message from client'
   AND s.SECONDS_IN_WAIT  3600 -- 1 hora
ORDER BY  to_char(s.logon_time, 'HH24:MI:SS')

ALTER SYSTEM KILL SESSION '540,39355' IMMEDIATE; /* 08.JUN.2011 - 12:08:38 '
USUARIO 01'  */
ALTER SYSTEM KILL SESSION '507,796' IMMEDIATE; /* 08.JUN.2011 - 13:32:28
' USUARIO 02'  */
ALTER SYSTEM KILL SESSION '581,32756' IMMEDIATE; /* 08.JUN.2011 - 13:38:00
' USUARIO 03'  */
ALTER SYSTEM KILL SESSION '610,16866' IMMEDIATE; /* 08.JUN.2011 - 13:48:15
' USUARIO 04'  */
ALTER SYSTEM KILL SESSION '661,49836' IMMEDIATE; /* 08.JUN.2011 - 13:48:44
' USUARIO 05'  */
ALTER SYSTEM KILL SESSION '494,7625' IMMEDIATE; /* 08.JUN.2011 - 13:55:14
' USUARIO 06'  */
ALTER SYSTEM KILL SESSION '598,22462' IMMEDIATE; /* 08.JUN.2011 - 13:56:56
' USUARIO 07'  */
ALTER SYSTEM KILL SESSION '622,27210' IMMEDIATE; /* 08.JUN.2011 - 14:08:40
' USUARIO 08'  */

OBS: Ao rodar o SELECT original, temos 08 SAÍDAS DIFERENTES.

Estrutura MODIFICADA

UNDEF sid

SELECT'ALTER SYSTEM KILL SESSION '
   || CHR (39)
   || s.sid
   || ','
   || s.serial#
   || CHR (39)
   || ' IMMEDIATE; /* '
   || to_char(s.logon_time, 'DD.MON. - HH24:MI:SS')
   || CHR (32)
   || CHR (39)
   || CHR (32)
   || UPPER (s.osuser)
   || CHR (32)
   || CHR (39)
   || CHR (32)
   || UPPER (s.program)
   || CHR (32)
   || CHR (39)
   || CHR (32)
   || UPPER (st.sql_text)
   || ' */'  as -- KILL SESSION
 FROM v$session s, v$sqltext st
 WHERE   s.username IS NOT NULL
   AND st.address = s.sql_address
   AND st.hash_value = s.sql_hash_value
   AND s.username NOT IN ('SYS', 'SYSTEM')
   AND s.osuser NOT IN ('cvasconcelos')
   AND s.event = 'SQL*Net message from client'
   AND s.SECONDS_IN_WAIT  3600 -- 1 hora
ORDER BY  to_char(s.logon_time, 'HH24:MI:SS')

ALTER SYSTEM KILL SESSION '610,16866' IMMEDIATE; /* 08.JUN.2011 - 13:48:15
' USUARIO 04'  ' E(SUBSTR(:B1,1,1),'R','T') || SUBSTR(:B1,2,4)
ALTER SYSTEM KILL SESSION '610,16866' IMMEDIATE; /* 08.JUN.2011 - 13:48:15
' USUARIO 04'  ' SELECT NM_TELA || ''FROM TB_TELA  WHERE CD_TELA =
REPLAC */

OBS: Ao rodar o SELECT modificado, temos apenas uma saída, visto que, o ID é
repetido.

Ambos os SELECT´s foram rodados na mesma hora, apresentando resultados
diferentes.

-- 
Cristiano Vasconcelos Barbosa .'.
Analista de Sistemas.

DEUS MEUMQUE JUS.'.
DÓMINI SUMUS.'.


[As partes desta mensagem que não continham texto foram removidas]



[oracle_br] RES: RES: [oracle_fasttrack] Automatização geração de relatórios

2011-05-13 Por tôpico Cristiano Vasconcelos
Meus amigos de fórum,

Agradeço a todos pela ajuda dispensada, nosso amigo Sergio Tavares Coutinho  do
fórum oracle_fasttrack foi feliz em suas colocações, meu problema foi
resolvido.

Mais uma vez, obrigado  Sergio.

-- 
Cristiano Vasconcelos Barbosa .'.
Analista de Sistemas.

DEUS MEUMQUE JUS.'.
DÓMINI SUMUS.'.


[As partes desta mensagem que não continham texto foram removidas]



[oracle_br] Automatização geração de relatórios

2011-05-12 Por tôpico Cristiano Vasconcelos
Caros amigos,

CENÁRIO:
S.O. - Enterprise Linux Enterprise Linux AS release 4 (October Update 7)
  Linux servidor.dominio.istancia.local 2.6.9-78.0.0.0.1.ELsmp #1
SMP Fri Jul 25 16:04:35 EDT 2008 x86_64 x86_64 x86_64 GNU/Linux

DB - Oracle Database 10g Release 10.2.0.3.0 - 64bit Production

CASO:
Estou precisando automatizar geração diariá de informações em arquivo texto,
onde na nomenclatura do arquivo gerado tenha nomearq_ddmmyy:hhmm.txt. Este
arquivo após ser gerado é copiado do servidor da DB para uma outra máquina e
jogado em uma área de ftp. Pois bem, este procedimento atualmente está sendo
feito manualmente, então gostaria de saber como poderia ser feito
automaticamente em determinada hora do dia sem que seja preciso intervir.

Estou em duvida de como proceder em relação a automatização da cópia a ser
realizada pelo servidor e principalmente em relação a geração do arquivo
.TXT no oracle: O procedimento pode ser feito pelo Scheduler Job do
oracle, ou poderá ser feito pela Cron do S.O. Linux disparando um shell de
conexão com SQL*Plus chamando um SCRIPT com a estrutura de SELECT a qual
gerará as informações necessárias ???.

Caso alguns dos amigos possuam essa estrutura, favor repassá-la com
instruções.

Em sugestão dadas por alguns colaboradores dos grupos, implementei a rotina
abaixo descrita na cron do linux:

##
# CRONTAB
#
# Data: 12/05/2011
##
#
53 08 12 5 4 /bin/su - oracle -c sqlplus usuario/senha
@/home/oracle/usr_criacao.sql  /var/tmp/usr_criacao.log1

Onde 15 significa: aos 15 minustos
Onde 14 significa: às 14 horas
Onde 11 significa: dia 11 do mês
Onde  5 significa: Mês 5
Onde  3 significa: Quarta-feira
Onde oracle -c significa: rodar a linha de comando após conectar usuário
oracle

Conteudo do Script:

REM Script Teste:usr_criacao.sql

spool /home/oracle/usr_criacao.txt

SELECT u.name,
 D.ACCOUNT_STATUS,
 D.LOCK_DATE,
 TO_CHAR (u.ctime, 'dd/mm/ hh24:mi:ss') AS Criao,
 TO_CHAR (u.ptime, 'dd/mm/ hh24:mi:ss') AS Modificacao
FROM sys.user$ u, dba_users d
   WHERE u.name = d.username AND u.ctime = D.CREATED
 AND d.created BETWEEN TO_DATE ('01/01/2009', 'dd/mm/yy')
   AND TO_DATE ('31/12/2009', 'dd/mm/yy')
ORDER BY d.created

spool off


 --  Saída de Log´s:  ---

CENÁRIO 01

Log da rotina quando gerada pela Crontab:

# cat usr_criacao.log1

SQL*Plus: Release 10.2.0.3.0 - Production on Qui Mai 12 08:53:01 2011

Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.


Conectado a:
Oracle Database 10g Release 10.2.0.3.0 - 64bit Production

SQL Desconectado de Oracle Database 10g Release 10.2.0.3.0 - 64bit
Production

CENÁRIO 02

Rotina gerada sem ser pela Crontab, linha de comando executada no prompt
do sistema:

# /bin/su - oracle -c sqlplus usuario/senha @/home/oracle/usr_criacao.sql
 /var/tmp/usr_criacao.log

Log da rotina quando gerada sem ser pela Crontab:

# cat usr_criacao.log

SQL*Plus: Release 10.2.0.3.0 - Production on Qui Mai 12 08:24:42 2011

Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.


Conectado a:
Oracle Database 10g Release 10.2.0.3.0 - 64bit Production


SQL SQL


PERGUNTA ?

Diante dos dois cenários acima expostos, gostaria de saber o por que da não
geração das informações por parte do script, ONDE ESTÁ O ERRO, por que no
CENÁRIO 01 após a conexão ao sqlplus o script não é gerado e sim
desconectado do banco ???. Por que no CENÁRIO 02 é gerada essa saída
SQL SQL ficando a sessão ativa, como se estivesse gerando algo sem na
verdade gerar nada, tendo que ser derrubada para findar.

Aos amigos com maior experiência na plataforma, peço ajuda, acredito ser um
detalhe, só que QUAL ???

Mais uma vez AGRADEÇO A ATENÇÃO E AJUDA DISPENSADAS.

-- 
Cristiano Vasconcelos Barbosa .'.
Analista de Sistemas.

DEUS MEUMQUE JUS.'.
DÓMINI SUMUS.'.


[As partes desta mensagem que não continham texto foram removidas]



[oracle_br] Ultimo Login do Usuario

2011-03-29 Por tôpico Cristiano Vasconcelos
Caros amigos, Boa tarde!,

Bem, para começar irei especificar a plataforma de trabalho: Tenho um
servidor linux rodando o Oracle 10g.

Já fiz alguns testes mas ainda não tenho o que preciso, tenho muitos
usuários cadastrados no banco de dados, INFELIZMENTE, novos usuários são
constantemente inseridos no DB pelo sistema fim para que possam trabalhar no
mesmo, acontece que, a dispensa de alguns não são excluídas do sistema, nem
muito menos comunicadas para mim, para que possa exclui-las do banco, desta
feita, gostaria de saber quais usuários estão inativos no banco em uma faixa
de data, por exemplo, quais usuários não usam o informações do banco de
01/01/2011 a 25/03/2011. Com esta informação poderei ou excluir o usuário do
banco de dados, ou apenas bloquear sua conta.

Obrigado ...

-- 
Cristiano Vasconcelos Barbosa .'.
Analista de Sistemas.

DEUS MEUMQUE JUS.'.
DÓMINI SUMUS.'.


[As partes desta mensagem que não continham texto foram removidas]



[oracle_br] Instalacao do OAS 10g

2010-09-09 Por tôpico Cristiano Vasconcelos
(OiicSessionInterfaceManager.java:180)
at
oracle.sysman.oii.oiic.OiicSessionInterfaceManager.getInterfaceManager(OiicSessionInterfaceManager.java:189)
at
oracle.sysman.oii.oiif.oiifm.OiifmAlert.clinit(OiifmAlert.java:111)
at
oracle.sysman.oii.oiic.OiicInstaller.runInstaller(OiicInstaller.java:719)
at oracle.sysman.oii.oiic.OiicInstaller.main(OiicInstaller.java:575)

Ps.: Detalhe, a versão do *CentOS-5.5,* descrita no início da instalação,
foi acrescentada no arquivo oramparam.ini contido pa pasta
/install/linux/.

Obrigado
-- 
Cristiano Vasconcelos Barbosa .'.
Analista de Sistemas.

DEUS MEUMQUE JUS.'.
DÓMINI SUMUS.'.


[As partes desta mensagem que não continham texto foram removidas]



[oracle_br] DDL CREATE PUBLIC SYNONYM

2010-03-31 Por tôpico Cristiano Vasconcelos
Caros amigos, Boa tarde !

Estou precisando de um SCRIPT que gere DDL para extrair de todos os objetos
de um determinado OWNER o CREATE PUBLIC SYNONYM. P.exe. os CREATE PUBLIC
SYNONYM das tables, views, sequences, procedures, functions, packages.
Qualquer objeto que possa ter um PUBLIC SYNONYM.

Obrigado.

-- 
Cristiano Vasconcelos Barbosa .'.
Analista de Sistemas  Banco de Dados.

DEUS MEUMQUE JUS.'.
DÓMINI SUMUS.'.


[As partes desta mensagem que não continham texto foram removidas]



[oracle_br] RMAN - database point-in-time recovery (Recuperaçã o baseada em horário)

2010-03-04 Por tôpico Cristiano Vasconcelos
Caros amigos, saudações e uma boa tarde!

Preciso testar a restauração do DB Oracle 10G pelo RMAN no modo ARCHIVELOG,
tentando recuperar o banco em um certo ponto no tempo. Aparentemente seria
fácil se fosse realizado no mesmo servidor, acontece que estou querendo
fazer esta recuperação em outro servidor, no caso, SERVIDOR2, abaixo explico
melhor o caso concreto.

Meu cenário:
Tenho um servidor linux rodando o Oracle 10g no modo Archivelog (SERVIDOR1),
diariamente é feito na MADRUGADA um backup da área
/home/oracle/flash_recovery_area completa; da área
/home/oracle/app/product/102/dbs também completa, assim como uma
exportação full do banco de dados, todos para um arquivo arquivo.tar que
é copiado para um outro servidor (SERVIDOR2) com as mesmas configurações do
principal (IDÊNTICO), inclusive com a mesma instância instalada, só que não
operacional.

Supondo que foi feito este backup da MADRUGADA citado acima do (SERVIDOR1)
para o (SERVIDOR2), e que num cenário de desastre o servidor principal
(SERVIDOR1) falhou por exemplo 9:30 horas após o backup ter sido feito para
o servidor backup (SERVIDOR2) onde foi feita a recuperação da instância via
RMAN, ou seja, o backup foi feito às 5:00hs da manhã e o ISSECSERVER1 parou
às 14:30hs. Como seria o procedimento passo-a-passo (se for possível) para
recuperar pelo RMAN no (SERVIDOR2) o banco por completo no ponto o mais
próximo que possível do momento em que ocorreu o desastre do servidor
principal (SERVIDOR1), para que houvesse o mínimo de perda de dados
possível  , ou seja, digamos que hoje às 08:30 eu fiz a recuperação
completa do backup que foi feito às 5:00hs da madruga da instância que roda
no SERVIDOR1, esta restauração do banco foi feita no SERVIDOR2, acontece que
o SERVIDOR1 lá pelas 14:30hs parou de funcionar, então dado que já possuo
uma instância completa recuperada no SERVIDOR2, basta que eu faça sua
atualização para a condição anterior às 14:30hs, hora de parada do
SERVIDOR1, digamos que eu queira recuperar até às 14:00hs, como devo então
proceder, quais arquivos devo copiar para o SERVIDOR2 para que eu possa
através do RMAN fazer o chamado database point-in-time recovery -
Recuperação baseada em horário.

Se tiverem maretial, especificamente sobre o assunto, agradeço ???.

-- 
Cristiano Vasconcelos Barbosa .'.
Analista de Sistemas.

DEUS MEUMQUE JUS.'.
DÓMINI SUMUS.'.


[As partes desta mensagem que não continham texto foram removidas]



[oracle_br] Re: [OraOracle] Recovery com o RMAN no modo ARCHIVELOG

2009-11-02 Por tôpico Cristiano Vasconcelos
/oradata/DB11G/datafile/o1_mf_sysaux_5fzgbs5o_.dbf
channel ORA_DISK_1: restoring datafile 3 to
/u01/app/oracle/oradata/DB11G/datafile/o1_mf_undotbs1_5fzgbs7x_.dbf
channel ORA_DISK_1: restoring datafile 4 to
/u01/app/oracle/oradata/DB11G/datafile/o1_mf_users_5fzgbsbv_.dbf
channel ORA_DISK_1: restoring datafile 5 to
/u01/app/oracle/oradata/DB11G/datafile/o1_mf_sca_5fzgz9q6_.dbf
channel ORA_DISK_1: reading from backup piece
/u01/app/oracle/flash_recovery_area/DB11G/backupset/2009_11_01/o1_mf_nnndf_TAG20091101T105818_5gv1hbvx_.bkp
channel ORA_DISK_1: piece
handle=/u01/app/oracle/flash_recovery_area/DB11G/backupset/2009_11_01/o1_mf_nnndf_TAG20091101T105818_5gv1hbvx_.bkp
tag=TAG20091101T105818
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:35
Finished restore at 01-NOV-09

Vamos fazer o recover do bancod de dados, neste momento são aplicados os
archives, o RMAN irá avisar se um dos backupsets dos archives não estiver no
diretório de backup.

RMAN recover database;

Starting recover at 01-NOV-09
using channel ORA_DISK_1

starting media recovery

archived log for thread 1 with sequence 19 is already on disk as file
/u01/app/oracle/flash_recovery_area/DB11G/onlinelog/o1_mf_1_5fzgf2m7_.log
archived log file
name=/u01/app/oracle/flash_recovery_area/DB11G/onlinelog/o1_mf_1_5fzgf2m7_.log
thread=1 sequence=19
media recovery complete, elapsed time: 00:00:00
Finished recover at 01-NOV-09

Com o recover completo vamos abrir o banco de dados com a opção
RESETLOGS, neste momento são criados os redologs e as tablespaces
temporárias.

RMAN alter database open resetlogs;

database opened

RMAN

Pronto, seu banco ja está no ar, é sempre bom executar um novo backup
após a recuperação.

Uma das boas práticas é fazer o backup compactado com o comando:

BACKUP AS COMPRESSED BACKUPSET DATABASE;

Ou setar na configuração do RMAN via linha de comando ou no Enterprise
Manager dbconsole, pode também abrir vários processos de backups (paralelo).

CONFIGURE DEVICE TYPE DISK BACKUP TYPE TO COMPRESSED BACKUPSET
PARALLELISM 3;

E determinar um diretório para guardar oa backups.

CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO
'/u01/backup/rman/db11g/bkp_cf_db11g_%F.rman';
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT
'/u01/backup/rman/db11g/bkp_db11g_%U.rman';
CONFIGURE SNAPSHOT CONTROLFILE NAME TO
'/u01/backup/rman/db11g/snap_cf_db11g.rman';

Espero ter ajudado...


Abraço a todos.

--
*From:* Cristiano Vasconcelos cvasconcel...@gmail.com
*To:* Grupo OraOracle oraora...@yahoogrupos.com.br; Lista de Usuários
Oracle usuarios_ora...@yahoogrupos.com.br; Oracle in Brazil 
oracle_br@yahoogrupos.com.br; Oracle Tools oracle_to...@yahoogrupos.com.br

*Sent:* Sat, October 31, 2009 11:18:20 PM
*Subject:* [OraOracle] Recovery com o RMAN no modo ARCHIVELOG



Boa noite,

Favor, tem alguem que possa me ajudar ??? !!! ...

Bem, para começarmos, em resposta às indagações feitas pelo colega Chiappa,
segue os parâmetros de configuração RMAN como estão hoje:

RMAN show all;

os parâmetros de configuração RMAN são:

CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; #
default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO COMPRESSED
BACKUPSET;
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/home/oracle/ flash_recovery_
area/empresa /backcontrol/ snapcf_clp2. f';

Em resposta às suas indegações

a) confirmar que o backup ESTÀ SENDO FEITO MESMO, isso não é Automático, não
é por vc ter uma FRA que há backups corretos e consistentes lá dentro...

R.a) A verificação é feita diariamente e SIM, EXISTEM backups corretos e
consistentes na FRA.

b) saber ** exatamente ** como está sendo feito esse backup - se é via
script, se é comando manual, exatamente QUAL o comando RMAN que está sendo
usado (provavelmente BACKUP DATABASE dentro do RMAN, mas os detalhes de
sintaxe são cruciais, como os CHANNELs, tranquilamente se pode criar canais
de gravação para FORA da FRA)... Precisamos saber também se o RMAN está
configurado pra fazer também o backup dos CONTROLFILES (isso vc checa nele
mesmo com SHOW ALL), e teríamos que saber qual é a política (ie, quando/aque
horas/com que frequência vc vc está tirando backups, se são COLDs ou HOT, se
são incrementais ou sempre level 0) 

R.b) O backup é

[oracle_br] Recovery com o RMAN no modo ARCHIVELOG

2009-10-31 Por tôpico Cristiano Vasconcelos
 BACKUP TER SIDO FEITO para o servidor
backup (SERVIDOR2), como seria o procedimento passo-a-passo para recuperar
pelo RMAN no (SERVIDOR2) o banco por completo no ponto o mais próximo que
possível do momento em que ocorreu o desastre do servidor principal
(SERVIDOR1), para que houvesse o mínimo de perda de dados possível  

Quais os arquivos que devo ter restaurado no (SERVIDOR2) para a recuperação
FULL do banco de dados e os comandos que devem ser dados na sequência, são
os control files; os redolog´s; os datafiles, ou todos tem que ser
restaurados em seus respectivos path´s para que o banco possa ser restaurado
por compelo via RMAN?




-- 
Cristiano Vasconcelos Barbosa .'.
Analista de Sistemas

DEUS MEUMQUE JUS.'.
DÓMINI SUMUS.'.


[As partes desta mensagem que não continham texto foram removidas]



[oracle_br] Recovery com o RMAN no modo ARCHIVELOG

2009-10-26 Por tôpico Cristiano Vasconcelos
Caros amigos, saudações e uma boa tarde!

Senhores, como em momentos passados vc´s já me socorreram, estou novamente
pedindo ajuda. Preciso testar a restauração do DB Oracle 10G pelo RMAN no
modo ARCHIVELOG, apesar de já ter lido alguns post's sobre o assunto, ainda
possuo algumas dúvidas.

Meu cenário:
Tenho um servidor linux rodando o Oracle 10g em Archivelog (SERVIDOR1),
diariamente é feito um backup da área /home/oracle/flash_recovery_area
completa; da área  /home/oracle/app/product/102/dbs também completa, assim
como uma exportação full do banco de dados, todos para um arquivo .tar que é
copiado para um outro servidor (SERVIDOR2) com as mesmas configurações do
principal, inclusive com a mesma instância instalada, só que não
operacional.

Muitos dizem que é MOLEZA, só que na prática tudo é diferente, e como eu não
tenho essa prática de trabalhar com o RMAN ainda, estou me socorrendo de
quem já tem, então te pergunto: supondo que foi feito este backup citado
acima do (SERVIDOR1) para o (SERVIDOR2), e que num cenário de desastre o
servidor principal (SERVIDOR1) falhou por exemplo 4 horas após o backup ter
sido feito para o servidor backup (SERVIDOR2), como seria o procedimento
passo-a-passo (se for possível) para recuperar pelo RMAN no (SERVIDOR2) o
banco por completo no ponto o mais próximo que possível do momento em que
ocorreu o desastre do servidor principal (SERVIDOR1), para que houvesse o
mínimo de perda de dados possível  

Não querendo me aproveitar do conhecimento e ajuda, más gostaria também de
algum material da Oracle e do RMAN de preferência em português ???.

Agradeço pela atenção e ajuda. OBRIGADO ...


-- 
Cristiano Vasconcelos Barbosa .'.
Analista de Sistemas

DEUS MEUMQUE JUS.'.
DÓMINI SUMUS.'.


[As partes desta mensagem que não continham texto foram removidas]