mysql从库新增_MySQL新增从库
背景描述
通常开始只有一个MySQL实例在运行,后期因为安全性,压力,备份等原因需要在此实例的基础上面新增一个从库。
分析:MySQL主从是基于binlog日志来实现的,那么需要主服务器开启binlog,此选项默认是关闭。我这边服务器在部署的时候就开启了,因为使用binlog可以用来恢复MySQL数据,并且还为以后做主从做好准备,所以我们推荐大家在部署主服务器的时候就开启此选项。另外在做主从的时候还需要主库和从库的server-id唯一,server-id在做主从的时候也是相当关键的一个参数。
另外因为我们MySQL主库已经运行一段时间了,里面已经有相当多数据,我们需要将这些数据备份出来,然后从库再从备份的节点同步数据,这样来保持主从的数据一致性。并且在操作过程中最好不要影响我们的业务正常运行。最终决定使用xtrabackup来备份数据,因为用xtrabackup备份数据的时候不需要琐表,但只限于InnoDB引擎的数据库和XtraDB引擎的数据库,对于MyISAM引擎的数据库还是会琐表,刚好我们的数据库引擎使用的是InnoDB。
操作步骤
1. 部署从数据库服务器,最好数据库版本一致,部署过程省略。
2. 修改主库my.cnf配置文件。
以下为主服务器需要修改的配置,server_id不一定为82,可以为任何一个数字,比如我们可以用本机的IP最后一位。
[mysqld]
datadir=/data/mysql
log_bin=mysql-bin
server_id=10
expire_logs_days=5
binlog-ignore-db=mysql,information_schema,performance_schema,sys
binlog-do-db=discuz,phpcms
datadir:此选项一定要指定,就算有默认也需要指定。
expire_logs_days:指定binlog文件保留的天数,如果硬盘空间够大可以不指定,或者指定天数多一点。
binlog-ignore-db:指定忽略不同步的数据库,可选。
binlog-do-db:指定要同步的数据库,可选。
3. 在主服务器上面授权从服务器一个主从同步账号。
mysql> grant replication slave on *.* to 'slave'@'%' identified by '123qweASD';
说明:以上授权命令根据自己需求更改,比如权限,可访问数据库,用户名,授权客户端,密码等信息。
2. 修改从库my.cnf配置文件。
datadir=/data/mysql
server_id = 2
slave_parallel_workers = 16
slave_parallel_type = logical_clock
datadir:此选项一定要指定,就算有默认也需要指定。
replicate-do-db:指定需要同步的数据库,可选。
replicate-ignore-db: 指定不同步的数据库,可选。
plicate-do-table:指定需要同步的表,可选。
replicate-ignore-table: 指定不同步的表,可选。
replicate-wild-do-table:指定需要同步的表,可以使用通配符,如test.tables1%,可选。
replicate-wild-ignore-table:指定不需要同步的表,可以使用通配符,可选。
slave_parallel_workers:多少个线程用于主从复制。
slave_parallel_type:启用并行复制。
3. 安装xtrabackup工具,主从服务器都需要安装。
至以下连接下载适合自己操作系统版本和MySQL版本的xtrabackup。
4. 下载完成后执行以下命令安装 。
~]# yum -y install percona-xtrabackup-24-2.4.10-1.el7.x86_64.rpm
5. 备份数据。
注意:以需要使用root用户执行,或者使用sudo权限执行。
备份整个库。
~]# xtrabackup --user=root --password=123456 --target-dir=/root/mysql_bak -S /tmp/mysql.sock --backup
--user:指定数据库访问用户名。
--password:指定数据库访问密码,如果密码有特殊字符需要使用单引号引起来。
--target-dir:指定备份路径,最好写绝对路径。
--backup:与--target-dir选项一起使用。
-S:指定mysql.sock文件位置。
备份单个库。
~]# xtrabackup --user=root --password=123456 --databases=test1 --target-dir=/root/mysql_bak -S /tmp/mysql.sock --backup
--databases:指定需要备份的库名。
备份多个库。
~]# xtrabackup --user=root --password=123456 --databases="test1 test2 test3" --target-dir=/root/mysql_bak -S /tmp/mysql.sock --backup
--databases:多库用双引号引起来,使用空格进行分隔。
备份某个库的指定表。
~]# xtrabackup --user=root --password=123456 --databases="test1.tables1 test2.tables2 test3.tables3" --target-dir=/root/mysql_bak -S /tmp/mysql.sock --backup
--databases:备份表使用.
6. 将备份数据复制到从服务器
~]# scp -pr /root/mysql_bak/* root@172.16.10.11:/data/mysql_slave
7. 将数据还原到从服务器
注意:还原之前需要停止从库数据库服务并清空从服务器数据目录,如果有需要的数据就先备份到其实地方
停止服务。
~]# service mysqld restart || systemctl restart mysqld
备份从库原数据,如果是全库主从就不需要备份。
~]# mkdir /data/mysql_bak
~]# mv /data/mysql/* /data/mysql_bak
执行还原操作.
~]# xtrabackup --prepare --target-dir=/data/mysql_slave
~]# xtrabackup --copy-back --target-dir=/data/mysql_slave
8. 启动从数据库并启用主从。
~]# cp -r /data/mysql_bak/* /data/mysql
~]# chown -R mysql:mysql /data/mysql
~]# service mysqld restart || systemctl restart mysqld
将原备份数据复制回原目录,注意:ib_buffer_pool ibdata1 ib_logfile0 ib_logfile1四个文件不要覆盖。如果从库没有数据需要往回复制的话就不需要cp这步操作。
指定主库信息主从。
mysql> change master to master_host='172.16.10.10',master_port=3306,master_user='slave',master_password='123qweASD',master_log_file='mysql-bin.000011',master_log_pos=154;
master_host:master服务器的IP地址。
master_port:master服务器的端口。
master_user:master服务器授权从服务器主从同步的用户名。
master_password:master服务器授权从服务器主从同步的密码,
master_log_file:从主服务器备份出来的文件:xtrabackup_info中获取。
~]# grep "binlog_pos" xtrabackup_info | awk -F "'" '{print $2}'
master_log_pos:从主服务器备份出来的文件:xtrabackup_info中获取。
~]# grep "binlog_pos" xtrabackup_info | awk -F "'" '{print $4}'
9. 执行以下命令启用主从同步。
mysql> start slave;
小知识:停止主从同步命令为。
mysql> stop slave;
10. 测试并检查主从状态。
mysql> show slave status \G;
如果看以以下两个值为Yes说明主从同步正常。
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
11. 测试
可以修改下需要同步的库,或者表的数据看上是否能正常同步去,或者在备份完的时候就去修改下数据,这时候备份里同是没有此修改记录,当启用主从同步的时候看下数据是否会同步过来。
mysql从库新增_MySQL新增从库相关推荐
- mysql库迁移_MySql数据库 指定库迁移
1 环境准备 1.两台数据库服务器,并安装好mysql服务,两台机器之间内网互相通信,最好可以进行免密传输 也可以一台服务器搭建多实例环境 10.0.0.101 10.0.0.102 2 迁移流程 2 ...
- mysql 多表备份_mysql备份与恢复多库多表备份
实例:备份:mysqldump -u root -p'123456' kaliboy>/opt/kaliboy.sql 指定字符集备份:mysqldump -u root -p'123456' ...
- mysql主从数据库设计_mysql数据库主从库镜像原理及配置
最近有个项目需要在vmware虚拟机上安装mysql,由于生产环境的要求需要有必要,如果做成VM虚机操作系统层HA,需要用到虚拟共享总线,而这将会使VM丧失vmtion特性.于是选择不做OS层的高可用 ...
- mysql 版本太高_mysql创建新库以及解决版本过高8.0以上导致navicat无法连接的问题...
昨天运营大佬给了一个云上的服务器 mysql已经装上去了 用来给我做测试使用 软件环境是: CentOS 7.4 + Mysql 8.0.20 于是我准备创建几个数据库 分别创建不用的用户登录访问 ...
- json mysql 字段 默认值_MySQL新增JSON类型字段的使用总结
最近刚好用到了MySQL的JSON函数做了一些数据处理相关的工作,顺便记录总结一下相关知识点和用法. MySQL从5.7.8开始支持原生JSON数据类型,以JSON类型存储json格式的数据,比字符串 ...
- mysql 建库 语法_mysql语法建库建表综合整理是示例
首先介绍一个数据库常用编码格式区别: utf8与utf8mb4(utf8 most bytes 4) MySQL 5.5.3之后增加了utfmb4字符编码 utf8mb4是utf8的超集并完全兼容ut ...
- mysql增加表字段_MySql新增表的字段,删除表字段
1增加两个字段: create table id_name(id int,name varchar(20));//创建原始数据表 alter table id_name add age int,add ...
- NumSharp v0.6 科学计算库发布,新增 LAPACK 的线性库支持
NumSharp(Numerical .NET)可以说是C#中的科学计算库. 它是用C#编写的,符合.netstandard 2.0库标准. 它的目标是让.NET开发人员使用NumPy的语法编写机器学 ...
- 旺店通·企业奇门与金蝶云星空对接集成查询销售出库单连通销售出库新增(分销销售出库)
旺店通·企业奇门与金蝶云星空对接集成查询销售出库单连通销售出库新增(分销销售出库) 对接系统旺店通·企业奇门 旺店通是北京掌上先机网络科技有限公司旗下品牌,国内的零售云服务提供商,基于云计算SaaS服 ...
- 旺店通·企业奇门与金蝶云星空对接集成查询销售出库单连通[旺店通][销售出库单标准新增]-v1(旺店通->金蝶销售出库单--零售销售(手工运维))
对接源平台:旺店通·企业奇门 旺店通是北京掌上先机网络科技有限公司旗下品牌,国内的零售云服务提供商,基于云计算SaaS服务模式,以体系化解决方案,助力零售企业数字化智能化管理升级.为零售电商企业的订单 ...
最新文章
- SVN可以拉项目但是提交时提示没有权限
- Linux Core Dump
- 魔兽世界高法伤技能列表
- STM32 HAL库--串口的DMA(发送、接收)和esp8266 wifi模组发送和接收封装函数
- linux下logrotate配置和理解---转
- 通过这些简单的步骤从头开始学习Java
- python 编程快速上手,Python编程快速上手
- mixin机制 vue_vue mixins组件复用的几种方式(小结)
- 【Linux/Ubuntu】查询文件和文件夹大小
- GAN 优化 Yelp 形象图片广告
- python 3.6 MJ小工具
- 在linux中的文件中查找_如何在Linux中查找文件
- Python处理Excel文件
- Visual C++编译选项
- 遍历文件夹进行点云格式转换 PCD转BIN BIN转PCD PCD转TXT TXT转PCD PLY转PCD
- python3 题解(33 人民币金额大写)
- 1467B. Hills And Valleys(思维模拟)
- android sdk所有版本下载,android sdk全平台版本集成
- Fiddler安装与配置
- Vue $attrs使用方式及使用场景