Oracle Zero Downtime Migration

Documentos relacionados
Oracle Zero Downtime Migration (com Golden Gate)

Oracle Maximum Availability Architecture

INSTALAÇÃO DO LOGIX COM BANCO ORACLE

IoT-FND: Incapaz de verificar a Conexão ao base de dados. Exceção: java.sql.sqlexception: ORA-28001: a senha expirou

MySQL para DBAs Oracle

Oracle 12c: Multitenant Architecture

Backup e Restauração Banco de Dados. Evandro Deliberal

Oracle Maximum Availability Architecture

Administração de Banco de Dados

Oracle Maximum Availability Architecture

Em nosso exemplo, o banco de dados XE está trabalhando no modo NOARCHIVELOG, e para verificar isso, basta executar as seguintes tarefas:

Oracle Data Guard 18c Em Oracle Enterprise Edition RU Em Oracle Enterprise Linux 7.6 Inclui CDB Architecture

Instalação Wiser. Sistema Operacional Linux Red Hat

Oracle: Licenciamento

Aprenda a instalar o GLPI no Centos 6.5

Instalacao do Zabbix 2.x em Ambiente CentOS

Quando se seleciona os modos OS ou XML, arquivos são criados com os registros de auditoria, eles se localizam parâmetro audit_file_dest.

Autor: Hernandes Martins. Março de Zabbix 2.4 CentOS 7 Tutorial Instalação

ORACLE ARQUITETURA FÍSICA

Banco de Dados. Prof. Antonio

ORACLE HETEROGENEUS SERVICES: CRIANDO UM DATABASE LINK COM MYSQL

Spectrum Miner. Versão 8.0. Guia de administração para a integração do Portrait Dialogue

Banco de Dados II. Administração do SGBD Oracle. Tablespaces, usuários, privilégios, papéis e perfis. Gustavo Dibbern Piva

Aprenda a instalar a plataforma de monitorização Cacti

EXEMPLO DE FLASHBACK VERSIONS QUERY E FLASHBACK TRANSACTION QUERY

LogMiner Além do FlashBack Query

Instalando o MySQL Server 5.0

Aprenda a instalar o Drupal 7 no CentOS 7

--Depois que o backup for concluído, restaurá-lo no servidor Mirror usando a opção WITH NORECOVERY.

DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS. Fábio Roberto Octaviano

Guia de procedimentos de backups

Administração de Usuários e Privilégios no Banco de Dados

Instalação Oracle Database 10g Release 2 em distribuições Red Hat / Fedora, Suse ou Debian

MASTERSAF REDF SP CONFIGURAÇÃO E CRIPTOGRAFIA

Curso. Virtualização com vsphere Free

--========================================== MIRROR COM CERTIFICADO ===============================================

Uniao Educacional e Tecnologica Impacta- Uni Impacta

Tutorial Zabbix Migração 2.4 para 3.0 CentOS 7.1 Português via Pacote

BANCO DE DADOS: SQL. Edson Anibal de Macedo Reis Batista. 27 de janeiro de 2010

Instalação Apache Tomcat 8.5 no Debian 8

Criando um servidor de log

AULA 11 IMPLEMENTANDO SEGURANÇA

DBA Júnior Laboratórios Extra

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho

BACKUP AS COPY WITH RMAN. Anthony Baldavia

Manual de Instalação Emissor NF-e Advanced SAIB 3.10 Versão e posteriores

Instalação e configuração Linux CentOS 6.x

Instalando e Configurando o Oracle XE

Manual de instalação do SQL 2012

Introdução à Banco de Dados. Nathalia Sautchuk Patrício

Configurar o ODBC em ISE 2.3 com base de dados Oracle

INSTALAÇÃO DO LOGIX COM BANCO SQL SERVER

Gerência de Banco de Dados

PROCEDIMENTO OBRIGATÓRIO ANTES DO INICIO DOS CICLOS DA PRODUÇÃO PARARELA

Sophos SafeGuard Enterprise 7

Estatísticas. Quando coletar? Quanto coletar? Como coletar? Ricardo Portilho Proni Nerv Informática

Sophos SafeGuard Enterprise 8.0.1

Administração de Sistemas Operacionais. Prof. Marlon Marcon

PostgreSQL. André Luiz Fortunato da Silva Analista de Sistemas CIRP / USP alf@cirp.usp.br

PGRE Trabalho de VLANs

Administração de Banco de Dados

Conteúdo O que é?... 4 Histórico... 4 Onde Baixar?... 4 Diferença entre Firebird e o Interbase... 4 Como instalar?... 4 Instalando o Ibexpert...

Gerência de Redes de Computadores Zabbix Instalação. Prof. Alex Furtunato

AULA 10 DISASTER RECOVERY

Zabbix 3 Instalação INSTALAÇÃO

Oracle Data Guard. Ricardo Portilho Proni

Esse é um post para mostrar os comandos básicos para administrar containers em docker.

Laboratório 1. Laboratório 1

Procedimento para resolver a replicação de base de dados ou a questão de sincronização na rede principal

Cisco CallManager: Manualmente suprimindo dos registros dos destalhes da chamada (CDR) sem a ferramenta de relatório administrativo (ART)

1. Definições dos aplicativos PaperCut Requisitos de Instalação... 3

SQL CREATE DATABASE. MySQL, SQL Server, Access, Oracle, Sybase, DB2, e outras base de dados utilizam o SQL.

Zabbix: Instalando o servidor

Oracle Data Guard 12cR2 em Oracle Enterprise Linux 7.4

Oracle Data Guard 12cR1

Consulte as Convenções de Dicas Técnicas da Cisco para obter mais informações sobre convenções de documentos.

Alta disponibilidade da referência rápida da opção de saída UCCE

ACH2025. Laboratório de Bases de Dados Aula 5. SQL Oracle Visão geral. Professora: Fátima L. S. Nunes SISTEMAS DE INFORMAÇÃO

Marcos Alexandruk Marcos Alexandruk

Upgrade do Sophos Enterprise Console (SEC) 5.x para 5.5.0

Relatórios de histórico para perguntas frequentes sobre o IPCC Express

MANUAL DE INSTALAÇÃO SAMI HOTELEIRO. REV B

Configuração Setup do Microsoft SQL server 2000 para o ICM6.0 e 7.0

Introdução ao Sistema. Características

Manual de Instalação e Configuração MySQL

Manual de Migração do Banco de Dados Paradox para Firebird

Transforme o seu CentOS num servidor Web (LAMP)

OpenVZ Criação de containers e instalação do sistema operativo

Alarme ODBC Ambiente Seguro e Validado para o Armazenamento de Alarmes

Instalação Wiser Discovery Sistema Operacional Windows

Guia de Referência Rápida Administração de Bancos de Dados Oracle - Abstratos Tecnologia

PostgreSQL 8.0. Diogo Biazus

Treinamento PostgreSQL - Aula 03

Sophos Enterprise Console Guia: Manual de instalação do Sophos Enterprise Console 5.4.1

1. Execute o instalador do ambiente. Será exibida a tela do assistente para instalação.

COMPETÊNCIAS ESPECÍFICAS Compreender e utilizar a linguagem SQL, na construção e manutenção de uma base de dados.

Administração de Banco de Dados

POO Documentation. Release 1.0. Felipe Dau e Francisco Pereira Junior

Transcrição:

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

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