通过两种方式增加从库——不停止mysql服务

yizhihongxing

本文将介绍通过两种方式增加MySql从库,而不需要停止MySql主服务。两种方式分别为基于GTID的复制和基于数据库备份的复制。

1. 基于GTID的复制

GTID是MySQL从5.6版本中引入的特性,用于在主从复制环境中解决多主复制冲突的问题。在增加从库时,使用GTID能够避免重复数据问题。

1.1 步骤一:启用GTID

在MySQL主服务器上,编辑my.cnf文件,打开GTID模式:

[mysqld]
server-id=1
log-bin=master
binlog-format=ROW
enforce-gtid-consistency=ON

在从服务器的my.cnf文件中添加如下记录

[mysqld]
server-id=102
log-bin=slave
relay-log=replay
binlog-format=ROW
gtid_mode=ON
enforce-gtid-consistency=ON

1.2 步骤二:转储主服务器状态

通过在主服务器上使用mysqldump 转储数据,然后恢复到从服务器

$ mysqldump --master-data=2 --single-transaction --routines --triggers --all-databases --triggers --events --add-drop-database > dumping.sql

转储期间,--master-data=2 将在转储日志开头加入 CHANGE MASTER 语句,而且将包含 GTID_PURGED。

1.3 步骤三:运行 CHANGE MASTER 命令

在从服务器上,运行如下语句,建立Slave主从关系:

$ mysql -u root -p
mysql> change master to 
master_host='192.168.100.101',
master_user='slaveuser',
master_password='slavepass',
master_port=3306,
master_auto_position=1;

然后启动该从服务器作为Slave:

mysql> start slave;

1.4 步骤四:验证复制是否成功

可以使用如下命令在主从服务器上验证:

mysql> show master status\G

在主服务器上这个命令可能会输出如下信息:

File: mysql-bin.000001
Position: 107
Binlog_Do_DB: mydb
Binlog_Ignore_DB: mysql
Executed_Gtid_Set: 0c5e1ca8-c195-11e7-a99b-005056a205be:1-3

在从服务器上,可以使用如下命令验证复制是否成功:

mysql> show slave status\G

可以查看输出中的Slave_IO_Running 和 Slave_SQL_Running 状态是否正常

2. 基于数据库备份的复制

还可以通过数据库备份增加从服务器。优点是操作简单,缺点是需要从主服务器上停止备份。

2.1 步骤一:停止主服务器

停止MySql主机服务,使用mysqldump命令对主数据库进行备份

$ mysqldump -u root -p mydb > mydbdump.sql

2.2 步骤二:将备份文件拷贝到从服务器

使用SCP或其他方式将备份文件从主服务器拷贝到从服务器上。

$ scp mydbdump.sql slave-server:/home/user

2.3 步骤三:恢复数据

在从服务器上,使用MySQL命令行客户端来恢复备份数据:

$ mysql -u root -p < mydbdump.sql

2.4 步骤四:启动Slave MySQL服务器

恢复完成后,在从服务器上启动Slave MySQL服务器:

$ mysql -u root -p
mysql> start slave;

2.5 步骤五:验证复制是否成功

可以使用如下命令在主从服务器上验证:

mysql> show master status\G

在主服务器上这个命令可能会输出如下信息:

File: mysql-bin.000001
Position: 107
Binlog_Do_DB: mydb
Binlog_Ignore_DB: mysql
Executed_Gtid_Set: 0c5e1ca8-c195-11e7-a99b-005056a205be:1-3

在从服务器上,可以使用如下命令验证复制是否成功:

mysql> show slave status\G

可以查看输出中的Slave_IO_Running 和 Slave_SQL_Running 状态是否正常

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:通过两种方式增加从库——不停止mysql服务 - Python技术站

(0)
上一篇 2023年5月22日
下一篇 2023年5月22日

相关文章

  • 数据库系统和数据仓库的区别

    数据库系统(Database System)指的是包含了数据存储、管理和查询等功能的信息系统,由数据库和数据库管理系统(DBMS)组成,是存储、管理和维护数据的关键技术,用于解决数据管理中的问题。而数据仓库(Data Warehouse)则是一种特殊类型的数据库,用于支持企业级业务分析和决策。 下面分别从数据模型、数据源、查询方式和数据分析四个方面分析数据库…

    database 2023年3月27日
    00
  • Oracle如何在SQL语句中对时间操作、运算

    在Oracle中,可以通过使用一系列的时间函数来对时间进行操作和运算。下面是一些常见的时间函数及其用法。 1. 获取当前时间 SYSDATE SYSDATE函数返回当前数据库服务器的系统日期和时间。 示例: SELECT SYSDATE FROM DUAL; 输出结果: SYSDATE ——————- 2022-09-23 15:35…

    database 2023年5月21日
    00
  • Django中更改默认数据库为mysql的方法示例

    如果你想在Django项目中使用MySQL数据库作为默认数据库,需要执行以下步骤: 步骤一:安装相关依赖 在使用MySQL数据库之前,需要先安装python的mysql驱动(pymysql或mysqlclient),以及Django对应版本的mysql后端(mysql-connector-python)。 安装pymysql驱动: pip install p…

    database 2023年5月18日
    00
  • 在Mysql存储过程中使用事务实例

    当在 Mysql 存储过程中执行一系列 SQL 语句时,可能会遇到一些不符合预期的结果。在这种情况下,使用事务可以保证这些 SQL 语句将作为一个原子操作执行,要么全部生效,要么全部回滚。下面是一份针对在 Mysql 存储过程中使用事务的攻略: 1. 创建一个简单的存储过程 在这个示例中,我们将创建一个简单的存储过程,它将插入两条记录到一个名为 users …

    database 2023年5月21日
    00
  • 一文快速回顾 Java 操作数据库的方式-JDBC

    数据库的重要性不言而喻,不管是什么系统,什么应用软件,也不管它们是 Windows 上的应用程序,还是 Web 应用程序,存储(持久化)和查询(检索)数据都是核心的功能。大家学习数据库时,比如 MySQL 这个数据库管理系统,都是在 CLI(Command Line Interface)上操作数据库的,现在,我们看看,在 Java Web 中,我们如何使用 …

    MySQL 2023年4月11日
    00
  • 天谕9月3日更新内容一览

    天谕9月3日更新内容一览攻略 前言 天谕9月3日更新内容一览已经公布,本篇攻略将详细讲解更新内容,并提供相应的操作指南,方便玩家进行游戏。 更新内容 本次更新内容主要包括以下几点: 新增珍魂收集活动 新增图腾装备评分系统 新增“春节大阵容”限时活动 下面逐一解析: 珍魂收集活动 珍魂收集活动是一项全新的收集活动,活动期间玩家需要通过各种途径获得珍魂碎片并兑换…

    database 2023年5月21日
    00
  • 如何使用Python实现按照条件查询数据库数据?

    以下是使用Python实现按照条件查询数据库数据的完整攻略。 按照条件查询简介 按照条件查询是指在数据库中查询符特定条件的数据。在Python中,可以使用pymysql库实现按照条件查询数据库数据。 步骤1:连接到数据库 在Python中,可以使用pymysql库到MySQL数据库。以下是连接到MySQL数据库的基本语法: import pymysql db…

    python 2023年5月12日
    00
  • Oracle 高速批量数据加载工具sql*loader使用说明

    Oracle 高速批量数据加载工具sql*loader使用说明 什么是sql*loader sqlloader是Oracle官方提供的一个高速批量数据加载工具,可用于将大量数据批量加载到数据库中。与Oracle的SQL语句插入数据相比,sqlloader具有更好的性能和效率,特别是在处理大型数据时,表现更加优异。 如何使用sql*loader 准备数据源文件…

    database 2023年5月21日
    00
合作推广
合作推广
分享本页
返回顶部