如何正确操作复制数据库

如何正确操作复制数据库

我正在用 postgres 设置一个复制数据库。似乎有很多关于如何设置的信息,但我仍然找不到如何在应用程序中操作它。

我想要的是仅从 repl db 中进行“选择”,从源 db 中进行“插入/更新/删除”。在这种情况下,每次选择时我是否都必须连接到 repl db,并在其他情况下连接到源 db,“在应用程序级别”?或者有什么方法可以使这些全部自动化?

我的意思是,似乎必须有办法使其自动化,因为如果真的有很多 repl db(超过 2 个),它必须如此工作。

请帮助我,谢谢大家。

答案1

问:我想要的是仅从 repl db 中进行“选择”,从源 db 中进行“插入/更新/删除”。在这种情况下,每次选择时我是否都必须连接到 repl db,而在其他情况下则连接到源 db,“在应用程序级别”?或者有什么方法可以使这些全部自动化?

一般来说,主服务器和只读复制服务器之间的选择是由应用程序完成的。

在某些有限的情况下,当应用程序在 SQL 命令和事务方面执行一些简单的事情并且它们确实希望这些操作是透明的, pgpool-II 可以安装并配置为流复制中服务器之间的负载平衡器。它通过动态分析来自动检测哪些查询可以发送到只读副本。从“什么是Pgpool-II?”

负载均衡

Pgpool-II 将读取查询分布到多个 PostgreSQL 服务器上以获得更高的性能。此功能称为负载平衡。写入查询将发送到主服务器(在流复制模式下)或所有服务器(在本机复制模式和快照隔离模式下)。有关这些模式的更多详细信息,请参阅第 3.3.2 节。无论如何,Pgpool-II 都会自动区分读取查询和写入查询。

负载均衡在文档中了解限制和注意事项。

相关内容