返回顶部
首页 > 资讯 > 数据库 >详解MySQL如何使用离线模式维护服务器
  • 833
分享到

详解MySQL如何使用离线模式维护服务器

MySQL离线模式维护服务器MySQL离线维护 2023-10-11 10:10:45 833人浏览 薄情痞子
摘要

目录离线模式启用 offline_mode使用 aap_user 用户启动 sysbench 工具结论离线模式 作为 DBA,最常见的任务之一就是批量处理 Mysql 服务的启停或其他一些活

离线模式

作为 DBA,最常见的任务之一就是批量处理 Mysql 服务的启停或其他一些活动。在停止 mysql 服务前,我们可能需要检查是否有活动连接;如果有,我们可能需要把它们全部杀死。通常,我们使用 pt-kill 杀死应用连接或使用 SELECT 语句查询准备杀死语句。例如:

pt-kill --host=192.168.11.11 --user=percona -p --sentinel /tmp/pt-kill.sentinel2 --pid /tmp/pt-kill.pid --victims all --match-command 'Query' --ignore-user 'pmm|rdsadmin|system_user|percona' --busy-time 10 --verbose --print --kill
select concat('kill ',id,';') from infORMation_schema.processlist where user='app_user';

Mysql 有一个名为 offline_mode 的变量来将服务器设置为维护模式。设置此选项后,它会立即断开所有不具有 SYSTEM_VARIABLES_ADMIN 和 CONNECTION_ADMIN 权限的客户端连接,并且不允许新连接,除非用户拥有这些权限。如果您手动终止连接或使用 pt-kill,则无法避免新连接的创建。但通过使用这种模式,我们可以避免新的连接。这是一个全局动态变量,我们可以在服务器运行时设置此模式。

启用 offline_mode

要启用 offline_mode,用户帐户必须具有 SYSTEM_VARIABLES_ADMIN* 权限和 CONNECTION_ADMIN 权限(或已弃用的 SUPER 权限,它涵盖了这两个权限)。CONNECTION_ADMIN 从 MySQL 8.0.31 开始是必需的,并建议在所有版本中使用,以防止意外定。让我们测试一下。

要对此进行测试,请创建一个新用户 app_user,该用户仅具有 DDL/DML 权限。

mysql> create user app_user identified by 'App@!234TEst';
Query OK, 0 rows affected (0.20 sec)
mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP , REFERENCES, INDEX, ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE,CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, CREATE TABLESPACE on *.* to app_user;
Query OK, 0 rows affected (0.00 sec)

使用 aap_user 用户启动 sysbench 工具

[root@Centos12 vagrant]# sysbench /usr/share/sysbench/oltp_read_write.lua --threads=10 --time=100? --mysql-db=sysbench --mysql-user=app_user --mysql-passWord='App@!234TEst' run
sysbench 1.0.20 (using bundled LuaJIT 2.1.0-beta2)
Running the test with following options:
Number of threads: 10
Initializing random number generator from current time
Initializing worker threads...
mysql> show processlist;
+----+-----------------+---------------------+----------+-------------+------+-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------+---------+-----------+---------------+
| Id | User | Host | db | Command | Time | State | Info | Time_ms | Rows_sent | Rows_examined |
+----+-----------------+---------------------+----------+-------------+------+-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------+---------+-----------+---------------+
| 5 | event_scheduler | localhost | NULL | Daemon | 2151 | Waiting for next activation | NULL | 2151034 | 0 | 0 |
| 9 | bhuvan | 192.168.33.11:50642 | NULL | Binlog Dump | 2102 | Source has sent all binlog to replica; waiting for more updates | NULL | 2102317 | 0 | 0 |
| 14 | bhuvan | localhost | NULL | Query | 0 | init | show processlist | 0 | 0 | 0 |
| 20 | app_user | localhost | sysbench | Execute | 0 | waiting for handler commit | COMMIT | 11 | 0 | 0 |
| 21 | app_user | localhost | sysbench | Execute | 0 | updating | DELETE FROM sbtest1 WHERE id=5000 | 6 | 0 | 0 |
| 23 | app_user | localhost | sysbench | Execute | 0 | waiting for handler commit | COMMIT | 8 | 0 | 0 |
| 24 | app_user | localhost | sysbench | Execute | 0 | waiting for handler commit | COMMIT | 18 | 0 | 0 |
| 25 | app_user | localhost | sysbench | Execute | 0 | updating | UPDATE sbtest1 SET c='99153469917-25523144931-18125321038-96151238215-88445737418-14906501975-136014 | 13 | 0 | 0 |
| 27 | app_user | localhost | sysbench | Execute | 0 | waiting for handler commit | COMMIT | 7 | 0 | 0 |
| 28 | app_user | localhost | sysbench | Execute | 0 | statistics | SELECT c FROM sbtest1 WHERE id=5003 | 0 | 0 | 0 |
| 29 | app_user | localhost | sysbench | Execute | 0 | updating | UPDATE sbtest1 SET c='84180675456-88426921120-90373546373-84823361786-77912396694-08592771856-912331 | 13 | 0 | 0 |
+----+-----------------+---------------------+----------+-------------+------+-----------------------------------------------------------------+------------------------------------------------------------------------------------------------------+---------+-----------+---------------+
13 rows in set (0.00 sec)

当 sysbench 运行时,设置 offline_mode=ON,来自 sysbech with Sysbench") 的所有连接都将被终止。您将在 sysbench 中看到错误。

mysql> select @@offline_mode;
+----------------+
| @@offline_mode |
+----------------+
| 0 |
+----------------+
1 row in set (0.15 sec)
mysql> set global offline_mode=1;
Query OK, 0 rows affected (0.15 sec)
mysql> show processlist;
+----+-----------------+---------------------+------+-------------+------+-----------------------------------------------------------------+------------------+---------+-----------+---------------+
| Id | User | Host | db | Command | Time | State | Info | Time_ms | Rows_sent | Rows_examined |
+----+-----------------+---------------------+------+-------------+------+-----------------------------------------------------------------+------------------+---------+-----------+---------------+
| 5 | event_scheduler | localhost | NULL | Daemon | 2178 | Waiting for next activation | NULL | 2178008 | 0 | 0 |
| 9 | bhuvan | 192.168.33.11:50642 | NULL | Binlog Dump | 2129 | Source has sent all binlog to replica; waiting for more updates | NULL | 2129291 | 0 | 0 |
| 14 | bhuvan | localhost | NULL | Query | 0 | init | show processlist | 0 | 0 | 0 |
+----+-----------------+---------------------+------+-------------+------+-----------------------------------------------------------------+------------------+---------+-----------+---------------+
3 rows in set (0.01 sec)

如果您在 offline_mode=1 时尝试使用 app_user 连接数据库,它将不允许连接并收到一条错误消息,表明服务器当前处于离线模式。这个 offline_mode 不会影响复制。可以看到上面的 processlist 日志,当我们设置 offline_mode=1 时,复制线程并没有断开。要禁用 offline_mode,请将值设置为 0。

mysql> set global offline_mode=0;
Query OK, 0 rows affected (0.00 sec)

结论

offline_mode 是将服务器置于维护模式的一个不错的选择。只需确保应用程序用户没有管理员权限,只有管理员有。我们可以在以下情况下使用 offline_mode

  • 在将数据库服务器取出进行维护或其相关活动之前,请在配置文件中进行更改并保持此模式,直到所有活动完成。
  • 在从服务器进行备份时,我们可以设置这个 offline_mode,以避免服务器的负载,使备份速度更快。
  • 如果由于大量查询而导致副本上出现大量复制,我们可以设置此模式,直到复制与主服务器同步。
  • 当您想立即终止所有应用程序连接时。

译自:https://www.percona.com/blog/mysql-offline-mode-to-disconnect...

以上就是MySQL 如何使用离线模式维护服务器的详细内容,更多关于MySQL 如何使用离线模式维护服务器的资料请关注编程网(www.cppcns.com)其它相关文章!

您可能感兴趣的文档:

--结束END--

本文标题: 详解MySQL如何使用离线模式维护服务器

本文链接: https://lsjlt.com/news/428209.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 详解MySQL如何使用离线模式维护服务器
    目录离线模式启用 offline_mode使用 aap_user 用户启动 sysbench 工具结论离线模式 作为 DBA,最常见的任务之一就是批量处理 mysql 服务的启停或其他一些活...
    99+
    2023-10-11
    MySQL离线模式维护服务器 MySQL离线维护
  • maven离线模式不起作用如何解决
    要解决Maven离线模式不起作用的问题,可以尝试以下几种方法: 检查本地仓库:确保本地仓库中包含所需的依赖项。可以通过查看本地仓...
    99+
    2024-04-02
  • 如何在使用中保护双线服务器
    在使用中保护双线服务器的方法:1、选择高性能操作系统,及时更新并打上安全补丁,从而加强双线服务器防御能力;2、需要做好服务器安全风险分析,及时发现异常问题并进行处理;3、需要做好服务器管理安全性分析,比如安排专业人员监督企业双线服务器,从而...
    99+
    2024-04-02
  • 国外服务器租用如何维护
    国外服务器租用维护的方法:1、检查服务器的硬件和运行环境,包括温度、湿度、灰尘、电源、消防、监控等,保证服务器的稳定性;2、及时下载更新操作软件和应用程序的安全补丁,保证能及时修复可能出现的漏洞;3、做好防御网络攻击的准备和数据备份,以免数...
    99+
    2024-04-02
  • BGP服务器租用后如何维护
    BGP服务器是一种用于路由协议的服务器,用于帮助网络中的不同设备之间进行通信和数据传输。维护BGP服务器是非常重要的,可以保证网络的...
    99+
    2024-04-09
    BGP服务器
  • 如何使用SAP OData offline库实现Android应用的离线模式
    本篇文章给大家分享的是有关如何使用SAP OData offline库实现Android应用的离线模式,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。打开Android stud...
    99+
    2023-06-03
  • 香港vps服务器租用如何维护
    香港vps服务器租用维护的方法:1、修改初始密码并定期更换,保证香港vps服务器的使用权限;2、不要随意更改设置防火墙,避免出现设置错误影响香港vps服务器正常使用;3、不要运行可能会带来安全问题的应用程序,以免导致香港vps服务器被入侵,...
    99+
    2024-04-02
  • 租用vps美国服务器如何维护
    租用vps美国服务器维护的方法:1、提高账号密码复杂程度并做好加密措施,防止被黑客轻易破解利用;2、采用双重认证登录策略,提高登录的安全性;3、及时更新系统补丁,防止服务器出现漏洞被入侵;4、监测VPS美国服务器的系统日志,排查服务器是否存...
    99+
    2024-04-02
  • 租用免费云服务器如何维护
    租用免费云服务器维护的方法:1、及时更新或安装系统补丁,防止被黑客利用漏洞攻击;2、安装并配置防火墙程序,提高云服务器的防御力;3、部署杀毒软件,排查安全隐患;4、关闭不必要的服务和端口,降低被攻击风险;5、定期对数据进行备份,避免数据丢失...
    99+
    2024-04-02
  • 租用云服务器如何进行维护
    租用云服务器进行维护的方式有:1、及时更新云服务器系统及程序的补丁,避免出现系统漏洞被黑客恶意入侵;2、需要给云服务配备安全防护工具,从而提高云服务器防御能力;3、需要定期对云服务器检查日志数据以及做好数据备份,确保云服务器数据安全性。具体...
    99+
    2024-04-02
  • 如何维护租用的美国服务器
    维护租用美国服务器的方法:1、检查美国服务器本地硬盘是否满足当前业务需求;2、检查服务器事件日志,进行数据分析,排查服务器潜在安全隐患;3、定期更新美国服务器的系统补丁;4、确保机房服务器通风顺畅,避免出现硬件故障问题;5、定期对美国服务器...
    99+
    2024-04-02
  • 租用海外云服务器如何维护
    租用海外云服务器后,需要进行定期的维护工作以确保服务器的正常运行和安全性。以下是一些维护海外云服务器的常见方法: 定期更新操作系...
    99+
    2024-05-23
    海外云服务器 云服务器
  • 租用海外美国服务器如何维护
    租用海外美国服务器维护的方法:1、及时升级系统补丁,能保证网络的应用安全,降低常见的安全故障概率;2、提高网络的整体安全性,能降低服务器被攻击的风险;3、根据每个客户的特点,独立制定唯一应用管理权限,防止应用统一管理权限带来的安全隐患;4、...
    99+
    2024-04-02
  • 低价香港服务器租用如何维护
    低价香港服务器租用维护的方法:1、及时更新香港服务器的操作系统和应用程序;2、定时备份香港服务器的数据;3、日常监控香港服务器的硬件;4、管理香港服务器的cpu、磁盘和数据;5、管理香港服务器的用户和应用程序;6、定期修改香港服务器的账户密...
    99+
    2024-04-02
  • 香港服务器空间租用如何维护
    香港服务器空间租用维护的方法:1、修改初始密码并定期更换,保证香港服务器空间的使用权限;2、不要随意更改设置防火墙,避免出现设置错误影响香港服务器空间正常使用;3、不要运行可能会带来安全问题的应用程序,以免导致香港服务器空间被入侵,数据被盗...
    99+
    2024-04-02
  • 国外网站服务器租用如何维护
    国外网站服务器租用维护的方法:1、检查国外服务器的硬件和运行环境,包括温度、湿度、灰尘、电源、消防、监控等,保证服务器的稳定性;2、及时下载更新操作软件和应用程序的安全补丁,保证能及时修复可能出现的漏洞;3、做好防御网络攻击的准备和数据备份...
    99+
    2024-04-02
  • 租用国外服务器如何进行维护
    租用国外服务器进行维护的方法:1、及时更新国外服务器系统和软件的版本及补丁,减少黑客攻击风险;2、给国外服务器配置入侵防御系统和防火墙,提高服务器防御能力;3、给国外服务器安装防病毒和防恶意软件程序,排查系统潜在病毒;4、配置国外高防服务器...
    99+
    2024-04-02
  • 租用美国服务器如何做好维护
    租用美国服务器做好维护措施的方法:1、检查美国服务器本地硬盘是否满足当前业务需求;2、检查服务器事件日志,进行数据分析,排查服务器潜在安全隐患;3、定期更新美国服务器的系统补丁;4、确保机房服务器通风顺畅,避免出现硬件故障问题;5、定期对美...
    99+
    2024-04-02
  • 虚拟服务器租用如何维护管理
    虚拟服务器租用维护管理的方法:1、检查虚拟服务器的硬件和运行环境,包括温度、湿度、灰尘、电源、消防、监控等,保证服务器的稳定性;2、及时下载更新操作软件和应用程序的安全补丁,保证能及时修复可能出现的漏洞;3、做好防御网络攻击的准备和数据备份...
    99+
    2024-04-02
  • 美国免费服务器租用如何维护
    美国免费服务器租用维护的方法:1、升级系统补丁,保证网络的应用安全,降低常见安全故障的概率;2、提高美国服务器网络的整体安全性;3、根据每个客户的特点,独立制定在美国浏览服务器的唯一应用管理权限;4、按时维护备份数据,以防存储在服务器的数据...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作