Você está na página 1de 60

Oracle Zero Downtime Migration

com Golden Gate


Oracle Enterprise Linux 7.5
Oracle Database 11.2.0.4 e 12.2.0.1
Oracle GoldenGate 12.3.0.1

Ricardo Portilho Proni


ricardo@nervinformatica.com.br

Esta obra está licenciada sob a licença


Creative Commons Atribuição-SemDerivados 3.0 Brasil.
Para ver uma cópia desta licença, visite
http://creativecommons.org/licenses/by-nd/3.0/br/.
Comandos no Treinamento
Comando com o usuário root:
# ls -lh

Comando com um usuário oracle:


$ ls -lh

Comando no Oracle Database:


SQL> SELECT STATUS FROM V$INSTANCE;

Comando no Oracle Golden Gate:


GGSCI (nerv01.localdomain) 1> INFO ALL

Algo deve ser alterado de acordo com sua máquina:


Hostname: nerv01.localdomain

Quando algo dá errado propositalmente:


O que aconteceu?

2
rlwrap
# wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
# yum -y install epel-release-latest-7.noarch.rpm
# yum -y install rlwrap

$ rlwrap sqlplus / AS SYSDBA


$ rlwrap rman TARGET /
$ rlwrap lsnrctl
$ rlwrap dgmgrl SYS/Nerv2017@ORCL

$ cd $ORACLE_BASE/ogg-11g
$ rlwrap ./ggsci

3
glogin.sql
$ cat $ORACLE_HOME/sqlplus/admin/glogin.sql

SET PAGESIZE 1000
SET LINESIZE 220
SET TIMING ON
SET TIME ON
SET SQLPROMPT '&_user@&_connect_identifier> '
DEFINE _EDITOR=vi

09:08:44 SYS@ORCL> SELECT 1 FROM DUAL;

1
----------
1

Elapsed: 00:00:00.00
09:09:00 SYS@ORCL>

4
Ambiente
Origem
- HOSTNAME nerv01
- Oracle Enterprise Linux 7.5
- Oracle Enterprise Edition 11.2.0.4
- ORACLE_HOME: /u01/app/oracle/product/11.2.0.4/db_1
- Listener: Porta 1522
- Banco de Dados: LEGADO
- Banco de Dados em Filesystem
- Variáveis de ambiente: source /home/oracle/.bash_profile-11gR2

Destino
- HOSTNAME nerv02
- Oracle Enterprise Linux 7.5
- Oracle Standard Edition 2 12.2.0.1
- ORACLE_HOME: /u01/app/oracle/product/12.2.0.1/db_2
- Listener: Porta 1523
- Banco de Dados: ORCLSE2, PDB NOVO
- Banco de Dados em Filesystem
- Banco de Dados em OMF
- Variáveis de ambiente: source /home/oracle/.bash_profile-12cR2-SE2

5
Estratégia de Migração

6
Estratégia de Migração
- Manter a Aplicação funcionando;
- Instalar Oracle Database Software no servidor nerv02;
- Criar Instância e Banco de Dados no servidor nerv02;
- Criar LISTENER no servidor nerv02;

- Instalar Oracle Golden Gate 12.3.0.1 (para Oracle Database 11g) no servidor nerv01;
- Instalar Oracle Golden Gate 12.3.0.1 (para Oracle Database 12c) no servidor nerv02;
- Iniciar Oracle Golden Gate no servidor nerv01;
- Iniciar Oracle Golden Gate no servidor nerv02;
- Criar TABLESPACEs no servidor nerv02;
- Criar SCHEMAs no servidor nerv02;
- Exportar DDL dos objetos (exceto INDEX e CONSTRAINT) do SCHEMA no servidor nerv01;
- Importar DDL dos objetos (exceto INDEX e CONSTRAINT) do SCHEMA no servidor nerv02;

7
Estratégia de Migração
- Configurar EXTRACT de Extração INITIAL LOAD (EXT1) no servidor nerv01;
- Configurar REPLICAT de SPECIAL RUN (REP1) no servidor nerv02;
- Configurar EXTRACT de Extração de Redo Logs (EXT2) no servidor nerv01;
- Configurar REPLICAT (REP2) no servidor nerv02;
- Iniciar EXTRACT EXT2 no servidor nerv01;
- Iniciar EXTRACT EXT1 no servidor nerv01;
- Aguardar o EXTRACT EXT1 e o REPLICAT REP1 finalizarem;
- Exportar DDL (apenas INDEX) dos objetos do SCHEMA no servidor nerv01;
- Importar DDL (apenas INDEX) dos objetos do SCHEMA no servidor nerv02;
- Iniciar o REP2;
- Aguardar o REP2 estar com baixo DELAY;
- Parar a Aplicação;
- Aguardar o REP2 finalizar;
- Parar EXTRACT EXT2;
- Parar REPLICAT REP2;
- Exportar DDL (só CONSTRAINTs) dos objetos do SCHEMA no servidor nerv01;
- Importar DDL (só CONSTRAINTs) dos objetos do SCHEMA no servidor nerv02;
- Direcionar a Aplicação para o servidor nerv02.

8
Lab 1 – Instalação Golden Gate
Hands On !

9 9
Lab 1.1: Instalação Golden Gate
Na máquina nerv01, inicie a instalação do Golden Gate.
$ cd /home/oracle/
$ source .bash_profile-11gR2
$ unzip -q 123014_fbo_ggs_Linux_x64_shiphome.zip
$ cd fbo_ggs_Linux_x64_shiphome/Disk1
$ ./runInstaller

10
Lab 1.2: Instalação Golden Gate

11
Lab 1.3: Instalação Golden Gate

12
Lab 1.4: Instalação Golden Gate

13
Lab 1.5: Instalação Golden Gate

14
Lab 1.6: Instalação Golden Gate
Na máquina nerv02, inicie a instalação do Golden Gate.
$ cd /home/oracle/
$ source .bash_profile-12cR2-SE2
$ unzip -q 123014_fbo_ggs_Linux_x64_shiphome.zip
$ cd fbo_ggs_Linux_x64_shiphome/Disk1
$ ./runInstaller

15
Lab 1.7: Instalação Golden Gate

16
Lab 1.8: Instalação Golden Gate

17
Lab 1.9: Instalação Golden Gate

18
Lab 1.10: Instalação Golden Gate

19
Lab 1.11: Instalação Golden Gate
Na máquina nerv01, verifique se o MANAGER do Golden Gate está ativo.
$ cd $ORACLE_BASE/ogg-11g
$ rlwrap ./ggsci
GGSCI (nerv01.localdomain) 1> INFO ALL
GGSCI (nerv01.localdomain) 1> EXIT

Na máquina nerv02, verifique se o MANAGER do Golden Gate está ativo.


$ cd $ORACLE_BASE/ogg-12c
$ rlwrap ./ggsci
GGSCI (nerv02.localdomain) 1> INFO ALL
GGSCI (nerv02.localdomain) 1> EXIT

20
Lab 1.12: Instalação Golden Gate
Na máquina nerv01, habilite os pré-requisitos do Golden Gate.
$ rlwrap sqlplus / AS SYSDBA
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
SQL> ALTER SYSTEM SET ENABLE_GOLDENGATE_REPLICATION=TRUE;
SQL> ALTER SYSTEM SET RECYCLEBIN=OFF SCOPE=SPFILE;
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP;

Na máquina nerv01, crie o SCHEMA para o Golden Gate.


$ cd $ORACLE_BASE/ogg-11g
SQL> CREATE TABLESPACE OGG DATAFILE '/u01/app/oracle/oradata/LEGADO/ogg01.dbf' SIZE 1G;
SQL> CREATE USER OGG IDENTIFIED BY Nerv2018 DEFAULT TABLESPACE OGG TEMPORARY TABLESPACE TEMP;
SQL> GRANT CONNECT, RESOURCE, UNLIMITED TABLESPACE TO OGG;
SQL> GRANT EXECUTE ON UTL_FILE TO OGG;
SQL> @marker_setup.sql
OGG <enter>
SQL> @ddl_setup.sql
OGG <enter>
SQL> @role_setup.sql
OGG <enter>
SQL> @ddl_enable.sql

21
Lab 1.13: Instalação Golden Gate
Na máquina nerv02, habilite os pré-requisitos do Golden Gate.
$ rlwrap sqlplus / AS SYSDBA
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
SQL> ALTER SYSTEM SET ENABLE_GOLDENGATE_REPLICATION=TRUE SCOPE=BOTH;
SQL> ALTER SYSTEM SET RECYCLEBIN=OFF SCOPE=SPFILE;
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP;
SQL> ALTER SESSION SET CONTAINER = NOVO;
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;

Na máquina nerv02, crie o SCHEMA para o Golden Gate.


$ cd $ORACLE_BASE/ogg-12c
$ rlwrap sqlplus / AS SYSDBA
SQL> ALTER SESSION SET CONTAINER = NOVO;
SQL> CREATE TABLESPACE OGG;
SQL> CREATE USER OGG IDENTIFIED BY Nerv2018 DEFAULT TABLESPACE OGG TEMPORARY TABLESPACE TEMP;
SQL> GRANT CONNECT, RESOURCE, UNLIMITED TABLESPACE TO OGG;
SQL> GRANT EXECUTE ON UTL_FILE TO OGG;
SQL> @marker_setup.sql
OGG <enter>
SQL> @role_setup.sql
OGG <enter>

22
Lab 2 – Configuração Carga Inicial
Hands On !

23 23
Lab 2.1: Configuração Carga Inicial
Na máquina nerv01, verifique os comandos DDL para criação do SCHEMA.
SQL> SET LONG 9000
SQL> SELECT DBMS_METADATA.GET_DDL('USER','SCOTT') FROM DUAL;
SQL> SELECT DBMS_METADATA.GET_GRANTED_DDL('ROLE_GRANT','SCOTT') FROM DUAL;
SQL> SELECT DBMS_METADATA.GET_GRANTED_DDL('SYSTEM_GRANT','SCOTT') FROM DUAL;

Na máquina nerv02, execute os comandos DDL para criação do SCHEMA.

24
Lab 2.2: Configuração Carga Inicial
Na máquina nerv01, copie os objetos (exceto CONSTRAINTs e INDEX) para a máquina nerv02.

25
Lab 2.3: Configuração Carga Inicial

26
Lab 2.4: Configuração Carga Inicial

27
Lab 2.5: Configuração Carga Inicial

28
Lab 2.6: Configuração Carga Inicial

29
Lab 2.7: Configuração Carga Inicial
Confira o log ao término da execução.
O que aconteceu?

30
Lab 2.8: Configuração Carga Inicial
Na máquina nerv01, configure o processo EXTRACT de Carga Inicial.
GGSCI (nerv01.localdomain) 1> ADD EXTRACT ext1, SOURCEISTABLE

GGSCI (nerv01.localdomain) 1> EDIT PARAMS ext1


EXTRACT ext1
USERID OGG@LEGADO, PASSWORD Nerv2018
RMTHOST nerv02, mgrport 7810
RMTTASK REPLICAT, GROUP rep1
TABLE SCOTT.*;

GGSCI (nerv01.localdomain) 1> INFO ALL

Na máquina nerv02, execute o processo REPLICAT de Carga inicial.


GGSCI (nerv02.localdomain) 1> ADD REPLICAT rep1, SPECIALRUN

GGSCI (nerv02.localdomain) 1> EDIT PARAMS rep1


REPLICAT rep1
ASSUMETARGETDEFS
USERID OGG@NOVO, PASSWORD Nerv2018
MAP SCOTT.*, TARGET SCOTT.*;

GGSCI (nerv02.localdomain) 1> INFO ALL

31
Lab 3 – Configuração Carga Incremental
Hands On !

32 32
Lab 3.1: Config. Carga Incremental
Na máquina nerv01, configure o processo EXTRACT de Carga Incremental.
GGSCI (nerv01.localdomain) 1> ADD EXTRACT ext2, TRANLOG, BEGIN NOW
GGSCI (nerv01.localdomain) 1> ADD EXTTRAIL /u01/app/oracle/ogg-12c/dirdat/lt, EXTRACT ext2

GGSCI (nerv01.localdomain) 1> EDIT PARAMS ext2


EXTRACT ext2
USERID OGG@LEGADO, PASSWORD Nerv2018
RMTHOST nerv02, MGRPORT 7810
RMTTRAIL /u01/app/oracle/ogg-12c/dirdat/lt
TRANLOGOPTIONS EXCLUDEUSER OGG
DDL INCLUDE MAPPED OBJNAME SCOTT.*;
TABLE SCOTT.*;

GGSCI (nerv01.localdomain) 1> INFO ALL


Os dois processos EXTRACT são exibidos por este comando?

GGSCI (nerv01.localdomain) 1> INFO EXTRACT ext1


GGSCI (nerv01.localdomain) 1> INFO EXTRACT ext2
GGSCI (nerv01.localdomain) 1> INFO EXTRACT ext1, DETAIL
GGSCI (nerv01.localdomain) 1> INFO EXTRACT ext2, DETAIL
GGSCI (nerv01.localdomain) 1> STATS EXTRACT ext1
GGSCI (nerv01.localdomain) 1> STATS EXTRACT ext2

33
Lab 3.2: Config. Carga Incremental
Na máquina nerv02, configure o processo REPLICAT de Carga Incremental.
GGSCI (nerv02.localdomain) 1> EDIT PARAMS ./GLOBAL
GGSCHEMA OGG CHECKPOINTTABLE OGG.CHECKPOINT

GGSCI (nerv02.localdomain) 1> DBLOGIN USERID OGG@NOVO, PASSWORD Nerv2018


GGSCI (nerv02.localdomain) 1> ADD CHECKPOINTTABLE OGG.CHECKPOINT
GGSCI (nerv02.localdomain) 1> ADD REPLICAT REP2, EXTTRAIL /u01/app/oracle/ogg-12c/dirdat/lt,
CHECKPOINTTABLE OGG.CHECKPOINT

GGSCI (nerv02.localdomain) 1> EDIT PARAMS rep2


REPLICAT rep2
HANDLECOLLISIONS
ASSUMETARGETDEFS
USERID OGG@NOVO, PASSWORD Nerv2018
DISCARDFILE /u01/app/oracle/ogg-12c/dircrd/rep2_discard.txt, APPEND, MEGABYTES 10
DDL
map SCOTT.*, target SCOTT.*;

GGSCI (nerv02.localdomain) 1> INFO REPLICAT rep1, DETAIL


GGSCI (nerv02.localdomain) 1> INFO REPLICAT rep2, DETAIL
GGSCI (nerv02.localdomain) 1> STATS REPLICAT rep1
GGSCI (nerv02.localdomain) 1> STATS REPLICAT rep2

34
Lab 4 – Executar Carga Inicial
Hands On !

35 35
35
Lab 4.1: Executar Carga Inicial
Na máquina nerv01, inicie o EXTRACT Incremental, e acompanhe o Log do Golden Gate.
$ tail -f /u01/app/oracle/ogg-11g/ggserr.log
GGSCI (nerv01.localdomain) 1> START EXTRACT ext2
GGSCI (nerv01.localdomain) 1> INFO ALL
GGSCI (nerv01.localdomain) 1> INFO EXTRACT ext2
GGSCI (nerv01.localdomain) 1> INFO EXTRACT ext2, DETAIL
GGSCI (nerv01.localdomain) 1> STATS EXTRACT ext2
O que aconteceu?

Na máquina nerv01, execute uma alteração de dados.


$ rlwrap sqlplus SCOTT/TIGER
SQL> SELECT * FROM EMP;
SQL> DELETE FROM EMP WHERE EMPNO IN (7369, 7499);
SQL> COMMIT;
SQL> SELECT * FROM EMP;
GGSCI (nerv01.localdomain) 1> STATS EXTRACT ext2

36
Lab 4.2: Executar Carga Inicial
Na máquina nerv01, inicie o EXTRACT Inicial, e acompanhe o Log do Golden Gate.
$ tail -f /u01/app/oracle/ogg-11g/ggserr.log
GGSCI (nerv01.localdomain) 1> START EXTRACT ext1
GGSCI (nerv01.localdomain) 1> INFO ALL
GGSCI (nerv01.localdomain) 1> INFO EXTRACT ext1
GGSCI (nerv01.localdomain) 1> INFO EXTRACT ext1, DETAIL
GGSCI (nerv01.localdomain) 1> STATS EXTRACT ext1

Na máquina nerv02, acompanhe o progresso do REPLICAT Inicial.


$ tail -f /u01/app/oracle/ogg-12c/ggserr.log
GGSCI (nerv02.localdomain) 1> INFO ALL
GGSCI (nerv02.localdomain) 1> INFO REPLICAT rep1
GGSCI (nerv02.localdomain) 1> INFO REPLICAT rep1, DETAIL
GGSCI (nerv02.localdomain) 1> STATS REPLICAT rep1
O que aconteceu?

37
Lab 5 – Executar Carga Incremental
Hands On !

38 38
Lab 5.1: Executar Carga Incremental
Na máquina nerv01, após o término da da execução do REPLICAT Inicial, crie os INDEX.
Confira o log ao término da execução.

39
Lab 5.2: Executar Carga Incremental
Na máquina nerv02, inicie o REPLICAT Incremental.
$ tail -f /u01/app/oracle/ogg-12c/ggserr.log
GGSCI (nerv02.localdomain) 1> START REPLICAT rep2
GGSCI (nerv02.localdomain) 1> INFO ALL
GGSCI (nerv02.localdomain) 1> INFO REPLICAT rep2
GGSCI (nerv02.localdomain) 1> INFO REPLICAT rep2, DETAIL
GGSCI (nerv02.localdomain) 1> STATS REPLICAT rep2

Na máquina nerv01, acompanhe o progresso do EXTRACT Incremental.


$ tail -f /u01/app/oracle/ogg-11g/ggserr.log
GGSCI (nerv01.localdomain) 1> INFO ALL
GGSCI (nerv01.localdomain) 1> INFO EXTRACT ext2
GGSCI (nerv01.localdomain) 1> INFO EXTRACT ext2, DETAIL
GGSCI (nerv01.localdomain) 1> STATS EXTRACT ext2

Compare os dados entre as máquinas nerv01 e nerv02.


nerv01:
$ rlwrap sqlplus SCOTT/TIGER@LEGADO
SQL> SELECT * FROM SCOTT.EMP;

nerv02:
$ rlwrap sqlplus SCOTT/TIGER@NOVO
SQL> SELECT * FROM SCOTT.EMP;

40
Lab 6 – Finalizar Replicação
Hands On !

41 41
Lab 6.1: Finalizar Replicação
Na máquina nerv01, pare o EXTRACT Incremental.
$ tail -f /u01/app/oracle/ogg-11g/ggserr.log
GGSCI (nerv01.localdomain) 1> INFO ALL
GGSCI (nerv01.localdomain) 1> STOP EXTRACT ext2
GGSCI (nerv01.localdomain) 1> INFO ALL

Na máquina nerv02, pare o REPLICAT incremental.


$ tail -f /u01/app/oracle/ogg-12c/ggserr.log
GGSCI (nerv02.localdomain) 1> INFO ALL
GGSCI (nerv02.localdomain) 1> INFO REPLICAT rep2
GGSCI (nerv02.localdomain) 1> INFO REPLICAT rep2, DETAIL
GGSCI (nerv02.localdomain) 1> STATS REPLICAT rep2
GGSCI (nerv02.localdomain) 1> SEND REPLICAT rep2 GETLAG
GGSCI (nerv02.localdomain) 1> STOP REPLICAT rep2
GGSCI (nerv02.localdomain) 1> INFO ALL

Compare os dados entre as máquinas nerv01 e nerv02.


nerv01:
$ rlwrap sqlplus SCOTT/TIGER@LEGADO
SQL> SELECT * FROM SCOTT.EMP;

nerv02:
$ rlwrap sqlplus SCOTT/TIGER@NOVO
SQL> SELECT * FROM SCOTT.EMP;

42
Lab 6.2: Finalizar Replicação
Na máquina nerv01, migre as CONSTRAINTs da máquina nerv02.
Confira o log ao término da execução.

43
Lab 7 – Agora com um SCHEMA maior...
Hands On !

44 44
Lab 7.1: Configuração Carga Inicial
Na máquina nerv02, crie a tablespace SOE.
$ rlwrap sqlplus / AS SYSDBA
SQL> ALTER SESSION SET CONTAINER = NOVO;
SQL> CREATE TABLESPACE SOE;

Na máquina nerv01, verifique os comandos DDL para criação do SCHEMA.


$ rlwrap sqlplus / AS SYSDBA
SQL> SET LONG 9000
SQL> SELECT DBMS_METADATA.GET_DDL('USER','SOE') FROM DUAL;
SQL> SELECT DBMS_METADATA.GET_GRANTED_DDL('ROLE_GRANT','SOE') FROM DUAL;
SQL> SELECT DBMS_METADATA.GET_GRANTED_DDL('SYSTEM_GRANT','SOE') FROM DUAL;

Na máquina nerv02, execute os comandos DDL para criação do SCHEMA.

45
Lab 7.2: Configuração Carga Inicial
Na máquina nerv01, copie os objetos (exceto CONSTRAINTS e INDEX) do SCHEMA SOE para a
máquina nerv02.
Confira o log ao término da execução.

46
Lab 7.3: Configuração Carga Inicial

47
Lab 7.8: Configuração Carga Inicial
Na máquina nerv01, configure o processo EXTRACT de Carga Inicial.
GGSCI (nerv01.localdomain) 1> ADD EXTRACT ext3, SOURCEISTABLE

GGSCI (nerv01.localdomain) 1> EDIT PARAMS ext3


EXTRACT ext3
USERID OGG@LEGADO, PASSWORD Nerv2018
RMTHOST nerv02, MGRPORT 7810
RMTTASK REPLICAT, GROUP rep3
TABLE SOE.ORDERENTRY_METADATA;
TABLE SOE.PRODUCT_DESCRIPTIONS;
TABLE SOE.LOGON;
TABLE SOE.PRODUCT_INFORMATION;
TABLE SOE.INVENTORIES;
TABLE SOE.ORDERS;
TABLE SOE.ORDER_ITEMS;
TABLE SOE.WAREHOUSES;
TABLE SOE.CARD_DETAILS;
TABLE SOE.ADDRESSES;
TABLE SOE.CUSTOMERS;

GGSCI (nerv01.localdomain) 1> INFO ALL

48
Lab 7.9: Configuração Carga Inicial
Na máquina nerv02, configure o processo REPLICAT de Carga Inicial.
GGSCI (nerv02.localdomain) 1> ADD REPLICAT rep3, SPECIALRUN

GGSCI (nerv02.localdomain) 1> EDIT PARAMS rep3


REPLICAT rep3
ASSUMETARGETDEFS
USERID OGG@NOVO, PASSWORD Nerv2018
map SOE.*, target SOE.*;

GGSCI (nerv02.localdomain) 1> INFO ALL

49
Lab 7.10: Configuração Carga Incremental
Na máquina nerv01, configure o processo EXTRACT de Carga Incremental.
GGSCI (nerv01.localdomain) 1> ADD EXTRACT ext4, TRANLOG, BEGIN NOW
GGSCI (nerv01.localdomain) 1> ADD EXTTRAIL /u01/app/oracle/ogg-12c/dirdat/in, EXTRACT ext4

GGSCI (nerv01.localdomain) 1> EDIT PARAMS ext4


EXTRACT ext4
USERID OGG@LEGADO, PASSWORD Nerv2018
RMTHOST nerv02, MGRPORT 7810
RMTTRAIL /u01/app/oracle/ogg-12c/dirdat/in
TRANLOGOPTIONS EXCLUDEUSER OGG
DDL INCLUDE MAPPED OBJNAME SOE.*;
TABLE SOE.*;

GGSCI (nerv01.localdomain) 1> INFO ALL


GGSCI (nerv01.localdomain) 1> INFO EXTRACT ext3, DETAIL
GGSCI (nerv01.localdomain) 1> INFO EXTRACT ext4, DETAIL
GGSCI (nerv01.localdomain) 1> STATS EXTRACT ext3
GGSCI (nerv01.localdomain) 1> STATS EXTRACT ext4

50
Lab 7.11: Configuração Carga Incremental
Na máquina nerv02, configure o processo REPLICAT de Carga Incremental.
GGSCI (nerv02.localdomain) 1> ADD REPLICAT rep4, EXTTRAIL /u01/app/oracle/ogg-12c/dirdat/in,
CHECKPOINTTABLE OGG.CHECKPOINT

GGSCI (nerv02.localdomain) 1> EDIT PARAMS rep4


REPLICAT rep4
HANDLECOLLISIONS
ASSUMETARGETDEFS
USERID OGG@NOVO, PASSWORD Nerv2018
DISCARDFILE /u01/app/oracle/ogg-12c/dircrd/rep4_discard.txt, append, MEGABYTES 10
DDL
MAP SOE.*, TARGET SOE.*;

GGSCI (nerv02.localdomain) 1> INFO ALL


GGSCI (nerv02.localdomain) 1> INFO REPLICAT rep3, DETAIL
GGSCI (nerv02.localdomain) 1> INFO REPLICAT rep4, DETAIL
GGSCI (nerv02.localdomain) 1> STATS REPLICAT rep3
GGSCI (nerv02.localdomain) 1> STATS REPLICAT rep4

51
Lab 7.12: Executar Carga Inicial
Na máquina nerv01, habilite o TRANDATA.
GGSCI (nerv01.localdomain as OGG@LEGADO) 1> DBLOGIN USERID OGG@LEGADO, PASSWORD Nerv2018
GGSCI (nerv01.localdomain as OGG@LEGADO) 1> ADD TRANDATA SOE.ORDERENTRY_METADATA ALLCOLS
GGSCI (nerv01.localdomain as OGG@LEGADO) 1> ADD TRANDATA SOE.PRODUCT_DESCRIPTIONS ALLCOLS
GGSCI (nerv01.localdomain as OGG@LEGADO) 1> ADD TRANDATA SOE.LOGON ALLCOLS
GGSCI (nerv01.localdomain as OGG@LEGADO) 1> ADD TRANDATA SOE.PRODUCT_INFORMATION ALLCOLS
GGSCI (nerv01.localdomain as OGG@LEGADO) 1> ADD TRANDATA SOE.INVENTORIES ALLCOLS
GGSCI (nerv01.localdomain as OGG@LEGADO) 1> ADD TRANDATA SOE.ORDERS ALLCOLS
GGSCI (nerv01.localdomain as OGG@LEGADO) 1> ADD TRANDATA SOE.ORDER_ITEMS ALLCOLS
GGSCI (nerv01.localdomain as OGG@LEGADO) 1> ADD TRANDATA SOE.WAREHOUSES ALLCOLS
GGSCI (nerv01.localdomain as OGG@LEGADO) 1> ADD TRANDATA SOE.CARD_DETAILS ALLCOLS
GGSCI (nerv01.localdomain as OGG@LEGADO) 1> ADD TRANDATA SOE.ADDRESSES ALLCOLS
GGSCI (nerv01.localdomain as OGG@LEGADO) 1> ADD TRANDATA SOE.CUSTOMERS ALLCOLS

52
Lab 7.13: Executar Carga Inicial
Na máquina nerv01, inicie o EXTRACT Incremental, e acompanhe o Log do Golden Gate.
$ tail -f /u01/app/oracle/ogg-11g/ggserr.log
GGSCI (nerv01.localdomain) 1> START EXTRACT ext4
GGSCI (nerv01.localdomain) 1> INFO ALL
GGSCI (nerv01.localdomain) 1> INFO EXTRACT ext4
GGSCI (nerv01.localdomain) 1> INFO EXTRACT ext4, DETAIL
GGSCI (nerv01.localdomain) 1> STATS EXTRACT ext4

Na máquina nerv01, mantenha a aplicação funcionando.


$ cd /home/oracle/swingbench/bin
$ ./charbench -uc 10 -cs //nerv02:1522/LEGADO -c ../configs/SOE_Server_Side_V2.xml -u SOE -p
SOE -min 500 -max 1000

Na máquina nerv01, acompanhe o EXTRACT Incremental.


GGSCI (nerv02.localdomain) 1> STATS EXTRACT ext4

53
Lab 7.14: Executar Carga Inicial
Na máquina nerv01, inicie o EXTRACT Inicial, e acompanhe o Log do Golden Gate.
$ tail -f /u01/app/oracle/ogg-11g/ggserr.log
GGSCI (nerv01.localdomain) 1> START EXTRACT ext3
GGSCI (nerv01.localdomain) 1> INFO ALL
GGSCI (nerv01.localdomain) 1> INFO EXTRACT ext3
GGSCI (nerv01.localdomain) 1> INFO EXTRACT ext3, DETAIL
GGSCI (nerv01.localdomain) 1> STATS EXTRACT ext3

Na máquina nerv02, acompanhe o progresso do REPLICAT Inicial.


$ tail -f /u01/app/oracle/ogg-12c/ggserr.log
GGSCI (nerv02.localdomain) 1> INFO ALL
GGSCI (nerv02.localdomain) 1> INFO REPLICAT rep3
GGSCI (nerv02.localdomain) 1> INFO REPLICAT rep3, DETAIL
GGSCI (nerv02.localdomain) 1> STATS REPLICAT rep3

Nas máquinas nerv01 e nerv02, acompanhe o processamento pelo top.

Na máquina nerv02, verifique o tamanho das tabelas so SCHEMA.


SQL> SELECT TO_CHAR(SUM(BYTES)) FROM DBA_SEGMENTS WHERE OWNER = 'SOE' AND SEGMENT_TYPE =
'TABLE';

Na máquina nerv01, verifique o tamanho das tabelas so SCHEMA.


SQL> SELECT TO_CHAR(SUM(BYTES)) FROM DBA_SEGMENTS WHERE OWNER = 'SOE' AND SEGMENT_TYPE =
'TABLE';

54
Lab 7.15: Exec. Carga Incremental
Na máquina nerv01, após o término da da execução do REPLICAT Inicial, crie os INDEX.
Confira o log ao término da execução.

55
Lab 7.16: Exec. Carga Incremental
Na máquina nerv02, inicie o REPLICAT Incremental.
$ tail -f /u01/app/oracle/ogg-12c/ggserr.log
GGSCI (nerv02.localdomain) 1> START REPLICAT rep4
GGSCI (nerv02.localdomain) 1> INFO ALL
GGSCI (nerv02.localdomain) 1> INFO REPLICAT rep4
GGSCI (nerv02.localdomain) 1> INFO REPLICAT rep4, DETAIL
GGSCI (nerv02.localdomain) 1> STATS REPLICAT rep4

Na máquina nerv01, acompanhe o progresso do EXTRACT Incremental.


$ tail -f /u01/app/oracle/ogg-11g/ggserr.log
GGSCI (nerv01.localdomain) 1> INFO ALL
GGSCI (nerv01.localdomain) 1> INFO EXTRACT ext4
GGSCI (nerv01.localdomain) 1> INFO EXTRACT ext4, DETAIL
GGSCI (nerv01.localdomain) 1> STATS EXTRACT ext4

56
Lab 7.17: Finalizar Replicação
Na máquina nerv01, pare a aplicação.

Na máquina nerv01, pare o EXTRACT Incremental.


$ tail -f /u01/app/oracle/ogg-11g/ggserr.log
GGSCI (nerv01.localdomain) 1> INFO ALL
GGSCI (nerv01.localdomain) 1> STOP EXTRACT ext4
GGSCI (nerv01.localdomain) 1> INFO ALL

Na máquina nerv02, espere a replicação finalizar, e pare o REPLICAT Incremental.


$ tail -f /u01/app/oracle/ogg-12c/ggserr.log
GGSCI (nerv02.localdomain) 1> INFO ALL
GGSCI (nerv02.localdomain) 1> STATS REPLICAT rep4
GGSCI (nerv02.localdomain) 1> SEND REPLICAT rep4 GETLAG
GGSCI (nerv02.localdomain) 1> STOP REPLICAT rep4
GGSCI (nerv02.localdomain) 1> INFO ALL

57
Lab 7.18: Finalizar Replicação
Na máquina nerv01, migre as CONSTRAINTs da máquina nerv02.
Confira o log ao término da execução.

58
Lab 7.19: Finalizar Replicação
Na máquina nerv02, recompile as PACKAGES da aplicação.
$ rlwrap sqlplus / AS SYSDBA
SQL> ALTER SESSION SET CONTAINER = NOVO;
SQL> GRANT EXECUTE ON DBMS_LOCK TO SOE;
SQL> ALTER PACKAGE SOE.ORDERENTRY COMPILE;
SQL> ALTER PACKAGE SOE.ORDERENTRY COMPILE BODY;

Na máquina nerv02, teste a execução da aplicação.


$ cd /home/oracle/swingbench/bin
$ ./charbench -uc 10 -cs //nerv02:1523/NOVO -c ../configs/SOE_Server_Side_V2.xml -u SOE -p
SOE -min 500 -max 1000

59
Perguntas?

Ricardo Portilho Proni


ricardo@nervinformatica.com.br
60

Você também pode gostar