Da Sie eine verteilte Transaktion durchführen möchten , benötigen Sie das zweiphasige Commit-Protokoll .
Sie starten Transaktionen auf beiden Datenbanken wie üblich, aber anstatt sie festzuschreiben, führen Sie sie aus
PREPARE TRANSACTION 'some_name';
Dies führt alles aus, was während eines Commit fehlschlagen könnte, und hält die Transaktionen aufrecht. Sobald dies erfolgreich war, führen Sie Folgendes auf beiden Datenbanken aus:
COMMIT PREPARED 'some_name';
um die Transaktionen festzuschreiben.
Wenn etwas während der PREPARE TRANSACTION
fehlschlägt , führen Sie Folgendes aus, um bereits vorbereitete Transaktionen loszuwerden:
ROLLBACK PREPARED 'some_name';
Beachten Sie, dass Sie brauchen Transaktionsmanager-Software, wenn Sie vorbereitete Transaktionen verwenden, damit alle vorbereiteten Transaktionen, die nach einem Absturz oder einem anderen unerwarteten Problem zurückbleiben, zuverlässig bereinigt werden. Vorbereitete Transaktionen, die nicht festgeschrieben oder rückgängig gemacht werden, bleiben für immer bestehen und werden mit absoluter Sicherheit Ihre Datenbank beschädigen.