使用 Slony-I 替代 Linux 设置到 Shell 脚本的数据库复制

标签 database linux postgresql replication slony

如标题所示,

到目前为止,我发现的当前教程使用 Shell 脚本文件中的嵌入式 SLON 命令来设置 Slony-I 主从复制所需的配置。 例如:Slony-I Setup Tutorial

我想知道是否可以嵌入 SLON 设置命令并在另一种语言中调用它们,例如在 linux 环境中工作的 C/C++/Python?

最佳答案

SLONIK 脚本通常通过 STDOUT 写入 slonik 二进制文件来工作。任何语言都应该能够复制这种风格,但与使用 shell 脚本方法没有什么区别,而且根据我的经验,它往往会遮挡正在做的事情。毕竟,您仍在写入 STDOUT 并将该信息发送到 slonik 二进制文件。

我过去曾编写过 perl 模块来帮助解决这个问题,但它们感觉非常笨拙,我只在需要动态修改复制设置时才使用它们。我发现很少需要这样的东西,而且对于绝大多数 slony 工作,shell 脚本更易于管理。

总结:是的,你可以,但这可能只会让事情变得更复杂。

如何在 python 中执行此操作的示例是:

p = subprocess.Popen('/usr/bin/slonik',stdout=subprocess.PIPE,stdin=subprocess.PIPE)
p.stdin.write('<slon commands here>')
p.stdin.close()

关于使用 Slony-I 替代 Linux 设置到 Shell 脚本的数据库复制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14155645/

相关文章:

mysql - 仅选择关联行均不具有特定值的顶级行

linux - 有没有办法在整个项目代码中的某个日期之后找出更改的文件?

postgresql - 如何从PostgreSQL数据库中获取角色的评论

postgresql - OpenLayers 中的矢量投影

android - 使用 SQLiteDatabase.execSQL 执行多个语句

mysql - 在 MySQL 中使用 left Join 进行最佳拟合数据重试

java - 数据库中的数据未显示

linux - 当函数返回但函数中的命令在后台运行时会导致什么行为?

linux - 是否可以安排一个自动化任务每小时在特定终端运行一次?

python - 如何在 Django 1.10 中使用 `unaccent` 进行全文搜索?