"Online"-Migration mit Quest Shareplex

Werbung
"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?
Herunterladen