Olá Pessoal!

Venho útimamente estudando muito Oracle GoldenGate, através de livros, documentos oficiais e não oficiais, tenho aprendido muita coisa com essa ferramente, apesar de pouco documento e livros bons tenho conseguido ir bem, realmente GoldenGate é fantastico, junto com a SUN a empresa GoldenGate foi uma das melhores aquisições feitas pela Oracle nos últimos anos.

Com toda essa dedicação ao GoldenGate, prestei na última sexta a prova Iz0-539 e assim obtive o certificado: “Oracle GoldenGate 10g Certified Specialist”. A prova não foi muito fácil, tanto que o meu score não foi lá aquelas coisas mais foi o suficiente para passar :)

Apesar de ser uma ferramente incrível, existem poucos especialistas pelo mundo que compartilham informação sobre ele, temos poucos materiais/post/tutoriais pela internet e hoje muito pouco livros existem por aí no mercado. Com isso, pretendo compartilhar muito sobre GoldenGate aqui no blog mostrando diversos assuntos como: implementação, tuning, proccess, director, veridata, migração, replicação heterogenia e etc …

Estou muito feliz com mais essa conquista e de poder compartilhar com vocês.

Abraços

DBA que é DBA é apaixonado pelo SQL*Plus e isso não é diferente comigo, mas as vezes nada melhor que uma ferramenta gráfica para poder facilitar o trabalho. Eu sempre gostei muito do SQLDeveloper e depois que passei a utilizar o Ubuntu a alguns meses atrás precisei instalar o SQLDeveloper no Ubuntu.

Aqui está os passos que utilizei que funcionou perfeitamente.

Here we go …

Instalando o Oracle JDK

O procedimento é muito tranquilo, o primeiro passo é baixar o JDK no seguinte endereço:

http://www.oracle.com/technetwork/java/javase/downloads/java-se-jdk-7-download-432154.html

Eu baixei o arquivo tar.gz e extraí para uma pasta chamada java-7-oracle

Feito isso execute os seguintes comandos, onde a pasta java-7-oracle abaixo referencia o JDK baixado:

$ sudo mkdir -p  /usr/lib/jvm/
sudo mv java-7-oracle/ /usr/lib/jvm/

Faça agora o update da Java package:

sudo add-apt-repository ppa:nilarimogard/webupd8
sudo apt-get update
sudo apt-get install update-java

Vamos agora instalar o Oracle JDK Java, execute o seguinte comando:

sudo update-java

e selecione o /usr/lib/jvm/java-7-oracle

Instalando o SQL Developer

Baixe o SQL Developer em rpm

http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html

Agora execute o seguinte comando para transformar o rpm em um deb

$ sudo alien --scripts sqldeveloper*rpm
sqldeveloper_3.1.07.42-2_all.deb generated

$ sudo dpkg -i sqldeveloper*deb
Selecting previously deselected package sqldeveloper.
(Reading database ... 289797 files and directories currently installed.)
Unpacking sqldeveloper (from sqldeveloper_3.1.07.42-2_all.deb) ...
Setting up sqldeveloper (3.1.07.42-2) ...

Feito isso o SQLDeveloper está instalado.

$ sqldeveloper

Parte 1 - Introdução
Parte 2 - Criação e configuração da VM
Parte 3 - Criação do Oracle Linux
Parte 4 - Configuração do Oracle Linux I
Parte 5 - Configuração do Oracle Linux II
Parte 6 - Clonagem da VM e criação dos disk image
Parte 7 - Configuração dos discos ASM e OCFS2
Parte 8 - Instalação do Oracle Clusterware
Parte 9 - Aplicação do Patch 10.2.0.5 no Oracle Clusterware
Parte 10 - Instalação Oracle Database 10g
Parte 11 - Aplicação do Patch 10.2.0.5 no Oracle Database
Parte 12 - Criação do Listener e ASM em modo cluster
Parte 13 - Criação do banco de dados

Enfim a última parte da nossa serie de instalações do Oracle RAC 10g. Nesse último post estaremos vendo a criação do banco de dados dbtst em modo cluster.

Conectado na máquina rac1 do cluster, execute o comando dbca.

[oracle@rac2 ~]$ dbca

Irá abrir o Database Configuration Assistant (DBCA), veja que ele automaticamente identifica um cluster instalado na máquina e nos fornece a opção de criar um banco de dados em modo cluster. Como nosso objeto aqui é criar o banco de dados em modo cluster, estaremos selecionando a primeira opção. Veja abaixo:

Selecione Create a Database para iniciarmos a criação de um novo banco de dados.

 

Além de identificar que existe uma instalação em modo cluster, o DBCA ainda identifica as instâncias relacionadas a ela e nos pergunta qual das delas vamos estar criando o nosso banco de dados. Selecione as duas instâncias (rac1 e rac2).

 

Aqui é o momento de fornecer o nome do novo banco de dados que no nosso será o dbtst. Fique a vontade a questão da escolha de qualquer outro nome.

 

Por hora, não estaremos instalando com o Enterprise Manager.

 

Defina uma senha para o banco de dados, aqui defini a senha oracle.

 

É nos dado a opção de armazenamento do nosso banco de dados em que é possível utilizar até três tipos. O Cluster File System geralmente ocfs2 ou qualquer outro cluster file system vendor suportador pela Oracle, o ASM (nosso caso) e com a opção de Raw Devices.

Como no artigo anterior fizemos toda a instalação do ASM e temos nosso ambiente pronto para a instalação em ASM, estaremos utilizando essa opção.  Após clique em Next e o DBUA pedi para informarmos a senha do usuário sys do ASM, que no nosso caso é oracle.

 

 

Veja abaixo os Diskgroups ORADATA1 e ORADATA2 criados no artigo anterior. Vamos estar utilizando os dois DG, por isso selecione os dois.

 

Aqui, selecione o DG +ORADATA1 para o OMF.

 

Agora é a hora da configuração da Flash Recovery Area e do Archived Log Mode. Siga os passos abaixos:

 

Clique em Browser

 

Selecione o DG ORADATA2.

 

Deverá ficar assim:

 

Habilite agora o Archived.

 

No final a sua tela do DBCA deverá estar como abaixo:

 

Aqui é fornecido a opção de criação de Services. Nesse momento não vamos estar criando nenhum serviço, apenas clique em Next.

 

Reveja os dados do banco de dados e caso tudo esteja correto clique em Next.

 

Após finalizada a instalação, execute o comando crs_stat -t e veja que agora o banco de dados dbtst aparece no cluster. Veja que as instâncias do dbtst estão em execução na máquina rac1 e rac2.

[oracle@rac1 ~]$ crs_stat -t
Name           Type           Target    State     Host
------------------------------------------------------------
ora.dbtst.db   application    ONLINE    ONLINE    rac1
ora....t1.inst application    ONLINE    ONLINE    rac1
ora....t2.inst application    ONLINE    ONLINE    rac2
ora....SM1.asm application    ONLINE    ONLINE    rac1
ora....C1.lsnr application    ONLINE    ONLINE    rac1
ora.rac1.gsd   application    ONLINE    ONLINE    rac1
ora.rac1.ons   application    ONLINE    ONLINE    rac1
ora.rac1.vip   application    ONLINE    ONLINE    rac1
ora....SM2.asm application    ONLINE    ONLINE    rac2
ora....C2.lsnr application    ONLINE    ONLINE    rac2
ora.rac2.gsd   application    ONLINE    ONLINE    rac2
ora.rac2.ons   application    ONLINE    ONLINE    rac2
ora.rac2.vip   application    ONLINE    ONLINE    rac2

Veja abaixo as instâncias ASM1 e dbtst1 sendo executadas na máquina rac1.

[oracle@rac1 ~]$ ps -ef | grep pmon | grep -v grep | awk -F"_" '{print$3}'
+ASM1
dbtst1

Abaixo mostra que o banco dbtst está funcionando normalmente. Conecte na instâncias dbtst1:

[oracle@rac1 ~]$ echo $ORACLE_SID
dbtst1
[oracle@rac1 ~]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.5.0 - Production on Wed Oct 12 17:31:49 2011

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

Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing options

SQL> select count(*) from dba_tables;

  COUNT(*)
----------
      1523

Esse é o fim da nossa série, estarei preparando a mesma série só que agora em 11g R2.

Qualquer dúvida, sugestão que queira apresentar será muito bem vinda.

Um grande abraço a todos.

, , ,

É com alegria que compartilho a vocês mais uma conquista.

Hoje prestei e passei na certificação 1Z0-536, recebendo assim o certificado “Oracle Exadata 11g Certitified Implementation Specialist”.

Uma notícia ainda melhor é que a partir de agora vou colocar post’s aqui sobre Exadata, quem estiver interessado acompanhe o blog :)

Um grande abraço e um ótimo final de semana a todos …

Certificação Exadata Flávio Soares

, , ,

Ontem ocorreu o Primeiro encontro de 2012 do Grupo de Usuários de Tecnologia Oracle do Brasil o GUOB, realizado aqui em São Paulo.

Apesar de ter chegado quase no final do evento, consegui ver a tempo o palestrante Craig A. Shallahamer que despensa comentários. Além da extrema simpatia é um grande conhecedor Oracle, principalmente em performance.

“Craig é um pesquisador, escritor e professor de milhares de profissionais Oracle. Seu foco é Oracle performance management, o que levou a publicar mais de 24 trabalhos técnicos e autoria do livros Oracle Performance Firefighting and Forecasting Oracle Performance, e colaborador regular do seu blog  A Wider View. Craig é o criador e professor do popular  Advanced Oracle Performance Analysis, Oracle Performance Firefightin e Oracle Forecasting, além  de cursos de Predictive Analysis. Depois de nove trabalhando na Oracle Corporation, em que ele co-fundou as principais tecnologias e dos Grupos de desempenho do sistema em 1998, ele deixou a Oracle para iniciar OraPub, Inc. Ele é um educador apaixonado e um instrutor envolvente. Seu estilo de apresentação divertida combina com a sua profundidade de experiências Oracle para fazer com que cada apresentação única. Um Oracle ACE Director, ele ensinou milhares de profissionais Oracle em 6 continentes em 24 países.”  http://www.guob.com.br/

Essa foi a minha primeira participação no GUOB e gostei muito, principalmente por sentir que o evento é muito mais voltado a área técnica. A própria palestra do mito Craig falou sobre o Oracle Buffer Cache Internals, que mostrou os conceitos de como o Oracle realiza o gerenciamento de dados dentro do Buffer Cache.

Consegui até uma foto com o Craig :)

, , , , ,

Está vai para quem sempre quis usar TAB no momento de fazer aquele comando no SQL*Plus.

Já imaginou digitar sel no prompt, apertar a tecla TAB e ele automaticamente completar a palavra select? Bom … isso é totalmente possível, graças ao pacote rlwrap. Além de auto completar é possível deixar um histórico de comandos no SQL*Plus. O histórico eu já mostrei a algum tempo atrás como fazer, veja aqui.

Após de você ter instalado o pacote rlwrap(é possível instalar através do yum [Red Hat, Oracle Linhx, Fedora] ou wget [Ubuntu, Debian, Suse]), veja que ele é super simples de usar. Antes de fazer a chamada para o sqlplus, basta colocar o comando rlwrap na frente, dessa forma:

oracle@oracle11g:~$ rlwrap sqlplus / as sysdba

SQL*Plus: Release 11.2.0.3.0 Production on Wed Feb 29 22:53:44 2012

Copyright (c) 1982, 2011, Oracle.  All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
With the Partitioning and Real Application Testing options

SYS@dbtst>

Pronto, a partir de agora você tem o poder de ter o histórico de todas as suas chamadas no SQL*Plus. Faça um teste você mesmo, digite o comando abaixo:

SYS@dbtst> select count(*) from dba_tables;

  COUNT(*)
----------
      2806

1 row selected.

Agora, aperta a seta para cima ? do seu teclado para ver o seu último comando digitado.

SYS@dbtst> (tecla seta de cima)
SYS@dbtst> select count(*) from dba_tables;

  COUNT(*)
----------
      2806

1 row selected.

Muito bom né?! Ok … Essa eu já tinha mostrado no último artigo do rlwrap, mais e como auto completar meus comandos? Super simples também, mais primeiro temos que criar nosso catalogo de palavras chaves que rlwrap lerá para saber o que auto completar.

Vamos então criar o arquivo chamado $ORACLE_BASE/sql.dict e nesse arquivo, vamos colocar as seguintes palavras:

select
update
delete
create
number
table

Feito isso, vamos fazer o sqlplus da seguinte forma:

[oracle@oracle11g ~]$ rlwrap -b "" -f $ORACLE_BASE/sql.dict sqlplus
SQL*Plus: Release 11.2.0.3.0 Production on Wed Feb 29 23:01:49 2012

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

Enter user-name: system@dbtst
Enter password: 

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
With the Partitioning and Real Application Testing options

SYSTEM@dbtst>

Ótimo, agora basta digitar sel, aperte a tecla TAB e veja o rlwrap auto completar o comando select

SYSTEM@dbtst>  sel [TAB]
SYSTEM@dbtst>  select

O segredo aqui está no arquivo $ORACLE_BASE/sql.dict, que funciona como um catalogo de palavras, qual comando você colocar lá o rlwrap vai auto completar.

Lembrando que o rlwrap não funciona somente com o SQL*Plus, ele também faz a mesma coisa com o rman por exemplo:

[oracle@oracle11g ~]$ rlwrap -b "" -f $ORACLE_HOME/sql.dict rman target/

Recovery Manager: Release 11.2.0.2.0 - Production on Wed Feb 29 23:07:08 2012

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

connected to target database: DBTST (DBID=2992708500)

RMAN>

Para não ter que ficar digitando esse comando enorme, gosto de criar um alias dele e colocar no meu arquivo ~/.bashrc:

alias sql='rlwrap -b "" -f $ORACLE_BASE/sql.dict sqlplus'

Feito isso basta agora executar o alias sql que o sqlplus irá abrir com o rlwrap.

[oracle@oracle11g ~]$ . .bashrc
[oracle@oracle11g ~]$ sql

SQL*Plus: Release 11.2.0.3.0 Production on Wed Feb 29 23:10:12 2012

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

Enter user-name:
, , , ,

O erro acontece quando tento alterar qualquer dos destinos de archives, como abaixo:

SQL> alter system set LOG_ARCHIVE_DEST_1='LOCATION=/u01/archive/dbtst';
*
ERROR at line 1:
ORA-02097: parameter cannot be modified because specified value is invalid
ORA-16019: cannot use LOG_ARCHIVE_DEST_1 with LOG_ARCHIVE_DEST or
LOG_ARCHIVE_DUPLEX_DEST

Solução:

1) Anular o parâmetro LOG_ARCHIVE_DEST

SQL> ALTER SYSTEM set log_archive_dest='';

System altered.

2) Definir para um destino de archive (no meu caso o primeiro) o valor que estava atribuído para o parâmetro LOG_ARCHIVE_DEST

SQL> alter system set LOG_ARCHIVE_DEST_1='LOCATION=/u01/archive/dbtst';

System altered.

Mais será que está funcionando?

SQL> select dest_id, status from v$archive_dest;

   DEST_ID STATUS
---------- ---------
	 1 VALID
	 2 INACTIVE
	 3 INACTIVE
	 4 INACTIVE
	 5 INACTIVE
	 6 INACTIVE
	 7 INACTIVE

Sim :)

, , ,

Oracle sempre surpreendendo, dessa vez com um restore em RMAN. Essa eu peguei sexta-feira passada em um cliente o ambiente era um Oracle 10g 64b em um Red Hat Linux 5.

O erro ocorria assim: Sempre quando tentava realizar um restore da base a seguinte mensagem era mostrada pelo RMAN.

RMAN-06026: some targets not found - aborting restore
RMAN-06023: no backup or copy of datafile 4 found to restore
RMAN-06023: no backup or copy of datafile 5 found to restore

Já pensei comigo, “poxa não tenho backups dos datafiles 4 e 5″ mais o problema estava ai, eu tinha o backup dos datafiles 4 e 5. Veja abaixo que quando peço para listar os backups do banco ele sinaliza o backup para os datafiles 4 e 5:

RMAN> list backup of database;

List of Backup Sets
===================

BS Key  Type LV Size       Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ -------------------
9965    Incr 0  50.13G     DISK        00:49:12     22.02.2012 14:15:11
        BP Key: 8201   Status: AVAILABLE  Compressed: YES  Tag: FULL_DB
        Piece Name: /oracle/backup/FULL_DB_1.bkp
  List of Datafiles in backup set 9965
  File LV Type Ckp SCN    Ckp Time            Name
  ---- -- ---- ---------- ------------------- ----
  1    0  Incr 92563519151 22.02.2012 14:15:11 /oradata/system01.dbf
  2    0  Incr 92563519151 22.02.2012 14:15:11 /oradata/df_tst1.dbf
  3    0  Incr 92563519151 22.02.2012 14:15:11 /oradata/sysaux01.dbf
  4    0  Incr 92563519151 22.02.2012 14:15:11 /oradata/datafiledb1.dbf
  5    0  Incr 92563519151 22.02.2012 14:15:11 /oradata/datafiledb2.dbf
  6    0  Incr 92563519151 22.02.2012 14:15:11 /oradata/users01.dbf
  7    0  Incr 92563519151 17.02.2012 14:15:11 /oradata/undotbs01.dbf

Mesmo apresentando no backup que os datafiles 4 e 5 estavam presentes não adiantava, o erro RMAN-06023 aparecia:

RMAN> RESTORE DATABASE;

using target database control file instead of recovery catalog
allocated channel: c1
channel c1: sid=321 devtype=DISK

Starting restore at 22.02.2012 15:15:21

released channel: c1
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of restore command at 22/02/2012 15:15:22
RMAN-06026: some targets not found - aborting restore
RMAN-06023: no backup or copy of datafile 4 found to restore
RMAN-06023: no backup or copy of datafile 5 found to restore

Realmente o erro era inesperado, pois eu tinha o backup:

RMAN> list backup of datafile 4;

List of Backup Sets
===================

BS Key  Type LV Size       Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ -------------------
9965    Incr 0  50.13G     DISK        00:49:12     22.02.2012 14:15:11
        BP Key: 8201   Status: AVAILABLE  Compressed: YES  Tag: FULL_DB
        Piece Name: /oracle/backup/FULL_DB_1.bkp
  List of Datafiles in backup set 9965
  File LV Type Ckp SCN    Ckp Time            Name
  ---- -- ---- ---------- ------------------- ----
  4    0  Incr 92563519151 22.02.2012 14:15:11 /oradata/datafiledb1.dbf

RMAN> list backup of datafile 5;

List of Backup Sets
===================

BS Key  Type LV Size       Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ -------------------
9965    Incr 0  50.13G     DISK        00:49:12     22.02.2012 14:15:11
        BP Key: 8201   Status: AVAILABLE  Compressed: YES  Tag: FULL_DB
        Piece Name: /oracle/backup/FULL_DB_1.bkp
  List of Datafiles in backup set 9965
  File LV Type Ckp SCN    Ckp Time            Name
  ---- -- ---- ---------- ------------------- ----
  5    0  Incr 92563519151 22.02.2012 14:15:11 /oradata/datafiledb2.dbf

Solução encontrada? Desabilitar a Flash Recovery Area. Isso mesmo, após desabilitar a flash recovery area o problema não aconteceu mais.

Mais porque? Bom …

Quando iniciamos um restore de uma base através de um backup de controlfile em que a flash recovery area está habilita o RMAN executa um implícito crosscheck e cataloga todos os objetos na flash recovery area. Com isso o RMAN vai catalagar QUALQUER objeto que estiver na flash recovery area e se qualquer um desses arquivos pertencer a uma encarnação diferente da ATUAL encarnação do controlfile então muda a atual encarnação para do arquivo que está sendo catalogado.

Isso de acordo com a Oracle evita ao banco de dados restaurar backups que pertencem a uma velha encarnação. Para mais detalhes veja a nota 965122.1 do suporte Oracle.

Após desabilitado a flash recovery area, meu restore funcionou perfeitamente :)

, , , ,

Olá Pessoal !

Hoje ataquei meus dotes artísticos (que são péssimos) e resolvi criar dois papel de parede da Oracle.

Ficou legalzinho, estou até usando no meu note :)

Segue os wallpaper oracle abaixo(clique para ampliar)

Um grande abraço a todos.

 

, , ,

O yum é uma ferramente extremamente importante que economiza tempo de configuração e instalação.

Para quem não conhece, YUM (Yellow dog Updater, Modified) é uma ferramenta para gerenciar, instalar e remover pacotes (rpm) de instalações linux e o melhor, ele faz um calculo eficaz e resolve aquelas dependências de pacotes que gastamos um tempão para resolver.

Para configurar o PUBLIC YUM (repositório publico yum oracle) no Oracle Linux, além de ter habilitado a internet no servidor é somente preciso algumas poucas configurações. Para configurar o public YUM no Oracle Linux 5, faça:

cd /etc/yum.repos.d
wget http://public-yum.oracle.com/public-yum-el5.repo

Feito isso, um arquivo será criado no diretório /etc/yum.repos.d. Edite o arquivo e habilite qual repositório você precisa, no meu caso eu quero habilitar o repositório do Oracle Linux 5 64bits, então eu mudo o ol5_u5_base de enable=0 para enable=1 e pronto seu yum está instalado.

[ol5_u5_base]
name=Oracle Linux $releasever - U5 - x86_64 - base
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL5/5/base/x86_64/
gpgkey=http://public-yum.oracle.com/RPM-GPG-KEY-oracle-el5
gpgcheck=1
enabled=1

Para utilizar o YUM é mais simples do que configurar. Vamos a um exemplo, estou instalado o Oracle 11gR2 no Oracle Linux e preciso instalar o pacote rpm libaio x86_64, seja como instalar pelo YUM.

# yum search libaio

...
============================= N/S Matched: libaio ==============================

libaio.i686 : Linux-native asynchronous I/O access library
libaio.x86_64 : Linux-native asynchronous I/O access library
libaio-devel.i686 : Development files for Linux-native asynchronous I/O accesslibaio-devel.x86_64 : Development files for Linux-native asynchronous I/O access

Com encontramos nosso pacote através do search do yum, vamos instalar. Basta executar.

yum install libaio.x86_64

Pronto, seu pacote instalado.

, ,