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:
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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 263192
Url: https://administrator.de/contentid/263192
Ausgedruckt am: 24.11.2024 um 20:11 Uhr
1 Kommentar
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
Du solltest dich aber eventuell im Vorfeld mit Replikation auseinander setzen.
http://www.postgresql.org/docs/9.1/static/high-availability.html