Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Treinamento Oracle Golden Gate

186 views

Published on

Esta apresentação é uma pequena amostra do conteúdo ministrado no treinamento de Oracle Golden Gate pela Oradata Consultoria & Treinamentos.

Published in: Software
  • Be the first to comment

Treinamento Oracle Golden Gate

  1. 1. Oracle Golden Gate 12c Instalação, Configuração, Replicação, Tuning e Troubleshooting Oradata Consultoria & Treinamentos 1
  2. 2. 01 - Visão Geral Oradata Consultoria & Treinamentos 2
  3. 3. Conteúdo deste capítulo 1. Introdução ao Oracle Golden Gate 2. Características do Oracle Golden Gate 3. Comparação de Tecnologias de replicação (GG, DG & Oracle Streams) 4. Vantagens do Oracle Golden Gate 5. Bancos de dados e Plataformas (sistemas operacionais) suportadas 3
  4. 4. Introdução ● Golden Gate era uma empresa que foi adquirida pela Oracle em 23/07/2009 Golden Gate Software, Inc., uma empresa até então líder no mercado de integração de dados em tempo real. ● Oracle Golden Gate possibilita empresas trocar e manipular informações de transações entre sistemas de bancos de dados heterogêneos (e homogêneos também). ● Sua especialidade é a confiabilidade em ter uma solução de replicação de dados contínuo e altamente estável para: relatórios, integrações sistêmicas e etc. 4
  5. 5. Características do Golden Gate ● Pode ser executado em qualquer sistema operacional ● Replicações heterogêneas em tempo real ● Replicações entre diferentes bancos de dados com baixa latência ● Replicações entre diferentes bancos de dados como Oracle, DB2, MySql… ● Processo de replicação pode ser usado como plano de recuperação de desastres (DRP) BI e etc… ● Uma vez que os dados são replicados entre diferentes sistemas operacionais, diferentes bancos de dados. Você também pode replicar dados entre dois bancos de dados iguais, porém em versões diferentes (de Oracle 11g para Oracle 12c). 5
  6. 6. Comparação Golden Gate x Outros 6 Oracle Data Guard ● Tecnologia exclusiva para DRP ● Standby Database físico em modo de recovery ● Banco de dados Destino para ficar OPEN requer licença adicional ● Latência do switch de archivelog Oracle Streams ● Replicação Oracle x Oracle (apenas) ● Baixa latência ● Bancos de dados de Origem e Destino abertos para leitura e escrita ● Manutenção complexa
  7. 7. Comparação Golden Gate x Outros ● Oracle Golden Gate executa em qualquer banco de dados em qualquer SO ● Replicação com latência muito baixa ● Desde 2012 a Oracle tem incentivado fortemente o uso do Oracle Golden Gate ao invés do Oracle Streams 7
  8. 8. Vantagens ● Independência de sistema operacional ● Tecnologia que permite replicação entre fontes heterogeneas ● Baixa latência ● Pode atender à DR (Disaster Recovery) e BI (Business Intelligence) juntos ou separados. 8
  9. 9. Bancos de Dados e Plataformas 9 Bancos de Dados e Sistemas Operacionais Suportados Banco de Dados Sistema Operacional C-tree Windows Oracle Linux MySQL Sun Solaris DB2 HP NonStop MS SQL Server HP-UX Sybase ASE HP-Tru64 Teradata HP-OpenVMS Enscribe IBM-AIX SQL/MP IBM-z/Os SQL/MX z/Linux JMS Message Queue Oracle TimesTen HP NeoView Flat File Products
  10. 10. Dúvidas? 10
  11. 11. 02 - Ambiente de Estudos Oradata Consultoria & Treinamentos 11
  12. 12. Conteúdo Deste Capítulo ● Instalação do Oracle VirtualBox ● Instalação do Oracle Linux ● Instalação do Oracle Database 12c ● Clone da Máquina Virtual ● Criação da Instância de Banco de Dados 12
  13. 13. 03 - Arquitetura do Golden Gate Oradata Consultoria & Treinamentos 13
  14. 14. Goden Gate - Arquitetura 14
  15. 15. Componentes ● Manager: Processo de background responsável por gerenciar todos os outros processo do Golden Gate. ● Extract: Captura os dados e também os mantém nos “trail files” no servidor de origem. ● Replicat: Lê os dados vindos do banco de dados de origem. ● Trail File: Arquivos que contém as informações da replicação (destino), ou retém as transações que serão replicadas (origem). ● Data Pump: Arquivos que armazenam os dados no servidor de origem. ● Collector: Processo de background que recebe os dados vindos do servidor de origem. 15
  16. 16. Topologias Possíveis 16
  17. 17. 04 - Instalação & Configuração Oradata Consultoria & Treinamentos 17
  18. 18. Pré Requisitos ● Espaço em disco: ○ De 200MB à 500MB (depende da plataforma e do banco de dados) ○ Trial Files: Podem ser atribuídos à um disco separado, o tamanho default é 10MB. Porém para otimizar o consumo de disco você pode habilitar o parâmetro PURGEOLDEXTRACTS ● TCP/IP ○ Configurar a comunicação entre os servidores usando o protocolo TCP/IP, incluindo um serviço de DNS. ○ configurar um porta de comunicação entre os processos “Manager” (origem e destino) ○ Configurar um range de portas para comunicação local dos processos do Golgen Gate. 18
  19. 19. Configuração - Manager ● Deploy em 4 etapas: ○ Preparando o ambiente ■ Configurar o usuário no banco de dados que vai operar o Golden Gate ■ Habilitar “supplemental logging” ■ Iniciar o processo “Manager” ■ Se a replicação for entre plataformas heterogêneas executar os ajustes ○ Ajuste o processo de “Captura” ○ Inicie a primeira replicação ○ Ajuste o processo de “Delivery” 19
  20. 20. Configuração - Usuario 20 Privilégio DB Origem DB Destino create / alter session X X resource X X connect X X select any dictionary X X flashback any table (ou ON) X select any table (ou ON) X X update,insert e delete ON ... X create table X execute on DBMS_FLASHBACK X
  21. 21. Configuração - Manager ● O processo “Manager” é quem provê a interface de gerenciamento por linha de comando onde podemos fazer as atividades: ○ Start/Stop dos processos do Golden Gate ○ Definir parâmetros de configuração ○ Relatórios de erros e lag ○ Gerenciamento de recursos ○ Gerenciamento de trail files ● Este processo deve estar em execução na origem e no destino antes do processo de “Replicat” ● Os parâmetros do “Manager” estão definidos no arquivo “mgr.prm” no diretório “dirprm” 21
  22. 22. Configuração - Manager ● Crie um arquivo de parâmetros com o GGSCI ● Inicie o Manager pelo GGSCI ● Encontre as portas em uso GGSCI> START MGR 22 GGSCI> EDIT PARAMS MGR GGSCI> INFO MGR
  23. 23. Configuração - Manager ● Manager: Arquivo de Configuração 23 PORT 7809 DYNAMICPORTLIST 8001, 8002, 9500 - 9520 PURGEOLDEXTRACTS /ggs/dirdat/aa*, USECHECKPOINTS PURGEOLDEXTRACTS /ggs/dirdat/bb*, USECHECKPOINTS MINKEEPDAYS 5 AUTOSTART ER * AUTORESTART EXTRACT *, WAITMINUTES 2, RETRIES 5 LAGREPORTHOURS 1 LAGRINFOMINUTES 3 LAGCRITICALMINUTES 5
  24. 24. Preparação do Ambiente ● No banco de dados de origem ○ Habilite “supplemental logging” para permitir que o Golden Gate capture e atualize PKs e chained rows ○ Habilite “supplemental loggin” no nível de tabelas também ○ Coloque a instância no mod “archive” como uma segunda fonte de dados para evitar perda de dados caso ocorra um “recycle” completo antes do processo de “Extract” terminar ● No banco de dados de destino: ○ Verifique o acesso a todos os processos do Golden Gate 24 SQL> alter database add supplemental log data (primary key) columns; SQL> alter system switch logfile; GGSCI> DBLOGIN USERID <usuario>, PASSWORD <senha> GGSCI> ADD TRANDATA <owner>.<tabela>
  25. 25. Comando TRANDATA ● Por default o banco de dados gera logs apenas de colunas que foram alteradas. ● Antes do Golden Gate iniciar o processo de captura dos dados em tempo real, o banco de dados deve sempre enviar o log das informações das PKs para os arquivos de redo log. ● Isto é necessário para que o Golden Gate possa localizar e alterar e/ou excluir registros quando necessário ● Esta tarefa é executada pelo comando TRANDATA no GGSCI 25
  26. 26. Origem - Overview ● Quando o Golden Gate está capturando, transformando e enviando dados através dos processos de SO e banco de dados, é necessário que se conheça o layout em ambos os lados (origem e destino). ● O utilitário DEFGEN cria um arquivo onde estas definições de layout (tabelas) serão gravadas em ambos os lados. ● Essas informações são usadas na origem para que sejam interpretadas corretamente e inseridas nos trail files. ● Quando o “Replicat” é iniciado ele lê essas informações que estão indicadas no parâmetro SOURCEDEFS. 26
  27. 27. Executando o DEFGEN ● O DEFGEN é iniciado por linha de comando: ● UNIX: ● Windows: ● As definições são guardadas no arquivo de parâmetros e devem ser transferidas para o banco de dados de destino. 27 defgen parameterfile <arquivo> [reportfile <arquivo>] Defgen parameterfile /ggs/dirprm/defgen.prm Reportfile /ggs/dirrpt/defgen.rpt Defgen parameterfile C:ggsdirprmdefgen.prm Reportfile C:ggsdirrptdefgen.rpt
  28. 28. 05 - Processo de Captura Oradata Consultoria & Treinamentos 28
  29. 29. Processo Extract 29
  30. 30. Overview ● Captura todas as modificações executadas nos objetos que estão configurados na replicação. ● Quando a transação recebe o commit, o “Extract” envia os dados da transação para os “trail files” para que sejam propagados ao destino. ● O “Extract” no destino pode ser configurado para: ○ Capturar os dados modificados dos redos ou archivel logs. ○ Capturar dados modificados na JMS. ○ Capturar os dados diretamente das tabelas (load inicial). ○ Enviar os dados para serem escritos local ou remotamente. ● Um segundo “Extract” chamado Data Pump pode ser configurado para distribuir as informações remotamente. 30
  31. 31. Extrac Origem (exemplo) 31 GGSCI> EDIT PARAMS finance EXTRACT finance USERID login, PASSWORD senha EXTRAIL /ggs/dirdat/lt TABLE SALES . ORDERS; TABLE SALES . INVENTORY; GGSCI> ADD EXTRACT finance, TRANLOG, BEGIN NOW GGSCI> ADD EXTRAIL /ggs/dirdat/lt, EXTRACT finance GGSCI> START EXTRACT finance
  32. 32. Extrac Origem (exemplo) ● Cria um grupo chamado “finance” que extrai as modificações gravadas nos redo logs. Inicia o processo de extração com os registros gerados no momento que o “Extract” é iniciado: ● Cria um grupo chamado “finance” que extrai as informações do bancos de dados. Inicia o processo de extração capturando os registros a partir da data e hora: 32 ADD EXTRACT finance, TRANLOG, BEGIN NOW ADD EXTRACT finance, TRANLOG, BEGIN 2018-01-31 08:00
  33. 33. Extrac Origem (exemplo) ● Cria um grupo Data Pump chamado “pump” que lê as informações do trail file “C:”GGSDIRDATlt: ● Cria o load inicial com um “Extract” chamado “load” 33 ADD EXTRACT pump, EXTRACTSOURCE C:GGSDIRDATlt ADD EXTRACT load, SOURCETABLE
  34. 34. 06 - Trail Files Oradata Consultoria & Treinamentos 34
  35. 35. Overview ● Usados pelo Golden Gate no processo de extração e replicação contínua. ● Pode existir no banco de dados de origem e destino ou em um servidor intermediário. ● Apenas um processo “Extract” pode escrever em um trail file. ● Processos que leem um trail file incluem: ○ Data Pump Extract ○ Replicat ● Quando são criados, todos os nomes dos trail files iniciam com 2 caracteres. Então, como arquivos adicionais são necessários, cada nome recebe o append numérico de até seis dígitos. ● Trails files são armazenados no diretório “dirdat” da HOME do Golden Gate 35
  36. 36. Adicionando um Trail File ● Para adicionar um trail file: ● Se você está a usar um “data pump” ● O Extract primário precisa de trail file local (EXTRACTALL) ● Extracts de Data pump necessitam de um remote trail (RMTTRAIL) 36 ADD EXTRACT | RMTTRAIL <nome do arquivo>, EXTRACT <nome do grupo> [, MEGABYTES <n>] ADD EXTRACT C:ggsdirdataa, EXTRACT finance, MEGABYTES 10 ADD RMTTRAIL C:ggsdirdatbb, EXTRACT parts, MEGABYTES 5
  37. 37. 07 - Extract Data Pump Oradata Consultoria & Treinamentos 37
  38. 38. Overview ● Um Extract Data Pump pode escrever em um ou múltiplos trail files local ou remoto (não confunda com o Data Pump para export e import). ● Um Data Pump: ○ Lê o trail file local ○ Manipula dados ou parte dos dados sem alterar ○ Envia os dados para um ou mais destino ● Um Data Pump é útil para: ○ Garantia contra falhas de rede ○ Filtro e transformações de dados complexas ○ Consolidação de muitas origens ○ Sincronização de vários destinos 38
  39. 39. Replicação 1:N 39
  40. 40. Replicação 1:N 40
  41. 41. Configuração 41 GGSCI> EDIT PARAMS finance EXTRACT pump PASSTHRU RMTHOST <destino>, MGPORT <porta> RMTTRAIL ./dirdat/rt TABLE SALES . ORDERS; TABLE SALES . INVENTORY; GGSCI> ADD EXTRACT pump, EXTTRAILSOURCE ./dirdat/lt GGSCI> ADD RMTTRAIL ./dirdat/rt, EXTRACT pump GGSCI> START EXTRACT pump
  42. 42. 08 - Carga Inicial Oradata Consultoria & Treinamentos 42
  43. 43. Overview 43
  44. 44. Vantagens e Métodos ● Trabalha com plataformas heterogêneas. ● Sem downtime. ● Leitura direto das tabelas fontes sem lock. ● Coloca os dados em arrays para melhorar a performance. ● Processamento paralelo em cláusulas WHERE ou funções RANGE. ● Distribuição de dados através de múltiplos controladores de rede. ● Metodologias flexíveis, incluindo métodos massivos nativos. ● Gestão da entrega com manipulações de colisões de informações. 44
  45. 45. Pré Requisitos ● Desabilitar DDL. ● Preparar as tabelas no destino. ● Configurar o processo “Manager”. ● Criar as definições de dados (replicação heterogênea). ● Criar os grupos “change-synchronization” (para captura e réplica transacional durante o processo de carga). 45
  46. 46. Tipos de Carga Inicial 46 Método Escreve no: Replicação via: File to Replicat Trail File Replicat via SQL File to database utility Arquivo texto formatado Database utility Direct Load Replicat (directly) Replicat via SQL Direct bulk load Replicat (directly) Replicat via SQL*Loader API
  47. 47. File to Replicat 47 ADD EXTRACT <nome> Parâmetros do Extract: SOURCEISTABLE RMTTRAIL <nome>
  48. 48. File to Database 48 ADD EXTRACT <nome> Parâmetros do Extract: SOURCEISTABLE RMTTRAIL <nome> FORMATASCII BCP or SQLLOADER
  49. 49. Direct Load 49 ADD EXTRACT <nome>, SOURCEISTABLE Parâmetros do Extract RMTTASK REPLICAT, GROUP <nome> ADD REPLICAT <nome>, SPECIALRUN
  50. 50. Direct Bulk Load (Oracle) 50 ADD EXTRACT <nome>, SOURCEISTABLE Parâmetros do Extract RMTTASK REPLICAT, GROUP <nome> ADD EXTRACT <nome>, SOURCEISTABLE Parâmetros do Extract BULKLOAD
  51. 51. 09 - Delivery Oradata Consultoria & Treinamentos 51
  52. 52. Overview 52
  53. 53. Overview ● O processo “Replicat” é executado no servidor de destino. ● Múltiplos processos “Replicat” podem executar em sincronia com muitos processos “Extract” em paralelo para aumentar o throughput. ● O “Replicat” pode: ○ Ler dados fora dos trail files. ○ Fazer filtros por tabela, registro ou operações ○ Transformar dados ○ Atividades apenas vindas das aplicações. 53
  54. 54. Tarefas No servidor de destino: ● Crie uma tabela de checkpoint (boa prática): ○ DBLOGIN ○ ADD CHECKPOINTTABLE ● Crie um arquivo de parâmetros para o processo “Replicat”: ○ EDIT PARAMS ● Crie um “Replicat” group. ○ ADD REPLICAT ● Inicialize o processo “Replicat” ○ START REPLICAT 54
  55. 55. Configuração - Exemplo 55 GGSCI> DBLOGIN USERID usuario PASSWORD senha GGSCI> ADD CHECKPOINTTABLE tabela_ckpt GGSCI> EDIT PARAMS REPORD REPLICAT REPORD USERID usuario PASSWORD senha ASSUMETARGETDEFS DISCARDFILE /ggs/dirrpt/REPORD.dsc APPEND MAP SALES.ORDERS, TARGET USSALES.USORDERS; MAP SALES.INVENTORY, TARGET USSALES.USINVENTORY; GGSCI> ADD REPLICAT REPORD, EXTTRAIL /gga/dirdat/rt GGSCI> START REPLICAT REPORD
  56. 56. Colisões - Carga Inicial ● Se o banco de dados de origem permanecer ativo durante o processo de carga inicial, você deve evitar ou manipular qualquer tipo de colisão enquanto o banco de dados de destino está sendo carregado. ● Se for possível você pode fazer um backup cold na origem, restaurar no banco de dados de destino e então iniciar o processo de réplica das informações. 56 GGSCI> START REPLICAT <grupo> AFTERSCN <número do scn>
  57. 57. Colisões - Carga Inicial ● Se você não puder evitar as colisões, você pode manipular elas. ● O parâmetro HANDLECOLLISIONS pode ser usado: ○ Quando o processo “Replicat” encontrar registros duplicados em um insert, isso será escrito o “change record” deste registro. ○ Quando o processo “Replicat” encontrar algum gap em updates ou deletes, o registro será descartado. ● Depois que todos os dados foram gerados durante a carga inicial, eles serão replicados e o parâmetro HANDCOLLISIONS será desativado. 57 GGSCI> SEND REPLICANT <grupo> NOHANDLECOLLISIONS GGSCI> EDIT PARAMS <grupo> (para remover o parâmetro)
  58. 58. 10 - Extract & Trail Files Oradata Consultoria & Treinamentos 58
  59. 59. Overview ● O Extract escreve os dados em: ○ Local trail (EXTTRAIL) file system local ○ Local file (EXTFILE) file system local ○ Trail Remoto (RMTTRAIL) servidor remoto ○ File Remoto (RMTFILE) servidor remoto ● Extract e trail files são arquivos não estruturados e com tamanhos variáveis. ○ I/O através de “large blocks” para escrita ● Extract sinaliza os checkpoints para os trail files durante o processo de captura. ○ Garante que os dados não sejam corrompidos ○ Múltiplos processos Replicat podem escrever no mesmo trail file ● Extract não escreve checkpoints nos arquivos 59
  60. 60. Conteúdo Extract & Trail ● Cada registro no trail file contain uma operação que sofreu commit no banco de dados de origem ● A ordem dos commits nas transações é preservada ● Operações de uma transação são agrupadas na ordem que serão aplicadas ● Por default sempre é enviado a PK e os dados alterados de um registro ● Flags indicam o início e fim de uma transação nos arquivos ● Cada trail file contém: ○ Uma área de header que contém os metadados do próprio arquivo ○ Uma área de registros que contém os dados a ser replicados 60
  61. 61. Trail Files Alternativos ● Trail files possuem o formato default canonical format, porém outros formatos podem ser utilizados para o output dos dados. ● Isto é um benefício caso os utilitários de carga de banco de dados são outros programas que necessitam de diferentes input formats ● OS formatos alternativos podem ser: ○ FORMATASCII ○ FORMATSQL ○ FORMATXML 61
  62. 62. 11 - Utilitário LogDump Oradata Consultoria & Treinamentos 62
  63. 63. Overview ● O utilitário LogDump permite: ○ Mostrar ou procurar informações armazenadas nos trail files ou extrac files ○ Economiza espaço no trail file criando um trail file separado ● Para iniciar o LogDump vá até o diretório de instalação do Golden Gate e execute: ● Para acessar o help: 63 $ logdump Logdump 1> help
  64. 64. Abrindo um Trail File 64 Logdump 1> open dirdat/rt000000 Logdump responds with: Current LogTrail is /ggs/dirdat/rt000000
  65. 65. Setup ● Para ver o cabeçalho de um arquivo: ● Para ver o registro de um header com os dados: ● Para adicionar informações de uma coluna: 65 Logdump 1> fileheader on Logdump 1> ghdr on Logdump 1> detail on
  66. 66. Setup ● Para colocar HEX e ASCII nos valores das colunas: ● Para controlar a quantidade de dados que será exibida na tela: 66 Logdump 1> reclen 280 Logdump 1> detail data
  67. 67. Visualizando os registros ● Para ir ao primeiro registro e posteriormente mover-se para os demais: ● Posição aproximada de determinado registro: ● Contando os registros de um trail: 67 Logdump 1> pos 0 Logdump 1> next (ou tecle “n”) Logdump 1> pos <RBA aproximado> Logdump 1> scanforheader (ou tecle “sfh”) Logdump 1> count
  68. 68. Conteúdo dos Trail Records 68
  69. 69. Utilitário Reverse ● Reorganiza as operações dentro dos trail files do Golden Gate em ordem reversa. ● Capacidade de reverter transações específicas (deletes indevidos, dados corrompidos entre outros) e mantém o ambiente em funcionamento. ● Restaura os dados de um período exato de tempo, permitindo desfazer transações durante “regression tests” 69
  70. 70. 12 - Parameters Oradata Consultoria & Treinamentos 70
  71. 71. Parameters File ● No Oracle Golden Gate há dois tipos de arquivos de parâmetros: ● GLOBAL: armazena parâmetros que possuem relação com o Golden Gate como um todo. ● PROCESS: arquivos de parâmetros que refletem processos específicos do Golden Gate como Extract por exemplo. 71
  72. 72. GLOBAL vs PROCESS ● Arquivos de parâmetros do tipo GLOBAL são aplicados para todos os processos. ○ Definidos quando o “Manager” inicia ○ Ficam dentro do: $GG_HOME/GLOBALS ● Arquivos de parâmetros do tipo PROCESS se aplicam para processos específicos (manager, extract, server collector). ○ Definidos quando o processo inicia ○ Sobrescreve os parâmetros globais ○ Diretório default $GG_HOME/dirprm e arquivos chamados nome_do_processo.prm ○ Maior parte aplicado a todas as tabelas porém alguns podem ser para tabelas específicas 72
  73. 73. GLOBAL Parameters ● Controlam todos os processos dentro da instância Golden Gate ● Podem ser sobrescritos por parâmetros no nível de processos ● É obrigatório sair do GGSCI para salvar as modificações ● Uma vez definidos, raramente são modificados ● Dentre os mais comuns: ○ MGRSERVNAME ggmanager1: Define o nome do processo manager ○ CHECKPOINTTABLE dbo.ggschkpt: Define o nome da tabela de checkpoint (default) do processo “Replicat” 73
  74. 74. Gerenciamento ● “Manager” é o processo pai dentro do Golden Gate ● Controla outros processos do Golden Gate, bem como recursos, interface com usuário, relatório de thresholds e erros. ● Definido com parâmetros básicos normalmente já é o suficiente. 74 PORT 7809 DYNAMICPORTLIST 9001-9100 AUTOSTART ER * AUTORESTART EXTRACT *, WAITMINUTES 2, RETRIES 5 LAGREPORTHOURS 1 LAGINFOMINUTES 3 LAGCRITICALMINUTES 5 PURGEOLDEXTRACTS /ggs/dirdat/rt*, USECHECKPOINTS
  75. 75. 13 - Extract & Replicat Params Oradata Consultoria & Treinamentos 75
  76. 76. Extract Parameter Overview ● Os parâmetros do Extract especificam: ● Group Name (associado com o arquivo de checkpoint) ● Para onde enviar os dados: ○ File system local ○ Múltiplos e remotos file systems ○ 1:N Golden Gate trail files ● O que está sendo capturado ○ Quais tabelas ○ Quais linhas e colunas ○ Quais operações ● Mapeamento de colunas ● Quais transformações de dados aplicar 76
  77. 77. Amostra Extract Parameter File 77 EXTRACT ODS USERID usuario, PASSWORD senha RMTHOST ordt-srv1, MGRPORT 7809 RMTTRAIL /ggs/dirdat/rt TABLE SALES.ORDERS; TABLE SALES.INVENTORY;
  78. 78. Replicat Parameter Overview ● Os parâmetros do Replicat especificam: ● Group Name (associado com o arquivo de checkpoint) ● Lista da relação entre origem e destino: ○ Critérios de seleção no nível de linha ○ Mapeamento de colunas ○ Transformação de serviços ○ Stored Procedures ou execuções de queries ● Tratamento de erros ● Parâmetros de otimização 78
  79. 79. Amostra Replicat Parameter File 79 REPLICAT SALESRPT USERID usuario, PASSWORD senha ASSUMETARGETDEFS DISCARDFILE /ggs/dirrpt/SALESRPT.dsc, APPEND MAP HR.STUDENT, TARGET HR.STUDENT WHERE (STUDENT_NUMBER < 400000); MAP HR.CODES, TARGET HR.CODES; MAP SALES.ORDERS, TARGET SALES ORDERS; WHERE (STATE = “CA” AND OFFICE = “LA”);
  80. 80. 14 - Filtros & Seleção de Dados Oradata Consultoria & Treinamentos 80
  81. 81. Data Mapping & Manipulation ● Toda e qualquer seleção, mapeamento ou filtro de dados é feita pelos parâmetros TABLE (Extract) e MAP (Replicat). ● Os dados podem ser integrados de diferentes tabelas fontes e destino como: ○ Selecionando registros de uma coluna ○ Operações de seleção e conversão ○ Mapeamento de colunas ○ Histórico de transações ○ Teste e transformação de dados ○ Uso de tokens 81
  82. 82. Tipos e Definições de Arquivos ● Quando você configura mapeamento ou transformação de uma coluna no destino, uma definição na origem é necessária ● Quando você configura mapeamento ou transformação de uma coluna na origem, uma definição do destino é necessária ● Quando você configura mapeamento ou transformação de uma coluna em um sistema intermediário (nem na origem e nem no destino) todas definições devem ser feitas neste sistema. 82
  83. 83. Seleção de Dados ● O Golden Gate provê a habilidade de selecionar ou filtrar dados baseado em vários níveis de seletividade e condições: 83 Parâmetro / Cláusula Selects TABLE ou MAP WHERE FILTER Table Row, Row, Operation, Range TABLE COLS | COLSEXCEPT Columns
  84. 84. Seleção: Cláusula WHERE ● Apenas linhas onde a coluna STATE tem o valor igual a CA WHERE (STATE = “CA”); ● Apenas as linhas onde a coluna AMOUNT esteja NULL (se a coluna não fez parte de nenhum UPDATE retorna false) WHERE (AMOUNT = @NULL); ● Apenas linhas onde a coluna ACCOUNT_ID tenha valores maiores do que CORP-ABC WHERE (ACCOUN_ID > “CORP-ABC”); 84
  85. 85. Filtros Exemplos ● Para retornar apenas os registros onde o preço multiplicado pela quantidade seja maior do que 10000: FILTER((PRODUCT_PRICE*PRODUCT_AMOUNT)>10000); ● Para retornar apenas as linhas que contenham a string “JOE” FILTER(@STRFIND(NAME,”JOE”)>0); ● Retornar apenas os registros onde o preço multiplicado pelo valor se maior do que 10000, porém apenas em UPDATES e DELETES. FILTER (ON UPDATE, ON DELETE, @COMPUTE PRODUCT_PRICE*PRODUCT_AMOUNT)>10000); 85
  86. 86. Funções de Range Exemplo ● Em transações que movimentam muitos registros, para não sobrecarregar o Replicat é possível fazer um particionamento dos dados. ● Cada operação recebe um ID para garantir a consistência dos dados. REPLICAT -1 MAP SALES.ACCOUNT, TARGET SALES.ACCOUNT, FILTER(@RANGE(1,3)); REPLICAT -2 MAP SALES.ACCOUNT, TARGET SALES.ACCOUNT, FILTER(@RANGE(2,3)); REPLICAT -3 MAP SALES.ACCOUNT, TARGET SALES.ACCOUNT, FILTER(@RANGE(3,3)); 86
  87. 87. Mapeamento de Colunas 87 HR.CONTACT HR.PHONE CUST_NAME NAME AREA_CODE PHONE_NUMBER PH_PREFIX PH_NUMBER MAP HR.CONTACT, TARGET HR.PHONE, COLMAP(USEDEFAULTS, NAME = CUST_NAME, PHONE_NUMBER = @STRCAT(“ (“,AREA_CODE,”)”,PH_PREFIX,”-”,PH_NUMBER));
  88. 88. Outras Funções ● @IF retorna um ou dois valores baseados em uma condição AMOUNT_COL = @IF(AMT>0,AMO,0) ● @DATE função usada para retornar expressões de data e hora em diferentes formatos ● @STRCAT função para concatenar duas ou mais strings ● @STREXT função usada para extrair porções de uma string 88
  89. 89. SQLEXEC Overview ● Parâmetro que estende a capacidade do Golden Gate habilitando-o para comunicar-se com o banco de dados através de comandos SQL podendo então executar queries e stored procedures. ● Esta funcionalidade também se aplica muito bem na integração de dados com as funções nativas do Golden Gate. 89
  90. 90. SQLEXEC Overview ● Pode executar um comando SQL ou uma stored procedure usando a cláusula SQLEXEC nos parâmetros TABLE ou MAP. ● (Opcional) O output dos parametros do Extrac podem ser usados a partir de um comando SQL ou a execução de uma stored procedure na forma de input para as cláusulas FILTER ou COLMAP juntamente com a função @GETVAL. ● O comando SQLEXEC no nivel root (sem parametros input/output) pode chamar uma stored procedure, executar um comando SQL ou até mesmo outros comandos do banco de dados. 90
  91. 91. 15 - Replicação DDL I Oradata Consultoria & Treinamentos 91
  92. 92. Replicação de DDL Overview ● Replicação de DDL está disponível para todas as versões do Oracle Database que são suportadas pelo Oracle Golden Gate ● DDL & DML no Golden Gate: ○ DDL pode estar ativa com ou sem sincronização de DML ○ Os mesmos processos Extract/Replicat podem processar DDL e DML ● As operações DDL são reconhecidas de maneira diferente pelos processos Extract e Replicat: ○ Origem: Por default estão desabilitadas, é preciso configurar no Extract ○ Destino: Por default já estão habilitadas para poder manter a integridade dos dados. ○ Replicat: Deve ser configurado para ignorar ou filtrar DDL 92
  93. 93. Requirements & Restrictions ● Origem e destino 100% iguais: ASSUMETARGETDEFS (default) ● Data Pump deve estar configurado no modo PASSTHRU ● WILDCARDRESOLVE deve estar como DYNAMIC (default) ● DML não é suportado ● Não é válido para o usuário do Golden Gate ● Restrições para DDLs que envolvem user-datatype e LOB ● DDL em objetos que estejam nos parêmatros TABLE e MAP herdam suas limitações de caracteres ● Restrições para DDLs embarcados em stored procedures ● DDLs maiores do que 2MB necessitam de tratamento especial 93
  94. 94. Requirements & Restrictions ● Nomes de usuários com palavras reservadas são ignorados ● O parâmetro GETTRUNCATES pode não ser usado para um complet processo de replicação de DDL ● Nome das tabelas não pode ser maiore do que 16 caracteres (incluindo “”) tanto no create quanto no alter table. ● ALTER TABLE xxxx MOVE TABLESPACE ○ É suportado tanto para small file quanto para big file. ○ Antes de executar a operação é preciso parar o processo Extract. ● Lixeira deve ser desabilitada (parâmetro RECYCLEBIN = OFF). ● Comandos ALTER SYSTEM/DATABASE não são replicáveis 94
  95. 95. 16 - Replicação DDL II Oradata Consultoria & Treinamentos 95
  96. 96. Características DDL ● Os nomes dos objetos precisam ser especificados nas instruções TABLE e MAP. ● Extract envia todas as DDL para cada trail file quando usa-se múltiplos. ● Golden Gate suporta todas as operações DDL maiores do que 2MB para os seguintes objetos: 96 Clusters Tables Triggers Functions Tablespaces Types Índices Roles Views Packages Sequences Materialized View Procedures Synonyms Users
  97. 97. Escopo DDL ● MAPPED: ○ Especificado nos parâmetros TABLE e MAP ○ Operações: CREATE, ALTER, DROP, RENAME, GRANT*, REVOKE* ○ Objetos: TABLE*, INDEX, TRIGGER, SEQUENCE*, MATERIALIZED VIEW* ● UNMAPPED: ○ Não aparece nos parâmetros TABLE e MAP ● OTHER: ○ Não aplica-se à TABLE e MAP ○ Outros DDLs não listados acima ○ Exemplos: CREATE USER, CREATE ROLE, ALTER TABLESPACE 97
  98. 98. Objetos Não Qualificados ● Se um objeto não qualificado está no escopo de MAPPED o Replicat: ○ Define o shema do DESTINO como sendo o mesmo schema do banco de dados de ORIGEM de acordo como o especificado no parâmetro MAP. ○ Também pode ser: MAP accounts.*, TARGET accounts2.*; ○ Define o schema de ORIGEM como sendo a sessão conectada no banco de dados (caso o usuário não seja owner dos objetos que estiverem sendo criados) ● Se um objeto não qualificado estiver no escopo de UNMAPPED ou OTHER, o Replicat define o schema como sendo exatamente igual ao schema de ORIGEM no DESTINO. 98
  99. 99. Mapping Schemas ● O parâmetro MAPSESSIONSCHEMA permite que você equalize as informações entre ORIGEM e DESTINO: ● DDLERROR pode ser usado para tratamento de erros 99 EXTRACT: DDL INCLUDE OBJNAME “SRC.*” & INCLUDE OBJNAME “SRC1.*” TABLE SRC.*; TABLE SRC1.*; REPLICAT: DDLOPTIONS MAPSESSIONSCHEMA SRC TARGET DST DDLOPTIONS MAPSESSIONSCHEMA SRC1 TARGET DST1 MAP SRC.*, TARGET DST.*; MAP SRC1.*, TARGET DST1; DDLINCLUDE OBJNAME “DST.*” & INCLUDE OBJNAME “DST1”
  100. 100. Ativando Captura de DDL ● Table: GGS_MARKER ○ Armazena informações DDL ● Table: GGS_DDL_HIST ○ Armazena metadados de histórico de objetos ● Trigger: GGS_DDL_TRIGGER_BEFORE ○ Ativada quando acontece uma operação DDL ○ Escreve as informações na tabela de histórico: GGS_DDL_HIST ● Role: GGS_GGSUSER_ROLE ○ Contém as permissões necessárias para replicações DDL ○ Pode ser concedida ao usuário que executa o Extract 100
  101. 101. 17 - Tuning & Troubleshooting I Oradata Consultoria & Treinamentos 101
  102. 102. Troubleshooting ● Normalmente, o maior desafio está em descobrir qual é a causa raiz ● O problema pode estar: ○ Na camada de redes? ○ No banco de dados ou das aplicações? ○ Na instalação do Oracle Golden Gate? ○ Em um processo específico do Golden Gate? ○ Na maneira como o Golden Gate foi configurado? ○ No comando SQL ou na stored procedure? 102
  103. 103. Segurança ● É possível criar um arquivo com regras de segurança para o Golden Gate. Neste arquivo ficará explícito quais usuários e funções podem ser acessados. ● O nível de segurança é definido de acordo com os usuários e grupos do sistema operacional. ● Para utilizar essa feature você precisa usar o comando CDMSEC no diretório da instalação do Oracle Golden Gate. 103
  104. 104. Comandos CDMSEC 104 Comando Descrição ## comando security Comentários STATUS REPLICAT * Smith NO Usuário Smith não pode executar o comando STATUS REPLICAT STATUS * dpt1 * YES Todos os usuários do grupo dpt1 podem executar o comando STATUS START REPLICAT * * NO O comando STATUS REPLICAT é proibido para todos os usuário. * EXTRACT 200 * NO Todos os comandos EXTRACT são proibidos para quem for do groupid 200 * * root root YES Usuário root pode executar qualquer comando
  105. 105. Gestão de Trail Files ● Os trail files não são auto gerenciáveis e podem como consequência consumir muito espaço em disco e desencadear problemas mais graves. ● Use o parâmetro PURGEOLDEXTRACTS no arquivo de parâmetros do processo “Manager” para apagar os trail files que não são mais utilizados. ● Usar o parâmetro PURGEOLDEXTRACTS no processo Manager é mais produtivo e seguro, pois ao contrário dos processos Extract e Replicat o gerenciamento é centralizado. 105
  106. 106. Erros de Rede TCP/IP ● Diversos erros na camada de redes pode aparecer, entre eles destacam-se: ○ Gargalos (contenção) ○ Connection refused (conexão recusada) ○ Insuficiência de banda de rede ● Você pode criar um arquivo chamado TCPERRS no diretório do Oracle Golden Gate que pode lhe ajudar nestas situações. 106 ECONNABORTED RETRY 1000 10 ECONNREFUSED RETRY 1000 12 ECONNRESET RETRY 500 10 ENETDOWN RETRY 3000 50 ENETRESET RETRY 1000 10 ENOBUFS RETRY 100 60 ENOTCONN RETRY 100 10
  107. 107. 18 - Tuning & Troubleshooting II Oradata Consultoria & Treinamentos 107
  108. 108. Monitoramento do Golden Gate ● O Golden Gate pode ser monitorado através dos status de seus processos, estatísticas e eventos entre outros. ● Essas informações podem ser capturadas através de: ○ Comandos no GGSCI ○ Arquivo ggserr.log (arquivo de logs) ○ Reports dos processos ○ Discard file ○ Logs de sistema operacional: syslog (unix) e event viewer (windows) 108
  109. 109. Comandos GGSCI 109 Comando Descrição INFO {EXTRACT | REPLICAT} <group> [DETAIL] Informações sobre o status, checkpoints, lag aproximado e informações gerais sobre o ambiente INFO MANAGER Status e número de portas em uso INFO ALL Informação de todos os processos de Golden Gate STATS {EXTRACT | REPLICAT} <group> Estatísticas das operações em execução STATUS {EXTRACT | REPLICAT} <group> Status (starting, running, stopped, abended) STATUS MANAGER Status do processo Manager LAG {EXTRACT | REPLICAT} <group> Latência entre o último registro processado e o banco de dados de origem
  110. 110. Comandos GGSCI 110 Comando Descrição INFO {EXTTRAIL | RMTTRAIL} <path name> Nome dos processos, posição do último dado processado e tamanho máximo do arquivo SEND MANAGER Informação dos processos filhos, portas, trail files e configurações SEND {EXTRAC | REPLICAT} Informação do processo, memória, estatísticas TCP/IP, transações demoradas e etc VIEW REPORT <group> Report de processos VIEW GGSEVT Conteúdo do arquivo de log. <command> ER <wildcard> Informação dependente do tipo de comando: INFO LAG SEND STATS STATUS
  111. 111. Relatório de Processos ● Relatório de processos (depende do processo) lhe permite checar: ○ Parâmetros em uso ○ Mapeamento de tabelas e colunas ○ Informações do banco de dados ○ Mensagens de erro em tempo de execução ○ Estatísticas para o número de operações processadas em tempo de execução 111
  112. 112. Discard Files ● São usados para capturar informações de operações que tiveram erros ● No discard file você pode encontrar: ○ Mensagem de erro no banco de dados ○ Numero sequencial do trail file da origem ○ Bytes address de um registro no trail file ○ Detalhes de operações descartadas, como valores de colunas, DML e DDL ● Um discard file pode ser usado em ambos Extract e Replicat ● Para usar um discard file inclua o parâmetro DISCARDFILE no arquivo de parâmetros do Extract ou Replicat. 112
  113. 113. System Logs ● O Golden Gate também pode escrever logs diretamente no arquivo de logs do sistema operacional: ○ Event viewer no windows ○ syslog no linux e unix ● Use o parâmetro SYSLOG para controlar quais informações o Golden Gate vai enviar para os logs do sistema operacional ● Usando o parâmetro SYSLOG as mensagens podem ser filtradas como: ○ Todas as mensagens do Golden Gate ○ Nenhuma mensagem do Golden Gate ○ Incluindo tipos de mensagens do Golden Gate: warning, error ou alguma outra combinação 113
  114. 114. 19 - Implementações Oradata Consultoria & Treinamentos 114
  115. 115. Implementações ● Configurando o Golden Gate para replicação unidirecional de um schema dentro do banco de dados (initial load) ● Configurando o Golden Gate para uma replicação ativo-ativo (bi-direcional) ● Desinstalar o Oracle Golden Gate 115

×