MySQL新增从库

  

项目背景描述:

,,,,在项目的开始只有一个MySQL实例在运行,后期因为安全性,压力,备份等原因需要在此实例的基础上面新增一个从库。


分析:

,,,, MySQL主从是基于binlog日志来实现的,那么需要主服务器开启binlog,此选项默认是关闭。我这边服务器在部署的时候就开启了,因为使用binlog可以用来恢复MySQL数据,并且还为以后做主从做好准备,所以我们推荐大家在部署主服务器的时候就开启此选项。另外在做主从的时候还需要主库和从库的服务器id唯一,服务器id在做主从的时候也是相当关键的一荐参数。

,,,,另外因为我们MySQL主库已经运行一段时间了,里面已经有相当多数据,我们需要将这些数据备份出来,然后从库再从备份的节点同步数据,这样来保持主从的数据一致性,并且在操作过程中最好不要影响我们的业务正常运行。最终决定使用xtrabackup来备份数据,因为用xtrabackup备份数据的时候不需要琐表,但只限于InnoDB引擎的数据库和XtraDB引擎的数据库,对于MyISAM引擎的数据库还是会琐表,刚好我们的数据库引擎使用的是InnoDB


操作步骤:

第一步:部署从数据库服务器,最好数据库版本一致,部署过程省略


第二步:修改配置文件

#,以下为主服务器需要修改的配置,server_id不一定为82,可以为任何一个数字,比如我们可以用本机的IP最后一位   (mysqld)   datadir=/数据/mysql ,,,,,, #此选项一定要指定,就算有默认也需要指定   log_bin=mysql-bin   server_id=10   expire_logs_days=5,,,,,,,, #指定binlog文件保留的天数,如果硬盘空间够大可以不指定,或者指定天数多一点      #,以下为可选的项   binlog-ignore-db=mysql, information_schema performance_schema sys ,,, #指定忽略不同步的数据库   binlog-do-db=康盛创想,phpcms ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, #指定要同步的数据库

在主服务器上面授权从服务器一个主从同步账号

mysql>, grant  replication  slave 提醒*。*,用& # 39;奴隶# 39;@ # 39;% & # 39;,identified  by  & # 39; 123 qweasd& # 39;;

说明:以上授权命令根据自己需求更改,比如权限,可访问数据库,用户名,授权客户端,密码等信息

#,以下为从服务器需要修改的配置   datadir=/数据/mysql ,,,,,,,,,,,,,,,,,,,,, #此选项一定要指定,就算有默认也需要指定   时间=server_id  2      #,以下为可选的项   replicate-do-db ,,,,,,,,,,,,,,,,,,,,,,,,, #指定需要同步的数据库   replicate-ignore-db ,,,,,,,,,,,,,,,,,,,,, #指定不同步的数据库   replicate-do-table ,,,,,,,,,,,,,,,,,,,,,, #指定需要同步的表   replicate-ignore-table ,,,,,,,,,,,,,,,,,, #指定不同步的表   replicate-wild-do-table ,,,,,,,,,,,,,,,,, #指定需要同步的表,可以使用通配符,如test.tables1%   replicate-wild-ignore-table ,,,,,,,,,,,,, #指定不需要同步的表,可以使用通配符   #,优化同步延迟,根据项目设置   16 slave_parallel_workers =,,,,,, #多少个线程用于主从复制   slave_parallel_type=, logical_clock


第三步:安装xtrabackup工具(主从服务器都需要安装)

至以下连接下载适合自己操作系统版本和MySQL版本的xtrabackup

xtrabackup下载

下载完成后执行以下命令安装,

#,这样可以自动安装所需要依赖包   yum  -y  install  percona xtrabackup - 24 - 2.4.10 1. el7.x86_64。rpm


第四步:备份数据

注意:以需要使用根用户执行,或者使用sudo权限执行

备份整个库

xtrabackup ——用户=root ——密码=123456,——target-dir=/根/mysql_bak  -S /tmp/mysql.sock ——备份

user ,,,,,,指定数据库访问用户名

——password ,指定数据库访问密码,如果密码有特殊字符需要使用单引号引起来

——target-dir ,指定备份路径,最好写绝对路径

——backup ,,,与——target-dir选项一起使用

-S ,,,,,,,,,指定mysql。袜子文件位置

备份单个库

xtrabackup ——用户=root ——密码=123456,=test1 ——数据库——target-dir=/根/mysql_bak  -S /tmp/mysql.sock ——备份

databases ,,,指定需要备份的库名

备份多个库

MySQL新增从库