MySql主从热备知识

MySql热备

准备服务器

主服务器的mysql版本肯定不能高于从服务器版本
例:A服务器(主服务器Master):59.151.15.36
B服务器(从服务器Slave):218.206.70.146

主服务器Master配置

进入mysql操作界面,在主服务器上为从服务器建立一个连接帐户,该帐户必须授予REPLICATION SLAVE权限。因为从mysql版本3.2以后就可以通过REPLICATION对其进行双机热备的功能操作。
操作指令如下:
mysql> grant replication slave on . to ‘replicate’@‘218.206.70.146’ identified by ‘123456’;

mysql> flush privileges;

在从服务器(Slave)上输入如下指令: 进入mysql界面则成功
[root@YD146 ~]# mysql -h59.151.15.36 -ureplicate -p123456

修改配置文件

修改主服务器mysql配置文件/etc/my.cnf
[mysqld]

server-id = 1        //唯一id
log-bin=mysql-bin              //其中这两行是本来就有的,可以不用动,添加下面两行即可.指定日志文件
binlog-do-db = pwsp   //记录日志的数据库
binlog-ignore-db = mysql,test    //不记录日志的数据库

修改完配置文件后,保存后,重启一下mysql服务,如果成功则没问题。

查看主服务器状态

进入mysql服务后,可通过指令查看Master状态,输入如下指令:
mysql>show master status\G

Slave配置

从服务器的Slave配置,修改配置文件/etc/my.cnf
[mysqld]

server-id = 2
log-bin=mysql-bin
replicate-do-db = pwsp
replicate-ignore-db = mysql,information_schema,performance_schema
修改完配置文件后,保存后,重启一下mysql服务,如果成功则没问题。

启动Slave

用change mster 语句指定同步位置(在从服务器上执行)
mysql>stop slave; //先停步slave服务线程,这个是很重要的,如果不这样做会造成以下操作不成功。
mysql>change master to
>master_host=‘59.151.15.36’,master_user=‘replicate’,master_password=‘123456’,
> master_log_file=’ mysql-bin.000016 ',master_log_pos=107;
注:master_log_file, master_log_pos由主服务器(Master)查出的状态值中确定。也就是刚刚叫注意的。master_log_file对应File, master_log_pos对应Position。Mysql 5.x以上版本已经不支持在配置文件中指定主服务器相关选项。

遇到问题,则要重新设置slave。指令如下

mysql>stop slave;
mysql>reset slave;

无问题,则可以开启slave线程了。

mysql>start slave;

查看Slave状态

查看从服务器(Slave)状态
mysql> show slave status\G
查看下面两项值均为Yes,即表示设置从服务器成功。

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

问题列表

如果是Slave_SQL_Running:no:
MariaDB [(none)]> stop slave;
MariaDB [(none)]> SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1; START SLAVE;
MariaDB [(none)]> start slave;
MariaDB [(none)]> show slave status\G

如果是slave_io_running:no
	1、查看主服务器
		MariaDB [(none)]> show master status\G
		问题所在:发现Master_Log_File没有对应。
	2、在出现Slave_IO_Running: No的机器上操作
		MariaDB [(none)]> slave stop;                 
		MariaDB [(none)]>CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000026', MASTER_LOG_POS=0;  
		MariaDB [(none)]> slave start;                               
		MariaDB [(none)]> show slave status\G 

MySql冷备

  1. 查看datadir:
    mysql> show variables like ‘%dir%’;
    或者my.cnf里,即/var/lib/mysql/

  2. 打包,备份
    cd /var/lib/ # 进入其上级目录
    service mysql stop # 关闭mysql服务
    tar jcvf ~/backup.tar.bz2 mysql/ # 打包/var/lib下的mysql目录,压缩该目录到根目录

  3. 恢复
    执行如下命令即可:

    cd ~/ # 进入备份文件的保存目录
    tar jxvf backup.tar.bz2 mysql/ # 解压
    gunzip -r mysql/ # 递归解压
    service mysql stop # 必须先关闭服务
    rm -r /var/lib/mysql/ # 删除原目录
    mv ~/mysql/ /var/lib/ # 把备份的文件移动到/var/lib/里面去替代原来的mysql
    service mysql start # 重启mysql服务

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

苹果好心情ss

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值