欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 名人名企 > WinServer2022通过定时任务监视MySQL的Slave服务并自动启动Slave服务

WinServer2022通过定时任务监视MySQL的Slave服务并自动启动Slave服务

2024/10/24 4:30:56 来源:https://blog.csdn.net/mageriletu2012/article/details/140647975  浏览:    关键词:WinServer2022通过定时任务监视MySQL的Slave服务并自动启动Slave服务

WinServer 2022 配置定时任务

在Windows Server 2022上部署了Mysql数据库,Mysql数据库启动或者重启时,Slave主从复制线程没有开启。需要编写脚本周期判断Mysql服务是否正常运行,如果正常运行,则启动Slave服务。

1、 编写监视脚本

①、 编写脚本

示例脚本如下:

在这里插入图片描述

**"MysqlSlaveMonitor.bat"**脚本内容如下:

@echo off
setlocal:: 设置MySQL服务器的用户名和密码
set MYSQL_USER=root
set MYSQL_PASS=root123:: 设置MySQL服务器的主机地址和端口
set HOST=localhost
set PORT=3306:: 运行mysql命令并检查Slave状态
mysql -u%MYSQL_USER% -p%MYSQL_PASS% -h%HOST% -P%PORT% -e "show slave status\G" | findstr  "Slave_IO_Running:" | findstr "Yes":: 检查返回值,如果包含"Yes",则表示Slave正在运行
if %ERRORLEVEL% equ 0 (echo Slave is running.
) else (echo Slave is not running.:: 启动Slave服务mysql -u%MYSQL_USER% -p%MYSQL_PASS% -h%HOST% -P%PORT% -e "start slave;"
)endlocal

②、 部署脚本

"MysqlSlaveMonitor.bat" 脚本部署到指定位置,比如:可以放到 C:\Program Files\MySQL\ 目录下 。
在这里插入图片描述

2、 配置Windows定时任务

【1】、 任务计划程序

通过 “Win” + “R” 组合键,调出 “运行” 界面,输入 taskschd.msc 并回车。

在这里插入图片描述

【2】、 创建NK8500任务分组

右键 “任务计划程序库” ,选择【新文件夹】选项,创建任务分组。

在这里插入图片描述

输入文件夹名称。

在这里插入图片描述

创建完成。

在这里插入图片描述

【3】、 创建任务

右键刚才创建的任务组,选择【创建任务】选项。

在这里插入图片描述

【4】、 创建任务-常规

创建任务对话框,选择【常规】页面,输入“名称”、“描述” 等参数。

在这里插入图片描述

参数配置完后,点击【确定】按钮。

在这里插入图片描述

点击【确定】按钮时弹出的提示框 “必须输入任务名和至少一个操作“ 忽略,点击【确定】即可。

【5】、 创建任务-触发器

创建任务对话框,选择【触发器】页面,点击【新建】按钮。

在这里插入图片描述

设置任务 ”重复任务间隔“ 和 ”持续时间“ 类型。

在这里插入图片描述

配置完后,点击【确定】按钮。

在这里插入图片描述

【6】、 创建任务-操作

创建任务对话框,选择【操作】页面,点击【新建】按钮。

在这里插入图片描述

在弹出的新建操作对话框中的 “程序和脚本” 中选择 刚才编写的 bat 脚本。
在这里插入图片描述

操作完后,点击【确定】按钮。
在这里插入图片描述

点击【确定】按钮,弹出用户账号密码输入对话框,输入用户密码即可。
在这里插入图片描述

用户密码输入后,系统会回到主页,如下图所示:

在这里插入图片描述

【7】、 创建任务-条件

双击任务列表中的 **“MySQL主从Slave服务监视” **任务。

在这里插入图片描述

弹出的对话框,选择【条件】页面,取消勾选标注选项。

在这里插入图片描述

点击【确定】,弹出对话框,输入用户密码,并确定。

在这里插入图片描述

【8】、 创建任务-设置

双击任务列表中的 **“MySQL主从Slave服务监视” **任务。
在这里插入图片描述

弹出的对话框,选择【设置】页面,勾选标注选项。。

在这里插入图片描述

点击【确定】,弹出对话框,输入用户密码,并确定。

在这里插入图片描述

【9】、 创建任务完成

通过点击【刷新】按钮,更新任务执行状态。

在这里插入图片描述

3、 验证

①、 关闭Slave服务

人工关闭 Slave 服务。

C:\Users\Administrator>mysql -uroot -proot123
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 19
Server version: 5.1.70-community-log MySQL Community Server (GPL)Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql>
mysql>
mysql> stop slave;
Query OK, 0 rows affected (0.00 sec)

②、 查询Slave服务

过3分钟查询 Slave 服务状态。

C:\Users\Administrator>mysql -uroot -proot123
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 24
Server version: 5.1.70-community-log MySQL Community Server (GPL)Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> show slave status\G
*************************** 1. row ***************************Slave_IO_State: Waiting for master to send eventMaster_Host: 192.168.58.1Master_User: syncMaster_Port: 3306Connect_Retry: 60Master_Log_File: master-binlog.000020Read_Master_Log_Pos: 106Relay_Log_File: zxdd1-relay-bin.000035Relay_Log_Pos: 2240629Relay_Master_Log_File: master-binlog.000018Slave_IO_Running: YesSlave_SQL_Running: YesReplicate_Do_DB:Replicate_Ignore_DB:Replicate_Do_Table:Replicate_Ignore_Table:Replicate_Wild_Do_Table:Replicate_Wild_Ignore_Table:Last_Errno: Last_Error: Skip_Counter: 0Exec_Master_Log_Pos: 2240480Relay_Log_Space: 295381944Until_Condition: NoneUntil_Log_File:Until_Log_Pos: 0Master_SSL_Allowed: NoMaster_SSL_CA_File:Master_SSL_CA_Path:Master_SSL_Cert:Master_SSL_Cipher:Master_SSL_Key:Seconds_Behind_Master: NULL
Master_SSL_Verify_Server_Cert: NoLast_IO_Errno: 0Last_IO_Error:Last_SQL_Errno:Last_SQL_Error: 
1 row in set (0.00 sec)mysql>

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com