如何测试沙箱和MHA

分类:编程技术 时间:2024-02-20 16:01 浏览:0 评论:0
0
本文向您展示如何测试沙箱和 MHA。内容简洁易懂。绝对会让你眼前一亮。希望您能从本文的详细介绍中有所收获。

昨天写了一篇关于使用脚本搭建主从脚本的文章后,启龙哥建议我看看沙箱的功能,可以秒搭建主从环境。我简单地尝试了一下,效果真的很好。很强大。

环境部署其实很简单。如果有网络环境,运行cpan命令即可。或者您可以使用 wget 安装它。

安装沙箱

使用cpan来安装,很简单,只需以下命令:

cpan MySQL::Sandbox

< p>输出一些日志后,会提示安装成功。 /usr/local/bin下还会有几个make_sandbox相关的命令。

[root@grtest bin]# ll make*
-r-xr-xr-x 1 root root 8681 4月12日16:16 make_multiple_custom_sandbox
-r-xr-xr- x 1根根 13862 4月12日16:16 make_multiple_sandbox
-r-xr-xr-x 1根根 22260 4月12日16:16 make_replication_sandbox
-r-xr-xr-x 1 root root 11454 Apr 12 16:16 make_sandbox
-r-xr-xr-x 1 root root 4970 Apr 12 16:16 make_sandbox_from_installed
- r-xr-xr-x 1 root root 7643 Apr 12 16:16 make_sandbox_from_source
-r-xr-xr-x 1 root root 5772 Apr 12 16:16 make_sandbox_from_url

另一种方法是安装包,通过编译安装即可完成。

可以使用wget下载安装包:

# wget https://launchpad.net/mysql-sandbox/mysql-sandbox-3/mysql-sandbox-3/ +download/MySQL-Sandbox-3.0.25.tar.gz 然后使用make、make install进行安装。

比如我要部署MySQL数据库环境,给我们一个二进制安装包,只需要make_sandbox。

# make_sandbox mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz 有一点需要注意关于这个命令,即考虑到安全性,默认使用root是敏感的,会抛出以下warn。主要是和你确认一下你是否真的想在这里做。如果是线上环境,操作风险非常高,所以特别提醒大家,需要设置一个变量值并确认。

# make_sandbox percona-server-5.6.25-73.1.tar.gz
MySQL Sandbox 不应以 root 身份运行

如果您知道自己在做什么并且想要什么不过,要
以root身份运行,请将环境
变量“SANDBOX_AS_ROOT”设置为非零值。我们会给这个变量一个值,比如 go

export SANDBOX_AS_ROOT=go set 数据库环境就会自动部署。难得的是,会自动生成相应的快捷脚本。如果下次做一些批量管理任务的话,会非常快捷方便。这里的数据库安装目录是msb_5_7_17,数据文件都是该目录下。 。

[root@grtest 沙箱]# ll
总计 48
-rwxr-xr-x 1 root root 54 Apr 12 16:35 clear_all
drwxr-xr-x 4 root root 4096 Apr 12 16:35 msb_5_7_17
-rw-r--r-- 1 root root 3621 Apr 12 16:35 plugin.conf
-rwxr-xr-x 1 root root 56Apr 12 16:35 restart_all
-rwxr-xr-x 1 root root 2145 Apr 12 16:35 sandbox_action
-rwxr-xr-x 1 root root 58 Apr 12 16:35 send_kill_all
-rwxr -xr-x 1 root root 54 Apr 12 16:35 start_all
-rwxr-xr-x 1 root root 55 Apr 12 16:35 status_all
-rwxr-xr-x 1 root root 53 Apr 12 16:35 stop_all
-rwxr-xr-x 1 root root 4514 Apr 12 16:35 test_replication
-rwxr-xr-x 1 root root 52 Apr 12 16:35 use_all 连接到数据库,您只需要一个 use 命令即可。

./use
欢迎使用 MySQL 监视器。命令以 ; 结尾或 \g.
您的 MySQL 连接 ID 为 6
服务器版本:5.7.17 MySQL 社区服务器 (GPL)
版权所有 (c) 2000、2016、Oracle 和/或其附属公司。保留所有权利。
Oracle 是 Oracle Corporation 和/或其附属公司的注册商标。其他名称可能是其各自所有者的商标。
输入“帮助;”或“\h”寻求帮助。输入'\c'可以清除当前输入的语句。
mysql [localhost] {msandbox} ((none)) >其他启动和停止命令也是如此,非常快捷方便。

搭建主从环境,操作步骤很简单,输出日志也很简单。例如,如果我指定解压后的二进制目录5.7.17,则默认会创建一个主从环境。

# export SANDBOX_AS_ROOT=go
# make_replication_sandbox 5.7.17
安装并启动master
安装slave 1
安装slave 2
启动slave 1
..沙箱服务器已启动
启动从服务器2
。沙箱服务器已启动
正在初始化从站 1
正在初始化从站 2
安装在 $HOME/sandboxes/rsandbox_5_7_17 中的复制目录查看主站的状态d 从站,使用 status_all。

# ./status_all
复制 rsandbox_5_7_17
master 位于
端口:20232
node1 位于
端口:20233
node2 位于< br/>端口:20234

MHA快速测试

当然,上述工作可以使用沙箱或自定义脚本来完成。每个都有自己的优点。相对来说,至少我对手动脚本的方法比较了解。

我动态构建一主多从的想法之一就是快速模拟MHA环境。

我们首先在配置中创建一个数据库用户 mha_test 作为连接用户

将 *.* 上的所有权限授予 'mha_test'@'%' 标识的 'mha_test' ;然后指定一个包含以下内容的配置文件:

# cat /home/mha/conf/app1.cnf
[服务器默认]
manager_workdir=/home/mha/manager< br/>manager_log=/home/mha/manager/app1/manager.log
端口=24801
user=mha_test
password=mha_test
repl_user=rpl_user
repl_password =rpl_pass

[服务er1]
hostname=127.0.0.1
port=24801
candidate_master=1

[server2]
hostname=127.0.0.1
candidate_master =1
port=24802

[server3]
hostname=127.0.0.1
candidate_master=1
port=24803 因为是同一个服务器,可以快速模拟MHA的容灾切换和快速恢复。 。

使用以下脚本检测 SSH。

# masterha_check_ssh --conf=/home/mha/conf/app1.cnf 基本上是以下ssh连接,请检查。

2017 年 4 月 12 日星期三 18:35:52 - [调试] 通过 SSH 从 root@127.0.0.1(127.0.0.1:22) 连接到 root@127.0.0.1(127.0.0.1:22)。 .
2017 年 4 月 12 日星期三 18:35:52 - [调试] ok。
2017 年 4 月 12 日星期三 18:35:52 - [调试] 从 root@127.0.0.1(127.0.0.1) 通过 SSH 连接:22) 发送至 root@127.0.0.1(127.0.0.1:22)..
2017 年 4 月 12 日星期三 18:35:52 - [调试] 好的。
2017 年 4 月 12 日星期三 18:35:52 - [信息] 所有 SSH 连接测试均已成功通过。检查主从复制情况可以使用以下命令

masterha_check_repl --conf=/home/mha/conf/app1. cnf

输出日志部分如下。可以看到主从关系和复制检测都清晰可见。

2017 年 4 月 12 日星期三 18:35:29 - [信息]
127.0.0.1(127.0.0.1:24801)(当前主版本)
+--127.0.0.1(127.0 .0.1:24802)
+--127.0.0.1(127.0.0.1:24803)

2017 年 4 月 12 日星期三 18:35:29 - [info] 检查 127.0.0.1 上的复制运行状况..
2017 年 4 月 12 日星期三 18:35:29 - [info] 好的。
2017 年 4 月 12 日星期三 18:35:29 - [info] 检查 127.0.0.1 上的复制运行状况..
2017 年 4 月 12 日星期三 18:35:29 - [信息] 好的。
2017 年 4 月 12 日星期三 18:35:29 - [警告] master_ip_failover_script 未定义。
4 月 12 日星期三 18:35:29 2017 - [警告] shutdown_script 未定义。
2017 年 4 月 12 日星期三 18:35:29 2017 - [info] 退出代码 0(不是主节点死亡)。

MySQL 复制运行状况良好.然后我们启动MHA-manager

nohup masterha_manager --conf=/home/mha/conf/app1.cnf > /tmp/mha_manager.log 2>&1 &To检查当前MHA状态,可以使用以下命令:

# masterha_check_status --conf=/home/mha/conf/app1.cnf
app1 (pid:11701) is running(0 :PING_OK), master:127.0.0.1 这时候我们就销毁它吧。我们可以手动终止端口 24081 上的 mysqld_safe 和 mysqld 服务。

这将从日志中显示 MHA 已开始工作。

tail -f /home/mha/manager/app1/manager.log
2017 年 4 月 12 日星期三 22:54:53 - [info] 重置新主服务器上的从属信息..
2017 年 4 月 12 日星期三 22:54:53 - [info] 127.0.0.1: 重置从属信息成功。
2017 年 4 月 12 日星期三 22:54:53 - [info] 主服务器故障转移到 127.0.0.1(127.0. 0.1:24802) 成功完成。
2017 年 4 月 12 日星期三 22:54:53 - [info]
----- 故障转移报告 -----
app1: MySQL Master 故障转移 127.0 .0.1(127.0.0.1:24801) 到 127.0.0.1(127.0.0.1:24802) 成功
Master 127.0.0.1(127.0.0.1:24801) 已关闭!
在 grtest 处检查 MHA Manager 日志: /home/mha/manager/app1/manager.log 了解详细信息。
开始自动化d(非交互式)故障转移。
选择 127.0.0.1(127.0.0.1:24802) 作为新的主服务器。
127.0.0.1(127.0.0.1:24802):OK: 应用所有日志成功
127.0.0.1(127.0.0.1:24803): OK:从站已启动,从 127.0.0.1(127.0.0.1:24802) 复制
127.0.0.1(127.0.0.1:24802): 重置从站信息成功。
到 127.0.0.1(127.0.0.1:24802) 的主故障转移已成功完成。这样24802端口的mysql服务就会自动接管并从从库变为主库。 24803端口的从库会自动接受24802端口服务的数据变更。

整个过程有条不紊,会分为5个阶段。

以上内容是如何进行沙箱和MHA测试。你学到了知识或技能了吗?如果您想学习更多技能或者丰富自己的知识库,请关注行业资讯频道。

1. 本站所有资源来源于用户上传或网络,仅作为参考研究使用,如有侵权请邮件联系站长!
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 编程技术 > 如何测试沙箱和MHA

用户评论