quarta-feira, 2 de abril de 2014

Oracle GoldenGate - Parte 2



Olá Jovens

Agora que já conhecemos os processos do GG, bora lá colocar a mão na massa?

Se quiser relembrar, é só ir aqui: Oracle GoldenGate - Parte 1

Para começar, vamos identificar o cenário que eu teria que trabalhar: Migrar bases SAP que estavam em Oracle 10g/Solaris (10.2.0.3) para o novo datacenter com bases 11g Linux RedHat (11.2.0.3).

Detalhe: Sem downtime algum.

Então, vamos começar...

Obviamente precisamos baixar o GG. Faça isso no E-Delivery (https://edelivery.oracle.com/), na opção de "Fusion Middleware". Ou direto na aba de patches do MOS.

No MOS, pode ser que você encontre algumas versões que precisam de senha para download. Nesse caso, só com um SR para te fornecerem isso.

Selecione as versões aderentes a seu ambiente. Não vou colocar link's diretos pois cada caso é um caso.

Pode conferir informações de versão do GG aqui: Versões

Procure ali a sua versão e seja feliz.

No meu caso, vou utilizar:
       Para o Solaris: p17670495_1121016_SOLARIS64.zip
       Para o RH: p17828123_1121016_Linux-x86-64.zip

Agora sim, let's go boys and girls. Vamos instalar o GG.

Cuidado. Atenção. Importante... É preciso de muita, mas muita atenção mesmo na instalação pois é um procedimento muitooooooo complicado. Acompanhe abaixo...

Esse procedimento, deve ser realizado nos dois servidores - SOURCE e TARGET.

1) Crie uma pasta que será o seu GG_HOME. Aqui escolha o local que quiser.
       mkdir -p /oracle/oradata/QSP/gg11
      
       Manda no .bash_profile para facilitar:
       GG_HOME=/oracle/oradata/QSP/gg11; export GG_HOME
      
2) Copie o seu zip para o GG_HOME.
       cp -v p17670495_1121016_SOLARIS64.zip (ou p17828123_1121016_Linux-x86-64.zip) $GG_HOME/.
      
3) Descompacte o arquivo
       unzip p17670495_1121016_SOLARIS64.zip (ou p17828123_1121016_Linux-x86-64.zip)
      
4) Descompacte novamente, agora o arquivo ".tar" gerado no $GG_HOME.
       Solaris: tar -xvf fbo_ggs_Solaris_sparc_ora10g_64bit.tar
       RH: tar -xvf fbo_ggs_Linux_x64_ora11g_64bit.tar

5) Agora na base de dados, vamos criar um user para a replicação.

           As bases devem estar em modo archive.
           archive log list;

       Desabilite e faça um purge na recyclebin.
           alter system set recyclebin=off scope=both;
           show parameter bin
           purge recyclebin;
            
       Habilite o minimal supplemental logging.
             ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
             ALTER SYSTEM SWITCH LOGFILE;

             SELECT SUPPLEMENTAL_LOG_DATA_MIN FROM V$DATABASE;
             SUPPLEME
             --------
             YES

       Dá uma olhadinha na Undo também. Coloque a maior retenção que puder.
UNDO_RETENTION=86400

       Crie a tablespace e o usuário que será utilizado pelos processos GG.
             create tablespace gg_data
             datafile '/oracle/oradata/QSP/sapdata2/sr3_4/gg_data01.dbf'
size 1G
             autoextend on next 128M maxsize 10G;
      
      
             create user gguser
identified by COLOQUE_UMA_SENHA_DECENTE_POR_FAVOR
default tablespace gg_data;
            
             grant create session, connect, resource to gguser;
             grant select any dictionary, FLASHBACK ANY TABLE to gguser; 
             grant SELECT ANY TABLE, CREATE TABLE, CREATE VIEW to gguser;
             grant execute on utl_file to gguser;
             grant execute on dbms_flashback to gguser;
             grant create any table to gguser;
             grant insert any table to gguser;
             grant update any table to gguser;
             grant delete any table to gguser;
             grant drop any table to gguser;


6) Execute os scripts iniciais do GG.

       cd $GG_HOME - Temos que estar no diretório dos scripts do GG.
      
       sqlplus /nolog
       conn /as sysdba

       
       Observações: 

       Quando solicitado, você terá que entrar com o nome do user que acabou de criar acima. 
       Executar nessa ordem.
      
      
       SQL> @marker_setup.sql
             Enter Oracle GG schema name: gguser
       SQL> @ddl_setup.sql
             Enter Oracle GG schema name: gguser
       SQL> @role_setup.sql
             Enter GG schema name: gguser
      
             -- Ao final do script, executar:
             SQL> GRANT GGS_GGSUSER_ROLE TO gguser;
      
       SQL> @ddl_enable.sql
       SQL> @ddl_pin.sql gguser
      
       Importante: No último script, o erro abaixo pode aparecer. Para correção:
      
             Erro: PLS-00201: identifier 'DBMS_SHARED_POOL.KEEP' must be declared
             Correção: @?/rdbms/admin/dbmspool.sql
            
             Execute o @ddl_pin.sql novamente.


Esse conjunto de scripts cria todo o ambiente necessário para realizar as replicações. 

Complicadíssimo né. AHAHAHAHAHAHHAHA, é isso. O GG está instalado e pronto para ser configurado.

Ahhh que bom se tudo fosse assim, difícil não é?     
      
Agora, teste a instalação:

cd $GG_HOME

./ggsci
            
Oracle GG Command Interpreter for Oracle
Version 11.2.1.0.16 17781910 OGGCORE_11.2.1.0.0OGGBP_PLATFORMS_131205.0902_FBO
Solaris, sparc, 64bit (optimized), Oracle 10g on Dec  6 2013 16:31:39

Copyright (C) 1995, 2013, Oracle and/or its affiliates. All rights reserved.

GGSCI (mario) 1>
      
      
E se der erro? Calma jovem, se der erro nó resolvemos. Afinal somos destemidos DBA's não é mesmo?

Um erro que eu recebi em meus testes foi no momento de executar o GGSCI:
            
Erro: ./ggsci: error while loading shared libraries: libnnz11.so: cannot open shared object file: No such file or directory
      
Para corrigir, pode criar os links simbólicos abaixo:
       ln -s $ORACLE_HOME/lib/libnnz10.so $GG_HOME/libnnz11.so
       ln -s $ORACLE_HOME/lib/libclntsh.so.10.1 $GG_HOME/libclntsh.so.11.1
            
Tenta de novo. Deu certo? Deu né, agora sim...

Estamos prontos para as configurações.

Mas isso jovem mancebo, vai ser em outro artigo...

Abraço
Mario

Nenhum comentário:

Postar um comentário

Isso te ajudou? Comente...

Postagem em destaque

[ORACLE] Embedding ONNX model for Vector Search tests with Oracle Database 23ai

Hello, everyone. How's it going? Today, I'm going to show you how to load an ONNX model into the Oracle 23ai database for your vecto...