fevereiro 3rd, 2010 por Marcos Aurelio Braga
Mais um assunto interessante para quem está iniciando com os processos de auditoria no banco de dados.
http://sites.google.com/site/universodobraga/oracle/movendo-aud-para-fora-da-tablespace-system
[]s
Braga
Tags: aud$, auditoria, auditoria oracle, dba_audit_trail, oracle
Postado auditoria | Sem Comentários »
janeiro 4th, 2010 por Marcos Aurelio Braga
Oi Pessoal,
Primeiro assunto do ano novo…
No fim do ano andei efetuando testes com RMAN e BROKER sobre as novas funcionalidades para criação de um Standby na versão 11g e achei importante postar esses testes.
O artigo ainda não está finalizado, mas está bem adiantado e podemos nos beneficiar com ele.
http://sites.google.com/site/universodobraga/oracle/standby-11g
[]s
Braga
Tags: Broker, Data Guard, oracle, Oracle Standby 11g, Standby
Postado Standby | 4 Comentários »
dezembro 10th, 2009 por Marcos Aurelio Braga
Este é um exemplo prático de uma recuperação completa de um banco de dados pequeno utilizando RMAN com Oracle 11g.
http://sites.google.com/site/universodobraga/oracle/recover-completo-oracle-11g
Tags: oracle, recover, restore, rman
Postado Recover/Restore | Sem Comentários »
novembro 10th, 2009 por Marcos Aurelio Braga
Oi Pessoal,
Criei uma página direcionada aos meus interesses pessoais e profissionais.
Ela engloba um pouco da minha experiência, interesses e o que pretendo compartilhar com a comunidade.
Meu primeiro assunto é sobre Virtual Columns (colunas virtuais) que encontrei na versão 11g.
http://sites.google.com/site/universodobraga/oracle/memoria-viva/oracle11g-virtualcolumns
[]s
Braga
Postado Sem categoria | 2 Comentários »
novembro 4th, 2009 por Marcos Aurelio Braga
Este post é para memorizar algo que já precisei e voltei a pesquisar no Google.
Estava criando um Standby através do RMAN, utilizando os seguintes comandos:
connect target /
connect auxiliary sys/[pass]@standby
run {
allocate auxiliary channel ch1 type disk;
duplicate target database for standby dorecover nofilenamecheck;
release channel ch1;
}
E ocorreu o seguinte erro:
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of restore command at 04/11/2009 12:18:23
RMAN-06026: some targets not found - aborting restore
RMAN-06024: no backup or copy of the controlfile found to restore
A correção foi:
connect target /
sql ‘alter system archive log current’;
connect auxiliary sys/[pass]@standby
run {
allocate auxiliary channel ch1 type disk;
duplicate target database for standby dorecover nofilenamecheck;
release channel ch1;
}
save;
rsssss
— memória registrada –
[]s
Braga
Tags: oracle, oracle standby, rman, Standby, standby rman
Postado Standby | Sem Comentários »
setembro 3rd, 2009 por Marcos Aurelio Braga
Estava montando um script para recriar as roles de um banco de dados em outro banco, e deparei com um problema simples: algumas roles estavam com senha e não encontrei nas views que utilizo comumente alguma coluna que fornecesse essa informação.
Após algumas pesquisas, encontrei esta consulta útil quando for preciso.
select role, password
from sys.user$ u, dba_roles r
where r.role = u.name
and u.type# = 0
and password is not null
/
Observe que é uma tabela do SYS, portanto é necessário permissões para tal.
Com essa consulta é possível criar um script para recriar as roles. Observe.
select 'create role '||role||' identified by values '''||password||''';'
from sys.user$ u, dba_roles r
where r.role = u.name
and u.type# = 0
and password is not null
/
[]s
Braga
Tags: oracle, oracle roles, roles, roles password
Postado Diversos | Sem Comentários »
julho 24th, 2009 por Marcos Aurelio Braga
Ontem observei este assunto nos atalhos da página principal, e lendo o conteúdo verifiquei que há muito mais que um incentivo cultural para o público brasileiro.
Vi este prêmio como uma oportunidade para todo profissional que posta nos Blogs uma oportunidade de melhorar os assuntos, melhorar a qualidade e um incentivo para que esse procedimento torne-se um hábito entre esses profissionais.
O prêmio também é um incentivo para novos profissionais que pensam e/ou planejam criar um Blog. Muitos destes acabam revendo ótimos “Blogueiros” com assuntos diversificados e de qualidade.
Efetuei a inscrição com a intenção de incentivo a essa cultura e habituar-me a postar sempre, e é claro, medir o nível de aceitação dos assuntos postados.
Espero melhorar os assuntos e não só encher o Blog com muito conteúdo sem utilidade para a comunidade.
A comunidade brasileira será a principal beneficiada com esse prêmio.
[]s a todos e sucesso.
Braga
Tags: ORABlog, oracle, Prêmio ORABlog Brasil
Postado Sem categoria | 1 Comentário »
julho 19th, 2009 por Marcos Aurelio Braga
Esta semana precisei efetuar um trace em uma sessão de um aplicativo e resolvi postar o procedimento.
Descobrindo a sessão
Para descobrir a sessão, usualmente utilizamos a view V$SESSION e com alguma informação relevante, tipo o usuário do banco, o aplicativo utilizado ou mesmo o nome do computador utilizado. No meu caso o usuário era único no banco de dados, portanto efetuei uma consulta simples.
SQL> select sid, serial# from v$session where username = 'USER';
SID SERIAL#
------- ------------
25 1468
De posse dos dados, vamos habilitrar o trace.
Habilitando o trace
SQL> exec dbms_system.set_sql_trace_in_session(25, 1468, TRUE);
Trace ativo, a partir deste momento tudo que ocorrer na sessão será gravada em arquivo de trace. Aguarde a finalização da sessão ou a confirmação do usuário para encerrar o trace.
Desabilitando o trace
SQL> exec dbms_system.set_sql_trace_in_session(25, 1468, FALSE);
Os arquivos de trace são gravados no diretório dump de usuários, localize através do parâmetro USER_DUMP_DEST.
SQL> show parameter user_dump_dest
Neste diretório estarão os arquivos de trace dos usuários e o arquivo que foi gravado através deste procedimento.
Bom proveito.
[]s
Braga
Tags: oracle, oracle trace, session trace, trace, trace session, user trace
Postado Sem categoria | Sem Comentários »
julho 9th, 2009 por Marcos Aurelio Braga
Para encontrar todos os arquivos de um banco de dados, diga-se de passagem, controlfile, logfile, datafiles e tempfiles, utilizo esta query:
select name from v$controlfile
union all
select name from v$tempfile
union all
select name from v$dbfile
union all
select member from v$logfile
Observem o exemplo:
SQL> select name from v$controlfile
2 union all
3 select name from v$tempfile
4 union all
5 select name from v$dbfile
6 union all
7 select member from v$logfile;
NAME
------------------------------------------------
C:\ORACLEXE\ORADATA\XE\CONTROL.DBF
C:\ORACLEXE\ORADATA\XE\TEMP.DBF
C:\ORACLEXE\ORADATA\XE\USERS.DBF
C:\ORACLEXE\ORADATA\XE\SYSAUX.DBF
C:\ORACLEXE\ORADATA\XE\UNDO.DBF
C:\ORACLEXE\ORADATA\XE\SYSTEM.DBF
C:\ORACLEXE\ORADATA\O1_MF_2_4ZPK55HD_.LOG
C:\ORACLEXE\ORADATA\O1_MF_1_4ZPK52D8_.LOG
8 linhas selecionadas.
SQL>
Estudando o RMAN, descobri um comando capaz de fornecer uma lista dos datafiles do banco de dados, observem:
RMAN> report schema;
usar o arquivo de controle do banco de dados de destino em vez do catálogo de recuperação
Relatório do esquema do banco de dados
Lista de Arquivos de Dados Permanentes
===========================
Tamanho do Arquivo(MB) Tablespace RB segs Nome do Arquivo de Dados
---- -------- -------------------- ------- ------------------------
1 340 SYSTEM *** C:\ORACLEXE\ORADATA\XE\SYSTEM.DBF
2 90 UNDO *** C:\ORACLEXE\ORADATA\XE\UNDO.DBF
3 480 SYSAUX *** C:\ORACLEXE\ORADATA\XE\SYSAUX.DBF
4 100 USERS *** C:\ORACLEXE\ORADATA\XE\USERS.DBF
Lista de Arquivos Temporários
=======================
Tamanho do Arquivo(MB) Tablespace Tamanho Máximo(MB) Nome do Arquivo Temporário
---- -------- -------------------- ----------- --------------------
1 20 TEMP 32767 C:\ORACLEXE\ORADATA\XE\TEMP.DBF
RMAN>
Outros métodos podem ser utilizados para descobrir os arquivos de um banco de dados, mas esses dois métodos são eficientes.
[]s
Braga
Tags: datafiles, logfiles, oracle, tempfiles
Postado Diversos | Sem Comentários »
julho 8th, 2009 por Marcos Aurelio Braga
NTP ou Network Time Protocol, é um serviço responsável por manter os relógios dos computadores ajustados e sincronizados. Comumente tenho problemas com ajuste de hora em um ambiente com vários servidores instalados. E a política comumente adotada é o ajuste manual ou através de scripts (particularmente, utilizei scripts para manter um grupo de computadores com a hora ajustada entre eles), scripts é uma boa idéia, mas não é a mais confiável, pois não há uma sincronização a nível global.
O remédio para o problema está disponível no Brasil há algum tempo e fica disponível no portal ntp.br.
O serviço é fácil de ser implementado para linux e windows (ainda não tive a oportunidade de implementar em windows), mas implementei em vários servidores linux e funciona que é uma “magavilha”.
Basta acessar a página e seguir o Guia Rápido, nesse guia são encontradas todas as instruções necessárias para a implementação do serviço ntp, incluindo vídeos dos processos executados.
Um aviso aos marinheiros que vão embarcar nessa viagem. Caso a rede que irão implementar o serviço tenha um firewall (o que é fácil encontrar), é necessário a liberação da porta 123 para o protocolo UDP; é por essa porta que a comunicação (sincronização) do serviço ntp é efetuada.
Fica aí a dica para todos os navegantes.
[]s
Braga
Tags: hora, network time protocol, ntp, sincronizar hora
Postado Diversos | Sem Comentários »