欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

mysql數(shù)據(jù)庫日志binlog保存時效問題(expire_logs_days)

 更新時間:2023年03月09日 09:14:18   作者:lihongbao80  
這篇文章主要介紹了mysql數(shù)據(jù)庫日志binlog保存時效問題(expire_logs_days),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

一、設(shè)置語法

1、方法一

編輯/etc/my.cnf文件,在[mysqld]節(jié)點中增加如下兩行

max_binlog_size = 500M
expire_logs_days = 15

  • max_binlog_size:bin log日志每達到設(shè)定大小后,會使用新的bin log日志。如mysql-bin.000002達到500M后,創(chuàng)建并使用mysql-bin.000003文件作為日志記錄。
  • expire_logs_days:保留指定日期范圍內(nèi)的bin log歷史日志,上示例設(shè)置的15天內(nèi)。

2、方法二

-- mysql8.0以下版本查看當前數(shù)據(jù)庫日志binlog保存時效 以天為單位,默認0 永不過期,最多只能設(shè)置99天
show variables like 'expire_logs_days';
set global expire_logs_days=60;

-- mysql8.0以上版本通過設(shè)置全局參數(shù)binlog_expire_logs_seconds修改binlog保存時間 以秒為單位;默認2592000 30天 ? 14400 ? 4小時;86400 ?1天;259200 ?3天
show variables like '%binlog_expire_logs_seconds%';

set global binlog_expire_logs_seconds=259200;

二、過期刪除策略

總結(jié):

通過下面的實驗,對于mysql binlog過期刪除策略,我們可以做出如下推測。

1. mysql是根據(jù)binlog文件的操作系統(tǒng)最近修改時間,來判斷binlog是否過期(而不是根據(jù)binlog日志中事物發(fā)生的時間)。

2. 在觸發(fā)mysql過期刪除時,mysql先檢查*bin.index文件,找到目前最老的binlog,然后檢查該文件的系統(tǒng)時間,會有如下兩種情況:

1) 如果發(fā)現(xiàn)該文件未過期,則認為目前沒有binlog日志過期,不進行刪除,即使此時有其他binlog已過期。

2) 如果發(fā)現(xiàn)該文件已經(jīng)過期,則會找下一個binlog,判斷是否過期,同樣存在兩種情況(過期或者未過期),如此往復(fù),直到找到第一個過期的binlog 即停止繼續(xù)查找,并刪除該binlog及所有該binlog之前的所有日志

  • 1. 查看數(shù)據(jù)庫binlog列表
1)
mysql> show binary logs;
+-----------------+------------+
| Log_name ? ? ? ?| File_size ?|
+-----------------+------------+
| 3306-bin.000006 | 1074742033 |
| 3306-bin.000007 | 1074580678 |
| 3306-bin.000008 | 1074739627 |
| 3306-bin.000009 | ?250635228 |
| 3306-bin.000010 | ? ? ? ?120 |
+-----------------+------------+
5 rows in set (0.00 sec)
?
2)?
ls -lrt
total 7402312
-rw-r--r-- 1 root ?root ? ? ? ?1747 Mar 25 10:06 test
-rw-rw---- 1 mysql mysql 1074742032 May ?4 16:48 3306-bin.000006
-rw-rw---- 1 mysql mysql 1074580678 May ?4 16:54 3306-bin.000007
-rw-rw---- 1 mysql mysql 1074739627 May ?4 17:00 3306-bin.000008
-rw-rw---- 1 mysql mysql ? ? ? ?168 May ?4 17:00 3306-bin.index
-rw-rw---- 1 mysql mysql ?250635182 May ?4 17:02 3306-bin.000009
-rw-rw---- 1 mysql mysql ? 10448198 May 27 05:04 slow3306.log
-rw-r----- 1 mysql root ? ? 1096759 May 27 05:06 error3306.log
-rw-rw---- 1 mysql mysql 4093675902 May 27 05:06 general3306.log
##我們看到mysql目前保留著4個binlog日志,序號從6到9,當前正在使用的為序號為9的日志
  • 2. 設(shè)定binlog過期時間
set global expire_logs_days=7;
##在第1步中我們可以看到3306-bin.000006,3306-bin.000007,3306-bin.000008 三個日志都是屬于過期的(因為3306-bin.000009是當前正在使用的日志,所以不是過期日志)
  • 3. 修改3306-bin.000006文件系統(tǒng)時間
  • 使用 vi 查看3306-bin.000006文件,不做任何修改保存退出。 
  • 4. 修改后查看binlog文件時間
ls -lrt
total 7402312
-rw-r--r-- 1 root ?root ? ? ? ?1747 Mar 25 10:06 test
-rw-rw---- 1 mysql mysql 1074580678 May ?4 16:54 3306-bin.000007
-rw-rw---- 1 mysql mysql 1074739627 May ?4 17:00 3306-bin.000008
-rw-rw---- 1 mysql mysql ? ? ? ?168 May ?4 17:00 3306-bin.index
-rw-rw---- 1 mysql mysql ?250635182 May ?4 17:02 3306-bin.000009
-rw-rw---- 1 mysql mysql ? 10448198 May 27 05:04 slow3306.log
-rw-r----- 1 mysql root ? ? 1096759 May 27 05:06 error3306.log
-rw-rw---- 1 mysql mysql 4093675902 May 27 05:06 general3306.log
-rw-rw---- 1 mysql mysql 1074742033 May 27 10:13 3306-bin.000006
##3306-bin.000006 日志文件已經(jīng)系統(tǒng)日志已經(jīng)變成當天時間
  • 5. flush logs;
##我們知道flush logs;會觸發(fā)過期日志清除操作
  • 6. 查看現(xiàn)有binlog
1) ?mysql> show binary logs;
+-----------------+------------+
| Log_name ? ? ? ?| File_size ?|
+-----------------+------------+
| 3306-bin.000006 | 1074742033 |
| 3306-bin.000007 | 1074580678 |
| 3306-bin.000008 | 1074739627 |
| 3306-bin.000009 | ?250635228 |
| 3306-bin.000010 | ? ? ? ?120 |
+-----------------+------------+
5 rows in set (0.00 sec)
?
2) ?ls -lrt
total 7402316
-rw-r--r-- 1 root ?root ? ? ? ?1747 Mar 25 10:06 test
-rw-rw---- 1 mysql mysql 1074580678 May ?4 16:54 3306-bin.000007
-rw-rw---- 1 mysql mysql 1074739627 May ?4 17:00 3306-bin.000008
-rw-r----- 1 mysql root ? ? 1096759 May 27 05:06 error3306.log
-rw-rw---- 1 mysql mysql 1074742033 May 27 10:13 3306-bin.000006
-rw-rw---- 1 mysql mysql ? 10448370 May 27 10:14 slow3306.log
-rw-rw---- 1 mysql mysql 4093676334 May 27 10:14 general3306.log
-rw-rw---- 1 mysql mysql ?250635228 May 27 10:14 3306-bin.000009
-rw-rw---- 1 mysql mysql ? ? ? ?120 May 27 10:14 3306-bin.000010
-rw-rw---- 1 mysql mysql ? ? ? ?210 May 27 10:14 3306-bin.index
##我們發(fā)現(xiàn)3306-bin.000006,3306-bin.000007,3306-bin.000008三個日志并沒有被刪除(此時3306-bin.000006文件系統(tǒng)時間為當天,3306-bin.000007和3306-bin.000008文件時間都是4號)
  • 7. purge 最早的3306-bin.000006日志
1) ?mysql> purge master logs to '3306-bin.000007';

Query OK, 0 rows affected (0.31 sec)
?
2) ?mysql> show binary logs;
+-----------------+------------+
| Log_name ? ? ? ?| File_size ?|
+-----------------+------------+
| 3306-bin.000007 | 1074580678 |
| 3306-bin.000008 | 1074739627 |
| 3306-bin.000009 | ?250635228 |
| 3306-bin.000010 | ? ? ? ?120 |
+-----------------+------------+
4 rows in set (0.01 sec)
?
3) ?ls -lrt
total 6352756
-rw-r--r-- 1 root ?root ? ? ? ?1747 Mar 25 10:06 test
-rw-rw---- 1 mysql mysql 1074580678 May ?4 16:54 3306-bin.000007
-rw-rw---- 1 mysql mysql 1074739627 May ?4 17:00 3306-bin.000008
-rw-r----- 1 mysql root ? ? 1096759 May 27 05:06 error3306.log
-rw-rw---- 1 mysql mysql ? 10448370 May 27 10:14 slow3306.log
-rw-rw---- 1 mysql mysql ?250635228 May 27 10:14 3306-bin.000009
-rw-rw---- 1 mysql mysql ? ? ? ?120 May 27 10:14 3306-bin.000010
-rw-rw---- 1 mysql mysql ? ? ? ?168 May 27 10:17 3306-bin.index
-rw-rw---- 1 mysql mysql 4093676603 May 27 10:17 general3306.log
?
##3306-bin.000006日志已經(jīng)被刪除?
  • 8. 再次flush logs;
1) flush logs;

mysql> flush logs;
Query OK, 0 rows affected (0.30 sec)?

2)查看 binlog

mysql> show binary logs;
+-----------------+-----------+
| Log_name ???????| File_size |
+-----------------+-----------+
| 3306-bin.000009 | 250635228 |
| 3306-bin.000010 | ??????166 |
| 3306-bin.000011 | ??????120 |
+-----------------+-----------+
3 rows in set (0.00 sec)
?
ls -lrt
total 4253804
-rw-r--r-- 1 root ?root ???????1747 Mar 25 10:06 test
-rw-r----- 1 mysql root ????1096759 May 27 05:06 error3306.log
-rw-rw---- 1 mysql mysql ?250635228 May 27 10:14 3306-bin.000009
-rw-rw---- 1 mysql mysql ??10448542 May 27 10:17 slow3306.log
-rw-rw---- 1 mysql mysql 4093676814 May 27 10:17 general3306.log
-rw-rw---- 1 mysql mysql ???????166 May 27 10:17 3306-bin.000010
-rw-rw---- 1 mysql mysql ???????120 May 27 10:17 3306-bin.000011
-rw-rw---- 1 mysql mysql ???????126 May 27 10:17 3306-bin.index
?
##此時我們發(fā)現(xiàn)3306-bin.000007,3306-bin.000008日志已經(jīng)被自動刪除
  • 9.獲取binlog文件列表
show binary logs;
  • 查看指定binlog文件的內(nèi)容
show binlog events in 'mysql-bin.000002';
  • 只查看第一個binlog文件的內(nèi)容
show binlog events;

最后

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • windows下mysql?8.0.27?安裝配置方法圖文教程

    windows下mysql?8.0.27?安裝配置方法圖文教程

    這篇文章主要為大家詳細介紹了windows下mysql?8.0.27?安裝配置方法圖文教程,文中安裝步驟介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • Mysql數(shù)據(jù)庫中子查詢的使用

    Mysql數(shù)據(jù)庫中子查詢的使用

    本文給大家分享mysql數(shù)據(jù)庫中子查詢的使用,非常不錯具有參考借鑒價值,感興趣的朋友一起看看吧
    2016-10-10
  • Mysql InnoDB引擎的索引與存儲結(jié)構(gòu)詳解

    Mysql InnoDB引擎的索引與存儲結(jié)構(gòu)詳解

    這篇文章主要給大家介紹了Mysql InnoDB引擎的索引與存儲結(jié)構(gòu)的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-01-01
  • Mysql性能優(yōu)化之索引下推

    Mysql性能優(yōu)化之索引下推

    這篇文章主要介紹了Mysql性能優(yōu)化之索引下推,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • MySQL外鍵約束(Foreign?Key)案例詳解

    MySQL外鍵約束(Foreign?Key)案例詳解

    MySQL外鍵約束(FOREIGN KEY)是表的一個特殊字段,經(jīng)常與主鍵約束一起使用,下面這篇文章主要給給大家介紹了關(guān)于MySQL外鍵約束(Foreign?Key)的相關(guān)資料,需要的朋友可以參考下
    2022-06-06
  • MySQL進階SELECT語法篇

    MySQL進階SELECT語法篇

    從這個基本語法可以看出,最簡單的SELECT語句是SELECT select_list,實際上利用這個最簡單的SELECT語句,你也可以完成許多你期待的功能,首先你能利用它進行MySQL所支持的任何運算,例如:SELECT 1+1,它將返回2;其次,你也能利用它給變量賦值,而在PHP中,運用SELECT語句的這種功能,你就可以自由地運用MySQL的函數(shù)為PHP程序進行各種運算,并賦值給變量。在很多的時候,你會發(fā)現(xiàn)MySQL擁有許多比PHP更為功能強大的函數(shù)。
    2008-04-04
  • MySQL定位CPU利用率過高的SQL方法

    MySQL定位CPU利用率過高的SQL方法

    當mysql CPU告警利用率過高的時候,我們應(yīng)該怎么定位是哪些SQL導(dǎo)致的呢,本文將介紹一下定位的方法,文章通過代碼示例講解的非常詳細,具有一定的參考價值,需要的朋友可以參考下
    2024-07-07
  • MySQL 使用 SSL 連接配置詳解

    MySQL 使用 SSL 連接配置詳解

    本文給大家分享的是如何配置MySQL支持SSL連接方式的方法以及在docker中配置的具體案例,有需要的小伙伴可以參考下
    2016-12-12
  • DataGrip連接Mysql并創(chuàng)建數(shù)據(jù)庫的方法實現(xiàn)

    DataGrip連接Mysql并創(chuàng)建數(shù)據(jù)庫的方法實現(xiàn)

    本文主要介紹了DataGrip連接Mysql并創(chuàng)建數(shù)據(jù)庫的方法實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • MySQL中Bit數(shù)據(jù)類型的使用方式

    MySQL中Bit數(shù)據(jù)類型的使用方式

    這篇文章主要介紹了MySQL中Bit數(shù)據(jù)類型的使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09

最新評論