- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在亚马逊 RDS 上创建了 MySQL 数据库的只读副本。
执行以下命令时,在主机上速度非常快(半秒),但在从机上需要大约 30 秒。 super 烦人,因为我想转储从属设备,这样我就不会减慢主控设备的速度。
mysqldump --set-gtid-purged=OFF -h myDomain.com -u dev -pmyPassword mySchema > out.sql
最佳答案
需要考虑三个问题。
最重要的是,由于传统 MySQL 客户端/服务器有线协议(protocol)的限制,mysqldump
在远离数据库运行时性能不佳,无法对一系列数据进行管道处理命令。
mysqldump
实用程序没有使用任何魔法来生成转储文件 - 它向服务器发出 SQL 语句,并获取这些查询的结果来生成其输出。
因此,数据库中的每个对象(架构、表、 View 、存储函数/过程、事件)都需要至少一次往返,有时甚至不止一次。
对于每个表,mysqldump
首先发出 SHOW CREATE TABLE t1;
,然后是 SELECT * FROM t1;
...所以一个往返100 毫秒的时间意味着提取 150 个表的转储文件意味着 150 × 2 × 0.100 = 30 秒被运行 mysqldump
的机器和服务器之间的距离所浪费——这是即使表完全为空,也为 true。
这不是建议,但您可以看看 mydumper ,它声称能够使用多个数据库连接并行创建备份,这可以通过并行转储过程来帮助调解命令传递到服务器并返回到客户端时浪费的周期。我不知道这个代码库的质量,但是这样的东西可能会有所帮助。
<小时/>接下来,您几乎总是希望对 mysqldump
使用 --compress
选项。与您的假设相反,这不会压缩备份文件。使用此选项时生成的备份文件是相同的,但激活此功能时,服务器会压缩其在线发送到 mysqldump
的数据,然后 mysqldump
解压缩数据在写出数据之前再次读取数据——因此,除非运行 mysqldump 的机器和数据库服务器通过低延迟、高带宽网络连接,否则此选项几乎总是可以加快进程。由于生成的文件是相同的,因此使用此选项时不存在兼容性问题。
最后,您需要注意新创建的 RDS 服务器存在一个问题,以免影响您的基准测试。当您创建 RDS 副本时,它最初使用来自上游主快照的数据作为种子。在幕后,这是主硬盘驱动器的 EBS 快照,新的数据库实例由从该快照恢复的 EBS 卷提供支持。 EBS 卷是从快照延迟加载的,因此它们有记录的首次接触惩罚。此问题可能会对第一次完整备份的性能产生重大影响,但此后应该不会产生任何有意义的影响。
关于RDS 只读副本从属设备上的 Mysqldump 速度慢 50 倍,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58002222/
我正在 Jenkins 中配置从 Linux 节点。这里的多个标签的正确语法(分隔符和转义)是什么? 最佳答案 您应该使用 whitespaces 分隔标签。如果标签包含空格,您应该引用它(单引号和双
我已经设置了 master(192.168.1.10) 和 slave(192.168.1.11) postgresql。登录slave postgresql报错: postgres@sonia-Sy
我支持由小型企业托管的应用程序,基于 Web 的 ROR 应用程序在后端使用 pgsql 数据库。 Postgres 设置为复制到异地备用服务器,据我所知它工作正常,当我查询远程服务器时它显示它正在恢
这个方法是我写的(和其他帖子差不多) public void update(string fileName, string sheetName) { string connString = c
我已经为 MySQL 服务器设置了复制。我可以使用复制用户/密码从从机连接到主服务器。我已经运行了从属 SQL 线程,但是从属 I/O线程未运行,使用“显示从属状态”检查时从属 I/O 状态为空。可能
在使用Jenkins Docker插件时,可能由于错误而导致无法启动群集。我没有注意,目前有数千个脱机节点无法启动。 底线-是否可以批量删除Jenkin中的节点(从属),清理所有脱机节点甚至删除所有节
我正在尝试在一个旧项目中引入持续集成,我们遇到了非常具体的情况 - 可以将 CI 服务器只放在我们在 CentOS 上运行的测试服务器上。服务器有很多未使用的 RAM 和 CPU 功能。 但是,我们需
我最近更改了我的 jenkins 机器使用的其中一个从属设备的 DNS cname 记录。进行更改后,我更新了节点中的信息,使其指向新名称。从那时起,jenkins slave 无法启动并出现以下错误
我需要创建在 Amazon EC2 上的 Windows VM 下运行的 Jenkins 代理云。 我对此的看法是简单的场景: 我有几个预配置的 AMI,每个虚拟机都有与我的项目之一匹配的特定环境。我
使用 Jenkins EC2 插件,我无法让我的 Jenkins 主服务器通过 SSH 连接到我的 Jenkins 从服务器。从站启动并正确配置,但是: INFO: Connecting to 10.
奇怪的问题,我在工作区中有两个项目: 项目A 项目B 在 projectA 的 pom.xml 中我添加了: groupid projectB version 当我构建应用程序并部署到 tomca
在我的 Jenkinsfile 中出现错误后,从属代理 pod 似乎总是很快就会死亡并消失。有没有办法在我身处其中时执行它并使其保持事件状态?我使用 Helm 在 Kubernetes 上运行 Jen
我是一名优秀的程序员,十分优秀!