至关重要的是MySQL升级到最新版本。你认为很难测试和升级到新版本?
由于各种原因,包括新特性,性能优势,bug修正,等等,数据库过时的版本是脆弱的。主要版本升级,另一方面,可能会产生问题,如果他们还没有被广泛测试您的应用程序,程序可能会破坏它,阻止它运行正常,或者导致性能问题。
让我们浏览一些有用的工具可以帮助你了解MySQL升级。
工具帮助您运行应用程序选择查询和生成报告每个查询模式如何执行在不同版本的MySQL服务器在我们测试。
我们需要收集所有应用程序查询通过激活日志一天或几个小时缓慢覆盖大多数的查询,但是,缓慢的日志将是巨大的,并应用它们需要时间,因此,pt-query-digest工具可以协助查询消化准备升级测试。
这个工具帮助确定在MySQL中设置文件和服务器之间的差异变量。这使我们能够比较以前版本的升级版本,让我们验证配置的差异。
|
1
|
pt- - - - - -配置- - - - - -diff
h=<
Testnode1
>
h=<
Testnode2
>
|
pt-upgrade测试要求和步骤
让我们复习的要求和步骤测试应用程序的查询pt-upgrade。出于测试目的,我们需要和建议有两个服务器,满足生产规格和连接在同一个网络上。
例如,测试MySQL 5.7和MySQL 8,我们构建的两个实例,一个与MySQL 5.7和其他MySQL 8,从最近生产备份
复制生产数据的兼容性测试
设置复制测试节点的一天,从生产主要看复制复制作品从当前生产版本较低的新版本,即覆盖实际的应用程序工作负载。在我们开始之前pt-upgrade测试,重要的是要停止复制两个测试节点相同的二进制日志位置确认两个节点中的数据是相同的。
高级计划将如下:
- 在两个测试节点安装MySQL。当前的MySQL版本将会在一个节点上,而将目标版本。
- 生产数据需要恢复到测试节点,rayben雷竞技 可用于备份和恢复的备份生产节点测试节点。
- 如上述的一部分复制兼容性测试,设置复制测试节点的一天即覆盖的实际工作量,从生产主复制。
- 缓慢的日志可用于收集所有查询从生产节点使用long_query_time = 0和log_slow_rate_limit = 1。我们需要收集所有应用程序通过激活缓慢的查询日志一天或几个小时,应该涵盖大多数应用程序的查询。然而,在大多数情况下,缓慢的日志将是巨大的,并应用它们使用pt-upgrade需要时间,所以pt-query-digest与查询工具可以帮助消化准备pt-upgrade测试。
- 在消化,例如,我们可以最大的50个样本/查询。
|
1
2
|
请注意
:
当
处理
大
慢
日志
,
的
工具
可能
使用
一些
内存
,
所以
保持
一个
眼睛
在
它
如果
你”再保险
运行
它
在
生产
服务器
。
pt- - - - - -查询- - - - - -消化
- - -样本
50
- - -没有- - - - - -报告
- - -输出
slowlog
<
slow_log_file
>
>
<
消化
>
.out
|
- 如果任何低于会话变量在消化缓慢的日志,很可能检出和删除,以便查询可以继续运行。
|
1
|
集
SQL_SAFE_UPDATES=。
。
。
,
SQL_SELECT_LIMIT=。
。
。
,
MAX_JOIN_SIZE=。
。
。
。
|
- 开始前pt-upgrade测试,确保测试节点上的数据是相同的,停止测试节点上复制在同一个二进制日志的位置。
- 只读的测试
所有查询回放使用pt-upgrade工具在只读模式几次测试节点记录结果。我们可以放弃第一次运行的结果,因为这只是热身Innodb缓冲池,并再次执行相同的pt-upgrade命令。
|
1
|
美元
pt- - - - - -升级
h=Test1
h=Test2
- - -马克斯- - - - - -例子=1
<
消化
>
.out
1
>
pt- - - - - -upgrade_results
.out
2
>
pt- - - - - -upgrade_results
.err
|
- 阅读编写测试
所有查询将在读写模式使-no-read-only回放测试节点上选择一次,记录结果。
|
1
|
美元
pt- - - - - -升级
h=Test1
h=Test2
- - -没有- - - - - -读- - - - - -只有
- - -马克斯- - - - - -例子=1
<
消化
>
.out
1
>
pt- - - - - -upgrade_results_RW
.out
2
>
pt- - - - - -upgrade_results_RW
.err
|
只读和读写测试报告现在可用来评估和隔离更慢的查询,返回更多/更少的行,或返回完全不同的行,并返回一个错误或警告。我们可以实现修复基于pt-upgrade测试报告提出的问题。这可能需要MySQL安装更改,查询优化,查询重写,模式变化,指数增加或修改,等等。






