Oracle Active Data Guard Fehér Lajos Omnit Solutions Kft. 1
Oracle Data Guard Standby Database Oracle RDBMS Standard Edition Nem része a terméknek Oracle RDBMS Enterprise Edition Data Guard a termék része Active Data Guard opció külön licensz köteles 2
Data Guard architektúra A Concept Guide ból kiemelve.. A redo record, also called a redo entry, is made up of a group of change vectors, each of which is a description of a change made to a single block in the database. For example, if you change a salary value in an employee table, you generate a redo record containing change vectors that describe changes to the data segment block for the table, the undo segment data block, and the transaction table of the undo segments... 3
Oracle net Data Guard architektúra Primary database transactions LNSn RFS MRP or LSP Standby database Redo buffer LGWR (Real-time apply) Online Redo logs Standby redo logs Backup ARC0 Gap resolution ARC0 Reports Archived redo logs 4
Data Guard több, mint HA / DR megoldás HA / DR megoldás Elsődleges oldal tehermentesítése Mentés / helyreállítás támogatása Adat blokk sérülések kiszűrése Riportok / adhoc lekérdezések kiszolgálása Alkalmazás tesztelés, hot fix próba Upgrade támogatása 5
Read Only Standby Database Redo apply szolgáltatás áll Standby adatbázis elérhető csak olvasásra Riportok vagy adhoc lekérdezések futtathatóak a megnyitás állapotának megfelelő időpillanatra Kiesik a HA/DR megoldás Nagyra nőhet a lemaradás 6
Read Only Standby Database Támogatott SQL műveletek Select, komplex query Tárolt eljárások (amennyiben nem módosítanak adatokat) DBLINK SET ROLE ALTER SESSION / ALTER SYSTEM Nem támogatott SQL műveletek DML / DDL Szekvenciák használata 7
Read Write Snapshot Standby Database 11g DGMGRL> EDIT DATABASE 'STDBY SET STATE='APPLY-OFF'; SQL> SHUTDOWN IMMEDIATE SQL>STARTUP MOUNT SQL> ALTER DATABASE FLASHBACK ON; DGMGRL> EDIT DATABASE 'STDBY SET STATE='APPLY-ON'; DGMGRL> CONVERT DATABASE 'STDBY TO SNAPSHOT STANDBY; 8
Read Write Snapshot Standby Database 11g DGMGRL> SHOW CONFIGURATION Configuration Name: DGConfig1 Enabled: YES Protection Mode: MaxPerformance Databases: PROD - Primary database STDBY - Snapshot standby database Fast-Start Failover: DISABLED Current status for "DGConfig1": SUCCESS 9
Read Write Snapshot Standby Database 11g Nem kell külön licensz Redo apply szolgáltatás áll, de a log transzport működik Standby adatbázis elérhető teljes értékűen Riportok vagy adhoc lekérdezések futtathatóak a megnyitás állapotának megfelelő időpillanatra RAT és egyéb alkalmazás teszt funkciók Hot fix, patchset ellenőrzés Flashback database technológia használata Kiesik a HA/DR megoldás Nagyra nőhet a lemaradás 10
Read Write Snapshot Standby Database 11g DGMGRL> CONVERT DATABASE 'STDBY' TO PHYSICAL STANDBY; DGMGRL> SHOW CONFIGURATION Configuration Name: DGConfig1 Enabled: YES Protection Mode: MaxPerformance Databases: PROD - Primary database STDBY - Physical standby database Fast-Start Failover: DISABLED Current status for "DGConfig1": SUCCESS 11
Oracle Active Data Guard 11g Külön licensz köteles Standby adatbázis elérhető read-only módban Redo apply működik Valós idejű riportok vagy adhoc lekérdezések futtathatóak RMAN block change tracking támogatás Folyamatos HA/DR megoldás Jelentős mértékben csökkenthető az elsődleges oldal terhelése 12
Oracle Active Data Guard 11g DGMGRL> EDIT DATABASE 'STDBY SET STATE='APPLY-OFF'; SQL> ALTER DATABASE OPEN READ ONLY; DGMGRL> EDIT DATABASE 'STDBY SET STATE='APPLY-ON'; 13
Active Data Guard változás alapú mentés RMAN Block Change Tracking Jelentősen csökkenthető a mentés ideje, mérte A mentés nem terheli az elsődleges oldal SQL> ALTER DATABASE ENABLE BLOCK CHANGE TRACKING; SGA List of changed blocks CTWR Redo generation 1011001010110 0001110100101 1010101110011 Changetracking file Redo log 14
Active Data Guard Real Time Query Valós idejű adatok Alkalmazás tervezési szempont Valódi replikációs technológia Mview / Streams alternatíva GoldenGate / Streams forrás OracleBI EE Plus adatforrás Riport load balance lehetőség 15
Active Data Guard Reader Farm 16
Data Guard konfigurációs kérdések Redo transzport szolgáltatás OracleNet SYNC NET_TIMEOUT paraméter (10-30) SQLNET.ORA OUTBOUND_CONNECT_TIMEOUT (3) RECV_TIMEOUT SEND_TIMEOUT RECV_BUF_SIZE=2,332,500 SEND_BUF_SIZE=2,332,500 DEFAULT_SDU_SIZE = 32767 TCP réteg hangolása net.core.rmem_max net.core.wmem_max Redo compression (Advanced Compession - 729551.1) 17
Data Guard konfigurációs kérdések Redo apply szolgáltatás CPU count parallel redo apply DB_ULTRA_SAFE = DATA_AND_INDEX DB_LOST_WRITE_PROTECTION = TYPICAL / FULL DB_CACHE_SIZE STANDBY_MAX_DATA_DELAY (11gR2) 18
Data Guard nyomkövetés SQL> SELECT * FROM V$RECOVERY_PROGRESS; Active Apply Rate oszlop GRID Control - Metrics Statspack for DG - 454848.1 ASH riport - 1081055.1 AWR riport az elsődleges oldalon 19
Data Guard nyomkövetés Parallel Recovery Coordinator Wait Events Log file sequential read - The parallel recovery coordinator is waiting on I/O from the online redo log or the archived redo log Parallel recovery read buffer free - All read buffers are being used by slaves, and usually indicates that the recovery slaves lag behind the coordinator. Parallel recovery change buffer free - The parallel recovery coordinator is waiting for a buffer to be released by one of the recovery slaves. Again, this is a sign the recovery slaves are behind the coordinator. Datafile init write - The parallel recovery coordinator is waiting for a file resize to finish, as would occur with file auto extend. Parallel recovery control message reply - The coordinator has sent a synchronous control messages to all slaves, and is waiting for all slaves to reply. 20
Data Guard nyomkövetés Parallel Recovery Slave Wait Events Recovery read - A parallel recovery slave is waiting for a batch of asynchronous data block reads to complete. Checkpoint completed - A parallel recovery slave is waiting for Database Writer to complete checkpoint writes and not applying redo changes. DB File Sequential Read - A parallel recovery slave (or serial recovery process) is waiting for a batch of synchronous data block reads to complete. Parallel recovery slave next change - A parallel recovery slave is waiting for a change to be shipped from the coordinator. This is in essence an idle event for the recovery slave. To determine amount of CPU a recovery slave is taking, divide the time spent in this event by number of slaves started and subtract that value from total elapsed time. This will be close, because there are some waits involved. This is in essence an idle event for the recovery slave and can be ignored. 21
Data Guard nyomonkövetés CPU / IO probléma Coordinator / Slave CPU k száma, minősége Memória mérete IO hatékonyság - OS eszközök (vmstat, sar, iostat, stb ) 22
Data Guard alkalmazás tervezési kérdések AUDIT_TRAIL konvetálódik OS -re vagy NONE RW RO elérés szervizek segítségével CREATE OR REPLACE TRIGGER manage_service after startup on database DECLARE role VARCHAR(30); BEGIN SELECT DATABASE_ROLE INTO role FROM V$DATABASE; IF role = 'PRIMARY' THEN DBMS_SERVICE.START_SERVICE('sales_rw'); ELSE DBMS_SERVICE.START_SERVICE('sales_ro'); END IF; END; Kliens oldali TNS Sales_RW = (ADDRESS_LIST= (ADDRESS=(PROTOCOL=TCP)(HOST=node1)(PORT=1521)) (ADDRESS=(PROTOCOL=TCP)(HOST=node2)(PORT=1521)) (CONNECT_DATA = (SERVICE_NAME = sales_rw))) 23
Data Guard alkalmazás tervezési kérdések DBLINK a standby adatbázisban RW / RO elérés DML és DDL átírányítás a DBLINK hívásokon keresztül SQL> insert into emp@sales_rw values (999,'SMITH','SUPER GEEK',999,sysdate,1,0); 1 row created. SQL> commit; SQL> exec sorfeldologzo@sales_rw; ADG QUERY_SCN Primary DB CURRENT_SCN ORA-1555 hiba undo_retention paraméter helyes használata 11gR2:Real-Time SQL Monitoring - dbms_sqltune.report_sql_monitor SQL Performance Analyzer (SPA) támogatása 24
Data Guard alkalmazás tervezési kérdések Végrehajtási tervek figyelemmel követése, statisztika update További indexek a lekérdezések támogatásához Kliens oldalon load-balance alkalmazása, ha több DG site van Reader Farm technológia 25
Köszönöm a figyelmet! Fehér Lajos +36 (30) 400 1646 feher.lajos@omnit.hu 2011.06.29. Fehér Lajos