mysql查看binlog日志內容

2019獨角獸企業重金招聘Python工程師標準>>> hot3.png

(一) binlog介紹

binlog,即二進制日志,它記錄了數據庫上的所有改變,并以二進制的形式保存在磁盤中;

它可以用來查看數據庫的變更歷史、數據庫增量備份和恢復、Mysql的復制(主從數據庫的復制)。

(二) binlog格式

binlog有三種格式:Statement、Row以及Mixed。

–基于SQL語句的復制(statement-based replication,SBR),?
–基于行的復制(row-based replication,RBR),?
–混合模式復制(mixed-based replication,MBR)。

2.1 Statement?
每一條會修改數據的sql都會記錄在binlog中。

優點:不需要記錄每一行的變化,減少了binlog日志量,節約了IO,提高性能。

缺點:由于記錄的只是執行語句,為了這些語句能在slave上正確運行,因此還必須記錄每條語句在執行的時候的一些相關信息,以保證所有語句能在slave得到和在master端執行時候相同 的結果。另外mysql 的復制,像一些特定函數功能,slave可與master上要保持一致會有很多相關問題。

ps:相比row能節約多少性能與日志量,這個取決于應用的SQL情況,正常同一條記錄修改或者插入row格式所產生的日志量還小于Statement產生的日志量,但是考慮到如果帶條件的update操作,以及整表刪除,alter表等操作,ROW格式會產生大量日志,因此在考慮是否使用ROW格式日志時應該跟據應用的實際情況,其所產生的日志量會增加多少,以及帶來的IO性能問題。

2.2 Row

5.1.5版本的MySQL才開始支持row level的復制,它不記錄sql語句上下文相關信息,僅保存哪條記錄被修改。

優點: binlog中可以不記錄執行的sql語句的上下文相關的信息,僅需要記錄那一條記錄被修改成什么了。所以rowlevel的日志內容會非常清楚的記錄下每一行數據修改的細節。而且不會出現某些特定情況下的存儲過程,或function,以及trigger的調用和觸發無法被正確復制的問題.

缺點:所有的執行的語句當記錄到日志中的時候,都將以每行記錄的修改來記錄,這樣可能會產生大量的日志內容。

ps:新版本的MySQL中對row level模式也被做了優化,并不是所有的修改都會以row level來記錄,像遇到表結構變更的時候就會以statement模式來記錄,如果sql語句確實就是update或者delete等修改數據的語句,那么還是會記錄所有行的變更。

2.3 Mixed

從5.1.8版本開始,MySQL提供了Mixed格式,實際上就是Statement與Row的結合。

在Mixed模式下,一般的語句修改使用statment格式保存binlog,如一些函數,statement無法完成主從復制的操作,則采用row格式保存binlog,MySQL會根據執行的每一條具體的sql語句來區分對待記錄的日志形式,也就是在Statement和Row之間選擇一種。

只查看第一個binlog文件的內容
mysql> show binlog events;

查看指定binlog文件的內容
mysql> show binlog events in 'mysql-bin.000001';

獲取binlog文件列表

mysql> show binary logs;

[python]?view plain?copy

  1. mysql>?show?binary?logs;??
  2. +------------------+-----------+??
  3. |?Log_name?????????|?File_size?|??
  4. +------------------+-----------+??
  5. |?mysql-bin.000001?|??????3548?|??
  6. |?mysql-bin.000002?|???????106?|??
  7. +------------------+-----------+??
  8. 2?rows?in?set?(0.00?sec)??
  9. ?

?

1 當停止或重啟服務器時,服務器會把日志文件記入下一個日志文件,Mysql會在重啟時生成一個新的日志文件,文件序號遞增;

2 如果日志文件超過max_binlog_size(默認值1G)系統變量配置的上限時,也會生成新的日志文件(在這里需要注意的是,如果你正使用大的事務,二進制日志還會超過max_binlog_size,不會生成新的日志文件,事務全寫入一個二進制日志中,這種情況主要是為了保證事務的完整性)

3 日志被刷新時,新生成一個日志文件。

如:

?

binglog的查看
通過mysqlbinlog命令可以查看binlog的內容
[root@localhost ~]# mysqlbinlog? /home/mysql/binlog/binlog.000003? | more

/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#120330 16:51:46 server id 1? end_log_pos 98??? Start: binlog v 4, server v 5.0.45-log created 120330 1
6:51:46
# Warning: this binlog was not closed properly. Most probably mysqld crashed writing it.
# at 196
#120330 17:54:15 server id 1? end_log_pos 294?? Query?? thread_id=3???? exec_time=2???? error_code=0
SET TIMESTAMP=1333101255/*!*/;
insert into tt7 select * from tt7/*!*/;
# at 294
#120330 17:54:46 server id 1? end_log_pos 388?? Query?? thread_id=3???? exec_time=28??? error_code=0
SET TIMESTAMP=1333101286/*!*/;
alter table tt7 engine=innodb/*!*/;

?

解析binlog格式

位置
位于文件中的位置,“at?294”說明“事件”的起點,是以第294字節開始;“end_log_pos?388??”說明以第388?字節結束

?

時間戳
事件發生的時間戳:“120330 17:54:46”

?

事件執行時間
事件執行花費的時間:"exec_time=28"

?

錯誤碼
錯誤碼為:“error_code=0”

?

服務器的標識
服務器的標識id:“server id 1”

?

轉自:

http://blog.csdn.net/nuli888/article/details/52106910

http://blog.csdn.net/ouyang111222/article/details/50300851

http://blog.csdn.net/wyzxg/article/details/7412777

轉載于:https://my.oschina.net/u/232595/blog/1788455

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/452148.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/452148.shtml
英文地址,請注明出處:http://en.pswp.cn/news/452148.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

架構師:我們需要頂層設計

架構師:我們需要頂層設計背景: 某公司,建立的程序又被推倒,外人覺得很奇怪,這個程序的主管非常敬業,關注到了程序每一個細節,甚至包括每一個按鈕的文字和位置。這個主管很委屈,他說…

文件傳輸協議FTP

文件傳輸協議FTP提供交互式的訪問,允許客戶指明文件的類型和格式,并允許文件具有存取權限。它屏蔽了個計算機系統的細節,因而適合于在異構網絡中任意計算機之間傳輸文件。它提供不同種類主機系統之間的文件傳輸能力,可以提供用戶對…

Centos7安裝Docker教程

1.首先安裝必要依賴: sudo yum install -y yum-utils device-mapper-persistent-data lvm22.然后添加倉庫源: sudo sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo3.最后安裝 Docker&#xff…

String.format() 方法用法解說

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 String chargeFlowUrl _AGENT_URL "?agentAccount" _AGENT_ACCOUNT "&sequence%s &phone%s &iceUrl%s &…

Choose unique values for the 'webAppRootKey' context-param in your web.xml files! 錯誤的解決

大意是Log4jConfigListener在獲取webapp.root值時&#xff0c;被后一context的值替換掉了&#xff0c;所以要在各個項目的web.xml中配置不同的webAppRootKey值&#xff0c;隨即在其中一個web.xml中添加&#xff1a; <context-param> <param-name>webAppRootKey<…

ionic3 cordova ionic-native插件

ionic-native插件 cordova安裝插件 以及 ionic-native插件使用過程以及步驟 cordova plugin add cordova-plugin-插件名稱。 //安裝插件npm install ionic-native/對應插件名稱 --save。 //寫入package.json在app.module.ts 的 providers 進行引用解釋&#xff1a;cordove plug…

Diango博客--19.使用 Docker部署項目到線上服務器

文章目錄1.克隆代碼到服務器2.創建環境變量文件用于存放項目敏感信息3.在 .production 文件寫入下面的內容并保存4.修改 Nginx 配置5.修改項目配置文件6.啟動容器7.檢查容器啟動狀況8.配置 HTTPS 證書&#xff08;沒有配置域名無法配置&#xff0c;只能通過服務器 ip 以 HTTP 協…

從一生的角度看程序員的學習和發展

很多人談學習和發展的時候&#xff0c;往往忽略人的先天自然條件&#xff0c;在這里我們從這個視角切入&#xff0c;來探討一下程序員一生的可能軌跡。 如果把程序員的人生分為三個階段&#xff0c;那么他們是&#xff1a; 畢業~30歲&#xff1a;這個時間段里&#xff0c;大多…

Jquery Datatable 數據填充報錯:requested unknown parameter ‘XXX‘ for row xx, column xx 解決方法

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 報錯如圖&#xff1a; 解決方法見官網&#xff1a;https://datatables.net/manual/tech-notes/4 摘要如下&#xff1a; Parameter is an…

Tarjan-縮點

$Tarjan$縮點 Tarjan的第二個應用就是求縮點啦。縮點雖然比割點麻煩一點&#xff0c;但是用處也比割點要大不少。 本來要學另外兩個縮點算法的,但是似乎沒什么用...$MST$里確實有只能有$prim$或者只能用$kruscal$的題目&#xff0c;但是這三種縮點...在網上沒有找到介紹它們之間…

mysqldump參數詳細說明(轉)

Mysqldump參數大全&#xff08;參數來源于mysql5.5.19源碼&#xff09; 參數 參數說明 --all-databases , -A 導出全部數據庫。 mysqldump -uroot -p --all-databases --all-tablespaces , -Y 導出全部表空間。 mysqldump -uroot -p --all-databases --all-tablespaces --n…

Diango博客--20.開啟 Django 博客的 RSS 功能

1.Rss簡介 博客提供 RSS 訂閱應該是標配&#xff0c;這樣讀者就可以通過一些聚合閱讀工具訂閱你的博客&#xff0c;時時查看是否有文章更新&#xff0c;而不必每次都跳轉到博客上來查看。現在我們就來為博客添加 RSS 訂閱功能。 RSS&#xff08;Really Simple Syndication&am…

什么是P2P

P2P技術又稱為點對點傳輸技術。舉個簡單的例子&#xff0c;以便可以更好的理解。比如&#xff0c;以前我們要下載一個文件&#xff0c;我們一定要從服務器下載。有了P2P技術之后&#xff0c;我們可以向其它下載過這個文件的電腦獲取這個文件&#xff0c;我下載完成了這個文件之…

SQL語句使用大全,最常用的sql語句

下列語句部分是Mssql語句&#xff0c;不可以在access中使用. SQL分類&#xff1a; DDL—數據定義語言(Create&#xff0c;Alter&#xff0c;Drop&#xff0c;DECLARE) DML—數據操縱語言(Select&#xff0c;Delete&#xff0c;Update&#xff0c;Insert) DCL—數據控制語言(…

Oracle 的 SQL語句中 decode()函數

decode()函數簡介&#xff1a; 主要作用&#xff1a;將查詢結果翻譯成其他值&#xff08;即以其他形式表現出來&#xff0c;以下舉例說明&#xff09;&#xff1b; 使用方法&#xff1a; Select decode&#xff08;columnname&#xff0c;值1,翻譯值1,值2,翻譯值2,...值n,翻譯值…

百度王一男: DevOps 的前提是拆掉業務-開發-測試-運維中間的三面墻

這是一個創建于 375 天前的主題&#xff0c;其中的信息可能已經有所發展或是發生改變。由數人云、優維科技、中生代社區聯合發起的 系列 Meetup 《 DevOps&SRE 超越傳統運維之道》 先后在深圳、北京舉行過兩場 7 月 15 日上海站&#xff0c;敬請期待 ▼ 王一男老師在《 Dev…

linux上mongodb的安裝與卸載

安裝 1.下載安裝包 wget http://fastdl.mongodb.org/linux/mongodb-linux-i686-1.8.2.tgz 下載完成后解壓縮壓縮包 tar zxf mongodb-linux-i686-1.8.2.tgz 2. 安裝準備 將mongodb移動到/usr/local/server/mongdb文件夾 mv mongodb-linux-i686-1.8.2 /usr/local/mongodb 創建數據…

面向對象設計的準則

1.模塊化 對象就是模塊 把數據結構和操作這些數據的方法緊密地結合在一起 2.抽象 過程抽象 數據抽象&#xff1a;類 參數化抽象&#xff1a;C的“模板” 3.信息隱藏 通過對象的封裝性實現類&#xff0c;分離了接口與實現&#xff0c;支持信息隱藏 4.弱耦合 某一部分的…

Linux觸發連鎖反應,惠及全球

所謂“連鎖反應”是指&#xff0c;若干個相關的事物&#xff0c;只要一個發生變化&#xff0c;其他都跟著發生變化。在軟件界的“圈子”里面&#xff0c;一般而言&#xff0c;“連鎖反應”這個詞匯是不經常使用的。 4月21日&#xff0c;芬蘭科學院把2012年最高技術成就獎授予Li…

Diango博客--21.實現簡單的全文搜索

文章目錄1. 概述2. 模板&#xff1a;將關鍵詞提交給服務器3. 視圖&#xff1a;查找含有搜索關鍵詞的文章4. 視圖&#xff1a;綁定 URL1. 概述 搜索是一個復雜的功能&#xff0c;但對于一些簡單的搜索任務&#xff0c;我們可以使用 Django Model 層提供的一些內置方法來完成&am…