Oracle GoldenGate Title of Presentation Presenter’s Name Presenter’s Title Gustavo Brito Gustavo Brito OCP - Database 10g/11g Administrator Certified Professional OCE - Oracle Database 11g Performance Tuning Certified Expert OCE - Oracle Database 10g: Real Application Clusters Administrator Certified Expert OCP - Oracle Application Server 10g Administrator: Certified Professional OCE - Oracle Service Oriented Architecture Infrastructure Certified Expert OCE - Oracle GoldenGate 10 Certified Implementation Specialist OCE - Oracle Certified Associate, Oracle WebLogic Server 11g System Administrator OCE - Oracle Database 11g Security Certified Implementation Specialist Title of Presentation Presenter’s Name Presenter’s Title Gustavo Brito Projetos envolvidos: • Webcenter • Webcenter Content • SOA • Service Bus • Banco de Dados • Database Vault of Presentation • Title Goldengate • Weblogic • BPM Agenda • • • • • • • Overview Produtos Arquitetura Casos de Uso Implementação Mapeamento de Transformação de Dados Opções de Configuração GoldenGate Overview O que é Golden Gate • “Oracle Golden Gate fornece baixo impacto para capturar, rotacionar, transformar e entregar transações de banco de dados através de heterogêneas plataformas em tempo real.” Performance Flexível/Extensível Confiança Não-Intrusivo, baixo impacto Arquitetura modular, Heterogeneos targets e sources Mantém a integridade das transações – segunraça contra falhas e interrupções 6 Topologias possíveis com o Golden Gate Integridade Transacional • Arquivos trails são gravados pelo Golden Gate referente as transações • Transações ordenadas pela sequencia dos commits • Integridade das Transações • Original sequencia do commit é mantida pelo processo de entrega Confiabilidade • Os processos são individuais podem ser reiniciado automaticamente • Tolerância a falhas de rede (configurável) • Recuperação garante que nenhuma operação é ignorada ou repetido após o fracasso de qualquer tipo • Embora os processos são completamente dissociados (Captura e Replicat), o processo de entrega deve estar ciente de um cobrança realizada pelo processo de captura ou pelo data pump Vantagens do GoldenGate Movimento Gerenciamento Integração Eficiente IO Volume de TPS Captura baseada em log Integridade das transações Captura transparente Garantia de entrega Incremental Carga de dados criptografia Heterogeneos Banco de Dados Mapeamento Transformação Integração com ETL Java/JMS Integração Eficiente uso de banda Bidirecional Grupo de Transações Compresão Um para Muitos Muitos para um Cascata Valores Proporcionados com Goldengate Oferece operações contínuas para aplicações de missão crítica para eliminar interrupções não planejadas e reduzir o custo de paralisações planejadas. Reduz os custos de TI através de suporte heterogêneo para múltiplas plataformas para alavancar infra-estrutura de menor custo para execução de consultas Reduz riscos, garantindo a integridade dos dados e confiabilidade entre origem e de destino. Permite ter um BI em tempo Real e permite a execução de consultas for a da base de produção Reduz barreiras para compartilhar dados visto que nenhum impacto será agregado a base transacional Oracle GoldenGate Produtos Produtos • Oracle GoldenGate Transactional Data Management (TDM) • Oracle GoldenGate Director • Oracle GoldenGate Veridata O que é Oracle Golden Gate Veridata • “Oracle Golden Gate Veridata tem alta velocidade, baixo impacto para comparação entre dados para identificar discrepâncias entre dois banco de dados, sem interromper sistemas ou negócios.” Por que usar o Veridata Erros de Usuários • Entrada errada • Utilização Indevida • Intenção Maliciosa Erros de Infraestrutura • Falhas do Sistema • Corrupção de Disco • Falhas de Rede Confirmação de Migração • Upgrade de Banco de Dados • Migração de Banco de Dados O que é Oracle Golden Director • “Uma interface gráfica que oferece fácil uso para administrar gerenciar e que simplica a implantação e administração geral dos processos do Golden Gate.” Director Client Director Web Oracle GoldenGate Overview da Arquitetura Como o Goldengate Trabalha? Capture: committed transactions are captured (and can be filtered) as they occur by reading the transaction logs. Trail: stages and queues data for routing. Pump: distributes data for routing to target(s). Route: data is compressed, encrypted for routing to target(s). Delivery: applies data with transaction integrity, transforming the data as required. Capture Trail Trail Pump Delivery LAN/WAN Internet TCP/IP Source Delivery Oracle & Non-Oracle Database(s) Target Trail Source Trail Pump Bi-directional Target Oracle & Non-Oracle Database(s) Capture Heterogeneas Plataformas Banco de Dados Captura: • Oracle • DB2 • SQL Server • Teradata Entrega • Todos acima • Produtos ETL • JMS • Mysql • TimesTen Sistemas Operacionais Windows 2000, 2003, XP Linux Sun Solaris HP NonStop HP-UX HP TRU64 HP OpenVMS IBM AIX IBM z/OS Oracle Goldengate Casos de Uso Integração de Dados em Tempo Real Beneficio: utilizando o Odi com Golden Gate podemos carregar os dados para um datawarehouse e após rodar os ETL com isso eliminamos a carga nos bancos de origem, reduzimos a latencia e trabalhamos com o dado em tempo real Beneficio: Habilitar relatórios para tomada de decisões removendo o impacto nos bancos de origem. Golden Gate com ODI Quando utilizar Golden Gate com ODI • • • • Quando a consulta do ODI impactar no banco de dados de origem Quando muita latencia de rede é crítica Quando a integridade dos dados no datawarehouse é importante Quando se precisam dos dados online. Zero Downtime em migrações e Upgrade • • • Reduz o risco do negócio e sem downtime Sem manual intervenção para reduzir a possibilidade de erros Assegura a consistência de dados Consolidação Oracle Oracle Oracle Oracle Data Mart SQL Server Reporting: Business Objects, Crystal Oracle GoldenGate Implementação Implementando Oracle GoldenGate 1. Prepare the Environment Source Database 3. Initial Load (various methods) Capture Target Database Delivery Trail Transaction Logs 2. Change Capture Target Trail 4. Change Delivery Exemplo Extract Oracle Configuration Source Database Transaction Log Capture Network (TCP/IP) Trail GGSCI> EDIT PARAMS ODS EXTRACT ODS USERID GoldenUser, PASSWORD password RMTHOST 162.111.23.49, MGRPORT 7809 RMTTRAIL /ggs/dirdat/rt TABLE SALES.ORDERS; TABLE SALES.INVENTORY; GGSCI> ADD EXTRACT ODS, TRANLOG, BEGIN NOW GGSCI> ADD RMTTRAIL /ggs/dirdat/rt, EXTRACT ODS GGSCI> START EXTRACT ODS Note: The remote trail is created on the target system /ggs/dirdat/rt000000 /ggs/dirdat/rt000001 Exemplo Initial Load: Oracle GoldenGate Manager Manager Manager Manager Source Database Target Database Extract Capture ADD EXTRACT <name>, SOURCEISTABLE Extract parameters: RMTTASK REPLICAT, GROUP <name> Delivery ADD REPLICAT <name>, SPECIALRUN Exemplo Initial Load Oracle GoldenGate File Manager Source Database File File File Capture Trails ADD EXTRACT <name> Extract parameters: SOURCEISTABLE RMTFILE <name> FORMATASCII BCP or SQLLOADER SQL* Loader BCP SSIS Delivery Target Database Exemplo Replicat – Oracle Configuration Trails Trail Delivery GGSCI> DBLOGIN SOURCEDB mydb USERID login PASSWORD pw GGSCI> ADD CHECKPOINTTABLE ggs.checkpt GGSCI> EDIT PARAMS REPORD REPLICAT REPORD TARGETDB dsn USERID ggsuser PASSWORD ggspass -- USERID ggsuser, PASSWORD ggspass ASSUMETARGETDEFS DISCARDFILE /ggs/dirrpt/REPORT.dsc, APPEND MAP SALES.ORDERS, TARGET SALES.ORDERS; MAP SALES.INVENTORY, TARGET SALES.INVENTORY; GGSCI> ADD REPLICAT REPORD, EXTTRAIL /ggs/dirdat/rt GGSCI> START REPLICAT REPORD Target Database Data Pumps Primary Capture Data Pump Target Trail Target Trail Target Trail Target Trail Data Pumps Data Pump 1 Primary Capture Target Trail Data Pump 2 Target Trail Data Pump 3 Target Trail Target Trail Formatos de Trails • O goldengate pode gerar os formatos abaixos: • FORMATASCII • FORMATSQL • FORMATXML Exemplo - FORMATASCII • The transaction that is the subject of the examples: INSERT INTO CUSTOMER VALUES ("Eric", "San Fran", 550); UPDATE CUSTOMER SET BALANCE = 100 WHERE CUSTNAME = "Eric"; COMMIT; • Example 1. FORMATASCII without options produces the following: B,1997-02-17:14:09:46.421335,8,1873474, I,A,TEST.CUSTOMER,CUSTNAME,'Eric',LOCATION, 'San Fran',BALANCE,550, V,A,TEST.CUSTOMER,CUSTNAME,'Eric',BALANCE,100, C, • Example 2. FORMATASCII, NONAMES, DELIMITER '|' produces the following: B|1997-02-17:14:09:46.421335|8|1873474| I|A|CUSTOMER|'Eric'|'San Fran'|550| V|A|CUSTOMER|CUSTNAME|'Eric'|BALANCE|100| C| Note: The last record returns column names for the CUSTNAME and BALANCE columns because the record is a compressed update and PLACEHOLDERS was not used. Exemplo: FORMATSQL B,2008-11-11:13:48:49.000000,1226440129,155, DELETE FROM TEST.TCUSTMER WHERE CUST_CODE='JANE'; DELETE FROM TEST.TCUSTMER WHERE CUST_CODE='WILL'; DELETE FROM TEST.TCUSTORD WHERE CUST_CODE='JANE' AND ORDER_DATE='1995-11-11:13:52:00' AND PRODUCT_CODE='PLANE' AND ORDER_ID='256'; DELETE FROM TEST.TCUSTORD WHERE CUST_CODE='WILL' AND ORDER_DATE='1994-09-30:15:33:00' AND PRODUCT_CODE='CAR' AND ORDER_ID='144'; INSERT INTO TEST.TCUSTMER (CUST_CODE,NAME,CITY,STATE) VALUES ('WILL','BG SOFTWARE CO.','SEATTLE','WA'); INSERT INTO TEST.TCUSTMER (CUST_CODE,NAME,CITY,STATE) VALUES ('JANE','ROCKY FLYER INC.','DENVER','CO'); INSERT INTO TEST.TCUSTORD (CUST_CODE,ORDER_DATE,PRODUCT_CODE,ORDER_ID,PRODUCT_PRICE,P RODUCT_AMOUNT,TRANSACTION_ID) VALUES ('WILL','1994-0930:15:33:00','CAR','144',17520.00,3,'100'); INSERT INTO TEST.TCUSTORD (CUST_CODE,ORDER_DATE,PRODUCT_CODE,ORDER_ID,PRODUCT_PRICE,P RODUCT_AMOUNT,TRANSACTION_ID) VALUES ('JANE','1995-1111:13:52:00','PLANE','256',133300.00,1,'100'); C, Exemplo: FORMATXML <transaction timestamp="2008-11-11:14:33:12.000000"> <dbupdate table="TEST.TCUSTMER" type="insert"> <columns> <column name="CUST_CODE" key="true">ZEKE</column> <column name="NAME">ZEKE'S MOTION INC.</column> <column name="CITY">ABERDEEN</column> <column name="STATE">WA</column> </columns> </dbupdate> <dbupdate table="TEST.TCUSTMER" type="insert"> <columns> <column name="CUST_CODE" key="true">ZOE</column> <column name="NAME">ZOE'S USED BICYCLES</column> <column name="CITY">ABERDEEN</column> <column name="STATE">WA</column> </columns> </dbupdate> <dbupdate table="TEST.TCUSTMER" type="insert"> <columns> <column name="CUST_CODE" key="true">VAN</column> <column name="NAME">VAN'S BICYCLESS</column> <column name="CITY">ABERDEEN</column> <column name="STATE">WA</column> </columns> </dbupdate> </transaction> Processo de Reversão Source Transaction Log or GoldenGate Trails Capture Write to a single file or a series of files Reverse input SPECIALRUN TRANLOG BEGIN END GETUPDATEBEFORES NOCOMPRESSDELETES Filter criteria (if any) EXTFILE or RMTFILE (Table statements) Delivery Source Database output Operation sequence is reversed Inserts become deletes Deletes become inserts Update Before Images become After Images Begin and end transaction indicators are reversed If input is a series of files, reverses file sequence Oracle GoldenGate Mapeamento e Transformação Mapeamento e Transformação • Where e Filtros • Mapeamento de colunas • Funções • SQLEXEC • Macros • User tokens • User exits • Sequences Oracle GoldenGate Opções de Configuração Opções de Configurações • BATCHSQL • Compression • Encryption • Bidirectional • Event actions • DDL replication Criptografia Capture Delivery Network (TCP/IP) Server Collector Target Trail Message Encryption (Blowfish) Trail or Extract File Encryption (Oracle GoldenGate) Parameters Parameters Database Password Encryption Eventos INSERT / UPDATE / DELETE Values(…) in an event table INSERT / UPDATE / DELETE Values(…) in a data table Reports Logs Discards Chkpts Reports EVENT PROCESSING Logs EVENT PROCESSING TCP/IP Network Transaction Log Target Trail Capture Discards Chkpts Delivery Bidirectional Transaction Log Capture Delivery TCP/IP Network Target Trail Source Target Source Target TCP/IP Network Delivery Target Trail Capture Transaction Log Segurança para execução de comandos no GGSCI Sample CMDSEC File: #Command Object Group User STATUS STATUS START START * STOP STOP * * REPLICAT * REPLICAT REPLICAT EXTRACT * * * * ggsgroup ggsgroup root * 200 ggsgroup ggsgroup root * ggsuser * * * * * ggsuser root * Can you see the error with the two STOP lines? Access Allowed? NO YES YES NO NO NO YES YES NO Gustavo Brito [email protected]