成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

自動清理MySQL binlog日志與手動刪除的設置

數據庫 MySQL
我們今天主要向大家描述的是自動清理MySQL binlog日志與手動刪除的實際解決方案的設置。以下就是文章的具體內容描述。

以下的文章主要講述的是對自動清理MySQL binlog日志與手動刪除的實際解決方案的設置, 我們大家都知道MySQL數據庫從復制(replication)采用了RBR 模式之后,binlog 的格式為"ROW",其主要作用是解決很多原先出現的主鍵重復問題。

在一個繁忙的master db server上,MySQL binlog日志文件增長速度很快,如果不定時清除,硬盤空間很快就會被充滿。

 

設置自動清理MySQL binlog日志,配置my.cnf:

 

expire_logs_days = 10

 

在運行時修改:

 

 

  1. show binary logs;   
  2. show variables like '%log%';   
  3. set global expire_logs_days = 10

 

清除之前可以采用相應的備份策略。

 

手動刪除10天前的MySQL binlog日志:

 

  1. PURGE MASTER LOGS BEFORE DATE_SUB(CURRENT_DATE, INTERVAL 10 DAY);  
  2. show master logs; 

 

MASTER和BINARY是同義詞。

 

一般情況下,推薦使用MIXED binlog的復制。http://dev.MySQL.com/doc/refman/5.1/en/open-bugs-general.html中的說明:Replication uses query-level logging: The master writes the executed queries to the binary logThis is a very fast, compact, and efficient logging method that works perfectly in most cases

附:關于MySQL復制的幾種模式

 

 

從 MySQL 5.1.12 開始,可以用以下三種模式來實現:

 

基于SQL語句的復制(statement-based replication, SBR),

 

基于行的復制(row-based replication, RBR),

 

混合模式復制(mixed-based replication, MBR)。

 

相應地,binlog的格式也有三種:STATEMENT,ROW,MIXED。 MBR 模式中,SBR 模式是默認的。

 

在運行時可以動態改動 binlog的格式,除了以下幾種情況:

存儲流程或者觸發器中間

 

啟用了NDB

 

當前會話試用 RBR 模式,并且已打開了臨時表

 

如果binlog采用了 MIXED 模式,那么在以下幾種情況下會自動將MySQL binlog的模式由 SBR 模式改成 RBR 模式。

當DML語句更新一個NDB表時

 

當函數中包含 UUID() 時

 

2個及以上包含 AUTO_INCREMENT 字段的表被更新時

 

行任何 INSERT DELAYED 語句時

 

用 UDF 時

 

視圖中必須要求運用 RBR 時,例如建立視圖是運用了 UUID() 函數

 

設定主從復制模式:

 

  1. log-bin=MySQL-bin  
  2. #binlog_format="STATEMENT" 
  3. #binlog_format="ROW" 
  4. binlog_format="MIXED" 

也可以在運行時動態修改binlog的格式。例如

  1. MySQL> SET SESSION binlog_format = 'STATEMENT';  
  2. MySQL> SET SESSION binlog_format = 'ROW';  
  3. MySQL> SET SESSION binlog_format = 'MIXED';  
  4. MySQL> SET GLOBAL binlog_format = 'STATEMENT';  
  5. MySQL> SET GLOBAL binlog_format = 'ROW';  
  6. MySQL> SET GLOBAL binlog_format = 'MIXED'

兩種模式各自的優缺點:

SBR 的優點:

歷史悠久,技能成熟

 

binlog文件較小

 

binlog中包含了所有數據庫修改信息,可以據此來審核數據庫的安全等情況

 

MySQL binlog可以用于實時的還原,而不僅僅用于復制

 

主從版本可以不一樣,從服務器版本可以比主服務器版本高

 

SBR 的缺點:

 

不是所有的UPDATE語句都能被復制,尤其是包含不確定操作的時候。

 

調用具有不確定因素的 UDF 時復制也可能出疑問

 

運用以下函數的語句也不能被復制:

 

LOAD_FILE()

 

UUID()

 

USER()

 

FOUND_ROWS()

 

SYSDATE() (除非啟動時啟用了 –sysdate-is-now 選項)

 

INSERT … SELECT 會產生比 RBR 更多的行級鎖

 

復制須要執行 全表掃描(WHERE 語句中沒有運用到索引)的 UPDATE 時,須要比 RBR 請求更多的行級鎖

 

對于有 AUTO_INCREMENT 字段的 InnoDB表而言,INSERT 語句會阻塞其他 INSERT 語句

 

對于一些復雜的語句,在從服務器上的耗資源情況會更嚴重,而 RBR 模式下,只會對那個發生變化的記錄產生影響

 

存儲函數(不是存儲流程 )在被調用的同時也會執行一次 NOW() 函數,這個可以說是壞事也可能是好事

 

確定了的 UDF 也須要在從服務器上執行

 

數據表必須幾乎和主服務器保持一致才行,否則可能會導致復制出錯

 

執行復雜語句如果出錯的話,會消耗更多資源

 

RBR 的優點:

任何情況都可以被復制,這對復制來說是最安全可靠的

 

和其他大多數數據庫系統的復制技能一樣

 

多數情況下,從服務器上的表如果有主鍵的話,復制就會快了很多

 

復制以下幾種語句時的行鎖更少:

 

INSERT … SELECT

 

包含 AUTO_INCREMENT 字段的 INSERT

 

沒有附帶條件或者并沒有修改很多記錄的 UPDATE 或 DELETE 語句

 

執行 INSERT,UPDATE,DELETE 語句時鎖更少

 

從服務器上采用多線程來執行復制成為可能

 

RBR 的缺點:

 

binlog 大了很多

 

復雜的回滾時 binlog 中會包含大量的數據

 

主服務器上執行 UPDATE 語句時,所有發生變化的記錄都會寫到 binlog 中,而 SBR 只會寫一次,這會導致頻繁發生 binlog 的并發寫疑問

 

UDF 產生的大 BLOB 值會導致復制變慢

 

不能從 binlog 中看到都復制了寫什么語句(加密過的)

 

當在非事務表上執行一段堆積的SQL語句時,最好采用 SBR 模式,否則很容易導致主從服務器的數據不一致情況發生

 

另外,針對系統庫 MySQL 里面的表發生變化時的處理準則如下:

 

如果是采用 INSERT,UPDATE,DELETE 直接操作表的情況,則日志格式根據 MySQL binlog_format 的設定而記錄

 

如果是采用 GRANT,REVOKE,SET PASSWORD 等管理語句來做的話,那么無論如何 都采用 SBR 模式記錄。

 

注:采用 RBR 模式后,能處理很多原先出現的主鍵重復問題。實例:

 

對于insert into db_allot_ids select from db_allot_ids 這個語句:

 

在BINLOG_FORMAT=STATEMENT 模式下:

 

BINLOG日志信息為:

 

 

 

 

  1. BEGIN  
  2. /*!*/;  
  3. # at 173  
  4. #090612 16:05:42 server id 1 end_log_pos 288 Query thread_id=4 exec_time=0 error_code=0 
  5. SET TIMESTAMP=1244793942/*!*/;  
  6. insert into db_allot_ids select * from db_allot_ids  
  7. /*!*/; 

在BINLOG_FORMAT=ROW 模式下:

BINLOG日志信息為:

 

 

  1. BINLOG '  
  2. hA0yShMBAAAAMwAAAOAAAAAAAA8AAAAAAAAAA1NOUwAMZGJfYWxsb3RfaWRzAAIBAwAA  
  3. hA0yShcBAAAANQAAABUBAAAQAA8AAAAAAAEAAv/8AQEAAAD8AQEAAAD8AQEAAAD8AQEAAAA=  
  4. '/*!*/; 

 

 

 以上的相關內容就是對設置自動清理MySQL binlog日志和手動刪除的方法的介紹,望你能有所收獲。

【編輯推薦】

  1. MySQL limit查詢優化的實際操作步驟
  2. MySQL 連接池的實際配置問題
  3. MySQL臨時表的具體使用方案
  4. 用Excel如何對MySQL數據進行分析
  5. MySQL數據類型與相應的建庫策略
責任編輯:佚名 來源: 博客園
相關推薦

2019-09-16 08:28:17

Mysql數據庫binlog

2013-04-15 15:07:43

清理日志Linux系統

2010-05-18 12:24:16

MySQL binlo

2024-08-07 10:54:27

MySQL日志策略

2011-11-21 15:04:30

2025-01-22 16:00:00

MySQL數據庫Binlog

2011-07-11 14:36:10

BinlogMysql

2024-02-26 07:39:16

2021-10-28 23:57:01

日志Serilog框架

2010-04-14 17:11:13

Oracle管理

2025-03-04 07:30:00

開發前端Node.js

2010-05-21 10:33:15

MySQL日志文件

2025-06-06 07:02:43

2024-10-23 16:06:50

2010-10-13 14:37:49

2018-08-21 10:05:59

MySQLbinlog數據庫

2010-06-02 15:07:22

MySQL 用戶

2017-04-20 21:00:06

MySQLbinlog主從復制

2025-05-08 09:05:00

Shell腳本磁盤日志

2020-08-20 12:10:42

MySQL日志數據庫
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩精品在线观看一区二区 | 亚洲国产黄 | 中文字幕第一页在线 | 精品一区在线免费观看 | 国产精品久久精品 | 黄色毛片在线播放 | 99久久国产综合精品麻豆 | 国产高清免费 | 日韩在线小视频 | 国产黄色大片 | 97精品一区二区 | 欧美一级全黄 | 亚洲国产欧美在线 | 中文字幕国产视频 | 欧美一区二区三区的 | 国产精品一区三区 | 荷兰欧美一级毛片 | 久久伦理中文字幕 | 亚洲成人激情在线观看 | 成人av在线播放 | 久久男人 | 午夜精品久久久久99蜜 | 日韩www| 在线视频一区二区三区 | 久久四虎| 亚洲欧美激情国产综合久久久 | 在线免费观看黄色网址 | 91av在线免费 | 在线一区| 久久美国 | 九九视频网 | 韩日一区 | xnxx 日本免费 | 国产精品成人久久久久 | 欧美99| 精品在线一区 | 国产亚洲精品精品国产亚洲综合 | 成人欧美一区二区三区在线观看 | 一区二区三区在线免费观看 | 二区成人 | 精品国产精品一区二区夜夜嗨 |