基于PostgreSQL的分布式事务处理
有人能告诉我如何在PostgreSQL上执行分布式事务吗 我需要启动从节点x到节点y的事务(这个节点有一个数据库)。 但我在网上找不到关于我如何做到这一点的信息 我所能做的就是通过以下方式进行分布式查询:基于PostgreSQL的分布式事务处理,postgresql,distributed-transactions,Postgresql,Distributed Transactions,有人能告诉我如何在PostgreSQL上执行分布式事务吗 我需要启动从节点x到节点y的事务(这个节点有一个数据库)。 但我在网上找不到关于我如何做到这一点的信息 我所能做的就是通过以下方式进行分布式查询: select dblink_connect ('conn','dbname=ConsultaRemota host=192.168.3.9 user=remoto password=12345 port=5432'); select * from dblink('conn','selec
select dblink_connect
('conn','dbname=ConsultaRemota host=192.168.3.9
user=remoto password=12345 port=5432');
select * from dblink('conn','select * from tablaremota') as
temp (id_remoto int, nombre_remoto text, descripcion text);
使用dblink不是真正的分布式事务,因为远程事务可能成功,而本地事务可能失败 要执行分布式事务,请执行以下操作:
BEGIN
或START transaction
创建正常事务
PREPARE TRANSACTION 'some_name';
COMMIT PREPARED 'some_name';
此步骤将执行COMMIT
期间可能失败的所有操作,并持久化事务,但尚未提交
如果该步骤在某个地方失败,请使用ROLLBACK
或ROLLBACK PREPARED
中止所有数据库上的事务
PREPARE TRANSACTION 'some_name';
COMMIT PREPARED 'some_name';
这是肯定会成功的
VACUUM
进程。这种孤立的准备事务可能会破坏数据库
不要在没有事务管理器的情况下使用分布式事务如何使用connect字符串说数据库在另一台电脑中。这是我的问题:(,你能帮我吗?这是另一个问题。但请注意,Stackoverflow是一个问答论坛,不适合用于教程或教学会议。我看到很多人在任何问题上寻求帮助,也有很多人寻求帮助。无论如何,谢谢你:“)。