实现Mysql主从备份
首先说下主从备份的优点:
1. mysql的主从复制的主要优点是同步"备份", 在从机上的数据库就相当于一个(基本实时)备份库.
2. 在主从复制基础上, 通过mysqlproxy可以做到读写分离, 由从机分担一些查询压力.
3. 做一个双向的主从复制, 两台机器互相为主机从机, 这样, 在任何一个机器的库中写入, 都会"实时"同步到另一台机器, 双向的优点在于当一台主机发生故障时, 另一台主机可以快速的切换过来继续服务.
接下来讲下具体的实现步骤:
1.修改主数据库根目录下的my.ini配置文件,添加server-id=1 设置服务器id,配置需要备份的数据库(binlog-do-db=库名),设置不需要备份的数据库(binlog-ignore-db=库名) ,开启二进制日志(log-bin=mysql-bin)然后重启数据库
2.将主库和从库的数据保持一致,主要实现的方法是
(1)第一种方法将锁定主表让数据保持现在状态,具体操作为以下几步:
1. MYSQL-A 下执行SQL命令:flush tables with read lock;目的是锁表
2. MYSQL-B下面执行命令:mysqldump -h10.0.0.2 -uroot -proot virt > var/backup/virtback.sql;备份数据;
3. MYSQL-A下执行SQL命令:unlock tables;解除锁定。
4. MYSQL-B 执行命令:mysql -uroot -proot virt < var/backup/virtback.sql;还原数据
(2)第二种方法就是使用复制数据,将主库copy一份到从库
3.真实操作
主库: 1. 注册一个用户 % 表示所有客户端都能连
2. 登录主服务器的mysql,查询master的状态 show master status;
从库: 1.配置从服务器Slave: change master to master_host='192.168.145.222',master_user='mysync',master_password='q123456',
master_log_file='mysql-bin.000004',master_log_pos=308; //注意不要断开,308数字前后无单引号。
2.start slave; //开启从服务器复制功能
3.检查从服务器复制功能状态 show slave status
红框标注的值都为YES 说明配置成功。自己可以选择配置的数据库表中添加数据进行测试。