sql >> Databáze >  >> RDS >> PostgreSQL

Synchronizaci 2 databáze se nepodařilo potvrdit

Protože chcete provést distribuovanou transakci , potřebujete dvoufázový protokol potvrzení .

Zahájíte transakce na obou databázích jako obvykle, ale místo jejich potvrzení spustíte

PREPARE TRANSACTION 'some_name';

Tím se provede vše, co by mohlo během potvrzování selhat, a transakce se zachovají. Jakmile se to podaří, spustíte na obou databázích následující:

COMMIT PREPARED 'some_name';

k potvrzení transakcí.

Pokud během PREPARE TRANSACTION cokoli selže , spustíte následující, abyste se zbavili již připravených transakcí:

ROLLBACK PREPARED 'some_name';

Upozorňujeme, že potřebujete software správce transakcí, pokud používáte připravené transakce, takže všechny připravené transakce, které zůstanou po havárii nebo jiném neočekávaném problému, budou spolehlivě vyčištěny. Připravené transakce, které nejsou potvrzeny nebo vráceny zpět, zůstanou navždy a s naprostou jistotou rozbijí vaši databázi.




  1. seřadit souhrn ve skupině podle

  2. Oracle Database TLS1.2 / SSL připojení pomocí JDBC thin a JKS

  3. SQLAlchemy se pokouší dvakrát odstranit mnoho sekundárních vztahů

  4. Operátor ALL VS Any na prázdný dotaz