Der Vortrag zum Thema Migration war Teil der OPITZ CONSULTING Veranstaltungsreihe zum Thema Oracle 11gR2 Erfahrungen an verschiedenen Standorten unserer IT-Beratung. Die Migration von Datenbanken erfolgt aus verschiedenen Gründen: Für die eine Datenbank wurde der Wechsel der Hardware-Architektur oder der Austausch des Betriebssystems beschlossen. Eine zweite Datenbank soll an die neueste Version der Datenbank-Software angepasst werden. Die dritte Datenbank wird von einem Test- in ein Produktivsystem übernommen. Der Referent Christian Ballweg klärt die Begriffe Migration und Upgrade und zeigt Möglichkeiten der Übernahme einer Datenbank auf neue Plattformen durch die Techniken Import, Transportable Tablespaces und Data Guard. Dabei werden Vor- und Nachteile sowie die erforderliche Downtime betrachtet.
7. Migrationsvarianten Was wollen wir migrieren? Lösungswege? Versions-Upgrade ja nein HardwareAustausch HardwareAustausch ja ja nein nein Plattform-Austausch Plattform-Austausch catupgrd.sql fertig ja nein ja nein Endian-Wechsel nein ja ... ... ... 11g ... DataGuard
19. Nur Datenübernahme, Scripts für Erstellung und Transfer selbst zu implementierenDatabase-Link create table as select ... Etwa gleiche Vor- und Nachteile wie bei sqlplus/sqlldr
43. Migration/Upgrade mit Transportable Tablespace Transferieren der Tablespaces (mit Metadaten) Importieren der transportierten Tablespaces Gegebenenfalls vorher rman convert datafile expdp transport_tablespaces=application1,... Old Server New Server, Empty Database system system undo undo temp temp Filetransfer application1 read-only application1 application2 application2 deactivated old server New Server, Productive DB system system undo undo temp temp application1 application1 application2 application2 impdp <metadata-file> ...
44. Upgrade auf demselben Server Vorbereiten neuer Datenbank und Metadaten Importieren der Transportable Tablespaces Kein Umkopieren notwendig Aber: kein direkter Fallback möglich 10.2.0.4 11.2.0.2 create user ... system system undo undo temp temp application1 application2 expdp transport_tablespaces=application1,... impdp <metadata-file>,... 10.2.0.4 11.2.0.2 deactivated system system undo undo temp temp application1 application2
48. Unterstützte Data Guard (DG) Konfigurationen Primary/Standby auf Servern derselben Oracle Plattform SQL> select platform_id, platform_name from v$database; PLATFORM_ID PLATFORM_NAME ----------- ----------------------------------- 10 Linux IA (32-bit) Erlaubt sind: (MOS Note 413484.1) Unterschiedlicher Hersteller (z.B. HP / IBM) Unterschiedliche CPU, unterschiedliche Speichergrösse Unterschiedliche OS-Distribution oder Version (RedHat/SuSE, OEL4/OEL5) Innerhalb gewisser Betriebssystem-Familien z.B. Linux x86 / Linux x86_64, Windows 32bit / 64bit (414043.1) Zwischen verschiedenen Plattformen gleicher Endianness Nur einige Kombinationen zertifiziert. z.B. (413484.1) Windows 32bit Linux 32bit HPUX PA-RISC HPUX Itanium Solaris Sparc AIX Power
49. Einige Data Guard Plattform-Kombinationen(Physical Standby) Kombination 32/64Bit, Neu-Kompilierung von Packages erforderlich
50. Migration von 32bit Windows auf 64bit Linux Aufbau eines neuen Linux Servers Aufbau einer Data Guard Umgebung zwischen dem alten und neuen Server Dies erfolgt ohne Downtime der Primary Switchover auf neuen Server Kurzer Unterbruch im Minutenbereich Rekompilieren der Datenbank-Objekte Abhängig von Anzahl/Performance CPU und Anzahl Packages Entfernen des alten Windows Servers Fallback-Szenario: Switchover auf alte Umgebung zurück recompile
55. Rolling Migration Migration Upgrade der Logical Standby Nachführen der Änderungen, die auf der (alten) Primary angefallen sind X redo-transport Client Upgrade derLogical Standby 11.1.0.6 11.1.0.6 11.2.0.2 @catupgrd.sqlCOMPATIBLE=11.1.0.6 eth0 eth0 Primary 11.1.0.6 logical Standby 11.2.0.2 Nachführen der angefallenen Änderungen Client redo-transport 11.1.0.6 11.2.0.2 eth0 eth0 SQL-Apply Primary 11.1.0.6 Logical Standby 11.2.0.2
56. Rolling Migration Migration abschließen Switchover auf die migrierte Logical Standby (kurze Downtime für Clients) Die alte Primary kann nun auf die neue Version portiert werden Switchover Rollentausch Prod. auf 11.2 Client 11.1.0.6 11.2.0.2 Downtime eth0 eth0 Primary 11.1.0.6 Logical Standby 11.2.0.2 Client redo-transport flashback Zum Schluss:COMPATIBLE=11.2.0.2 11.1.0.6 11.2.0.2 Optional: Upgrade der alten Primary @catupgrd.sql eth0 eth0 11.2.0.2 Logical Standby 11.1.0.6 Primary 11.2.0.2
70. Datenbank-Upgrade Prinzipielle Varianten Upgrade der bestehenden Datenbank Statt Upgrade: Datenübernahme in neuere Datenbank Problem der Downtime Während Upgrade-Skript (catupgrd.sql) läuft, kein Client-Zugriff Lange Downtime bei vielen Objekten Möglichkeiten zur Downtime-Reduktion Vorherige De-Installation nicht benötigter Komponenten Wird Java, XML, Oracle Text usw. wirklich verwendet? Rolling Upgrade Verwendung einer Logical Standby Database Transportable Tablespace Analog zum Beispiel der Plattform-Migration Tablespaces werden an eine neuere Datenbank angehängt Minimal Downtime mit zusätzlicher Replikation (GoldenGate, Shareplex, …)
71. Datenbank-Upgrade Tipps Upgrade Advisors Oracle Support Upgrade Advisors [ID 250.1]mitvielenVerweisen auf weitereDokumente Database Upgrade from 9.2 to 11.2 [264.1] Database Upgrade from 10.2 to 11.2 [251.1] TTS – Transportable Tablespaces Master Note for Transportable Tablespaces (TTS) -- Common QuestionsandIssues [ID 1166564.1] 10g : Transportable Tablespaces Across Different Platforms [ID 243304.1] What Objects Are Exported With Transportable Tablespaces (TTS)? [ID 883153.1] Data Guard Physical Standby Master Note for Data Guard [ID 1101938.1] Data Guard Logical Standby Mixed Oracle Version support with Data Guard Redo Transport Services [ID 785347.1] Data Guard Support for Heterogeneous Primary and Logical Standbys in Same Data Guard Configuration [ID 1085687.1] Troubleshooting Logical Standby [ID 215020.1] MAA – Oracle Maximum AvailabilityArchitecture http://www.oracle.com/technetwork/database/features/availability/index.html
Der Begriff Upgrade wird hier verwendet für den Wechsel des Oracle Releases, z.B. 9i 11g oder 11.2.0.1 11.2.0.2Der Begriff Migration wird hier verwendet für den Wechsel der Hardware. Die Migration kann mit einem Upgrade kombiniert werden.Plattform: Kombination von Hardware und Betriebssystem, z.B. Linux x86, Linux Itanium, Solaris Sparc, Solaris x86Little/Big-Endian: Datafiles können nicht direkt übernommen werden, wenn die andere Plattform ein anderes Endian-Format hat.Downtime: Wie können wir die Downtime bei der Migration reduzieren? Zeit der Migration ist nicht zwingend gleich der Downtime.
Erklären, welche Möglichkeiten es gibt. Im Beispiel dargestellt. Kein-SW-Upgrade, Plattform-Wechsel ohne Endianness-Wechsel (z.B. Windows auf Linux Migration mit DataGuardWeitere Beispiele nennen: Software-Upgrade mit Plattformtausch mit Endian-Welchsel: z.B. mit Transportable Tablespace, wenn > 10g, ansonsten zuerst Upgrade auf alter Software auf 10g, dann TTS
Problematisch ist exotisches Zeug wie xml, eigene Datentypen, Objekt-Tabellen usw. Manchmal funktioniert es nur mit exp, manchmal nur mit expdp. Besonders problematisch sind spezielle Objekte bei Datapump über NETWORK_LINK (LONGs, OBJECT_TYPE columns, PARTITIONS, ...).Kein direct_path (bei impdp) wenn: LOBs, global index auf partitionedtable, supplementallogging, …Eigene Objekte, welche unter sys erstellt wurden, werden nicht exportiert!
Vornehmlich ERGÄNZEND:GoldenGate erlaubt auch vorherigen Aufbau ohne downtime mit Replizierung, ähnlich wie eine logicalstandby – aber nur ohne LOBs! Shareplex hat spezielle Features wie „live-Activation“ und „flushqueue“: leeren der Puffer mit abschließender Abschaltung des Apply-Prozesses
DataGuard (phys/log)Mittelder Wahl!TDB: “Use transportable database for platform migration only when cross-platform physical standby database or logical standby database is not supported for the platform combination in question. […] There is less downtime (only the time it takes to switchover) and it is possible to run the standby database on the new platform temporarily to ensure that everything is working as planned.”
MASTER NOTE: 1166564.1select * fromv$transportable_platform;10G:Solaris[tm] OE (32-bit) BigSolaris[tm] OE (64-bit) BigMicrosoft Windows NT LittleLinux IA (32-bit) LittleAIX-Based Systems (64-bit) BigHP-UX (64-bit) BigHP Tru64 UNIX LittleHP-UX IA (64-bit) BigLinux IA (64-bit) LittleHP Open VMS LittleMicrosoft Windows IA(64-bit) LittleIBM zSeriesBased Linux BigLinux 64-bit for AMD LittleApple Mac OS BigMicrosoft Windows 64-bit for AMD LittleHier (bzw. nach den nächsten 2 Folien) kann eine kleine Demo stattfinden, Migration von AIX nach Linux (32 oder 64bit, bestehende Datenbank verwenden)
Nicht auf Details eingehen, nur den Teilnehmern das Grobkonzept in Erinnerung rufen, was die Idee hinter Dataguard ist.Wenn Konzept schon im Vortrag Verfügbarkeit erwähnt wurde, Folie überspringen.
Wichtig: die rot markierten BegriffePlattform: 1) gleiches CD-Set (siehe Bild) PLUS2) gleiche Platform_IDMOS-Notes Stand Februar 2011. Kann gelegentlich ändern (z.B. ist Solaris x86 Linux im Vergleich zur Version von Anfang 2010 hinzugekommen)
Hellgrün: auf gleicher Plattform ist immer supported
Der Aufbau auf Linux 64Bit kann eventuell etwas Handarbeit erfordern. (db_file_name_convert funktioniert möglicherweise nicht korrekt). Auf 32bit jedoch keine solchen Probleme gesehen. Siehe Vortrag "Migration mit DataGuard" vom letzten Jahr (basierte aber noch auf 11.1).
Auf diese Folie nur kurz eingehen, wird in den folgenden Graphiken erklärt.UNSUPPORTED in LSB (9i): IOTs, Userdef. Tables, Tables w/ FBIs, Sequences in SYS-Schema… select DBA_LOGSTDBY_UNSUPPORTEDLONGLONG RAWBFILENCLOBROWIDUROWIDUser-definedtypesObjecttyoes REFsVarryasNestedtables…
Es sind nur wenige Kombinationen unterstützt. Man beachte, dass nur 3264bit, nicht aber 6432bit möglich ist
Es sind nur wenige Kombinationen unterstützt. Man beachte, dass nur 3264bit, nicht aber 6432bit möglich ist