日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

删除binlog mysql_mysql中删除binlog的方法?mysql中如何删除binlog?

發(fā)布時(shí)間:2025/3/21 数据库 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 删除binlog mysql_mysql中删除binlog的方法?mysql中如何删除binlog? 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

需求描述:

在mysql中如何刪除binlog,因?yàn)殡S著數(shù)據(jù)庫(kù)的運(yùn)行,mysql中產(chǎn)生的binlog會(huì)越來越大,有可能把磁盤撐爆了,所以記錄下刪除

binlog的方法.

操作過程:

1.通過系統(tǒng)參數(shù)控制保留多久的binlog

在my.cnf中,加入以下的參數(shù),重啟實(shí)例

expire_logs_days = 3 #意思是保留3天的binlog;默認(rèn)值是0,表示不自動(dòng)刪除.

備注:設(shè)置完該參數(shù)之后,當(dāng)重啟實(shí)例,或者刷新日志的時(shí)候,就會(huì)進(jìn)行檢查,然后刪除3天之前的日志

2.測(cè)試在刷新日志的時(shí)候,觸發(fā)刪除

2.1查看當(dāng)前系統(tǒng)中的二進(jìn)制文件

[root@testvm data]# ls -ltr mysql-bin.*

-rw-r----- 1 mysql mysql 177 Jul 25 11:58 mysql-bin.000001

-rw-r----- 1 mysql mysql 201 Jul 25 12:17 mysql-bin.000002

-rw-r----- 1 mysql mysql 201 Jul 25 12:17 mysql-bin.000003

-rw-r----- 1 mysql mysql 201 Jul 25 12:17 mysql-bin.000004

-rw-r----- 1 mysql mysql 201 Jul 25 12:17 mysql-bin.000005

-rw-r----- 1 mysql mysql 154 Jul 25 12:17 mysql-bin.000006

-rw-r----- 1 mysql mysql 114 Jul 25 12:17 mysql-bin.index

2.2修改系統(tǒng)時(shí)間為3天之后

[root@testvm data]# date -s "2018-07-28 12:15:00"

Sat Jul 28 12:15:00 CST 2018

[root@testvm data]# clock -w

2.3執(zhí)行flush logs刷新日志

[root@testvm data]# ls -ltr mysql-bin.*

-rw-r----- 1 mysql mysql 201 Jul 25 12:17 mysql-bin.000002 #1這個(gè)日志已經(jīng)被刪除了.

-rw-r----- 1 mysql mysql 201 Jul 25 12:17 mysql-bin.000003

-rw-r----- 1 mysql mysql 201 Jul 25 12:17 mysql-bin.000004

-rw-r----- 1 mysql mysql 201 Jul 25 12:17 mysql-bin.000005

-rw-r----- 1 mysql mysql 201 Jul 28 12:15 mysql-bin.000006

-rw-r----- 1 mysql mysql 154 Jul 28 12:15 mysql-bin.000007

-rw-r----- 1 mysql mysql 114 Jul 28 12:15 mysql-bin.index

2.4查看文件時(shí)間,執(zhí)行flush logs操作

[root@testvm data]# stat mysql-bin.000002

File: `mysql-bin.000002'

Size: 201 Blocks: 8 IO Block: 4096 regular file

Device: fd00h/64768dInode: 276736 Links: 1

Access: (0640/-rw-r-----) Uid: ( 502/ mysql) Gid: ( 502/ mysql)

Access: 2018-07-28 12:15:31.539000285 +0800

Modify: 2018-07-25 12:17:39.528999883 +0800

Change: 2018-07-25 12:17:39.528999883 +0800

[root@testvm data]# ls -ltr mysql-bin.*

-rw-r----- 1 mysql mysql 201 Jul 25 12:17 mysql-bin.000002

-rw-r----- 1 mysql mysql 201 Jul 25 12:17 mysql-bin.000003

-rw-r----- 1 mysql mysql 201 Jul 25 12:17 mysql-bin.000004

-rw-r----- 1 mysql mysql 201 Jul 25 12:17 mysql-bin.000005

-rw-r----- 1 mysql mysql 201 Jul 28 12:15 mysql-bin.000006

-rw-r----- 1 mysql mysql 201 Jul 28 12:17 mysql-bin.000007

-rw-r----- 1 mysql mysql 154 Jul 28 12:17 mysql-bin.000008 #這個(gè)生成時(shí)間減去標(biāo)記為黃色的時(shí)間必須大于3天,黃色對(duì)應(yīng)的文件才會(huì)被刪除.

-rw-r----- 1 mysql mysql 133 Jul 28 12:17 mysql-bin.index

[root@testvm data]# date

Sat Jul 28 12:18:08 CST 2018

[root@testvm data]# ls -ltr mysql-bin.*

-rw-r----- 1 mysql mysql 201 Jul 28 12:15 mysql-bin.000006

-rw-r----- 1 mysql mysql 201 Jul 28 12:17 mysql-bin.000007

-rw-r----- 1 mysql mysql 201 Jul 28 12:18 mysql-bin.000008

-rw-r----- 1 mysql mysql 154 Jul 28 12:18 mysql-bin.000009 #18分執(zhí)行的時(shí)候,3天前的17分的文件就都被刪除了.

-rw-r----- 1 mysql mysql 76 Jul 28 12:18 mysql-bin.index

備注:經(jīng)過測(cè)試,就是,當(dāng)刷新日志時(shí)(寫滿日志文件或者手動(dòng)執(zhí)行flush logs操作),在這個(gè)時(shí)間3天之前的binlog文件都會(huì)被刪除.即執(zhí)行刷新日志時(shí),減去3天,binlog的時(shí)間小于這個(gè)的都會(huì)被刪除.同時(shí)呢,當(dāng)系統(tǒng)啟動(dòng)的時(shí)候也會(huì)執(zhí)行flush logs操作,也會(huì)觸發(fā)這個(gè)刪除binlog的動(dòng)作.

3.通過puge binary logs命令來進(jìn)行刪除

3.1查看當(dāng)前binlog的信息

mysql> show binary logs;

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

| Log_name | File_size |

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

| mysql-bin.000006 | 201 |

| mysql-bin.000007 | 201 |

| mysql-bin.000008 | 201 |

| mysql-bin.000009 | 201 |

| mysql-bin.000010 | 201 |

| mysql-bin.000011 | 201 |

| mysql-bin.000012 | 201 |

| mysql-bin.000013 | 201 |

| mysql-bin.000014 | 201 |

| mysql-bin.000015 | 201 |

| mysql-bin.000016 | 201 |

| mysql-bin.000017 | 201 |

| mysql-bin.000018 | 201 |

| mysql-bin.000019 | 201 |

| mysql-bin.000020 | 201 |

| mysql-bin.000021 | 154 |

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

16 rows in set (0.00 sec)

3.2purge刪除binlog

mysql> purge binary logs to 'mysql-bin.000017';

Query OK, 0 rows affected (0.01 sec)

mysql> show binary logs;

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

| Log_name | File_size |

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

| mysql-bin.000017 | 201 |

| mysql-bin.000018 | 201 |

| mysql-bin.000019 | 201 |

| mysql-bin.000020 | 201 |

| mysql-bin.000021 | 154 |

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

5 rows in set (0.00 sec)

備注:通過查詢結(jié)果可以知道,在17之前的日志都被清除了.不包括17本身.切記!

4.切記不能在操作系統(tǒng)上直接刪除binlog文件,雖然釋放了空間,但是在Index中,還是有記錄.

[root@testvm data]# ls -ltr mysql-bin.*

-rw-r----- 1 mysql mysql 201 Jul 28 12:42 mysql-bin.000017

-rw-r----- 1 mysql mysql 201 Jul 28 12:42 mysql-bin.000018

-rw-r----- 1 mysql mysql 201 Jul 28 12:42 mysql-bin.000019

-rw-r----- 1 mysql mysql 201 Jul 28 12:42 mysql-bin.000020

-rw-r----- 1 mysql mysql 201 Jul 28 12:45 mysql-bin.000021

-rw-r----- 1 mysql mysql 201 Jul 28 12:45 mysql-bin.000022

-rw-r----- 1 mysql mysql 201 Jul 28 12:45 mysql-bin.000023

-rw-r----- 1 mysql mysql 201 Jul 28 12:45 mysql-bin.000024

-rw-r----- 1 mysql mysql 201 Jul 28 12:45 mysql-bin.000025

-rw-r----- 1 mysql mysql 201 Jul 28 12:45 mysql-bin.000026

-rw-r----- 1 mysql mysql 201 Jul 28 12:45 mysql-bin.000027

-rw-r----- 1 mysql mysql 201 Jul 28 12:45 mysql-bin.000028

-rw-r----- 1 mysql mysql 201 Jul 28 12:45 mysql-bin.000029

-rw-r----- 1 mysql mysql 201 Jul 28 12:45 mysql-bin.000030

-rw-r----- 1 mysql mysql 201 Jul 28 12:45 mysql-bin.000031

-rw-r----- 1 mysql mysql 201 Jul 28 12:45 mysql-bin.000032

-rw-r----- 1 mysql mysql 154 Jul 28 12:45 mysql-bin.000033

-rw-r----- 1 mysql mysql 323 Jul 28 12:45 mysql-bin.index

[root@testvm data]# rm -f mysql-bin.000017 mysql-bin.000018 mysql-bin.000019 mysql-bin.000020

[root@testvm data]# ls -ltr mysql-bin.*

-rw-r----- 1 mysql mysql 201 Jul 28 12:45 mysql-bin.000021

-rw-r----- 1 mysql mysql 201 Jul 28 12:45 mysql-bin.000022

-rw-r----- 1 mysql mysql 201 Jul 28 12:45 mysql-bin.000023

-rw-r----- 1 mysql mysql 201 Jul 28 12:45 mysql-bin.000024

-rw-r----- 1 mysql mysql 201 Jul 28 12:45 mysql-bin.000025

-rw-r----- 1 mysql mysql 201 Jul 28 12:45 mysql-bin.000026

-rw-r----- 1 mysql mysql 201 Jul 28 12:45 mysql-bin.000027

-rw-r----- 1 mysql mysql 201 Jul 28 12:45 mysql-bin.000028

-rw-r----- 1 mysql mysql 201 Jul 28 12:45 mysql-bin.000029

-rw-r----- 1 mysql mysql 201 Jul 28 12:45 mysql-bin.000030

-rw-r----- 1 mysql mysql 201 Jul 28 12:45 mysql-bin.000031

-rw-r----- 1 mysql mysql 201 Jul 28 12:45 mysql-bin.000032

-rw-r----- 1 mysql mysql 154 Jul 28 12:45 mysql-bin.000033

-rw-r----- 1 mysql mysql 323 Jul 28 12:45 mysql-bin.index

在mysql中查詢binlog信息

mysql> show binary logs;

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

| Log_name | File_size |

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

| mysql-bin.000017 | 0 |

| mysql-bin.000018 | 0 |

| mysql-bin.000019 | 0 |

| mysql-bin.000020 | 0 |

| mysql-bin.000021 | 201 |

| mysql-bin.000022 | 201 |

| mysql-bin.000023 | 201 |

| mysql-bin.000024 | 201 |

| mysql-bin.000025 | 201 |

| mysql-bin.000026 | 201 |

| mysql-bin.000027 | 201 |

| mysql-bin.000028 | 201 |

| mysql-bin.000029 | 201 |

| mysql-bin.000030 | 201 |

| mysql-bin.000031 | 201 |

| mysql-bin.000032 | 201 |

| mysql-bin.000033 | 154 |

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

17 rows in set (0.00 sec)

備注:還記錄了文件的名字,但是文件的大小是0byte.

查看index中的記錄信息

[root@testvm data]# cat mysql-bin.index

./mysql-bin.000017

./mysql-bin.000018

./mysql-bin.000019

./mysql-bin.000020

./mysql-bin.000021

./mysql-bin.000022

./mysql-bin.000023

./mysql-bin.000024

./mysql-bin.000025

./mysql-bin.000026

./mysql-bin.000027

./mysql-bin.000028

./mysql-bin.000029

./mysql-bin.000030

./mysql-bin.000031

./mysql-bin.000032

./mysql-bin.000033

[root@testvm data]#

備注:index中還是記錄該信息,認(rèn)為還是存在的.

重新啟動(dòng)的時(shí)候,會(huì)檢查文件是否存在,如果不在會(huì)報(bào)錯(cuò):

mysqld: File './mysql-bin.000017' not found (Errcode: 2 - No such file or directory)

2018-07-28T04:49:02.619409Z 0 [ERROR] Failed to open log (file './mysql-bin.000017', errno 2)

2018-07-28T04:49:02.619416Z 0 [ERROR] Could not open log file

mysqld: File './mysql-bin.000018' not found (Errcode: 2 - No such file or directory)

2018-07-28T04:49:02.619426Z 0 [ERROR] Failed to open log (file './mysql-bin.000018', errno 2)

2018-07-28T04:49:02.619428Z 0 [ERROR] Could not open log file

mysqld: File './mysql-bin.000019' not found (Errcode: 2 - No such file or directory)

2018-07-28T04:49:02.619436Z 0 [ERROR] Failed to open log (file './mysql-bin.000019', errno 2)

2018-07-28T04:49:02.619438Z 0 [ERROR] Could not open log file

mysqld: File './mysql-bin.000020' not found (Errcode: 2 - No such file or directory)

2018-07-28T04:49:02.619445Z 0 [ERROR] Failed to open log (file './mysql-bin.000020', errno 2)

2018-07-28T04:49:02.619447Z 0 [ERROR] Could not open log file

備注:遇到這種問題,直接通過purge binary logs刪除就行了.同時(shí)也會(huì)更新index文件

切記!!不要從操作系統(tǒng)上直接刪除binlog!!!

文檔創(chuàng)建時(shí)間:2018年7月19日16:02:00

總結(jié)

以上是生活随笔為你收集整理的删除binlog mysql_mysql中删除binlog的方法?mysql中如何删除binlog?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。