我们有一些 MySQL 数据库服务器设置了基于行的复制,以提高性能。软件写入主机,并从主机或从机读取。在大多数情况下,一切都很好。
我的理解是 MySQL 将允许写入从站,即使它知道它是一个 MySQL 从站。理想情况下,我想关闭它,因此即使有人编写了一些错误的代码来获取读取连接并执行UPDATE,它也会抛出错误而不是将数据放在从属设备上。
有没有办法在 MySQL 中做到这一点?显然,我们也希望通过我们的软件使这成为不可能,但是就像我们服务器上的防火墙一样,我希望尽可能地防御。
谢谢!
我正在寻找一种解决方案来在几个 Linux 服务器上镜像或复制一个目录(或一个文件系统)。理想的解决方案是一种允许所有服务器读写访问的解决方案。我还希望它具有弹性,如果其中一台服务器出现故障,rest 应该仍然可以正常工作,而不会丢失任何数据。
我一直在寻找一些解决方案:
欢迎任何其他建议。
一个简单的现实问题,灵感来自这里的评论:
自 Windows 2000 中首次引入 Active Directory 以来,它支持使用 SMTP 而不是直接 RPC 的站点间复制。
但是真的有人用过吗?
如果是,为什么选择它?
设置和维护容易还是麻烦?
可靠吗?
我正在寻找基于 Web 的界面 GUI,或者某种可以显示域复制状态的监视工具。
我知道我可以在命令行上使用带有各种选项的repadmin来查询状态。我想创建一个脚本,当他们对状态感兴趣时可以运行,但他们可能会对某种状态页面更感兴趣。
windows windows-server-2008 active-directory replication network-monitoring
我有运行良好的 MySQL 主从复制;我搜索了整个网络和 MySQL 站点以找到使用复制的标准程序,但一无所获。好像管理员很乐意进行复制,但是当需要执行灾难恢复时,还没有将初始计划付诸实践并公开共享。
我想知道的是如何让slave机代替master机以防后面损坏,烧毁等。我猜slave机应该取master的网络地址,但还应该做什么?例如,更改 MySQL 用户权限或运行一些命令!如果有,请包括参考。
问题:有没有办法让这 350,000 个文件积压完成得更快?对于几乎每个文件,唯一的变化是对每个受影响文件的 ACL 进行了更改。某些文件已更改内容,但在这种情况下这不是常见情况。
这可能是固定的。经过一段时间和验证后,我将编辑此文本以确认成功/失败。在此问题文本的末尾,我详细介绍了最近可能已修复它的更改。
我们有一个 DFSR 复制组,大约有 450,000 个文件,占用 1.5TB 空间。在这种情况下,有两台相距约 500 英里的 Windows Server 2008 R2 服务器。还有其他服务器,但它们不参与此复制组。Server ALPHA 是主服务器,也是大部分员工使用的服务器。Server BETA 是远程办公室的服务器,不太忙。
这是此复制组(在 Google Drive 上托管的 PNG)的积压图表,显示了缓慢的同步进度。
我需要删除该复制组根目录中的权限条目,当然,大多数子文件夹都继承了该权限条目。我在服务器 ALPHA 上进行了此更改。在那之后,DFSR 立即有 350,000 个文件积压。已经一个多星期了,现在是 267,000。唯一改变的(最初)是单一权限的改变。
这就是发生的事情(这不是解决方案,只是对导致此问题的原因的另一种解释):http : //blogs.technet.com/b/askds/archive/2012/04/14/saturday-mail-sack -因为它变成了星期五晚上是好的战斗。aspx#dfsr
服务器 BETA 上发生的任何更改都会非常快速地复制到服务器 ALPHA,因为该方向没有积压。在 BETA 上更改的任何文件都可以毫无问题地转换为 ALPHA。
它通过一端的 50Mbps 连接全速复制 24/7 到另一端的 100Mbps 光纤。每台服务器上的暂存区为 100GB。事件日志中根本没有什么有趣的东西。有一个不相关的高水位线事件显示了一个不相关的复制组,该组既不是针对此特定复制,也不是针对此 ALPHA/BETA 服务器对。特别是没有高水印和连接错误的事件日志条目。
ALPHA 对复制组的看法:
带宽节省:减少 99.83%(复制 30.85 MB 而不是 18.1 GB)
我相信自从我上次在 ALPHA 和 BETA 上重新启动 DFSR 服务以来,发生了 30.85MB/18.1GB。如果是这样,这表明即使花费了很长时间(比我认为应该花费的时间更长),它实际上并没有通过网络传输文件内容。 …
我一直在忠实地按照以下说明设置 MySQL 主复制(在 Debian 6.0.1 上):http : //www.neocodesoftware.com/replication/
我已经到了:
mysql > show master status;
Run Code Online (Sandbox Code Playgroud)
但不幸的是,这会产生以下结果,而不是任何有用的输出:
Empty set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)
错误日志/var/log/mysql.err只是一个空文件,所以没有给我任何线索。
有任何想法吗?
这是我/etc/mysql/my.cnf在一台服务器上放置的内容(针对另一台服务器进行了适当修改):
server-id = 1
replicate-same-server-id = 0
auto-increment-increment = 2
auto-increment-offset = 1
master-host = 10.0.0.3
master-user = <myusername>
master-password = <mypass>
master-connect-retry = 60
replicate-do-db = fruit
log-bin = /var/log/mysql-replication.log
binlog-do-db = fruit
Run Code Online (Sandbox Code Playgroud)
我已经设置了用户,可以使用上面的用户名/密码/IP 地址从服务器 A 上的 MySQL 连接到服务器 B 上的数据库。
对于特定的读/写工作负载,我使用 esata 端口乘法从 4 磁盘阵列获得 30 MiB/s。当我将完全相同的阵列移动到四个单独的 sata 连接时,对于相同的工作负载,我获得了 90 MiB/s。这是乘法器的预期性能影响吗?如果不是,我如何缩小软件、控制器或机箱之间的问题?
即使多年来尝试了大量变量,我也得到了完全相同的结果:
多年前我做我的第一个 eSATA 机箱时,我认为速度慢与使用 PCI (33mhz) 卡、不成熟的 SATA 驱动程序或 SATA-1.5Gbps 5400 RPM 驱动器有关。但是现在有了 x1 …
我正在编写代码来提取 MySQL 复制环境中所有从服务器的 IP 地址和用户名。
有谁知道我可以在控制台中运行并在不查看my.cnf文件的情况下检索这些信息的任何函数、变量或其他东西?
我在 2 个服务器之间设置了 MySQL 复制,master ( A ) 和 slave ( B )。我需要在混合中添加一个新的奴隶 ( C )。我希望这个从站直接从主站获取更新,我不想从从站进行链式复制。但是,master 是“热”的,我通常使用 Xtrabackup 来创建 master 的完整备份,但这会锁定它 10 分钟,因为数据库大小约为 20GB。
WITH READ LOCK FLUSH TABLES上从乙上使用SHOW SLAVE STATUS乙,写下二进制日志和位置。然后用 Xtrabackup 备份数据库,将备份传送到C并使用它来创建从属,并将复制设置为指向A并使用我刚刚写下的 binlog 位置。
有没有更好的方法不需要我锁定B这么长时间?或者更容易自动化的东西?
replication ×10
mysql ×5
master-slave ×2
windows ×2
cluster ×1
database ×1
dfs-r ×1
filesystems ×1
linux ×1
master ×1
mirroring ×1
performance ×1
port ×1
smtp ×1