Falando um pouco em Oracle Applications, uma das tarefas de um DBA/ATG é gerenciar os Concurrents. São processos que rodam em background e garantem de forma simultânea o processamento de grande volume de dados através dos produtos do EBS R12: AR, Billing, OM, entre outros. Isso tudo, sem afetar a performance e garantindo a integridade do Oracle Database.
quinta-feira, 5 de setembro de 2013
terça-feira, 6 de agosto de 2013
RMAN - ORA-01008: not all variables bound
Pessoal, bom dia.
Ao tentar utilizar o RMAN para realizar backups online, backup archive, etc. Se a Shared Pool estiver fragmentada ou simplesmente cheia, o RMAN apresentará o seguinte erro:
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of backup command at 08/07/2013 02:08:35
RMAN-03014: implicit resync of recovery catalog failed
ORA-01008: not all variables bound
Para solucionar o problema, basta conectar via SQL*Plus na instância e efetuar um flush na Shared Pool da seguinte forma:
/> sqlplus "/ as sysdba"
SQL*Plus: Release 11.2.0.2.0 Production on Wed Aug 7 02:16:45 2013
Copyright (c) 1982, 2010, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> alter system flush shared_pool;
System altered.
É isso.
Até o próximo artigo.
sábado, 27 de julho de 2013
DBA - Resolvendo ORA-00054 - resource busy and acquire with NOWAIT specified
Olá meus amigos,
Ao tentar truncar um tabela no banco de dados, me deparei com o erro ORA-00054.
Este erro significa que você está tentando manipular algum objeto (digo objeto e não arquivo, pois pode tratar-se de um índice) que já está sendo utilizado por outro recurso. Gerando lock no objeto. Neste caso, era realmente um índice que estava com o status UNUSABLE, impedindo o funcionamento do comando TRUNCATE na tabela específica.
Vamos ver uma maneira de resolver tal problema.
Ao tentar truncar um tabela no banco de dados, me deparei com o erro ORA-00054.
Este erro significa que você está tentando manipular algum objeto (digo objeto e não arquivo, pois pode tratar-se de um índice) que já está sendo utilizado por outro recurso. Gerando lock no objeto. Neste caso, era realmente um índice que estava com o status UNUSABLE, impedindo o funcionamento do comando TRUNCATE na tabela específica.
Vamos ver uma maneira de resolver tal problema.
Marcadores:
configuração,
database,
dba,
iniciante,
nowait,
ora-00054,
ora-054,
ora-54,
oracle,
partition,
partitions,
rebuild,
resource busy,
resource busy and acquire with NOWAIT specified,
truncate
domingo, 21 de julho de 2013
DBA - Usando seu Backup Online e aplicando Archives
Olá amigos,
Conforme todo bom DBA sabe: "backup bom é o backup que volta". Ou seja, nada adianta backupear 1TB de dados e na hora de voltar, tudo estar corrompido. Com isso, iniciei meus estudos sobre o funcionamento dos backups realizados via RMAN. E hoje vou representar meu pensamento através deste artigo. Vou apenas representar um raciocício. Os comandos técnicos serão abordados posteriormente em outro artigo.
Respondendo a mim mesmo, as perguntas abaixo:
Meu banco está em ARCHIVELOG mode?
Quando ocorreu a falha?
Qual backup posso usar?
Quais archives vou precisar?
Obs.: Tudo isso pode ser encontrado no Capítulo 2 do livro OCP 11g - Preparatório para o exame 1Z0-053: Configurando a Capacidade de Recuperação do Banco de Dados
Pois bem, feito a pergunta. Vamos a resposta.
Imagine o seu banco de dados identificado de 1 até 10:

Cada bloco acima, representa um estado em que o banco estava.
Agora imagine que você tem um backup para cada estado do banco e um grupo de archives para cada estado do bloco do banco de dados (Os chamados SCN)
BACKUPS
Conforme todo bom DBA sabe: "backup bom é o backup que volta". Ou seja, nada adianta backupear 1TB de dados e na hora de voltar, tudo estar corrompido. Com isso, iniciei meus estudos sobre o funcionamento dos backups realizados via RMAN. E hoje vou representar meu pensamento através deste artigo. Vou apenas representar um raciocício. Os comandos técnicos serão abordados posteriormente em outro artigo.
Respondendo a mim mesmo, as perguntas abaixo:
Meu banco está em ARCHIVELOG mode?
Quando ocorreu a falha?
Qual backup posso usar?
Quais archives vou precisar?
Obs.: Tudo isso pode ser encontrado no Capítulo 2 do livro OCP 11g - Preparatório para o exame 1Z0-053: Configurando a Capacidade de Recuperação do Banco de Dados
Pois bem, feito a pergunta. Vamos a resposta.
Imagine o seu banco de dados identificado de 1 até 10:
Cada bloco acima, representa um estado em que o banco estava.
Agora imagine que você tem um backup para cada estado do banco e um grupo de archives para cada estado do bloco do banco de dados (Os chamados SCN)
BACKUPS
ARCHIVES
Temos o seguinte cenário:
Agora vamos raciocinar. Para que diabos eu vou precisar do backup online e dos archives?
Vamos lá!
1) Exemplo: Os metadados foram corrompidos no bloco 9.
2) Você decide fazer o restore utilizando o backup do bloco 6:
Maravilha!
Seu banco de dados perdeu tudo o que foi feito nos blocos 7 e 8?
A resposta é não!
Pois você é um bom DBA e tem todos os archives necessários!
Para que o banco de dados retorne ao momento anterior à falha que ocorreu no bloco 9, você terá que avançar do bloco 6 ao bloco 8. Faça isso aplicando archives:
3) Aplicando os archives dos blocos 7 e 8.
Parabéns! A sua postura gerou a imagem abaixo:
Pronto. Você acabou de garantir seu ambiente.
Obs.: Tudo isso só irá funcionar se você configurou seu banco de dados para trabalhar em ARCHIVELOG mode.
Para consultar se o seu banco de dados está neste modo, utilize a query abaixo:
SQL> select log_mode from v$database;
LOG_MODE
------------
ARCHIVELOG
Obrigado e até o próximo artigo.
sábado, 20 de julho de 2013
ASM - Processos de background RBAL ASMB e ARBn
Olá meus amigos,
Hoje vou comentar sobre alguns processos de background que li sobre, no livro que estou estudando para passar no exame 1Z0-053.
A partir do Oracle 10g, tais processos são essenciais para o funcionamento da estrutura (ORACLE + ASM).
quinta-feira, 18 de julho de 2013
DBV em datafiles - ASM (ORA-19566)
Bom dia,
Hoje no trabalho, precisei realizar a validação de um erro que estava acontecendo em um backup full do ambiente flashcopy.
Ocorreu o seguinte erro:
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: failure of backup command on t1 channel at 07/18/2013 03:45:42
ORA-19566: exceeded limit of 0 corrupt blocks for file ++DATA/producao/datafile/datafile01.dbf
Tudo estava tranquilo, pois sabia que se algo estivesse corrompido, era só solicitar que o fashcopy fosse reprocessado.
Porém, na informática existem coisas difíceis de se explicar e eu travei ao tentar rodar um DBVerify em um datafile alocado automaticamente pelo sistema (ASM).
Precisava informar a cláusula userid porém, não tenho a senha do SYS (meu usuário do S.O. estava no grupo oraadmin).
Daí então, tive o auxílio do DBA Sênior que com muita tranquilidade e ainda mais (humildade + simplicidade) iluminou meus pensamentos e me lembrou do usuário SCOTT.
A senha padrão do bendito é TIGER. Ou seja, com privilégios do grupo oraadmin e um pouco de "inteligência alheia", consegui rodar o DBV da seguinte maneira:
[useroracle@hostname01:/home] dbv file='+DATA/producao/datafile/datafile01.dbf' userid=scott/tiger logfile=log_dbv_datafile.log
Após atuação, gravei em mente que:
1) Datafile em ASM devem ser informado através de aspas simples.
2) Jamais esqueça das raízes de seus estudos (scott/tiger)
Para entender melhor do que se trata um DBV, leia isso.
Bom, por hoje, é isso.
Até a próxima. -->
Hoje no trabalho, precisei realizar a validação de um erro que estava acontecendo em um backup full do ambiente flashcopy.
Ocorreu o seguinte erro:
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: failure of backup command on t1 channel at 07/18/2013 03:45:42
ORA-19566: exceeded limit of 0 corrupt blocks for file ++DATA/producao/datafile/datafile01.dbf
Tudo estava tranquilo, pois sabia que se algo estivesse corrompido, era só solicitar que o fashcopy fosse reprocessado.
Porém, na informática existem coisas difíceis de se explicar e eu travei ao tentar rodar um DBVerify em um datafile alocado automaticamente pelo sistema (ASM).
Precisava informar a cláusula userid porém, não tenho a senha do SYS (meu usuário do S.O. estava no grupo oraadmin).
Daí então, tive o auxílio do DBA Sênior que com muita tranquilidade e ainda mais (humildade + simplicidade) iluminou meus pensamentos e me lembrou do usuário SCOTT.
A senha padrão do bendito é TIGER. Ou seja, com privilégios do grupo oraadmin e um pouco de "inteligência alheia", consegui rodar o DBV da seguinte maneira:
[useroracle@hostname01:/home] dbv file='+DATA/producao/datafile/datafile01.dbf' userid=scott/tiger logfile=log_dbv_datafile.log
Após atuação, gravei em mente que:
1) Datafile em ASM devem ser informado através de aspas simples.
2) Jamais esqueça das raízes de seus estudos (scott/tiger)
Para entender melhor do que se trata um DBV, leia isso.
Bom, por hoje, é isso.
Até a próxima. -->
segunda-feira, 15 de julho de 2013
domingo, 7 de julho de 2013
DBA - Usando BIND Variable para ganhar performance
Bom dia DBA's,
Está mais do que provado que há ganhos de performance quando você utiliza Bind Variables em instruções SQL no Oracle. No artigo de hoje, vou demonstrar isso na prática e disponibilizar os comandos para que você também faça o teste em seu ambiente de estudo.
Vamos colocar a mão na massa!
Primeiro, o que é Bind Variable?
quinta-feira, 4 de julho de 2013
DBA - Tarefas, Salários e Cursos
Olá meus amigos,
Hoje vou falar um pouco sobre dois artigos do blog do Instrutor/DBA Fábio Prado.
São assuntos que interessam a todos os DBA's. Principalmente àqueles que estão iniciando suas carreiras:
terça-feira, 25 de junho de 2013
Oracle Database 12c - Disponível para download
Ele chegou.
Oracle Database 12c
Disponível para download. Divirtam-se!
-->
Oracle Database 12c
Disponível para download. Divirtam-se!
-->
segunda-feira, 24 de junho de 2013
DBA - Oracle Clusterware - Administração (ViniciusDBA)
Caros,
o blog do Marcus Vinícius possui artigos dando exemplos de administração do Cluster do Oracle.
É interessante.
Oracle Clusterware – Rotinas Administrativas – Parte 1 – Start e Stop [ver]
Oracle Clusterware – Rotinas Administrativas – Parte 2 – crsctl [ver]
Oracle Clusterware – Rotinas Administrativas – Parte 3 – srvctl [ver]
o blog do Marcus Vinícius possui artigos dando exemplos de administração do Cluster do Oracle.
É interessante.
Oracle Clusterware – Rotinas Administrativas – Parte 1 – Start e Stop [ver]
Oracle Clusterware – Rotinas Administrativas – Parte 2 – crsctl [ver]
Oracle Clusterware – Rotinas Administrativas – Parte 3 – srvctl [ver]
sábado, 22 de junho de 2013
IBM dá curso de inglês online grátis
Caros amigos,
compartilho com vocês, um site bem interessante sobre cursos, tecnologia e vagas de emprego na IBM. Empresa líder na prestação de serviços e pesquisa em tecnologia.
Segue o link www.ti-smart.com.br
Aproveitem! É de graça!
compartilho com vocês, um site bem interessante sobre cursos, tecnologia e vagas de emprego na IBM. Empresa líder na prestação de serviços e pesquisa em tecnologia.
Segue o link www.ti-smart.com.br
Aproveitem! É de graça!
sexta-feira, 21 de junho de 2013
DBA - Vídeo - Aula para DBA Oracle iniciante
Perfeito para iniciar o entendimento sobre as tarefas de um DBA Oracle.
Acesse e confira: http://goo.gl/uHTYY
Acesse as aulas no youtube: http://goo.gl/EeXhG
segunda-feira, 17 de junho de 2013
Cursos de Oracle BI - OBIEE e ODI 11g
Olá pessoal,
Segue indicação de curso de BI para quem se interessar.
http://www.slideshare.net/slideshow/embed_code/23063696
Boa sorte. -->
Segue indicação de curso de BI para quem se interessar.
http://www.slideshare.net/slideshow/embed_code/23063696
Boa sorte. -->
sexta-feira, 14 de junho de 2013
DBA - Truncate em apenas UMA partição da tabela
Olá amigos
Hoje o post é curto , porém, interessante.
Precisei atuar em um ambiente consideravelmente grande, onde havia uma tabela e suas várias partições.
O cliente solicitou o TRUNCATE em apenas uma partição. Eu atuei, o cliente validou e reportou que houve sucesso. Fiquei contente =)
Segue log de atuação:
-- Consultando partições da tabela
SQL> SELECT TABLE_NAME, PARTITION_NAME, TABLESPACE_NAME FROM DBA_TAB_PARTITIONS WHERE TABLE_NAME = 'TABLE_FISCAL';
Hoje o post é curto , porém, interessante.
Precisei atuar em um ambiente consideravelmente grande, onde havia uma tabela e suas várias partições.
O cliente solicitou o TRUNCATE em apenas uma partição. Eu atuei, o cliente validou e reportou que houve sucesso. Fiquei contente =)
Segue log de atuação:
-- Consultando partições da tabela
SQL> SELECT TABLE_NAME, PARTITION_NAME, TABLESPACE_NAME FROM DBA_TAB_PARTITIONS WHERE TABLE_NAME = 'TABLE_FISCAL';
quinta-feira, 13 de junho de 2013
DBA - Descobrindo o comando que criou a tabela
Olá queridos amigos, DBA's e Developer's.
O artigo de hoje é sobre uma DBMS que pode nos auxiliar muito ao investigar assuntos sobre criação de objetos dentro do banco de dados Oracle. É a package nativa do Oracle chamada: DBMS_METADATA.
Existe uma função dessa package chamada GET_DDL que devolve o comando de criação de objetos. Segue um exemplo abaixo pois só é possível aprender de verdade, fazendo na prática.
Vamos colocar a mão na massa.
-- Criando uma tabela para fazer o teste
SQL> create table t_able (nome varchar2(30));
Table created.
O artigo de hoje é sobre uma DBMS que pode nos auxiliar muito ao investigar assuntos sobre criação de objetos dentro do banco de dados Oracle. É a package nativa do Oracle chamada: DBMS_METADATA.
Existe uma função dessa package chamada GET_DDL que devolve o comando de criação de objetos. Segue um exemplo abaixo pois só é possível aprender de verdade, fazendo na prática.
Vamos colocar a mão na massa.
-- Criando uma tabela para fazer o teste
SQL> create table t_able (nome varchar2(30));
Table created.
domingo, 2 de junho de 2013
PL/SQL - Função Nativas Interessantes do Oracle - Parte I
Caros DBA's e Developer's,
Neste artigo, postarei algumas funções nativas interessantes do Oracle.
Obter o conhecimento das principais auxilia bastante na administração do banco de dados e no desenvolvimento de scripts PL/SQL.
Vamos colocar a mão na massa:
-- SQRT - Devolve a raíz quadrada
SQL> select SQRT(144) from dual;
SQRT(144)
----------
12
Neste artigo, postarei algumas funções nativas interessantes do Oracle.
Obter o conhecimento das principais auxilia bastante na administração do banco de dados e no desenvolvimento de scripts PL/SQL.
Vamos colocar a mão na massa:
-- SQRT - Devolve a raíz quadrada
SQL> select SQRT(144) from dual;
SQRT(144)
----------
12
PL/SQL - Criar Procedure para Atualizar Tabela
Beleza galera?
Neste artigo, vou mostrar uma maneira simples de atualizar um determinado campo de uma determinada tabela. Facilita o trabalho desenvolvedor e agiliza o processo de desenvolvimento de software.
Vamos colocar a mão na massa:
Neste artigo, vou mostrar uma maneira simples de atualizar um determinado campo de uma determinada tabela. Facilita o trabalho desenvolvedor e agiliza o processo de desenvolvimento de software.
Vamos colocar a mão na massa:
DBA - Alterando o "SQL>" do SQL*Plus
Caros amigos,
É possível alterar alguns paramêtros do SQL*Plus.
Para visualizar, digite o comando show all.
Neste artigo, vou mostrar como alterar o parâmetro sqlprompt que por padrão é SQL>
É possível alterar alguns paramêtros do SQL*Plus.
Para visualizar, digite o comando show all.
Neste artigo, vou mostrar como alterar o parâmetro sqlprompt que por padrão é SQL>
PL/SQL - Criando Função Simples de Somar
Caros amigos,
Mostrarei uma maneira simples de criar uma função dentro do banco de dados que retorna o resultado da soma de dois inteiros que iremos definir.
Vamos colocar a mão na massa:
-- Conectando com o usuário fernando e a senha fernando
C:\>sqlplus fernando/fernando
SQL*Plus: Release 11.2.0.1.0 Production on Dom Jun 2 05:38:52 2013
Copyright (c) 1982, 2010, Oracle. All rights reserved.
Conectado a:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Mostrarei uma maneira simples de criar uma função dentro do banco de dados que retorna o resultado da soma de dois inteiros que iremos definir.
Vamos colocar a mão na massa:
-- Conectando com o usuário fernando e a senha fernando
C:\>sqlplus fernando/fernando
SQL*Plus: Release 11.2.0.1.0 Production on Dom Jun 2 05:38:52 2013
Copyright (c) 1982, 2010, Oracle. All rights reserved.
Conectado a:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
sexta-feira, 31 de maio de 2013
DBA - Alterando o banco de dados para o modo archive
Caros amigos DBA's e Developer's,
Neste artigo, mostrarei de maneira resumida, como alterar o banco para o modo de arquivamento. Permitindo assim, que o banco de dados entenda que deve gerar backup dos redologs, estes backups recebem o nome de ARCHIVES e são extremamente necessários para realizar a restauração perfeita em caso de falhas.
Primeiro, é assunto de prova: Dominar a manutenção da área de archive é crucial para sucesso no exame 1Z0-052.
Segundo, manter um banco de dados de produção
Neste artigo, mostrarei de maneira resumida, como alterar o banco para o modo de arquivamento. Permitindo assim, que o banco de dados entenda que deve gerar backup dos redologs, estes backups recebem o nome de ARCHIVES e são extremamente necessários para realizar a restauração perfeita em caso de falhas.
Primeiro, é assunto de prova: Dominar a manutenção da área de archive é crucial para sucesso no exame 1Z0-052.
Segundo, manter um banco de dados de produção
quinta-feira, 30 de maio de 2013
PL/SQL - Criando Procedure Simples
Olá pessoal,
Hoje vou mostrar como é simples criar uma procedure no banco de dados Oracle.
Procedure é um bloco de comandos armazenado no banco de dados. Abaixo, segue um exemplo de criação e posteriormente, de execução de uma procedure.
Vamos colocar a mão na massa.
--Criando tabela para teste
SQL> CREATE TABLE TESTE_BLOG(
2 NUMEROS NUMBER);
Hoje vou mostrar como é simples criar uma procedure no banco de dados Oracle.
Procedure é um bloco de comandos armazenado no banco de dados. Abaixo, segue um exemplo de criação e posteriormente, de execução de uma procedure.
Vamos colocar a mão na massa.
--Criando tabela para teste
SQL> CREATE TABLE TESTE_BLOG(
2 NUMEROS NUMBER);
Função REVERSE - Invertendo Strings
Olá pessoal,
O Oracle é realmente um banco de dados fascinante. Dia-a-dia aprendemos mais e mais.
Conheci uma função simples de se usar e extremamente útil para o programador e para o DBA (em certos momentos).
Vamos colocar a mão na massa:
-- Conectei no banco de dados com o usuário fernando e a senha fernando
C:\>sqlplus fernando/fernando
O Oracle é realmente um banco de dados fascinante. Dia-a-dia aprendemos mais e mais.
Conheci uma função simples de se usar e extremamente útil para o programador e para o DBA (em certos momentos).
Vamos colocar a mão na massa:
-- Conectei no banco de dados com o usuário fernando e a senha fernando
C:\>sqlplus fernando/fernando
Assinar:
Postagens (Atom)