安全禁用从属服务器上的 MySQL 复制:最佳实践和注意事项

2023-10-26

MySQL 复制是一种在主服务器和一个或多个从服务器之间同步数据的流行方法。它确保高可用性、负载平衡和数据冗余。但是,在某些情况下,您可能需要暂时禁用从属服务器上的复制,例如在维护或故障排除期间。本文将介绍在从属服务器上安全禁用 MySQL 复制的最佳实践和注意事项。

第 1 步:计划并沟通停机时间

在禁用复制之前,请通知您的团队成员并在必要时安排维护时段。这样,您可以最大限度地减少对用户的影响并避免意外中断。确保您有回滚计划,以防在此过程中遇到问题。

步骤2:停止从服务器上的复制

要安全地在从属服务器上禁用 MySQL 复制,首先停止复制过程。使用以下命令停止 SQL 和 IO 线程:

1
停止奴隶;

通过检查从属状态确认复制已停止:

1
SHOW 从属状态\G;

The 从设备_IO_运行 and 从属_SQL_运行列应该都显示“No”如下图所示:

Stop MySQL Replication on Slave
Stop MySQL Replication on Slave

步骤 3:保留复制配置

在对配置进行任何更改之前,请备份现有配置文件,通常名为 my.cnf 或 my.ini。如果需要,此备份将帮助您恢复原始设置。

步骤 4:删除或注释掉复制设置

要在从服务器上禁用复制,请打开配置文件(my.cnf 或 my.ini)并删除或注释掉以下行:

1
2
3
4
5
6
server-id= <从服务器 ID>
binlog-format = mixed
relay-log= <中继日志路径>
log_bin= <日志箱路径>
log-slave-updates = 1
只读= 1

请记住将 替换为适合您的设置的值。

第5步:重启MySQL服务器

更新配置后,重新启动 MySQL 服务器以应用更改:

  • 在 Linux 上:
    sudo service mysql restart 
    
  • 在 Windows 上:
    net stop MySQL 
    net start MySQL 
    

第 6 步:验证更改和数据一致性

重新启动 MySQL 服务器后,验证复制设置是否已禁用。使用以下命令检查服务器状态:

1
SHOW 从属状态\G;

不应该有输出,因为服务器不再充当从属服务器。另外,还要保证主从服务器之间的数据一致性。您可以使用 Percona Toolkit 中的 pt-table-checksum 等工具来比较两台服务器上的数据。

如果您仍然在上述命令中获得输出。执行以下sql命令:

1
复位从机 ALL;

再次运行“显示从属状态\G;”命令,您应该看到如下屏幕截图所示的输出:

Reset MySQL Replication on Slave
Reset MySQL Replication on Slave

第 7 步:监控服务器性能

禁用复制后,监视服务器的性能和资源利用率。此监控将帮助您识别因更改而可能出现的任何潜在问题。

第 8 步:记录更改

最后,记录对服务器配置所做的更改以及在此过程中遇到的任何问题。本文档将帮助您和您的团队了解更改背后的原因,并为未来的维护或故障排除任务提供参考。

结论

在从服务器上禁用 MySQL 复制应谨慎执行,以确保对数据一致性和服务器性能的影响最小。通过遵循本文中概述的最佳实践和注意事项,您可以安全地禁用复制,同时保持数据库的完整性并最大限度地减少停机时间。始终计划、沟通和记录更改,以确保 MySQL 环境中的顺利运行。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

安全禁用从属服务器上的 MySQL 复制:最佳实践和注意事项 的相关文章

  • Hibernate 可以使用 MySQL 的“ON DUPLICATE KEY UPDATE”语法吗?

    MySQL 支持 INSERT ON DUPLICATE KEY UPDATE 语法允许您 盲目 插入数据库 并回退到更新现有记录 如果存在 当您想要快速事务隔离并且想要更新的值取决于数据库中已有的值时 这非常有用 作为一个人为的示例 假设
  • 如果列有多个逗号分隔值,如何过滤 mysql 数据?

    我想问如果检查条件以查找具有多个逗号分隔值的列 如何过滤 mysql 数据 我给你举个例子 我有下表说 tbitems id item names item types item features 1 item 1 8 6 10 5 4 9
  • 在 MySQL 数据库中存储图像文件或 URL?哪个更好? [复制]

    这个问题在这里已经有答案了 可能的重复 在数据库中存储图像 是还是否 https stackoverflow com questions 3748 storing images in db yea or nay 数据库中的图像与文件系统中的
  • MySQL 与 PHP 的连接无法正常工作

    这是我的情况 我正在尝试使用 Apache 服务器上的 PHP 文件连接到 MySQL 数据库 现在 当我从终端运行 PHP 时 我的 PHP 可以连接到 MySQL 数据库 使用 php f file php 但是当我从网页执行它时 它只
  • 将 UPDATE 转换为 INSERT INTO ON DUPLICATE KEY UPDATE 语句

    我有这个 UPDATE MySQL 语句 效果很好 UPDATE table1 Inner Join table2 ON table2 id table1 gw id SET table1 field1 1 table1 field2 2
  • mySQL MATCH 跨多个表

    我有一组 4 个表 我想对其进行搜索 每个都有全文索引 查询可以使用每个索引吗 CREATE TABLE categories id int 5 unsigned NOT NULL auto increment display order
  • PHP PDO相关:更新SQL语句未更新数据库内容

    我正在尝试使用准备好的语句来实现更新语句PHP http en wikipedia org wiki PHP脚本 但它似乎没有更新数据库中的记录 我不确定为什么 所以如果您能分享一些见解 我将不胜感激 Code query UPDATE D
  • ActiveRecord3死锁重试

    Rails 3 或 ActiveRecord 3 是否有任何插件可以复制旧版本死锁重试 http agilewebdevelopment com plugins deadlock retry插入 或者 该插件仍然适用于 Rails 3 吗
  • 当“修复表”查询在 mysql 中不起作用时该怎么办?

    我收到此错误 表的存储引擎不支持修复 当我尝试使用查询修复表时repair table tbl college master 表是 innodb 类型 但我不知道我收到此错误 See 手册 http dev mysql com doc re
  • 如何在 phpmyadmin 中创建 MySQL 触发器

    我想在 MySQL 中创建一个触发器 我运行以下命令 mysql gt delimiter mysql gt CREATE TRIGGER before insert money BEFORE INSERT ON money gt FOR
  • PDO SQLSRV 和 PDO MySQL 在获取 int 或 float 时返回字符串

    当您获取时 PDO MS SQL Server 和 PDO MySQL 都会返回一个字符串数组 即使列的 SQL 类型本应是数字类型 例如 int 或 float 我设法解决了这个问题 但我想了解为什么它们一开始就这样设计 是不是因为PDO
  • Python:如何使用生成器来避免 sql 内存问题

    我有以下方法来访问 mysql 数据库 并且查询在服务器中执行 我无权更改有关增加内存的任何内容 我对生成器很陌生 并开始阅读更多有关它的内容 并认为我可以将其转换为使用生成器 def getUNames self globalUserQu
  • 查询中列的顺序重要吗?

    当从 MySQL 表中选择列时 与表中的顺序相比 选择列的顺序是否会影响性能 不考虑可能覆盖列的索引 例如 您有一个包含行 uid name bday 的表 并且有以下查询 SELECT uid name bday FROM table M
  • MYSQL - 查找最近的前一天

    我可以以某种方式 不使用 PHP 找到一周中最近的前一天日期吗 Like 最近的上一个星期二的日期是哪一天 CURDATE INTERVAL WEEKDAY CURDATE wday IF WEEKDAY CURDATE gt wday 0
  • 如何在 Laravel 查询中使用多个 OR,AND 条件

    我需要 Laravel 查询帮助 我的自定义查询 返回正确结果 Select FROM events WHERE status 0 AND type public or type private 如何写这个查询Laravel Event w
  • 当sql连接中存在两个同名列时,如何从一个表列中获取值

    当我连接两个具有相同名称列的表时 我目前面临着尝试获取值的问题 例如 table1 date和table2 date 每个表中的日期不同 我将如何获取 日期 本例中的表1 我目前正在跑步 while row mysqliquery gt f
  • MySQL Connector/C++ 库链接错误问题

    PROBLEM 好吧 我一直在尝试遵循 MySQL Forge Wiki 和其他一些网站上的示例代码 这些网站提供了有关如何获得简单数据库连接的教程 但由于某种原因 我的项目总是因链接错误而失败 我可以我自己不明白为什么或如何解决它 我仍在
  • InnoDB 因读未提交而死锁! - Java - Glassfish - EJB3(JPA/Hibernate)

    几天来 我在使用 Glassfish EJB3 和 Mysql InnoDB 的 Java 应用程序上遇到了死锁问题 配置 Mysql InnoDB Ver 14 12 Distrib 5 0 51a 适用于 debian linux gn
  • 如何正确转义mysql?

    我刚刚发现如果我写 select from tbl where name like foo 然后添加 foo 作为参数及其值 a 用户数据 它不会正确转义 我勒个去 它想要 a 即使我使用参数 我还是忍不住觉得我对 sql 注入持开放态度
  • MySQL MIN/MAX 所有行

    我有桌子Races与行ID Name and TotalCP 我选择分钟 TotalCP FROM Races 但是我想选择具有最小值的整行 我如何在单个查询中做到这一点 从聚合值获取整行的一般形式是 SELECT FROM Races W

随机推荐

  • cicd 07--构建前后端一体化自动化发布流程

    cicd 07 构建前后端一体化自动化发布流程 1 介绍 2 构建过程 2 1 功能说明 2 2 jenkins gitlab 配置 2 3 测试结果 3 注意事项 4 说明 1 介绍 cicd 04 构建自动化发布流程 介绍了一种通用的自
  • NLP扎实基础3:TF-IDF文本特征提取

    TF IDF简介 TF IDF使用流程 见上图 步骤如下 根据全部语料每个词对应的TF IDF值 每个句子对应全部语料的one hot编码 将TF IDF编码作为特征 Python代码 流程很简单 就不复现了 这里有两个使用的方式 第一种是
  • Flutter中如何强制某个页面横屏

    在很多文章中 提到了Flutter中强制某个页面横屏使用如下代码 SystemChrome setPreferredOrientations DeviceOrientation portraitUp DeviceOrientation po
  • 零基础学员的shell脚本的写作思路详解

    前言 这两天一直再批改学员的脚本作业 大多数学员写的很好 有的学员写的不太好 还有一些还没有入门到学员不知道脚本该咋写 不知道脚本怎么写的学员 绝大多数犯了一个错误 一上来就把脚本想的太复杂了 我们今天单独聊聊这个问题 脚本错误范例示范 写
  • c++面试知识点补充

    1 说说c 结构体和c结构体的区别 1 c的结构体内不允许有函数存在 c 允许有内部成员函数 且允许该函数是虚函数 2 c的结构体对内部成员变量的访问权限只能是public 而c 允许public protected private三种 3
  • android 本地更新版本,Android版本更新之本地数据库更新

    最近上架了一个算法学习类APP 在更新应用版本时 发现数据库依旧没有更新 还是上一个版本的数据内容 遂把这方面的内容记录下来 PS 本人处女作APP 算法之家 可以在豌豆荚 360手机助手 腾讯应用宝中下载安装 如下是父类的构造函数 所有的
  • python远程连接服务器获取服务器状态

    文章目录 前言 一 python远程连接服务器 1 由于paramiko属于第三方库 所以需要使用如下命令先行安装 2 SSHClient常用的方法介绍 3 基本使用 二 结合linux命令查看服务器状态 查看对应的linux命令返回值 通
  • 经典sql实例大全

    from http www cnblogs com yubinfeng archive 2010 11 02 1867386 html 一 基础 1 说明 创建数据库CREATE DATABASE database name 2 说明 删除
  • Nacos官方文档

    原文 Nacos官方手册 什么是 Nacos什么是 Nacoshttps nacos io zh cn docs what is nacos html Nacos 致力于帮助您发现 配置和管理微服务 Nacos 提供了一组简单易用的特性集
  • 新手剪辑师秒变大神 高级感视频剪辑的几种常用技巧

    高级感视频剪辑 就像一个多情的 渣男 你对他倾尽全力 他却对你若即若离 你讨厌他 却离不开他 那忽冷忽热的态度真叫人抓狂 请收起您的卑微 换一种逻辑和剪辑工具 掌握正确的思路 其实我们远比 高级感视频剪辑 更高级 软件 souurl cn
  • 如何在 Ubuntu 18.04 和 16.04 LTS 上安装 PostgreSQL

    PostgreSQL 开发团队发布了最新版本 PostgreSQL 12 PostgreSQL 是一个开源的对象关系数据库系统 它是用于生产服务器的领先数据库服务器之一 PostgreSQL允许我们执行各种编程语言的存储过程 比如C C P
  • 安全禁用从属服务器上的 MySQL 复制:最佳实践和注意事项

    MySQL 复制是一种在主服务器和一个或多个从服务器之间同步数据的流行方法 它确保高可用性 负载平衡和数据冗余 但是 在某些情况下 您可能需要暂时禁用从属服务器上的复制 例如在维护或故障排除期间 本文将介绍在从属服务器上安全禁用 MySQL
  • S3FS:在 CentOS 和 Fedora 系统上安装 Amazon S3 存储桶

    Amazon S3 是一种高度可扩展且持久的对象存储服务 允许您从网络上的任何位置存储和检索任意数量的数据 S3FS 是 Amazon S3 的 FUSE 用户空间文件系统 接口 允许您将 Amazon S3 存储桶挂载为 CentOS 或
  • 实用指南:克隆 Git 存储库和添加文件

    在软件开发领域 版本控制系统是天赐之物 它们使我们能够跟踪代码的更改 与他人协作 甚至在出现问题时恢复到以前的工作版本 最流行的版本控制系统之一是 Git 今天 我们将深入研究如何克隆 Git 存储库和添加文件的实用指南 1 理解Git 在
  • 如何在 CentOS/RHEL 7/6 上安装 PostgreSQL 11

    PostgreSQL 11 发布 它是一个开源的对象关系 高度可扩展 符合 SQL 的数据库管理系统 PostgreSQL 是由加州大学伯克利分校计算机科学系开发的 本文将帮助您在 CentOS RHEL 7 6 系统上安装 Postgre
  • 如何在 Fedora 上安装 VirtualBox 7.0

    VirtualBox 是一种流行的虚拟化软件包 可用于在计算机上运行虚拟机 在本文中 您将学习如何在免费开源 Linux 操作系统 Fedora 上安装 VirtualBox 如果您将 VirtualBox 用于个人或教育目的 那么在 Fe
  • 如何重置 Amazon RDS 主用户密码

    本教程将帮助您更改或重置 Amazon RDS 主用户密码通过亚马逊网络服务控制台界面 1 登录到亚马逊网络服务安慰 2 选择需要修改密码的RDS实例 点击Modify 3 Go to Settings部分并在其中输入您的新主密码新主密码输
  • PHP fgets() 函数:逐行读取文件

    PHP fgets function is used for reading a single line from a file This function takes two arguments as described below 1
  • 组合预测模型

    组合预测模型 LSTM XGBoost长短期记忆神经网络结合极限梯度提升树时间序列预测 Matlab程序 目录 组合预测模型 LSTM XGBoost长短期记忆神经网络结合极限梯度提升树时间序列预测 Matlab程序 预测结果 评价指标 基
  • Oracle not in查不到应有的结果(NULL、IN、EXISTS详解)

    http x spirit iteye com blog 615603 首先我要感谢aa和Liu Xing帮我发现了我日志中的错误 之前比较粗心 把3条SQL语句写成一样的了 对于给读者造成的麻烦 我深表抱歉 今天我把原文做了修订 为了对得