mysql双机主从热备

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

主从备份

  • 准备工作

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

    • 把主机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: mysql -h23.95.229.223 -ureplicate -p123456
复制代码
修改mysql 配置文件

Linux中mysql的配置文件在 /etc/mysql/my.cnf, 如果my.cnf中引了con.d文件夹的话可以在该文件夹下进行配置, 打开配置文件后在 [mysqld]下修改

server-id只要唯一自定义就可以

log_bin 可以自定义bin-log日志

max_bin_log_szie 为bin_log日志的容量

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自动同步则成功了。

转载于:https://juejin.im/post/5d0063065188252b1b03697d

猜你喜欢

转载自blog.csdn.net/weixin_33862993/article/details/93178407