实现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 说明配置成功。自己可以选择配置的数据库表中添加数据进行测试。

原文地址:https://www.cnblogs.com/MisterLiu/p/11133932.html