mysql relay_log删除_mysql 删除 relay log 方法

方法1 :自动 设置参数 relay_log_purge = 1

mysql> SET GLOBAL relay_log_purge = 1;

Query OK, 0 rows affected (0.00 sec)

或者在/etc/my.cnf [mysqld]模块下面增加以下内容

relay-log-purge = 1

这个参数需要重启数据库才可生效。默认情况下relay-log-purge 是开启的。

如果你对从数据库要求不高,可以将relay_log_purge = 1。

如果数据库要手动删除relay log请执行 SET GLOBAL relay_log_purge=0。

或者在/etc/my.cnf [mysqld]模块下面增加以下内容

relay-log-purge = 0

模拟场景:

1)从库查看relay log情况

[root@cndba data]# ll

total 5255240

-rw-r----- 1 mysql mysql 56 Aug 18 15:40 auto.cnf

-rw-r----- 1 mysql mysql 207 Aug 23 16:06 cndba-relay-bin.000032

-rw-r----- 1 mysql mysql 344 Aug 23 18:14 cndba-relay-bin.000033

-rw-r----- 1 mysql mysql 207 Aug 23 18:14 cndba-relay-bin.000034

-rw-r----- 1 mysql mysql 321 Aug 23 18:14 cndba-relay-bin.000035

-rw-r----- 1 mysql mysql 100 Aug 23 18:14 cndba-relay-bin.index

2)从库执行以下操作:

mysql> SET GLOBAL relay_log_purge = 1;

Query OK, 0 rows affected (0.00 sec)

mysql> show variables like 'relay_log_purge';

+-----------------+-------+

| Variable_name | Value |

+-----------------+-------+

| relay_log_purge | ON |

+-----------------+-------+

1 row in set (0.00 sec)

3)主库执行flush logs;

mysql> flush logs;

Query OK, 0 rows affected (0.12 sec)

生成新的binlog

4)从库查看relay log 情况

[root@cndba data]# ll

total 5255232

-rw-r----- 1 mysql mysql 56 Aug 18 15:40 auto.cnf

-rw-r----- 1 mysql mysql 255 Aug 26 03:16 cndba-relay-bin.000036

-rw-r----- 1 mysql mysql 369 Aug 26 03:16 cndba-relay-bin.000037

-rw-r----- 1 mysql mysql 50 Aug 26 03:16 cndba-relay-bin.index

可以看到从库的relay log 自动删除只保留最近的两个relay log。说明下如果从库同步出现问题,没有应用的relay log 也不会自动删除relay log。直到解决掉错误,否则relay log 会越挤越多。

方法2:手动 rm -rf 删除reloy log

1)查看从库

[root@cndba data]# ll

total 5255256

-rw-r----- 1 mysql mysql 56 Aug 18 15:40 auto.cnf

-rw-r----- 1 mysql mysql 255 Aug 26 03:16 cndba-relay-bin.000036

-rw-r----- 1 mysql mysql 422 Aug 26 03:27 cndba-relay-bin.000037

-rw-r----- 1 mysql mysql 255 Aug 26 03:27 cndba-relay-bin.000038

-rw-r----- 1 mysql mysql 683 Aug 26 03:27 cndba-relay-bin.000039

-rw-r----- 1 mysql mysql 255 Aug 26 03:27 cndba-relay-bin.000040

-rw-r----- 1 mysql mysql 683 Aug 26 03:27 cndba-relay-bin.000041

-rw-r----- 1 mysql mysql 255 Aug 26 03:27 cndba-relay-bin.000042

-rw-r----- 1 mysql mysql 369 Aug 26 03:27 cndba-relay-bin.000043

-rw-r----- 1 mysql mysql 200 Aug 26 03:27 cndba-relay-bin.index

2)从库执行以下操作:

[root@cndba data]# rm -rf cndba-relay-bin.000036 cndba-relay-bin.37 cndba-relay-bin.38

[root@cndba data]# ll

total 5255244

-rw-r----- 1 mysql mysql 56 Aug 18 15:40 auto.cnf

-rw-r----- 1 mysql mysql 683 Aug 26 03:27 cndba-relay-bin.000039

-rw-r----- 1 mysql mysql 255 Aug 26 03:27 cndba-relay-bin.000040

-rw-r----- 1 mysql mysql 683 Aug 26 03:27 cndba-relay-bin.000041

-rw-r----- 1 mysql mysql 255 Aug 26 03:27 cndba-relay-bin.000042

-rw-r----- 1 mysql mysql 369 Aug 26 03:27 cndba-relay-bin.000043

-rw-r----- 1 mysql mysql 200 Aug 26 03:27 cndba-relay-bin.index

从库操作系统层面rm relay log 主库更新数据从库可以继续同步:

主库操作:

mysql> insert into test values(13,'ff');

Query OK, 1 row affected (0.44 sec)

从库可以看到数据被同步

mysql> select * from test;

+----+------+

| id | name |

+----+------+

| 1 | abc |

| 4 | cc |

| 5 | dd |

| 6 | ee |

| 7 | ee |

| 8 | ee |

| 9 | ff |

| 10 | ff |

| 11 | ff |

| 12 | ff |

| 13 | ff |

+----+------+

如果此时 stop slave

然后在执行start slave ,会提示以下错误:

mysql> start slave;

ERROR 1872 (HY000): Slave failed to initialize relay log info structure from the repository

此时要执行步骤3

3)编辑文件cndba-relay-bin.index 删除刚才删除的relay log cndba-relay-bin.000039之前的。

[root@cndba data]# vi cndba-relay-bin.index

./cndba-relay-bin.000039

./cndba-relay-bin.000040

./cndba-relay-bin.000041

./cndba-relay-bin.000042

./cndba-relay-bin.000043

再次启动start slave

mysql> start slave;

ERROR 1872 (HY000): Slave failed to initialize relay log info structure from the repository

还是会报错。

此时必须重启从库mysql 数据库

[root@cndba ~]# service mysql restart

Shutting down MySQL.. [ OK ]

Starting MySQL.... [ OK ]

查看从库状态正常。

mysql> show slave status/G;

......

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

https://www.cndba.cn/leo1990/article/2970

https://www.cndba.cn/leo1990/article/2970

https://www.cndba.cn/leo1990/article/2970

https://www.cndba.cn/leo1990/article/2970

https://www.cndba.cn/leo1990/article/2970

https://www.cndba.cn/leo1990/article/2970

https://www.cndba.cn/leo1990/article/2970

https://www.cndba.cn/leo1990/article/2970

https://www.cndba.cn/leo1990/article/2970

https://www.cndba.cn/leo1990/article/2970

版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值