eygle.com   eygle.com
eygle.com eygle
eygle.com  
 

« 警告:ORA-00600 2252 错误正在SCN问题下不断爆发 | Blog首页 | 算法:ORA-600 2252和SCN 最大值SCN_WRAP SCN_BASE »

MySQL 实践:清理 binlog 日志的几种方法和常见问题
modb.pro

在 MySQL 数据库中,可以查看到数据库的日志序列,以下查询显示数据库的 binlog 日志正在写入 000225 号:

mysql> show master status;

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

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

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

| mysql-bin.000225 | 11014527 | | |

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

1 row in set (0.00 sec)

mysql> show master status\G

*************************** 1. row ***************************

File: mysql-bin.000225

Position: 11014742

Binlog_Do_DB:

Binlog_Ignore_DB:

1 row in set (0.00 sec)

本着安全的原则,在删除之前最好进行备份,以防不测。

如果存在备库,应该检查备库应用到的日志序列,以下输出显示数据库没有Slave备库:

mysql> show slave status\G

Empty set (0.00 sec)

在操作系统上,可以查询一下当前日志的数量,这个当前数据库很空闲,日志量从 2015年就开始存在:

root@iZm5eix8mcsf5i16makh3hZ var]# ls -l mysql-bin*

-rw-rw---- 1 mysql mysql 11046912 Sep 30 2015 mysql-bin.000106

-rw-rw---- 1 mysql mysql 3968852 Jun 29 2016 mysql-bin.000139

-rw-rw---- 1 mysql mysql 184474 Jun 29 2016 mysql-bin.000140

-rw-rw---- 1 mysql mysql 12054822 Jul 5 2016 mysql-bin.000141

-rw-rw---- 1 mysql mysql 16732529 Jul 10 2016 mysql-bin.000142

-rw-rw---- 1 mysql mysql 24385971 Jul 20 2016 mysql-bin.000143

-rw-rw---- 1 mysql mysql 19930973 Jul 29 2016 mysql-bin.000144

-rw-rw---- 1 mysql mysql 19142701 Aug 6 2016 mysql-bin.000145

-rw-rw---- 1 mysql mysql 2633349 Aug 8 2016 mysql-bin.000146

-rw-rw---- 1 mysql mysql 9101 Aug 9 2016 mysql-bin.000147

-rw-rw---- 1 mysql mysql 78299403 Sep 11 2016 mysql-bin.000148

-rw-rw---- 1 mysql mysql 35815708 Sep 26 2016 mysql-bin.000149

-rw-rw---- 1 mysql mysql 7777473 Sep 30 2016 mysql-bin.000150

-rw-rw---- 1 mysql mysql 817 Sep 30 2016 mysql-bin.000151

-rw-rw---- 1 mysql mysql 2140269 Oct 1 2016 mysql-bin.000152

-rw-rw---- 1 mysql mysql 370689 Oct 1 2016 mysql-bin.000153

-rw-rw---- 1 mysql mysql 40520076 Oct 19 2016 mysql-bin.000154

-rw-rw---- 1 mysql mysql 51680638 Nov 13 2016 mysql-bin.000155

-rw-rw---- 1 mysql mysql 5885516 Nov 15 2016 mysql-bin.000156

-rw-rw---- 1 mysql mysql 24964852 Nov 24 2016 mysql-bin.000157

-rw-rw---- 1 mysql mysql 1021801 Nov 24 2016 mysql-bin.000158

-rw-rw---- 1 mysql mysql 12311471 Nov 29 2016 mysql-bin.000159

-rw-rw---- 1 mysql mysql 349866 Nov 29 2016 mysql-bin.000160

-rw-rw---- 1 mysql mysql 25180057 Dec 8 2016 mysql-bin.000161

-rw-rw---- 1 mysql mysql 321 Dec 8 2016 mysql-bin.000162

-rw-rw---- 1 mysql mysql 21991449 Dec 16 2016 mysql-bin.000163

-rw-rw---- 1 mysql mysql 106 Dec 17 2016 mysql-bin.000164

-rw-rw---- 1 mysql mysql 13551718 Dec 21 2016 mysql-bin.000165

-rw-rw---- 1 mysql mysql 12068192 Dec 25 2016 mysql-bin.000166

-rw-rw---- 1 mysql mysql 4716882 Dec 27 2016 mysql-bin.000167

-rw-rw---- 1 mysql mysql 6374368 Dec 29 2016 mysql-bin.000168

-rw-rw---- 1 mysql mysql 856048 Dec 29 2016 mysql-bin.000169

-rw-rw---- 1 mysql mysql 9760973 Jan 1 2017 mysql-bin.000170

-rw-rw---- 1 mysql mysql 106 Jan 1 2017 mysql-bin.000171

-rw-rw---- 1 mysql mysql 13602389 Jan 6 2017 mysql-bin.000172

-rw-rw---- 1 mysql mysql 12676649 Jan 10 2017 mysql-bin.000173

-rw-rw---- 1 mysql mysql 16412479 Jan 16 2017 mysql-bin.000174

-rw-rw---- 1 mysql mysql 1054392 Jan 16 2017 mysql-bin.000175

-rw-rw---- 1 mysql mysql 21372 Jan 16 2017 mysql-bin.000176

-rw-rw---- 1 mysql mysql 72662198 Jan 23 2017 mysql-bin.000177

-rw-rw---- 1 mysql mysql 23064234 Feb 1 2017 mysql-bin.000178

-rw-rw---- 1 mysql mysql 47423616 Feb 19 2017 mysql-bin.000179

-rw-rw---- 1 mysql mysql 10492225 Feb 22 2017 mysql-bin.000180

-rw-rw---- 1 mysql mysql 5744591 Feb 24 2017 mysql-bin.000181

-rw-rw---- 1 mysql mysql 15735970 Mar 2 2017 mysql-bin.000182

-rw-rw---- 1 mysql mysql 18847712 Mar 8 2017 mysql-bin.000183

-rw-rw---- 1 mysql mysql 106 Mar 8 2017 mysql-bin.000184

-rw-rw---- 1 mysql mysql 6524748 Mar 10 2017 mysql-bin.000185

-rw-rw---- 1 mysql mysql 14253444 Mar 15 2017 mysql-bin.000186

-rw-rw---- 1 mysql mysql 4630764 Mar 17 2017 mysql-bin.000187

-rw-rw---- 1 mysql mysql 5565674 Mar 19 2017 mysql-bin.000188

-rw-rw---- 1 mysql mysql 18106996 Mar 24 2017 mysql-bin.000189

-rw-rw---- 1 mysql mysql 7317633 Mar 27 2017 mysql-bin.000190

-rw-rw---- 1 mysql mysql 13143096 Mar 31 2017 mysql-bin.000191

-rw-rw---- 1 mysql mysql 17705562 Apr 7 2017 mysql-bin.000192

-rw-rw---- 1 mysql mysql 794 Apr 7 2017 mysql-bin.000193

-rw-rw---- 1 mysql mysql 2323770 Apr 8 2017 mysql-bin.000194

-rw-rw---- 1 mysql mysql 125 Apr 8 2017 mysql-bin.000195

-rw-rw---- 1 mysql mysql 118567 Apr 8 2017 mysql-bin.000196

-rw-rw---- 1 mysql mysql 106 Apr 8 2017 mysql-bin.000197

-rw-rw---- 1 mysql mysql 125 Apr 8 2017 mysql-bin.000198

-rw-rw---- 1 mysql mysql 178575 Apr 8 2017 mysql-bin.000199

-rw-rw---- 1 mysql mysql 323160580 Aug 6 2017 mysql-bin.000200

-rw-rw---- 1 mysql mysql 204827580 Oct 6 2017 mysql-bin.000201

-rw-rw---- 1 mysql mysql 3498914 Oct 7 2017 mysql-bin.000202

-rw-rw---- 1 mysql mysql 1108674 Oct 7 2017 mysql-bin.000203

-rw-rw---- 1 mysql mysql 15735369 Oct 12 2017 mysql-bin.000204

-rw-rw---- 1 mysql mysql 38535897 Oct 23 2017 mysql-bin.000205

-rw-rw---- 1 mysql mysql 24462198 Oct 30 2017 mysql-bin.000206

-rw-rw---- 1 mysql mysql 4189 Oct 30 2017 mysql-bin.000207

-rw-rw---- 1 mysql mysql 112326 Oct 30 2017 mysql-bin.000208

-rw-rw---- 1 mysql mysql 20240483 Nov 3 2017 mysql-bin.000209

-rw-rw---- 1 mysql mysql 1709967 Nov 4 2017 mysql-bin.000210

-rw-rw---- 1 mysql mysql 8042562 Nov 6 2017 mysql-bin.000211

-rw-rw---- 1 mysql mysql 106 Nov 6 2017 mysql-bin.000212

-rw-rw---- 1 mysql mysql 47996565 Nov 20 2017 mysql-bin.000213

-rw-rw---- 1 mysql mysql 59865926 Dec 6 2017 mysql-bin.000214

-rw-rw---- 1 mysql mysql 59298043 Dec 24 2017 mysql-bin.000215

-rw-rw---- 1 mysql mysql 124750175 Feb 26 2018 mysql-bin.000216

-rw-rw---- 1 mysql mysql 2555 Feb 26 2018 mysql-bin.000217

-rw-rw---- 1 mysql mysql 210043333 Jun 22 2018 mysql-bin.000218

-rw-rw---- 1 mysql mysql 106 Jul 10 2018 mysql-bin.000219

-rw-rw---- 1 mysql mysql 106 Jul 18 2018 mysql-bin.000220

-rw-rw---- 1 mysql mysql 449055746 Jul 8 16:05 mysql-bin.000221

-rw-rw---- 1 mysql mysql 61635707 Aug 5 17:11 mysql-bin.000222

-rw-rw---- 1 mysql mysql 15471188 Aug 9 15:19 mysql-bin.000223

-rw-rw---- 1 mysql mysql 73784 Aug 9 16:11 mysql-bin.000224

-rw-rw---- 1 mysql mysql 11015171 Aug 14 18:39 mysql-bin.000225

-rwxr-xr-x 1 mysql mysql 1653 Aug 9 16:20 mysql-bin.index

现在我们可以按照时间来进行删除,通过如下命令删除了 2017年之前的所有 binlog:

mysql> purge master logs before'2017-01-01 00:00:00';

Query OK, 0 rows affected (1.50 sec)

mysql> exit

Bye

[root@iZm5eix8mcsf5i16makh3hZ var]# ls -l mysql-bin*

-rw-rw---- 1 mysql mysql 11046912 Sep 30 2015 mysql-bin.000106

-rw-rw---- 1 mysql mysql 9760973 Jan 1 2017 mysql-bin.000170

-rw-rw---- 1 mysql mysql 106 Jan 1 2017 mysql-bin.000171

-rw-rw---- 1 mysql mysql 13602389 Jan 6 2017 mysql-bin.000172

-rw-rw---- 1 mysql mysql 12676649 Jan 10 2017 mysql-bin.000173

-rw-rw---- 1 mysql mysql 16412479 Jan 16 2017 mysql-bin.000174

-rw-rw---- 1 mysql mysql 1054392 Jan 16 2017 mysql-bin.000175

-rw-rw---- 1 mysql mysql 21372 Jan 16 2017 mysql-bin.000176

-rw-rw---- 1 mysql mysql 72662198 Jan 23 2017 mysql-bin.000177

-rw-rw---- 1 mysql mysql 23064234 Feb 1 2017 mysql-bin.000178

-rw-rw---- 1 mysql mysql 47423616 Feb 19 2017 mysql-bin.000179

-rw-rw---- 1 mysql mysql 10492225 Feb 22 2017 mysql-bin.000180

-rw-rw---- 1 mysql mysql 5744591 Feb 24 2017 mysql-bin.000181

-rw-rw---- 1 mysql mysql 15735970 Mar 2 2017 mysql-bin.000182

-rw-rw---- 1 mysql mysql 18847712 Mar 8 2017 mysql-bin.000183

-rw-rw---- 1 mysql mysql 106 Mar 8 2017 mysql-bin.000184

-rw-rw---- 1 mysql mysql 6524748 Mar 10 2017 mysql-bin.000185

-rw-rw---- 1 mysql mysql 14253444 Mar 15 2017 mysql-bin.000186

-rw-rw---- 1 mysql mysql 4630764 Mar 17 2017 mysql-bin.000187

-rw-rw---- 1 mysql mysql 5565674 Mar 19 2017 mysql-bin.000188

-rw-rw---- 1 mysql mysql 18106996 Mar 24 2017 mysql-bin.000189

-rw-rw---- 1 mysql mysql 7317633 Mar 27 2017 mysql-bin.000190

-rw-rw---- 1 mysql mysql 13143096 Mar 31 2017 mysql-bin.000191

-rw-rw---- 1 mysql mysql 17705562 Apr 7 2017 mysql-bin.000192

-rw-rw---- 1 mysql mysql 794 Apr 7 2017 mysql-bin.000193

-rw-rw---- 1 mysql mysql 2323770 Apr 8 2017 mysql-bin.000194

-rw-rw---- 1 mysql mysql 125 Apr 8 2017 mysql-bin.000195

-rw-rw---- 1 mysql mysql 118567 Apr 8 2017 mysql-bin.000196

-rw-rw---- 1 mysql mysql 106 Apr 8 2017 mysql-bin.000197

-rw-rw---- 1 mysql mysql 125 Apr 8 2017 mysql-bin.000198

-rw-rw---- 1 mysql mysql 178575 Apr 8 2017 mysql-bin.000199

-rw-rw---- 1 mysql mysql 323160580 Aug 6 2017 mysql-bin.000200

-rw-rw---- 1 mysql mysql 204827580 Oct 6 2017 mysql-bin.000201

-rw-rw---- 1 mysql mysql 3498914 Oct 7 2017 mysql-bin.000202

-rw-rw---- 1 mysql mysql 1108674 Oct 7 2017 mysql-bin.000203

-rw-rw---- 1 mysql mysql 15735369 Oct 12 2017 mysql-bin.000204

-rw-rw---- 1 mysql mysql 38535897 Oct 23 2017 mysql-bin.000205

-rw-rw---- 1 mysql mysql 24462198 Oct 30 2017 mysql-bin.000206

-rw-rw---- 1 mysql mysql 4189 Oct 30 2017 mysql-bin.000207

-rw-rw---- 1 mysql mysql 112326 Oct 30 2017 mysql-bin.000208

-rw-rw---- 1 mysql mysql 20240483 Nov 3 2017 mysql-bin.000209

-rw-rw---- 1 mysql mysql 1709967 Nov 4 2017 mysql-bin.000210

-rw-rw---- 1 mysql mysql 8042562 Nov 6 2017 mysql-bin.000211

-rw-rw---- 1 mysql mysql 106 Nov 6 2017 mysql-bin.000212

-rw-rw---- 1 mysql mysql 47996565 Nov 20 2017 mysql-bin.000213

-rw-rw---- 1 mysql mysql 59865926 Dec 6 2017 mysql-bin.000214

-rw-rw---- 1 mysql mysql 59298043 Dec 24 2017 mysql-bin.000215

-rw-rw---- 1 mysql mysql 124750175 Feb 26 2018 mysql-bin.000216

-rw-rw---- 1 mysql mysql 2555 Feb 26 2018 mysql-bin.000217

-rw-rw---- 1 mysql mysql 210043333 Jun 22 2018 mysql-bin.000218

-rw-rw---- 1 mysql mysql 106 Jul 10 2018 mysql-bin.000219

-rw-rw---- 1 mysql mysql 106 Jul 18 2018 mysql-bin.000220

-rw-rw---- 1 mysql mysql 449055746 Jul 8 16:05 mysql-bin.000221

-rw-rw---- 1 mysql mysql 61635707 Aug 5 17:11 mysql-bin.000222

-rw-rw---- 1 mysql mysql 15471188 Aug 9 15:19 mysql-bin.000223

-rw-rw---- 1 mysql mysql 73784 Aug 9 16:11 mysql-bin.000224

-rw-rw---- 1 mysql mysql 11015816 Aug 14 18:43 mysql-bin.000225

-rwxr-xr-x 1 mysql mysql 1064 Aug 14 18:43 mysql-bin.index

接下来我们可以按照日志序列号,删除 188号 之前的日志:

mysql> purge master logs to'mysql-bin.000188';

Query OK, 0 rows affected (0.62 sec)

mysql> exit

Bye

[root@iZm5eix8mcsf5i16makh3hZ var]# ls -l mysql-bin*

-rw-rw---- 1 mysql mysql 11046912 Sep 30 2015 mysql-bin.000106

-rw-rw---- 1 mysql mysql 5565674 Mar 19 2017 mysql-bin.000188

-rw-rw---- 1 mysql mysql 18106996 Mar 24 2017 mysql-bin.000189

-rw-rw---- 1 mysql mysql 7317633 Mar 27 2017 mysql-bin.000190

-rw-rw---- 1 mysql mysql 13143096 Mar 31 2017 mysql-bin.000191

-rw-rw---- 1 mysql mysql 17705562 Apr 7 2017 mysql-bin.000192

-rw-rw---- 1 mysql mysql 794 Apr 7 2017 mysql-bin.000193

-rw-rw---- 1 mysql mysql 2323770 Apr 8 2017 mysql-bin.000194

-rw-rw---- 1 mysql mysql 125 Apr 8 2017 mysql-bin.000195

-rw-rw---- 1 mysql mysql 118567 Apr 8 2017 mysql-bin.000196

-rw-rw---- 1 mysql mysql 106 Apr 8 2017 mysql-bin.000197

-rw-rw---- 1 mysql mysql 125 Apr 8 2017 mysql-bin.000198

-rw-rw---- 1 mysql mysql 178575 Apr 8 2017 mysql-bin.000199

-rw-rw---- 1 mysql mysql 323160580 Aug 6 2017 mysql-bin.000200

-rw-rw---- 1 mysql mysql 204827580 Oct 6 2017 mysql-bin.000201

-rw-rw---- 1 mysql mysql 3498914 Oct 7 2017 mysql-bin.000202

-rw-rw---- 1 mysql mysql 1108674 Oct 7 2017 mysql-bin.000203

-rw-rw---- 1 mysql mysql 15735369 Oct 12 2017 mysql-bin.000204

-rw-rw---- 1 mysql mysql 38535897 Oct 23 2017 mysql-bin.000205

-rw-rw---- 1 mysql mysql 24462198 Oct 30 2017 mysql-bin.000206

-rw-rw---- 1 mysql mysql 4189 Oct 30 2017 mysql-bin.000207

-rw-rw---- 1 mysql mysql 112326 Oct 30 2017 mysql-bin.000208

-rw-rw---- 1 mysql mysql 20240483 Nov 3 2017 mysql-bin.000209

-rw-rw---- 1 mysql mysql 1709967 Nov 4 2017 mysql-bin.000210

-rw-rw---- 1 mysql mysql 8042562 Nov 6 2017 mysql-bin.000211

-rw-rw---- 1 mysql mysql 106 Nov 6 2017 mysql-bin.000212

-rw-rw---- 1 mysql mysql 47996565 Nov 20 2017 mysql-bin.000213

-rw-rw---- 1 mysql mysql 59865926 Dec 6 2017 mysql-bin.000214

-rw-rw---- 1 mysql mysql 59298043 Dec 24 2017 mysql-bin.000215

-rw-rw---- 1 mysql mysql 124750175 Feb 26 2018 mysql-bin.000216

-rw-rw---- 1 mysql mysql 2555 Feb 26 2018 mysql-bin.000217

-rw-rw---- 1 mysql mysql 210043333 Jun 22 2018 mysql-bin.000218

-rw-rw---- 1 mysql mysql 106 Jul 10 2018 mysql-bin.000219

-rw-rw---- 1 mysql mysql 106 Jul 18 2018 mysql-bin.000220

-rw-rw---- 1 mysql mysql 449055746 Jul 8 16:05 mysql-bin.000221

-rw-rw---- 1 mysql mysql 61635707 Aug 5 17:11 mysql-bin.000222

-rw-rw---- 1 mysql mysql 15471188 Aug 9 15:19 mysql-bin.000223

-rw-rw---- 1 mysql mysql 73784 Aug 9 16:11 mysql-bin.000224

-rw-rw---- 1 mysql mysql 11016895 Aug 14 18:45 mysql-bin.000225

-rwxr-xr-x 1 mysql mysql 722 Aug 14 18:45 mysql-bin.index

最后,我们可以设置binlog日志的保留时间,将保留时间设置为 30天,数据库将自动清理过期的日志:

mysql> show variables like 'expire_logs_days';

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

| Variable_name | Value |

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

| expire_logs_days | 0 |

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

1 row in set (0.00 sec)

mysql> set global expire_logs_days = 30;

Query OK, 0 rows affected (0.00 sec)

等候日志清理政策生效,30天以前的日志就被删除了:

[root@iZm5eix8mcsf5i16makh3hZ var]# ls -l mysql-bin*

-rw-rw---- 1 mysql mysql 449055746 Jul 8 16:05 mysql-bin.000221

-rw-rw---- 1 mysql mysql 61635707 Aug 5 17:11 mysql-bin.000222

-rw-rw---- 1 mysql mysql 15471188 Aug 9 15:19 mysql-bin.000223

-rw-rw---- 1 mysql mysql 73784 Aug 9 16:11 mysql-bin.000224

-rw-rw---- 1 mysql mysql 12092111 Aug 15 10:07 mysql-bin.000225

-rwxr-xr-x 1 mysql mysql 95 Aug 14 18:54 mysql-bin.index

在我的日志系统里存在了一个2015年的孤儿日志,只能手工删除了:

[root@hZ var]# rm mysql-bin.000106

rm: remove regular file `mysql-bin.000106'? yes

记录一下供参考。


历史上的今天...
    >> 2021-08-14文章:
    >> 2013-08-14文章:
    >> 2012-08-14文章:
    >> 2009-08-14文章:
    >> 2008-08-14文章:
           在兰州 在路上 在家里
    >> 2006-08-14文章:
    >> 2005-08-14文章:
           郁闷的星期天清晨

By eygle on 2019-08-14 19:36 | Comments (0) | HowTo | 3352 |


CopyRight © 2004~2020 云和恩墨,成就未来!, All rights reserved.
数据恢复·紧急救援·性能优化 云和恩墨 24x7 热线电话:400-600-8755 业务咨询:010-59007017-7040 or 7037 业务合作: marketing@enmotech.com