Escolar Documentos
Profissional Documentos
Cultura Documentos
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
$ 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
…
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
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;
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;
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;
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
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
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
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?
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
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
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
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;
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
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
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
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
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
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
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
56
Lab 7.17: Finalizar Replicação
Na máquina nerv01, pare a aplicação.
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;
59
Perguntas?