怎么理解mysql中的redolog-創(chuàng)新互聯(lián)

今天就跟大家聊聊有關(guān)怎么理解mysql中的redo log,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

創(chuàng)新互聯(lián)建站從2013年開(kāi)始,先為隨縣等服務(wù)建站,隨縣等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為隨縣企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。

重做日志(redo log)

前言:之前一直弄不清楚 mysql 里面 bin log 和 innodb log 文件的區(qū)別,在腦子里面一直有個(gè)疑問(wèn) binlog 日志文件已經(jīng)可以用來(lái)進(jìn)行
數(shù)據(jù)庫(kù)的日志備份恢復(fù)了,怎么又多了一個(gè) redo log 文件了。相信也有很多人有這個(gè)疑惑,現(xiàn)在把整個(gè)過(guò)程文檔整理出來(lái),希望對(duì)大家有所幫忙。

如果對(duì) Oracle 很了解,那么在整個(gè)學(xué)習(xí) innoDB log 的時(shí)候,可以把聯(lián)
機(jī)重做日志的那套理論套在學(xué)習(xí) innoDB log 上面,幾乎是一樣的;


1、innodb log 的基礎(chǔ)知識(shí)
innodb log 顧名思義:即 innodb 存儲(chǔ)引擎產(chǎn)生的日志,也可以稱為
重做日志文件,默認(rèn)在 innodb_data_home_dir 下面有兩個(gè)文件
ib_logfile0 和 ib_logfile1。MySQL 官方手冊(cè)中將這兩個(gè)文件叫文
InnoDB 存儲(chǔ)引擎的日志文件;

查看日志文件位置:
[root@rh65 ~]# cat /etc/my.cnf
# Uncomment the following if you are using InnoDB tables
#innodb_data_home_dir = /usr/local/mysql/data
#innodb_data_file_path = ibdata1:10M:autoextend
#innodb_log_group_home_dir = /usr/local/mysql/data
# You can set .._buffer_pool_size up to 50 - 80 %
# of RAM but beware of setting memory usage too high
#innodb_buffer_pool_size = 16M
#innodb_additional_mem_pool_size = 2M
# Set .._log_file_size to 25 % of buffer pool size
#innodb_log_file_size = 5M
#innodb_log_buffer_size = 8M
#innodb_flush_log_at_trx_commit = 1
#innodb_lock_wait_timeout = 50
[root@rh65 ~]# cd /usr/local/mysql/data/
[root@rh65 data]# ls -l
total 28732
-rw-rw---- 1 mysql mysql 18874368 Jun 10 16:52 ibdata1
-rw-rw---- 1 mysql mysql 5242880 Jun 10 16:52 ib_logfile0
-rw-rw---- 1 mysql mysql 5242880 Jun 10 16:52 ib_logfile1
drwxr-xr-x 5 mysql mysql 4096 Jun 19 14:12 mysql
drwx------ 2 mysql mysql 4096 Jun 10 16:52
performance_schema
drwxr-xr-x 2 mysql mysql 4096 Jun 10 16:18 test


innodb log 的作用:當(dāng) MySQL 的實(shí)例和介質(zhì)失敗的時(shí)候,Innodb存儲(chǔ)引擎就會(huì)使用 innodb log 文件進(jìn)行恢復(fù),保證數(shù)據(jù)庫(kù)的完整性;

innodb log 的寫(xiě)原理:(請(qǐng)容許我再放下 InnoDB 的原理圖,并且建議把這張圖看到吐)


每個(gè) InnDB 存儲(chǔ)引擎至少有 1 個(gè)重做日志文件組(group),每個(gè)文件組下至少有兩個(gè)重做日志文件,默認(rèn)的為 ib_logfile0、ib_logfile1;
日志組中每個(gè)重做日志的大小一致,并循環(huán)使用;

InnoDB 存儲(chǔ)引擎先寫(xiě)重做日志文件,當(dāng)文件滿了的時(shí)候,會(huì)自動(dòng)切換到日志文件 2,當(dāng)重做日志文件 2 也寫(xiě)滿時(shí),會(huì)再切換到重做日
志文件 1;為了保證安全和性能,請(qǐng)?jiān)O(shè)置每個(gè)重做日志文件設(shè)置鏡像,并分配到不同的磁盤(pán)上面;

(發(fā)現(xiàn)以上特性跟 ORACLE 的連接重做日志文件簡(jiǎn)直是一樣的)


2、innodb log 的相關(guān)參數(shù)

運(yùn)行腳本:show variables like 'innodb%log%'; 查看重做日志的相關(guān)參數(shù)
mysql> show variables like 'innodb%log%';

常用設(shè)置的參數(shù)有:
innodb_mirrored_log_groups 鏡像組的數(shù)量,默認(rèn)為 1,沒(méi)有鏡像;
innodb_log_group_home_dir 日志組所在的路徑,默認(rèn)為 data 的home 目錄;
innodb_log_files_in_group 日志組的數(shù)量,默認(rèn)為 2;
innodb_log_file_size 日志組的大小,默認(rèn)為 5M;
innodb_log_buffer_size 日志緩沖池的大小,圖上為 30M

3、參數(shù)的相關(guān)調(diào)優(yōu)
3.1 重做日志文件的大小設(shè)置跟 ORACLE 一樣,面臨的問(wèn)題是相似的。

當(dāng) innodb log 設(shè)置過(guò)大的時(shí)候,可能會(huì)導(dǎo)致系統(tǒng)崩潰后恢復(fù)需要很長(zhǎng)的時(shí)間;
當(dāng) innodb log 設(shè)置過(guò)小的時(shí)候,當(dāng)一個(gè)事務(wù)產(chǎn)生大量的日志的時(shí)候,需要多次切換重做日志文件,會(huì)產(chǎn)生類似如下的報(bào)警;
130702 12:53:13 InnoDB: ERROR: the age of the last checkpoint
is 2863217109,
InnoDB: which exceeds the log group capacity 566222311.
InnoDB: If you are using big BLOB or TEXT rows, you must set the
InnoDB: combined size of log files at least 10 times bigger than the


4、重做日志與二進(jìn)制日志的區(qū)別
4.1 記錄的范圍不同:二進(jìn)制日志會(huì)記錄 MySQL 的所有存儲(chǔ)引擎的日志記錄(包括 InnoDB、MyISAM 等),而 InnoDB 存儲(chǔ)引擎的重做日志只會(huì)記錄其本身的事務(wù)日志。
4.2 記錄的內(nèi)容不同:二進(jìn)制日志文件記錄的格式可以為STATEMENT 或者 ROW 也可以是 MIXED,其記錄的都是關(guān)于一個(gè)事務(wù)的具體操作內(nèi)容。
InnoDB 存儲(chǔ)引擎的重做日志文件記錄的關(guān)于每個(gè)頁(yè)的更改的物理情況。
4.3 寫(xiě)入的時(shí)間也不同:二進(jìn)制日志文件是在事務(wù)提交前進(jìn)行記錄的,而在事務(wù)進(jìn)行的過(guò)程中,不斷有重做日志條目被寫(xiě)入到重做日志文件中。

看完上述內(nèi)容,你們對(duì)怎么理解mysql中的redo log有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道,感謝大家的支持。

新聞名稱:怎么理解mysql中的redolog-創(chuàng)新互聯(lián)
本文來(lái)源:http://muchs.cn/article34/cdihse.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈面包屑導(dǎo)航、做網(wǎng)站ChatGPT、靜態(tài)網(wǎng)站、企業(yè)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)