Jump to content

Dateibasierte Replikation mit Oracle 10g


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo,

 

ich hoffe ihr könnt mir mit ein paar Ratschlägen oder Links helfen.

 

Ich habe 10g auf 2 Rechnern installiert und noch keine Datenbankstruktur eingerichtet. Die beiden Rechner haben keine physikalische Netzwerkverbindung(Das soll so sein) und der Master soll den Client dennoch kontinuierlich mit Änderungsdaten füttern, die ich dann in das andere Netz schaffe. Die Client Datenbank soll online bleiben, damit auf ihr Selects ausgeführt werden können.

 

Bitte - könnt ihr mir sagen, ob es eine Technik gibt, wie man dies File-basiert realisieren kann?

 

Vielen Dank

Marco

Link zu diesem Kommentar

Hallo dealer,

 

mal sehen ob ich Dich richtig verstanden habe.

Eine Datenbank ist auf dem Master, eine zweite Datenbank ist auf dem Client.

Jetzt willst Du das Datenbank-File des Masters auf den Client kopieren, während dieser seine Datenbank, also sein ursprüngliches Datenbank-File, online hält.

Das kann per Design nicht funtionieren.

Wenn überhaupt musst Du mit Detache, Atache arbeiten. Dazu müßen die Datenbanken vorher Offline geschalten werden.

Ich würde dir eher zu Backup and Restore raten. Also ein Backup der Datenbank auf dem Master erstellen und dieses auf dem Client mit Restore, Option: keep Databasefile and overwrite, wieder herstellen. Auch dafür dürfen während des Restore keine Transactions auf der Datenbank ausgeführt werden. Eine Datenbank ist halt nicht einfach nur ein File.

Auch solltest Du bei der Geschichte die anderen Files die ebenfalls zur Datenbank gehören nicht vergessen, wie z.B.: die Logs, evtl den Volltext-Katalog udgl.

Uberlege Dir bitte noch mal, ob die nicht doch lieber eine Replikation über das Netz einrichten willst.

 

Servus

Klaus

Link zu diesem Kommentar

Hi Klaus,

 

erstemal Danke für die Antwort.

 

Ich hatte mir das irgendwie so vorgestellt:

Der Master, auf der einen Seite, ist im online status und erhält seine Befehle Insert, Update, ... und so weiter. Diese Änderungen werden vielleicht dann in eine Log-Datei geschrieben.

 

Client wird zu einem Zeitpunkt auf den gleichen Stand gebracht (Snapshot oder so).

Die oben genannten Logfiles kopiere ich dann auf den Rechner. Dieser erkennt dann dass neue logfiles da sind und erstellt die entsprechnenden Änderungen. Der Client soll ebenso online sein, so dass er Select-Anfragen (Änderungen werden von usern nicht gestattet) beantworten kann. Das Einspielen des logfiles ist natürlich eine Transaktion. Da aber eh nur selects abgestetzt werden, entstehen in dieser Stelle keine Konflikte. So die Theorie.

 

Ich will nicht die Datenbank-files kopieren, sondern die dynamisch erzeugten deltafiles.

Eben diese müsste man theoretisch ohne die DB offline zu schalten einspeisen können.

 

Was sehr ähnlich diesem ist sind die konzepte der Mobile-Synchronisation, oder von Datenbanksicherungen.

 

Aber ich weiß leider nicht wie dies in Oracle geht (hier speziell 10g). spezielle Stichwörter der Techniken, die benutzt werden, bzw. einige Links würden auch schon sehr helfen. Eigentlich bin ich schon sehr belesen, aber nur wenn ich weiß wonach ich suchen muss :)

 

Gruß

Marco

Link zu diesem Kommentar

Hallo Marco,

 

... und so weiter. Diese Änderungen werden vielleicht dann in eine Log-Datei geschrieben.

 

Das kann Dein DBMS von allein.

 

Client wird zu einem Zeitpunkt auf den gleichen Stand gebracht (Snapshot oder so).

 

falls Deine Datenbanken nicht zu groß sind, dürtest Du mit SnapShots am besten fahren. Vieleicht liest Du mal diesen Artikel. Der befasst sich zwar mit der Replikation zwischen SQL 2005 und Oracle, aber das Prinzip dürfte das gleiche sein.

 

Die oben genannten Logfiles kopiere ich dann auf den Rechner. Dieser erkennt dann dass neue logfiles da sind und erstellt die entsprechnenden Änderungen

 

Zur LogFile basierenden Replikation benutzt man eigentlich Replication Server. Die sind speziell dafür entwickelt worden.

 

Der Client soll ebenso online sein, so dass er Select-Anfragen (Änderungen werden von usern nicht gestattet) beantworten kann. Das Einspielen des logfiles ist natürlich eine Transaktion. Da aber eh nur selects abgesetzt werden, entstehen in dieser Stelle keine Konflikte. So die Theorie.

 

Das funktioniert bestimmt. Allerdings würde ich dir da zu einem BulkInsert raten. Also alle Änderungen deines Masters in einer Transaktion in den Client schreiben.

Ich glaube, daß Du um ein wenig skripten oder programmieren nicht herumkommen wirst ;)

 

Leider kann ich Dir keine fertige Lösung anbieten, da für mich eine dateibasierende Replikation noch nie eine Anforderung war. Vieleicht ist ja hier jemand an Board der Dir da besser weiterhelfen kann, oder schon einmal vor eine ähnliche Aufgabe gestellt wurde.

 

Servus

Klaus

 

Klaus

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...