我们不断地在办公室里讨论这个问题,这个问题不断出现。你如何处理 PostgreSQL 复制?我什至不一定在谈论高级集群,只是通过 Master-Slave、Master-MultiSlave 和 Master-Master 来保持简单。我发现为 MySQL 设置它通常非常简单。故障转移即使不完美也很简单,尤其是配置起来如此简单。我们玩过 Slony,但它有点过于动手(架构更改需要干预,新数据库需要干预等)。PGPool2 非常好,直到一个节点出现故障并且我们找不到一种优雅的方式(除了将所有东西都关闭并重新播种倒下的节点)来使复制恢复同步。基本上这就是我通常要寻找的:
MySQL 可以很好地处理其中的大部分,但我对 PostgreSQL 有一定的喜爱。此外,在某些情况下,这是我们唯一的选择,我们希望将复制添加到组合中。您目前使用的是什么,您对您的解决方案有何看法?我保证,这不是 MySQL 与 PostgreSQL 的对比,因为这不是我想要开始的。:)
我必须配置一个 MySQL 服务器来充当复制主机。
我修改了 my.cnf 以激活二进制日志,但现在为了重新加载配置,我必须使用/etc/init.d/mysqld restart. 问题是服务器每秒收到几个查询,我不想丢失同时到达的所有数据。
有没有办法在不重启服务的情况下重新加载配置文件my.cnf?
我目前正在考虑将我们的一些服务器和应用程序迁移到coreOS环境。我在这里看到的问题之一是持久数据的管理,因为在将容器移动到新机器时,coreOS 不处理 Docker 卷。经过一番研究,我发现glusterFS声称是一个可以解决我所有问题的集群文件系统。
我目前的想法是:我有一个 glusterFS 容器,它在我的每台 coreOS 机器上作为特权容器运行,并公开一个存储,/mnt/gluster例如。在我的Dockerfiles 中,我指定我的所有卷都应安装在此路径上。
我考虑的下一件事是哪些容器应该获得自己的卷,哪些应该共享一个。例如,每个mysql容器都有自己的卷,因为它能够自己处理复制。我不想惹这个。为同一网站提供服务的网络服务器将正确使用相同的卷来处理“用户上传的图像”等内容,因为它们无法复制这些数据。
有没有人尝试过这样的事情,或者我错过了什么?
运行 PostgreSQL 9.0.1,通过流式复制使一个只读镜像实例保持最新。为了减少工作时间的 IO,除了一些没有被 auto-vacuum 守护进程清理的表之外,自动清理在主数据库上是开启的。这些表是“物化视图”。
每天晚上午夜,我们都会对数据库进行清理,以清理那些被排除在自动清理之外的表。我想知道这个过程是否会复制到镜子上,或者我是否还需要在镜子上设置真空?
我正在考虑设置我们的 mysql 数据库的复制,以便能够在我们的每个分支机构拥有本地从设备,同时在主办公室拥有主设备以提高我们分支机构的应用程序性能(显着)。
db 本身并不是那么大(<1gb),但我想知道;考虑 200-300 条记录更新/分钟上限:复制速度有多快?(假设,首先,一个 5mb 通用 dsl 连接,必要时更快 - 试图保持尽可能低的成本,但钱是有更多的)
是否批量复制整个表?复制是否按需完成,因为表中的每条记录都被更新(从文档中,我想我看到它是可配置的)?
笔记:
我尝试了 Postgres-XC,但它还没有实现完整的 SQL(如 SERIAL)
Postgres-R 看起来很有趣,但根据开发人员的说法,它“尚未准备好生产”。
所以我使用了 pgpool-II 3.0.1。是的,它工作得很好。但据我所知,它仅适用于 2 个 PG 节点。
有没有什么东西实际上已经准备好生产并且能够与多个 PG 节点一起工作?
在这个问题上切入正题,因为我正在寻求尽可能多样化的解决方案,所以不想过多地影响任何意见。
我们已经有了很多想法,但我想知道 ServerFault 的用户将如何解决这个问题。随意问的问题 :)
windows replication wide-area-network network-share infrastructure
我发现自己需要块级别的冗余存储。文件级复制(Gluster、GFS 等)不适用于我的用例。
看起来 DRBD 是块复制的首选解决方案。似乎没有太多其他理智的选择。我的研究失败了,还是 DRBD 是城里唯一的游戏?
我在两台机器之间的 MySQL 5.5 复制性能方面遇到了严重问题,主要是带有基于语句的复制的 myISAM 表。二进制日志和 mysql 数据目录都位于同一个 Fusion ioDrive 上。
最近当我们需要暂停复制大约时,这个问题是一个大问题。3小时。在没有其他负载的情况下,大约需要 10 个小时才能再次赶上。

如何提高复制的性能?机器 B 基本上是空闲的(很少,IO,16 个内核中有 2 个最大化,大量空闲 RAM),因为只有 1 个 mySQL 线程正在写入数据。以下是我的一些想法:
主要问题是,如果在暂停 3 小时后需要 10 小时才能赶上,这意味着复制在 10 小时内写入 13 小时的数据,或者能够以数据传入速度的 130% 写入。我正在寻找近期至少要在Master机器上双写,所以迫切需要一种提高复制性能的方法。
my.cnf:
[mysqld]
server-id=71
datadir=/data_fio/mysqldata
socket=/var/lib/mysql/mysql.sock
tmpdir=/data_fio/mysqltmp
log-error = /data/logs/mysql/error.log
log-slow-queries = /data/logs/mysql/stats03-slowquery.log
long_query_time = 2
port=3306
log-bin=/data_fio/mysqlbinlog/mysql-bin.log
binlog-format=STATEMENT
replicate-ignore-db=mysql
log-slave-updates = true
# Performance …Run Code Online (Sandbox Code Playgroud) 通过阅读 DFS 文档,AD 似乎是必需的。
这对我们来说是个问题,因为我们的服务器要么是独立的(不在 AD 中),要么是我们托管服务 AD 的一部分,而 AD 不在我们的掌控之中。
问题是:当服务器处于以下状态时,如何进行 DFS 或类似 DFS 的操作:
机器是 Win2012-R2 和/或 Server 2016
希望在接近分钟的基础上自动镜像跨机器的 tlog 备份和 sql 备份。
replication ×10
mysql ×3
postgresql ×3
linux ×2
performance ×2
windows ×2
block-device ×1
cluster ×1
coreos ×1
dfs ×1
docker ×1
glusterfs ×1
myisam ×1