quinta-feira, 5 de setembro de 2013

Oracle EBS R12 - Stop/Start em Concurrent Processing

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.

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.


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

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. -->

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!




-->

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]

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!

sexta-feira, 21 de junho de 2013

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. -->

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';


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.

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

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:


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>

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

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

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);

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