标签: replication

MySQL 复制是否受高延迟互连的影响?

我们有一个位于不同数据中心的vanilla master 和slave MySQL 设置,以及与master 位于同一数据中心的另一个slave。

数据中心之间的带宽相当高(在我们所做的网络基准测试中,我们可以达到 15MB/秒),但存在延迟,约为 28 毫秒。无论如何它都不高,但它比同一数据中心的亚秒延迟要高得多。

有时,我们会在删除从站时遇到严重的滞后(2000 秒甚至更多),而本地从站保持最新。在查看滞后的远程slave时,SQL线程通常会花时间等待IO线程更新中继日志。主人同时显示“等待网络”或类似的东西。

所以这意味着它是网络,但在发生这种情况时我们仍然有免费带宽。

我的问题是:数据中心之间的延迟会影响复制的性能吗?从属 io 线程是否只是流式传输事件直到主节点停止发送它们,还是在事件之间以某种方式池主节点?

mysql replication

11
推荐指数
2
解决办法
6128
查看次数

将已发布复制数据库的数据库兼容性级别从 90 更改为 100 的影响

我有一个 SQL Server 2008 R2 服务器,其中包含一堆当前在兼容级别 90 (2005) 下运行的已发布数据库。

订阅数据库也是 SQL Server 2008 R2,但是目标数据库设置为兼容性级别 100,并且复制工作正常。

如果我更改已发布数据库的兼容性级别,它会以任何方式影响复制,还是只是重新初始化所有订阅并重新启动复制的情况?

我怀疑更改已发布的数据库兼容性级别可能会稍微改变复制存储过程的功能,但我不是 100% 确定。

是这种情况吗?

replication sql-server-2005 sql-server sql-server-2008-r2

11
推荐指数
1
解决办法
8919
查看次数

我如何(安全地)终止 MongoDB 中长时间运行的操作?

有时,MongoDB 中的操作会失控,最终可能会运行数百秒,并影响性能,直到它们被终止或完成。

发生这种情况时,我知道我可以killOp()使用,但是如何仅终止有针对性的长时间运行的操作而不终止(例如)复制中涉及的长时间运行的操作(这可能很危险)?

replication mongodb

11
推荐指数
1
解决办法
2万
查看次数

数据校验和如何与流复制交互?

数据校验和是 9.3 中引入的新功能,并且:

有一个新的 GUC 参数“ignore_checksum_failure”,即使检测到损坏,它也会强制 PostgreSQL 继续处理事务

如果复制主机上的校验和失败,损坏的数据会复制到从服务器还是复制停止。这取决于 的设置ignore_checksum_failure吗?

这个README 有一些有用的相关信息,但没有直接回答问题。

postgresql replication postgresql-9.3 checksum

11
推荐指数
1
解决办法
672
查看次数

PostgreSQL 9.0 Replication 和 Slony-I 有什么区别?

Slony-I还有用吗,如果有,它是什么?为了澄清起见,从 9.0 Postgresql 开始支持内置流复制。

postgresql replication

10
推荐指数
1
解决办法
1909
查看次数

将远程 MySQL 数据库复制到 MS SQL Server 2008

我想将 MySQL 数据库的内容复制到 MS SQL Server 2008 数据库。

这可能吗?任何人都可以概述实现这一目标所需的步骤吗?

谢谢。

mysql replication sql-server-2008

10
推荐指数
1
解决办法
3万
查看次数

在繁忙的主从复制系统上恢复单个 mysql 数据库

寻找一种策略或工具来处理在繁忙的复制系统中将单个数据库恢复到某个时间点的问题。

我有 12 个数据库在主从复制配置中的 2 个 MySQL 5.0.77 服务器上运行。每天对只读从站进行完整转储,并且有可用的增量 SQL 转储,这些备份是异地备份,复制状态受到监控。

编辑:表是 InnoDB 和 myISAM 的混合体,因此引擎特定的解决方案不可用。

因此,如果主服务器完全故障,我可以中断复制并提升从服务器,我还可以选择重建新服务器并从越位完整备份进行配置,然后应用从从服务器每小时获取的差异。

但是我担心如何处理部分故障或单个数据库的故障。我可以想到 2 个很有可能的场景;

  1. 数据库 7(例如)损坏,继续处理一些请求,直到有人注意到它已损坏,或从日志文件中发出警报...
  2. 一些查询,如删除数据库、删除表、“更新哪里...”类型的查询会占用单个数据库或其中的某个子集。

目前我有一堆完整的转储作为 FULL-$DATE-all-databases.sql.gz 文件,以及可以应用于完整转储的差异作为 DIFF-$DATE-all-databases.sql.gz

要将数据库 7 恢复到某个时间点,需要通过 FULL 和 DIFF 文件进行 grep,并手动应用该 sql。

我应该如何继续以便能够恢复到以前的 DIFF 转储之一到主数据库?

我需要备份到单个数据库文件,即

mysqldump --databases "database1" | gzip > database1.sql.gz
mysqldump --databases "database2" | gzip > database2.sql.gz
mysqldump --databases "database3" | gzip > database3.sql.gz
Run Code Online (Sandbox Code Playgroud)

而不是..

mysqldump --master-data --lock--all-databases --all-databases | gzip > all-databases.sql.gz
Run Code Online (Sandbox Code Playgroud)

如果我使用单独的 mysqldump 文件,主数据二进制日志会发生什么,我什至应该为主服务器恢复转储设置 --master-data 吗?

mysql innodb myisam replication mysqldump

10
推荐指数
1
解决办法
3003
查看次数

从备份初始化事务复制

为复制设置发布以允许从备份初始化时有一个选项。我们多年来一直在创建复制数据库,并且总是从备份进行初始化,但从未设置过这个标志(我们几天前才第一次注意到它)。复制一直都没有问题。

我发现很多点击说明需要使用它,但没有说明原因。

有没有人了解这实际上是做什么的?从我的角度来看,这似乎没有必要,但我想我必须错过一些东西。

replication sql-server sql-server-2008-r2 transactional-replication

10
推荐指数
1
解决办法
1433
查看次数

MySql - 在不重启服务器的情况下更改 expire_logs_days

我正在使用 MySql 5.5。是否可以在expire_logs_days不重新启动服务器的情况下进行更改并使更改生效?

mysql replication mysql-5.5

10
推荐指数
2
解决办法
3万
查看次数

非 IT 人员的数据库暂存环境

我正在向我的 IT 部门提议一个数据库暂存环境。这个想法是像我这样的非 IT 人员(公共工程数据分析师)可以有一个地方来测试解决方案,然后自己在实际环境中实施它们,或者在需要时要求 IT 实施它们。这种环境有益于以下几个原因/场景:

  1. 我对我们的活数据库环境(一些基本的数据库权限create tablecreate view等等)。我大约每周更改一次架构,但在实时环境中测试和实施这些更改对我来说似乎很疯狂。对数据库的依赖数不胜数,因此如果出现问题,可能是灾难性的。我更愿意在单独的环境中提前测试。
  2. 我没有一些更高级的权限,比如create triggercreate function在实时数据库中。这很好,但我确实有一些可以通过触发器和/或函数解决的问题。我计划提议在临时环境中授予我这些权限,以便我可以开发和测试一些想法,如果它们有效,则建议 IT 在实时环境中实施它们。
  3. 通常,我的 IT 部门没有时间或资源为我开发解决方案。真的就是这么简单。因此,如果我可以自己完成跑腿工作,那么我的问题就更有可能得到解决。

“非 IT 人员的临时环境”对我来说似乎是一个足够好的方法,但老实说,我只是提出了这个想法。我不知道这在 IT/数据库世界中通常是如何完成的。

是否有适合这种情况的既定 IT/数据库实践?(在为非 IT 人员提议数据库暂存环境时,我是否走在正确的轨道上?)

replication oracle testing permissions

10
推荐指数
1
解决办法
323
查看次数