Willkommen bei Entwickler-Forum.
Seite 1 von 2 1 2 LetzteLetzte
Ergebnis 1 bis 10 von 12
  1. #1
    Stammgast
    Registriert seit
    21.09.2010
    Beiträge
    119

    Standard BLOBs mit einem DB LINK übertragen

    Hallo zusammen,

    ich muss große Datenmengen (bspw. eine Tabelle mit 300gb) per DB-LINK übertragen.

    Bei LOB (Secure Files) Spalten bricht dabei die Performance ein.
    Als Erschwernis kommt hinzu, dass die Daten im laufenden Betrieb hinzugefügt werden.
    Also per INSERT ohne APPEND (weil die Tabelle sonst gelockt ist für DML), wobei ein Staging möglich wäre.

    Habt ihr eine Idee, wie man LOB Übertragungen beschleunigen kann?

    Für alle Anregungen und Tipps bin ich dankbar

    Gruß

  2. #2
    Stammgast
    Registriert seit
    24.05.2008
    Beiträge
    1.292

    Standard

    LOBs und DB Links sind generell keine gute Idee.
    Ich würde es so machen, dass zuerst die Tabelle per expdb/impdb physikalisch übertragen wird, und anschließend die zwischenzeitlich aufgelaufenen Änderungen per DB Link kopiert werden.

    Soll das eine dauerhafte oder einmalige Migration sein?
    Zitat Tom Kyte:
    I have a simple philosophy when it comes to the Oracle Database: you can treat it as a black box and just stick data into it, or you can understand how it works and exploit it as a powerful computing environment.

  3. #3
    Stammgast
    Registriert seit
    21.09.2010
    Beiträge
    119

    Standard

    Sorry muss noch etwas nachtragen.
    Die Quellumgebung wird abgeschaltet nach der einmaligen Migration.
    Für die Zielumgebung haben wir kein Wartungsfenster.

    Danke für deinen Vorschlag dimitri.
    Wir haben uns eigentlich gegen EXPDB/IMPDB entschieden.
    Die Migration muss für einige Quelldatenbanken durchgeführt werden und Dumps erhöhen dabei den Aufwand.
    Außerdem denken wir, dass EXPDP + IMPDP + Datenübernahme mehr Zeit kostet als die Datenübernahme via DB-LINK.
    Zusätzlich bräuchten wir dann einen Staging Bereich um die Übernahme steuern zu können.
    Geändert von FlexGer (23.05.2017 um 10:51 Uhr)

  4. #4
    Stammgast
    Registriert seit
    24.10.2011
    Beiträge
    1.272

    Standard

    Zitat Zitat von FlexGer Beitrag anzeigen
    ich muss große Datenmengen (bspw. eine Tabelle mit 300gb) per DB-LINK übertragen.

    Bei LOB (Secure Files) Spalten bricht dabei die Performance ein.
    Als Erschwernis kommt hinzu, dass die Daten im laufenden Betrieb hinzugefügt werden.
    Also per INSERT ohne APPEND (weil die Tabelle sonst gelockt ist für DML), wobei ein Staging möglich wäre.
    Was bedeutet denn "Performance bricht ein"?
    Statt 100 Sätze pro sekunde nur noch 20?
    oder
    Statt 10MB pro Sekunde nur noch 2?

    Wäre ja ein ziemlicher Unterschied.

    Und was bedeutet eine Tabelle mit 300Gb
    Sind die 300gb das Volumen der Tabelle?
    Wieviel davon musst Du übertragen?
    Ist die Tabelle der Inhalt eines BLOB?
    Wie groß ist ein zu übertragender DS und wie groß das BLOB?
    Gruß, defo

  5. #5
    Stammgast
    Registriert seit
    24.05.2008
    Beiträge
    1.292

    Standard

    Zitat Zitat von FlexGer Beitrag anzeigen
    Außerdem denken wir, dass EXPDP + IMPDP + Datenübernahme mehr Zeit kostet als die Datenübernahme via DB-LINK.
    Zusätzlich bräuchten wir dann einen Staging Bereich um die Übernahme steuern zu können.
    Ist natürlich eure Entscheidung, aber wenn bei 85% die Übertragung wg. eines Netzwerkfehler abbricht, dann relativiert sich der zusätzliche Aufwand recht schnell wieder
    Wenn per DB Link, dann würde ich expdb mit dem NETWORK_LINK verwenden, denn dann kann man den Job zumindest wieder aufsetzen (Test!!).
    Zitat Tom Kyte:
    I have a simple philosophy when it comes to the Oracle Database: you can treat it as a black box and just stick data into it, or you can understand how it works and exploit it as a powerful computing environment.

  6. #6
    Stammgast
    Registriert seit
    24.10.2011
    Beiträge
    1.272

    Standard

    Zitat Zitat von FlexGer Beitrag anzeigen
    Für die Zielumgebung haben wir kein Wartungsfenster.

    Danke für deinen Vorschlag dimitri.
    Wir haben uns eigentlich gegen EXPDB/IMPDB entschieden.
    Die Migration muss für einige Quelldatenbanken durchgeführt werden und Dumps erhöhen dabei den Aufwand.
    Außerdem denken wir, dass EXPDP + IMPDP + Datenübernahme mehr Zeit kostet als die Datenübernahme via DB-LINK.
    Zusätzlich bräuchten wir dann einen Staging Bereich um die Übernahme steuern zu können.
    Was migriert Ihr denn da? Ein Schema in eine neue Instanz? Gleiche RDBMS Version?
    Ist das Ziel vorbereitet? Tablespace(s), BLOB Tablespace(s) bereits angelegt?
    Wie sehen die DDL der problematischen Tables aus? Externe BLOB Definition oder intern?
    Gruß, defo

  7. #7
    Stammgast
    Registriert seit
    26.02.2003
    Beiträge
    157

    Standard

    Wird Deine Zieldatenbank neu aufgebaut oder gibt es die schon ? Kommen die Daten der Tabelle mit dem Blob in eine eigene Tabelle oder müssen sie in eine mit weiteren Daten eingebaut werden ?
    Darauf kommt es bei der Übertragung ja auch an. Wenn die Datenbank mit diversen Inhalten schon besteht, aber die Tabelle in einen neuen tablespace kann, wäre auch der Transport über transportable Tablespace, am besten mit rman , eine Idee.

  8. #8
    Stammgast
    Registriert seit
    24.05.2008
    Beiträge
    1.292

    Standard

    Beim Einsatz von TTS muss der Quelltablespace für die Dauer der Kopiervorgangs der Metadaten auf Readonly gesetzt werden.
    Das könnte problematisch sein, da es sich ja anscheinend um ein OLTP System handelt.

    Falls das kein Problem ist, wäre nur noch die Enterprise Edition von nöten und etwas Testaufwand
    Zitat Tom Kyte:
    I have a simple philosophy when it comes to the Oracle Database: you can treat it as a black box and just stick data into it, or you can understand how it works and exploit it as a powerful computing environment.

  9. #9
    Stammgast
    Registriert seit
    26.02.2003
    Beiträge
    157

    Standard

    Wenn man rman benutzt, muss der Quelltablespace meines Wissens nicht auf Readonly gesetzt werden. Das ist der Vorteil gegenüber dem "normalen" TTS. Ausprobiert habe ich es aber selbst noch nicht.
    Kommt jetzt halt drauf an, was er so hat und braucht.

  10. #10
    Stammgast
    Registriert seit
    21.09.2010
    Beiträge
    119

    Standard

    Vielen Dank für die Rückmeldungen und Vorschläge

    Die Dauer der Übertragung liegt tatsächlich in der Datengröße der LOB Felder.
    Bei TTS haben wir einige Probleme bei anderen Kunden gehabt, ORA-00721,29349,01537...
    Für dieses Projekt haben wir es auch ausgeschlossen. Habt ihr denn schon erfolgreich Datenübernahmen (bestehende Tabellen füllen aus einem anderen Datenpool) mit TTS durchführen können?
    Bei DB Links gibt es aktuell (11.2.0.3) auch Probleme, allerdings nur wenn ein Error bei der Transaktion auftritt.
    Die Transaktion bleibt dann einfach hängen, für immer. Sieht so aus, als wenn das übertragende System keine Rückmeldung erhalten hat.
    Habt ihr dafür einen Workaround?

 

 
Seite 1 von 2 1 2 LetzteLetzte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •