phoboz
Goto Top

Trigger zwischen zwei Datenbanken

Guten Tag,

folgendes Szenario:

ich habe zwei Postgresql 9.2 Datenbanken auf unterschiedlichen Servern:

Server1DB01 mit schemaA.TabelleA
Server2DB02 mit schemaA.TabelleA

Ich möchte TabelleA auf beiden Datenbanken indentisch haben, allerdings werden INSERT, UPDATE und DELETE nur auf DB01 an TabelleA ausgeführt.
Ich dachte mir das ich hierfür ein Trigger verknüpft mit einer Function bzw. Procedure auf DB01.TabelleA erstelle. Ungefähr so:

Trigger:

CREATE TRIGGER "sync_trigger_TabelleA" AFTER  
DELETE
OR
INSERT
OR
UPDATE
ON
    "schemaA"."TabelleA" FOR EACH ROW  
     EXECUTE PROCEDURE "sync_function_TabelleA"()  

Function

Diese soll nun bestimmte Spalten in TabelleA z.B. row1 und row3 auf Server2DB02.schemaA updaten/inserten/deleten
Könnt ihr anhand meine Szenarios mir hier weiterhelfen? Gibt es auch die Möglichkeit nicht nur bestimmte Spalten der Tablle sondern alle Spalten zu übertragen?

Hab was über Datenbank.dbo.schemName.TableName gelesen, was man hier einsetzen könnte.


Grüße

Phoboz

Content-Key: 263192

Url: https://administrator.de/contentid/263192

Printed on: April 19, 2024 at 17:04 o'clock

Member: ukulele-7
ukulele-7 Feb 12, 2015 at 13:42:25 (UTC)
Goto Top
Also den Aufruf der Prozedur kannst du dir mit Sicherheit auch sparen und den für die Prozedur vorgesehenen Inhhalt direkt im Trigger ausführen. Auch läßt sich hier der Inhalt Problemlos beschränken oder es lassen sich eben alle Spalten übertragen. Jede Spalte muss aber explizit benannt werden, ist also etwas Fleißarbeit.

Du solltest dich aber eventuell im Vorfeld mit Replikation auseinander setzen.
http://www.postgresql.org/docs/9.1/static/high-availability.html