我最近担任了一个系统管理员职位,负责管理一组 20 台(左右)服务器。我之前没有处理过的一件事(除了在测试情况下)是向 MySQL 复制场引入一个新的从属服务器。
基本上复制设置如下:
MS -> SL1 -> SL2 (backup)
| SL3 (reporting)
SB2 SL4 (loadbalanced web slave)
SL5 (loadbalanced web slave)
SL6 (loadbalanced web slave)
SL7 (loadbalanced web slave)
Run Code Online (Sandbox Code Playgroud)
但基本上它是一个有两个读从站的主站,(一个纯粹用于备份),一个主读从站(主站正在等待,如果你愿意的话),后面有 6 个从站,用于额外的备份,4 个负载均衡的网络读取从站和用于报告的服务器。
我在网上做了很多阅读,并假设向环境中添加一个新的奴隶(来自 SL1),将是:
STOP SLAVE;FLUSH TABLES WITH READ LOCK;UNLOCK TABLES;然后START SLAVE;(到目前为止一切正常,SL2 重新上线并赶上)但是,一段时间后,我从二进制日志中收到重复的键插入错误:
110122 17:01:25 [ERROR] Slave SQL: Error 'Duplicate entry '2011-01-22 17:00:01' …Run Code Online (Sandbox Code Playgroud) 我已经设法设置主从复制。
它工作正常。下跌的可能性有哪些?
是否有任何警报工具来监控?
另一件事:我可以在我的复制数据库中运行一个单独的数据库,我只是为了测试目的而运行吗?
我有 3 个 MySQL 服务器说A,B,C。
我想要做的是,我想让它们都成为主从。如果任何 MySQL 服务器上有更新,它应该被复制到所有服务器。
我研究了循环复制,发现可以用它来实现。
任何人都可以给我完成三台服务器之间所述复制的所有步骤。
还有一点我也想忽略数据库中的一些表。
此外,这种类型的复制有哪些注意事项?
我正在设置一个mysql主从配置,slave它位于一个弱得多的服务器上。
因为,如果我理解正确的话,奴隶只能在更新/插入,什么是最关键的配置参数,我可以调整slave的my.cnf,以确保最佳的性能和最小的延迟?
我们目前正在考虑地理分布式应用程序的目标架构。
此应用程序跟踪和安排所有材料单元在各个生产现场的移动。
将有两个逻辑实体:
这是应用程序的逻辑图:

这个应用程序的实现不能直接从上图导出,因为我们必须考虑以下约束:
因此,我想到了一种新架构,我们将在其中为每个区域创建具有同步数据库的全局实体(相同的可执行文件)的相同实例:

我想知道是否有人已经使用 SQL Server 复制来实现相同的目标。
这是正确的方法吗?欢迎所有建议/警告!
非常感谢,塞巴斯蒂安。
由于以下错误,我们有一个从服务器已停止复制:
Slave SQL: Query caused different errors on master and slave.
Run Code Online (Sandbox Code Playgroud)
导致此错误的原因可能是什么?什么是修复它的方法?
主从版本均为 MySQL 5.5.30
130726 23:55:45 [Note] C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqld: Shutdown complete
130726 23:58:39 [Note] Plugin 'FEDERATED' is disabled.
130726 23:58:39 [Warning] C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqld: ignoring option '--innodb-file-per-table' due to invalid value 'ON'
130726 23:58:39 [Note] Plugin 'InnoDB' is disabled.
130726 23:58:39 [Note] Server hostname (bind-address): '0.0.0.0'; port: 3306
130726 23:58:39 [Note] - '0.0.0.0' resolves to '0.0.0.0';
130726 23:58:39 [Note] Server socket created on IP: '0.0.0.0'.
130726 …Run Code Online (Sandbox Code Playgroud) VirtualBox 等虚拟机软件允许进行增量 VM 克隆。即数据,一旦“触及”(打开可写),将被复制并存储在新克隆的增量缓存中。
我正在为 Postgres DBMS 寻找相同的选项。
如何设置增量数据库副本,从原始数据库中读取条目,并从本地副本中读取/修改行?
如果不是在 DBMS 级别,我如何使用单独的 DBMS 实例在文件系统/存储级别模拟此类行为?
背景:这个想法是利用强大的数据库服务器,同时又不会为暂存/开发人员数据库副本带来太多资源开销。
我们有一个相当简单的设置来从我们的本地主 PostgreSQL 数据库复制到我们在 AWS 中的表示层。我们正在使用 WAL 运输archive_command设置。基本上设置如下所示:
+-------------+
| Master |
+-------------+
WAL |
segments |
\|/ +--------------+
+-------------+ WAL +-+------------+ |
| |----------->| Hot Standby | |
| S3 | segments | Slaves | |
| | | |-+
+-------------+ +--------------+
Run Code Online (Sandbox Code Playgroud)
这种设置似乎通常相当健壮,但我还没有想出一种检测故障的好方法,无论是主站未能向上推档案,还是从站或从站未能检索日志文件。什么是确定从站相对于主站是否是最新的好方法?确定 master 是否未能发送 WAL 文件的好方法是什么?
澄清一下,我们严格将奴隶用作只读副本,我们永远不会故障转移到它们。
如果我的备用 (postgres) 在故障转移前落后几秒钟。在 PostgreSQL 中进行故障转移后同步回旧主数据库的最简单方法是什么。
在 Oracle 中,如果启用了闪回,我们可以选择恢复失败的主数据库。
如果我在新的主服务器中故障转移后生成了所有 WAL 档案,我们在 postgres 中有任何这样的选项吗?还是我们需要完全重建备用?
我们的服务器有磁盘空间问题。因此,复制的 IO 线程无法启动。
以下是mysql错误日志中的错误:
[注意] Slave I/O 线程:连接到 master 'user@host:3307',复制开始于 log 'mysql-bin.000030' at position 196820914
[错误] 从 I/O:从网络读取时复制事件校验和验证失败。错误代码:1743
[错误] 从站 I/O:中继日志写入失败:无法将来自主站的事件排队,错误代码:1595
我该如何解决问题?
replication ×10
mysql ×6
postgresql ×3
architecture ×1
failover ×1
log-shipping ×1
mysql-5.5 ×1
performance ×1
sql-server ×1