百度站长工具seo综合查询,在那个网站做推广实用,北京高端网站设计,网站两侧广告代码项目背景描述#xff1a;在项目的开始只有一个MySQL实例在运行#xff0c;后期因为安全性#xff0c;压力#xff0c;备份等原因需要在此实例的基础上面新增一个从库。分析#xff1a;MySQL主从是基于binlog日志来实现的#xff0c;那么需要主服务器开启binlog#xff0… 项目背景描述 在项目的开始只有一个MySQL实例在运行后期因为安全性压力备份等原因需要在此实例的基础上面新增一个从库。分析 MySQL主从是基于binlog日志来实现的那么需要主服务器开启binlog此选项默认是关闭。我这边服务器在部署的时候就开启了因为使用binlog可以用来恢复MySQL数据并且还为以后做主从做好准备所以我们推荐大家在部署主服务器的时候就开启此选项。另外在做主从的时候还需要主库和从库的server-id唯一server-id在做主从的时候也是相当关键的一荐参数。 另外因为我们MySQL主库已经运行一段时间了里面已经有相当多数据我们需要将这些数据备份出来然后从库再从备份的节点同步数据这样来保持主从的数据一致性并且在操作过程中最好不要影响我们的业务正常运行。最终决定使用xtrabackup来备份数据因为用xtrabackup备份数据的时候不需要琐表但只限于InnoDB引擎的数据库和XtraDB引擎的数据库对于MyISAM引擎的数据库还是会琐表刚好我们的数据库引擎使用的是InnoDB操作步骤第一步部署从数据库服务器最好数据库版本一致部署过程省略第二步修改配置文件# 以下为主服务器需要修改的配置server_id不一定为82,可以为任何一个数字比如我们可以用本机的IP最后一位
[mysqld]
datadir/data/mysql #此选项一定要指定就算有默认也需要指定
log_binmysql-bin
server_id10
expire_logs_days5 #指定binlog文件保留的天数如果硬盘空间够大可以不指定或者指定天数多一点# 以下为可选项
binlog-ignore-dbmysql,information_schema,performance_schema,sys #指定忽略不同步的数据库
binlog-do-dbdiscuz,phpcms #指定要同步的数据库在主服务器上面授权从服务器一个主从同步账号mysql grant replication slave on *.* to slave% identified by 123qweASD;说明以上授权命令根据自己需求更改比如权限可访问数据库用户名授权客户端密码等信息# 以下为从服务器需要修改的配置
datadir/data/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 #指定不需要同步的表可以使用通配符
# 优化同步延迟根据项目设置
slave_parallel_workers 16 #多少个线程用于主从复制
slave_parallel_type logical_clock第三步安装xtrabackup工具主从服务器都需要安装至以下连接下载适合自己操作系统版本和MySQL版本的xtrabackupxtrabackup下载下载完成后执行以下命令安装 # 这样可以自动安装所需要依赖包
yum -y install percona-xtrabackup-24-2.4.10-1.el7.x86_64.rpm第四步备份数据注意以需要使用root用户执行或者使用sudo权限执行备份整个库xtrabackup --userroot --password123456 --target-dir/root/mysql_bak -S /tmp/mysql.sock --backup--user 指定数据库访问用户名--password 指定数据库访问密码如果密码有特殊字符需要使用单引号引起来--target-dir 指定备份路径最好写绝对路径--backup 与--target-dir选项一起使用-S 指定mysql.sock文件位置备份单个库xtrabackup --userroot --password123456 --databasestest1 --target-dir/root/mysql_bak -S /tmp/mysql.sock --backup--databases 指定需要备份的库名备份多个库xtrabackup --userroot --password123456 --databasestest1 test2 test3 --target-dir/root/mysql_bak -S /tmp/mysql.sock --backup--databases 多库用双引号引起来使用空格进行分隔备份某个库的指定表xtrabackup --userroot --password123456 --databasestest1.tables1 test2.tables2 test3.tables3 --target-dir/root/mysql_bak -S /tmp/mysql.sock --backup--databases 备份表使用库名.表名的方式如果是多个表就使用双引号引起来不同表使用空格分隔第五步将备份数据复制到从服务器scp -pr /root/mysql_bak/* root172.16.10.11:/data/mysql_slave第六步将数据还原到从服务器注意还原之前需要停止从库数据库服务并清空从服务器数据目录如果有需要的数据就先备份到其实地方# 停止服务
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第七步启动数据库并启用主从# 将原备份数据复制回原目录注意ib_buffer_pool ibdata1 ib_logfile0 ib_logfile1四个文件不要覆盖
# 如果从库没有数据需要往回复制的话就不需要cp这步操作
cp -r /data/mysql_bak/* /data/mysql
chown -R mysql:mysql /data/mysql
service mysqld restart || systemctl restart mysqld执行以下命令mysql change master to master_host172.16.10.10,master_port3306,master_userslave,master_password123qweASD,master_log_filemysql-bin.000011,master_log_pos154;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}执行以下命令启用主从同步mysql start slave;小知识停止主从同步命令为# 以下为扩展知识命令如果执行后需要再执行上条命令start slave;
mysql stop slave;第八步测试并检查主从状态mysql show slave status \G;如果看以以下两个值为Yes说明主从同步正常Slave_IO_Running: Yes
Slave_SQL_Running: Yes第九步测试可以修改下需要同步的库或者表的数据看上是否能正常同步去或者在备份完的时候就去修改下数据这时候备份里同是没有此修改记录当启用主从同步的时候看下数据是否会同步过来 转载于:https://blog.51cto.com/270142877/2096818