我们的服务器有磁盘空间问题。因此,复制的 IO 线程无法启动。
以下是mysql错误日志中的错误:
[注意] Slave I/O 线程:连接到 master 'user@host:3307',复制开始于 log 'mysql-bin.000030' at position 196820914
[错误] 从 I/O:从网络读取时复制事件校验和验证失败。错误代码:1743
[错误] 从站 I/O:中继日志写入失败:无法将来自主站的事件排队,错误代码:1595
我该如何解决问题?
我已将两台 PostgreSQL 服务器配置为通过流式传输进行热备用。
我如何配置它以便当主服务器宕机时,从服务器将自动成为新的主服务器?
我需要用 3 个节点配置 mysql 主/主复制。目前我有主/从设置,我需要将它移动到具有 3 个节点的主/主。我已经阅读了一些关于在环结构中配置它的帖子,我对此并不紧张。
如果有人在生产中有类似的设置,如果您能建议我如何实现这一点,那就太好了。
让我描述一下我们现在面临的情况:
我们有一个 MySQL Master-Slave,基于行的复制设置,目前,slave 被一个永久的System Lock. Master 是一个活跃的服务器,有很多updates并且deletes正在运行,但是 Slave 不会复制任何东西。日志中没有错误,从站正在从主站读取二进制日志,但它对从站没有任何作用。该Seconds_Behind_Master值不断增加。这是show processlist奴隶显示的内容:
mysql> show processlist ;
+----+-------------+-----------+------+---------+-------+----------------------------------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+-------------+-----------+------+---------+-------+----------------------------------+------------------+
| 10 | system user | | NULL | Connect | 4985 | Waiting for master to send event | NULL |
| 11 | system user | | NULL | Connect | 53715 | System …Run Code Online (Sandbox Code Playgroud) 我有一台运行 SQL Server 2008 Web 版的生产服务器,它必须保持 24x7 全天候运行,几乎没有停机时间,现在是我们转向更先进的服务器硬件的时候了,也是转向 SQL Server 的好机会2012年企业。
现在我的问题是,如何在不关闭数据库的情况下进行此迁移?例如在两台服务器之间设置一些东西作为复制左右,所以我在两台服务器上都有完全相同的数据库,然后我可以将主要服务关闭 1 分钟,更改数据库连接的 IP 地址从旧服务器到新服务器,我确信新服务器具有与旧服务器相同的副本。
我不能采用备份/恢复方法,因为它需要的时间超过可接受的时间,这就是为什么我需要一些东西来保证完全相同的数据库,就像我在做备份/恢复一样。5 分钟可能是可承受的最大停机时间。
数据库大小约为 100GB。
新服务器运行2012 Enterprise,旧服务器运行2008 Web
我可以异常地归档数据库中的记录,并将其大小最小化到 20GB 之类。
我可以选择将我的 SQL Server 2008 Web 版升级到企业版,如果这有助于更多解决方案,比如复制?
replication sql-server-2008 sql-server migration sql-server-2012
我正在使用它repmgr作为我的复制工具。在从站上我不断收到错误:
请求的 WAL 段已被删除
当我检查主时,确实它不在那儿;但是,它位于从属目录中的pg_xlogs和中pg_xlogs/archive_status。我不明白为什么它会寻找这个文件,如果它已经在从站中?
事实上,它已经xlogs超出了要求的范围。如何处理 Postgres Slave 重置的 WAL 文件中的解决方案针对的是略有不同的问题。它们似乎适用于主服务器在从服务器接收日志文件之前删除日志文件的场景。就我而言,它在从属文件和所请求的文件之后的序列中的其他几个文件中非常频繁地出现。
这也告诉我,我不需要增加 keep wal 分段选项,因为它似乎没有落后?
我有一个主/从 postgresql 配置,其中从属是热备用,用作只读备份。目前,archive_command 设置为“cd”。(我读过的空话)。我的理解是archive_command可以将wal段复制到特定位置;通常我会看到使用 cp 命令将其复制到磁盘其他位置的示例。我将 wal_keep_segments 设置为 256,所以如果我理解正确的话,slave 可能会落后 wal 大约 4GB (16MB * 256) 的变化。这可能是为什么我从来不需要使用 archive_command 的原因,因为我有足够的 wal 段来解决一些滞后问题?
那么可选的 archive_command 的目的是为了保存比 wal_keep_segments 设置更多的 wal 段吗?因此,在我的情况下,数据库目录 (pg_xlog) 中将有 256 个 wal 段,并且 postgres 会在达到限制时自动轮换并清理这些 wal 段。
而且,如果我放置了一个 archive_command,它是否会继续将 wal 段保存到命令将文件复制到的任何位置(并继续添加越来越多的存档 wal 段,除非我添加了自己的清理过程)?这种想法正确吗?
那么,假设我对 archive_command 的理解是正确的,从站如何利用这些 wal 文件?从站是否首先尝试从主数据目录中检索 256 个 wal 文件,然后返回到 recovery_command 以检索早于此的 wal 文件?recovery_command 是在从站上运行还是以某种方式通过主站代理?recovery_command 的许多示例都显示它与 cp 一起使用,所以我不确定文件是如何传输到不同服务器的?
我已经尝试阅读许多关于此的指南,包括以下内容。
我什么时候必须使用 archive_command,什么时候不用
https://www.postgresql.org/docs/current/static/continuous-archiving.html
我对这些概念仍然有点模糊,并试图达到一些清晰度。有人可以澄清我上面的想法是否正确以及为什么我可以使用 archive_command 吗?谢谢阅读。
这是我的配置:
大师:postgresql.conf
listen_addresses = '*'
wal_level = hot_standby
archive_mode = on
max_wal_senders …Run Code Online (Sandbox Code Playgroud) 来自此MSDN 文章的事务复制的订阅者“在两个版本要求内”是否适用于 SQL Server 实例、数据库兼容性级别或两者?
例如,复制是否适用于这种环境设置?
replication sql-server transactional-replication compatibility-level
Postgresql 有一些有趣的监控工具,用于监控新的逻辑复制系统的进度,但我不是很了解它们。我知道的两个工具是:
pg_stat_replication
Run Code Online (Sandbox Code Playgroud)
它是兄弟姐妹:
pg_stat_subscription
Run Code Online (Sandbox Code Playgroud)
我已经阅读了这些文档,但他们没有说明如何知道副本是否实际同步,并且解释这些表对我来说似乎并不明显。有人可以解释一下吗?
执行任何 DMV 还是有另一种方法来公开重做队列中正在同步到辅助副本的数据类型?(例如,它是表数据和哪个表,还是索引更改和哪些索引等?)
replication sql-server availability-groups data-synchronization sql-server-2016
replication ×10
mysql ×3
postgresql ×3
sql-server ×3
archive-log ×1
backup ×1
failover ×1
linux ×1
migration ×1
multi-master ×1
repmgr ×1