mysql双机主从热备

在项目部署上线的时候,除了bug的修复最重要的仍是数据的安全,为了防止一些特殊状况的发生,咱们会采用一些容灾备份的方案,在正常运行的状况下也须要对数据库进行备份, 相对于冷备份,热备份和热拷贝实时性是比较高的。有时候为了提供数据库的性能也会读写分离,实际方案也有不少种,好比master-slave备份机制, master-master 备份机制等等。

主从备份

  • 准备工做mysql

    • 主机A : 39.96.56.70 (master)
    • 主机B : 23.95.229.223 (slave)
  • 说明sql

    • 把主机A当成master机器, 主机B为salve机器,利用mysql自带的 REPLICATION完成热备份,那么当在主机A中有数据改变的时候会同步到主机B中,因此能够把主机A当成write database, 主机B为read database,能够针对操做不一样好比选择指定的数据库引擎,还有能够选择相关的锁机制。

配置基本表:

分别在两台主机上安装mysql,而且指定ip开通远程链接,建立须要备份的数据库以及建立一张测试表数据库

mysql> create database hotcopytest;
mysql> use hotcopytest;
mysql> create tables person(name varchar(20) comment'name'); 
复制代码

主机A配置

建立同步用户(user replicate)
mysql> grant replication slave on *.* to 'replicate'@'23.95.229.223' identified by '123456';
mysql> flush privileges;

复制代码

建立完以后,在slave中登陆ubuntu

ubuntu: mysql -h23.95.229.223 -ureplicate -p123456
复制代码
修改mysql 配置文件

Linux中mysql的配置文件在 /etc/mysql/my.cnf, 若是my.cnf中引了con.d文件夹的话能够在该文件夹下进行配置, 打开配置文件后在 [mysqld]下修改安全

server-id只要惟一自定义就能够bash

log_bin 能够自定义bin-log日志服务器

max_bin_log_szie 为bin_log日志的容量ide

binlog_d0_db 须要备份的数据库性能

binlog_ignore_db 被忽略的数据库测试

配置完了以后重启主机A,查看数据库状态( 在生产环境下记得先锁表!!!

主机B配置

一样修改配置文件并重启数据库

用change master 语句指定同步位置
mysql> change master to 
mysql>master_host='23.95.229.223',master_user='replicate',master_password='123456',
mysql> master_log_file=' mysql-bin.000056 ',master_log_pos=154;
mysql> stop salve; # 从新设置salve, salve线程重启
mysql> reset slave;
mysql> start slave;
复制代码
查看slave服务器状态

查看到Salv_IO_Running = Yes

查看到Salv_SQL_Running = Yes

测试同步

在主机A中表插入数据, 主机B自动同步则成功了。

相关文章
相关标签/搜索