"Online"-Migration mit Quest Shareplex DOAG Regionaltreffen Berlin Brandenburg Johannes Ahrends Herrmann & Lenz Services GmbH Seit 1996, z.Zt. 10 Mitarbeiter Sitz in Burscheid (bei Köln) Beratung beim Einsatz von Oracle Datenbanken – – – – Installation Tuning Troubleshooting Reorganisationen / Migrationen Fernwartung – Überwachung – Administration Schulung – Oracle Datenbank – Quest TOAD Agenda Online Migration mit Shareplex Generelle Funktionalität Restriktionen Konfiguration Praxisbeispiel Migration mit Shareplex Es wird eine komplett neue Datenbank aufgebaut – – – – Reorganisation aller Objekte Umstellung auf Locally Managed Tablespaces Alle Oracle9i Funktionen einsetzbar Neue Verteilung (auch auf andere Schemata) möglich Auszeit für die Produktion nur wenige Minuten – Die Anwendung muss gestoppt werden – Eine kurzfristige Synchronisation findet statt (ca. 5 Minuten) – Die Anwendung wird gegen die neue Datenbank gestartet Fallback möglich Erstellen einer Zieldatenbank Backup der Quelldatenbank – Cold-Backup – Hot-Backup mit Shareplex Reconile – DBCopy Erstellen einer neuen Datenbank – Export / Import des Quellsystems (FULL, USER, TABLE) – CREATE-TABLE-AS-SELECT über Datenbank-Link – Optimal: Quelldatenbank steht Read-Only zur Verfügung Migration mit Shareplex Produktion Alt PROD8i phys. Kopie z.B: DBCopy Shareplex a Sh Neu PROD9i le x p re Failover / Standby SPROD8i Generelle Funktionalität Source Target Export Queue Reader Export Import Post Queue Post Capture Queue Capture SQL Oracle9i Redologs Oracle9i Redologs Was wird repliziert DML-Operationen auf reguläre Tabellen ALTER TABLE: – ADD / DROP COLUMN – MODIFY STORAGE TRUNCATE TABLE Sequences incl. DROP SEQUENCE (nur mit CACHE) Direct Path Load (nur LOGGING) Auch für Oracle Parallel Server bzw. Real Application Clusters Was wird repliziert (Supplemental Logging) ANALYZE TABLE ANALYZE INDEX CREATE / ALTER / DROP CREATE DROP SYNONYM CREATE / ALTER / DROP CREATE / ALTER / DROP CREATE / ALTER / DROP CREATE / ALTER / DROP CREATE / ALTER / DROP CREATE / ALTER / DROP VIEW SEQUENCE STORED PROCEDURE STORED FUNCTION STORED PACKAGE USER (incl. GRANT /REVOKE) ROLE (incl. GRANT /REVOKE) Was wird repliziert (Datentypen) CHAR DATE NUMBER LONG VARCHAR VARCHAR VARCHAR2 LONG LONG RAW BLOB CLOB ROWID Abstrakte Datentypen (UDT) incl. VARRAY Was wird nicht repliziert Indizes Data-Dictionary Tabellen Datensätze mit einer Satzlänge > 320 Kbyte (Ausnahme LONG, LONG RAW, BLOB, CLOB) Snapshots und Materialized Views Trigger NCLOB und BFILE Datentypen Nested Tables Clustertabellen Index-Organized Tabellen Objekttabellen Trigger, Constraints, Sequences ON DELETE CASCADE-Constraints führen zu Problemen auf dem Zielsystem – Vermeiden dieser Constraints (z.B:disable auf dem Zielsystem) – Alternativ: Erstetzen des Constraints durch einen Trigger Trigger – Einbauen einer IF-Abfrage, ob der Benutzer != 'SPLEX' ist – Kann durch das SQL-Script sp_add_trigger automatisch eingebaut werden Sequences – Bei einer Peer-to-Peer Replikationen (alle beteiligten Systeme gleichberechtigt), sollten die Sequences unterschiedlich sein (Offset oder gerade / ungerade) Konfiguration Konfigurationsdatei besteht aus folgenden Einträgen: – Target Machine: Name des Zielsystems – Soure Database ID: ORACLE_SID der Quelldatenbank – Target Database ID: ORACLE_SID der Zieldatenbank – Source Owner: Schemaname auf dem Quellsystem – Target Owner: Schemaname auf dem Zielsystem – Source Table: Tabelle, die repliziert werden soll Datasource: o.ORCL1 Datasource: o.ORCL1 Tabelle, in die repliziert werden soll – Target Table: demo.kunden demo.kunden [email protected] demo.kunden demo.kunden [email protected] Quelltabelle Zieltabelle Zieldatenbank Konfiguration Neben Tabellen können auch Sequences angegeben werden (allerdings nur, wenn CACHE > 1) Die Zieltabelle kann zusätzliche Spalten haben Schemanamen und Tabellennamen können auf dem Quell- und Zielsystem unterschiedlich sein Aktivierung Was passiert während der Aktivierung? – Die Tabellen werden nacheinander oder gleichzeitig (live) gelesen. Dabei werden die Chained-Rows in eine spezielle Shareplex-Tabelle (SHAREPLEX_ROWIDMAP) eingetragen. – Bei der "normalen" Aktivierung werden die Tabellen während dieser Zeit gesperrt – Bei der "live" Aktivierung werden Tabellen nur dann gesperrt, wenn eine bestimmte Anzahl Chained-Rows überschritten wurde (Default 2000, max. 1000000) Vorteile / Nachteile Vorteile Oracle – Schnell – Keine großen Vorbereitungen – Gesamtdauer < 1 Tag – Unterstützt SAP Nachteile Oracle – Keine neuen Funktionen nutzbar – Auszeit ca. 1 Stunde – Bei älteren Systemen aufwendiger – Fallback mehrere Stunden Vorteile Shareplex – Reorganisation – Alle neuen Funktionen nutzbar – Kurze Auszeit – Fallback ohne zusätzliche Zeit möglich Nachteile Shareplex – Ressourcenintensiv – Planung notwendig – Gesamtdauer ca. 3 – 5 Tage – Test notwendig – Nicht einsetzbar im Umfeld SAP Praxisbeispiel Projekt T Umfeld Produktionssystem SUN Solaris 2.8 – Oracle8i Version 8.1.7.4 – Zwei Systeme mit Shareplex 3.5 als Hochverfügbarkeitslösung – Datenbankgröße ca. 20 Gbyte Vorgaben: – – – – – – Oracle9i Version 9.2.0.3 Neue Anwendungssoftware Reorganisation der Datenbank Neues Datenbanklayout Tests von ausgewählten Benutzern auf der neuen Produktion Migrationsende Mitte November 2004 Datenbank-Konfiguration (ALT) Datenbank-Namen: – PROD8a – PROD8b Produktionsdatenbank auf sun01 Failover-Datenbank auf sun02 Directories für Datenbank-Dateien: – /oradata1 - /oradata4 Shareplex Vardir: – /oradata3/splex Shareplex Home: – /app/splex Datenbank-Konfiguration (NEU) Datenbank-Namen: – PROD9a – PROD9b Produktionsdatenbank auf sun01 Failover-Datenbank auf sun02 Directories für Datenbank-Dateien: – /oradata1 - /oradata4 Shareplex Vardir: – /oradata3/splex45 Shareplex Home: – /app/splex45 Migration prdb01 Port: 2100 PROD8a prdb02 Port: 2100 SPLEX SPLEXMIG 00 1 4 : Port SPLEX Por 00 1 4 : t Port: 5100 PROD9a SPLEX Port: 3100 SPLEXMIG PROD8b Port: 3100 PROD9b SPLEX Migrationsvorbereitungen Installation von Oracle9i Release 9.2.0.3 auf beiden Systemen Erstellen der Datenbanken PROD9a und PROD9b inklusive aller Tablespaces und des Benutzers anw_admin, nicht jedoch seiner Objekte Installation von Shareplex 4.5 für Oracle9i auf beiden Systemen Erstellen der Benutzer splex in PROD9a und PROD9b Erstellen des Benutzers splexmig in PROD9a Installation von Shareplex 4.5 für Oracle8i auf sun02 Erstellen des Benutzers splexmig in PROD8b Migrationsdurchführung 8. 9. 10. 11. 12. 13. 14. 15. Stoppen des Post-Prozesses für Port 2100 Erstellen der Tabellen auf PROD9a und PROD9a mittels "CREATE TABLE … AS SELECT … NOLOGGING" Erstellen der Indizes, Views, Sequences, Trigger, Grants, etc. Aktivieren der Shareplex-Replikation zwischen PROD8b und PROD9a Aktivieren der Shareplex-Replikation zwischen PROD9a und PROD9b Sequences abgleichen aus PROD8a (+10000) Starten des Post-Prozesses für Port 2100 Warten, bis die Post-Queues abgearbeitet worden sind Umschalten des Anw-Serverprosses auf die neue DB Fragen?