项目背景描述:
,,,,在项目的开始只有一个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 ,,,指定需要备份的库名
备份多个库