前言:
MySQL数据库很多情况下都是用于搭建电商平台,电商平台就意味着为公司赚钱的平台,必须24小时在线的;我们也搭建了属于自己的电商平台,但是最近反应需要增加一台从库来缓解主库的读取压力。网上百度了很多相关的方法,总结如下:
Xtrabackup搭建,该方法需要了解Xtrabackup工具的备份还原,可以实现在线搭建主从架构。
MySQL一直推荐的企业版的MySQL备份工具:MySQLbackup,抱着学习的心态就在测试环境中通过MySQLbakcup工具来搭建主从架构;
在进行以下操作之前,需要先进行以下两个设置:主库和备库的参数文件已经修改完成、在主库上面创建主从连接用户;
以下是详细的整理步骤:
2 主库的操作步骤
2.1 对主库进行全备,脚本如下
mysqlbackup --user=root --password --backup-dir=/backup backup-and-apply-log
备份的目录为/backup,请确认这个目录的存在;
2.2 记录这个时候主库的binlog状态?
mysql> show master status;?
+------------------+----------+--------------+------------------+?
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |?
+------------------+----------+--------------+------------------+?
| mysql-bin.000003 | 107 | | |?
+------------------+----------+--------------+------------------+?
1 row in set (0.00 sec)
?
2.3 为了验证主从是没有问题的,这个时候可以往主库的某个数据库插入数据,然后再记录状态?
mysql> show master status;?
+------------------+----------+--------------+------------------+?
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |?
+------------------+----------+--------------+------------------+?
| mysql-bin.000003 | 500 | | |?
+------------------+----------+--------------+------------------+?
1 row in set (0.00 sec)
2.4 把备份从主库拷贝到从库?
[root@mysql01 backup]# service iptables stop?
iptables:清除防火墙规则: [确定]?
iptables:将链设置为政策 ACCEPT:filter [确定]?
iptables:正在卸载模块: [确定]?
root@mysql01 backup]# scp bak.tar root@mysql02:/backup/*?
Warning: Permanently added the RSA host key for IP address '192.168.47.151' to the list of known hosts.?
root@mysql02's password:?
bak.tar 100% 69MB 23.1MB/s 00:03?
需要先关闭防火墙?
3.从库的操作步骤
3.1 进行从库的恢复?
[root@mysql01 backup]# mysqlbackup --defaults-file=/backup/server-my.cnf --datadir=/data/mysql --backup-dir=/backup/ copy-back?
MySQL Enterprise Backup version 3.11.0 Linux-3.8.13-16.2.1.el6uek.x86_64-x86_64 [2014/08/26]?
? ?
mysqlbackup: INFO: Starting with following command line ...?
mysqlbackup --defaults-file=/backup/server-my.cnf --datadir=/data/mysql?
--backup-dir=/backup/ copy-back?
? ?
mysqlbackup: INFO:?
IMPORTANT: Please check that mysqlbackup run completes successfully.?
At the end of a successful 'copy-back' run mysqlbackup?
prints "mysqlbackup completed OK!".?
? ?
141118 16:19:35 mysqlbackup: INFO: MEB logfile created at /backup/meta/MEB_2014-11-18.16-19-35_copy_back.log?
? ?
--------------------------------------------------------------------?
Server Repository Options:?
--------------------------------------------------------------------?
datadir = /data/mysql?
innodb_data_home_dir = /data/mysql?
innodb_data_file_path = ibdata1:10M:autoextend?
innodb_log_group_home_dir = /data/mysql/?
innodb_log_files_in_group = 2?
innodb_log_file_size = 5242880?
innodb_page_size = Null?
innodb_checksum_algorithm = none?
? ?
--------------------------------------------------------------------?
Backup Config Options:?
--------------------------------------------------------------------?
datadir = /backup/datadir?
innodb_data_home_dir = /backup/datadir?
innodb_data_file_path = ibdata1:10M:autoextend?
innodb_log_group_home_dir = /backup/datadir?
innodb_log_files_in_group = 2?
innodb_log_file_size = 5242880?
innodb_page_size = 16384?
innodb_checksum_algorithm = none?
? ?
mysqlbackup: INFO: Creating 14 buffers each of size 16777216.?
141118 16:19:35 mysq