找回密码
 注册
查看: 1395|回复: 4

MySQL/mariadb误删ibdata1 ib_logfile0,ib_logfile1 恢复方法

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2021-12-15 01:00:03 | 显示全部楼层 |阅读模式
MySQL误删ibdata1 ib_logfile0,ib_logfile1 恢复方法:* o( u7 N( \2 g  d# t/ \9 ^9 L
$ Z) R/ k  I# H1 j/ V* y& D' m
恢复的步骤和数据库版本没有太大关系。5 _' D4 @2 \5 _
在linux操作系统中,如果文件从操作系统级别别rm掉,之前打开的文件进程仍持有相应的文件句柄,. q; `' [! h$ v' G
所指向的文件仍然可以读写,且该文件的描述符可以从/proc目录中获得(不关闭MySQLd情况下).
) E9 }, f. E- B; J6 ^, e% ?' M7 s* J) S# n% K* x
在删除3个文件后,MySQLd 仍是可以运行,对外服务的,MySQL一只保持InnoDB文件打开,因此,* L2 [. a2 J2 [/ j+ {* j
在工作中有必要监控文件是否存在。
3 T$ A8 @" t' ]: G4 \: z发现文件被删除之后,不能重启InnoDB,因为启动InnoDB,检测到ibdata1,ib_logfile0,ib_logfile11 L. c+ Y( a6 T: j  c* H4 S
不存在,所以,将创建对应的空文件,InnoDB数据字典是空的,InnoDB无法使用原先存在的ibd文件,故,4 x5 ?1 q1 F5 `/ u
MySQL不重启,快速恢复删除的文件是可能的。
3 O( G, A+ x; v5 G+ Q0 K# i+ m
) O" [, {+ M! ^" w在MySQLd运行过程中,ibdata1,ib_logfile0,ib_logfile1一直运行在4 B% V0 ?% S0 r) p0 B5 Z  S
/proc/mysql.pid/fd目录下,其中vm-mysql.pid是mysql进程的PID,获取方法:
. ~8 E& b/ A/ M  n+ a[root@mysql ~]# ls -l /proc/$(cat /opt/mysql/data2/mysql.pid)/fd | grep -e ibdata -e ib_) C8 l8 X6 h  Q: n+ w# x" X# l
lrwx------ 1 root root 64 Oct 16 14:16 10 -> /opt/mysql/data2/ib_logfile1 (deleted)$ }) P. |/ u9 O- L( {! b3 X5 Z+ m
lrwx------ 1 root root 64 Oct 16 14:16 4 -> /opt/mysql/data2/ibdata1 (deleted)
% w: u( Q1 ]# g' x/ Dlrwx------ 1 root root 64 Oct 16 14:16 9 -> /opt/mysql/data2/ib_logfile0 (deleted)
! J% o' L& A/ E; s/ g6 q' j$ x- K; {( f$ _/ C; P
但是,我们不能简单copy回源目录中,因在buffer pool有已经修改的页,这些页没有被写入磁盘,如果改变的页) q8 y* \' o' Q# j9 {% h
没有永久写入,数据将会丢失,这些导致数据损坏和丢失。- @& \1 F+ j) _# A* Y/ \) Y
同样原因,我们不能做MySQL备份,仅能coping那些文件。+ s2 I. Y3 t! b% M1 t- P$ O" e& C
因此,我们必须确保所有的修改全写入磁盘中。
/ |' M+ q/ a% m1 F' v我们现在能做的阻止写,且等待InnoDB刷新所有的页。
0 q) t/ ~; P8 ?" k9 Y1.为了阻止写,我们要么停止应用程序或锁表。* w9 U) K7 g* Y7 u8 ~% F
MariaDB [(none)]> flush tables with read lock;) w# l  l4 q) S/ e9 {5 u, ]4 T
Query OK, 0 rows affected (0.01 sec)- Q6 t% k1 u/ S

3 e, X0 I; i# M" y: e. I2. show engine innodb status 中脏页刷新到磁盘,
" V* l! u! w2 l/ |- ^---" m; Y3 ~$ O# l9 y* X
LOG
: b4 W$ I8 |6 F& r/ {/ j$ \* B---
; g8 T5 X) C2 U0 ILog sequence number 0 503551 M& }7 U# J8 Y5 u7 }$ u9 e
Log flushed up to   0 50355
, q3 P% r8 c1 _7 GLast checkpoint at  0 50355% j" _  H7 e; U- ~$ t3 @" V
0 pending log writes, 0 pending chkp writes
# s2 X% @9 D5 u& A/ u# w39 log i/o's done, 0.00 log i/o's/second! y) u3 ]' H) ?( _
% B1 N  @7 `5 ~4 k
加速脏页刷新,设置dirty pages percentage to zero:
( D- r# F' q9 n) Z9 R7 }MariaDB [(none)]> set global innodb_max_dirty_pages_pct=0;
6 o0 O3 o: M# ^1 z% g3 U9 gQuery OK, 0 rows affected (0.00 sec)5 f; I6 Y7 E5 e& V/ P9 l/ q! N" N8 W5 \
4 d, [9 Z& }" {. Y4 B' g, |
3.确保所有后台进程已经完成自己的工作,也是重要的。& l0 F: O+ D% b# ~6 N
注意,插入缓冲线程,它的大小等于1
3 {9 l: ^4 e( G( p7 [-------------------------------------2 |/ c! T2 O1 w% a3 ?
INSERT BUFFER AND ADAPTIVE HASH INDEX
) a. K, N/ a% J; g/ i& w5 I-------------------------------------
9 f1 b( r; D- QIbuf: size 1, free list len 0, seg size 2,' M* K- {# c9 F/ c/ u3 t% p
0 inserts, 0 merged recs, 0 merges
1 Q" Q$ l( ^6 q; k% T# J# KHash table size 34679, node heap has 1 buffer(s)+ ]- O8 P) x6 G) ]* g
0.00 hash searches/s, 0.00 non-hash searches/s) Q2 h0 j8 d4 s9 a/ a8 W4 N
9 E) V( }) H. A" R0 A
4.后台写进程purge thread,清除所有事务。5 J( x& K8 q6 S/ R" g
------------: N. o2 u) Q7 u3 j) g7 P( y3 w1 n
TRANSACTIONS. E1 [5 B2 N5 D& U8 g
------------( e: ^& L0 n# }; r( S" S
Trx id counter 0 784; ?& L# }6 C( \; K8 Q# b
Purge done for trx's n:o < 0 0 undo n:o < 0 0
4 n2 I* w* f0 x/ W& G但是,如果上次事务没有需要清理操作Trx id计数比较大(如,SELECT),
& y7 I7 d4 |, c6 [' d在这种情况下,至少要保证InnoDB不再做任何写动作。
5 a! R* J4 j% g: D3 E/ ^8 H--------
' {! I% _2 B+ _- C, E0 jFILE I/O: B" s! z% B  q  T
--------
! C9 j  O" c" c+ c# c' a/ ^I/O thread 0 state: waiting for i/o request (insert buffer thread)1 n5 M1 A( s, I3 c3 U+ H; p
I/O thread 1 state: waiting for i/o request (log thread)! b1 P0 f. o1 u2 C# Z+ Q
I/O thread 2 state: waiting for i/o request (read thread)
7 t+ w2 h  F& }, M" l  LI/O thread 3 state: waiting for i/o request (write thread)
& Y. _& f% t8 d* ]: n! UPending normal aio reads: 0, aio writes: 0,: l' ~/ d5 t4 K' P7 _
ibuf aio reads: 0, log i/o's: 0, sync i/o's: 01 }" i* V, l  E8 g" {
Pending flushes (fsync) log: 0; buffer pool: 0, H  T& [- Z4 I( U( q( Y1 _5 b; l
0 OS file reads, 81 OS file writes, 59 OS fsyncs9 o" Q* g! _- H0 q. o) O9 i; t
0.00 reads/s, 0 avg bytes/read, 0.00 writes/s, 0.00 fsyncs/s
) e) N$ Y2 f. ^' E' H% M1 M) F$ ?/ K
经历了4步,所有被修改脏页刷新到磁盘,现在开始copy InnoDB 文件到源目录:
5 s4 w8 ~; O" c$ K[root@mysql ~]# cp /proc/$(cat /opt/mysql/data2/mysql.pid)/fd/4 /opt/mysql/data2/ibdata13 B& j! M* r/ k4 O" K8 z0 _6 N; q
[root@mysql ~]# cp /proc/$(cat /opt/mysql/data2/mysql.pid)/fd/9 /opt/mysql/data2/ib_logfile0
1 ~- q: i# x/ t/ {  g5 ][root@mysql ~]# cp /proc/$(cat /opt/mysql/data2/mysql.pid)/fd/10 /opt/mysql/data2/ib_logfile1- ]/ S/ `$ g/ r. h2 j

8 @8 T/ p- U8 i6 `) J; x' q; e5.修改ib*所属用户
% g# q; Z* Z9 V9 O! n7 uchown -R mysql ib*
, ?/ x2 J7 O* C7 S
. s3 U4 ~0 i( ]& R/ u6.重启MySQLd
! V2 X) Q  }- M! J# R........
" n  D- H9 O3 _, D1 o* Y5 b/ X( [5 J, C
结论:
1 x& X' a% ]/ t: H# }: S1.监控InnoDB文件 ibdata 和 ib_logfile* 是否存在
3 a6 M( {9 I* a9 R, y) P* M% ]2.清楚恢复策略,否则不要重启MySQLd6 [/ g/ M# M" r1 p) Y8 @3 Z

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2021-12-15 01:00:04 | 显示全部楼层
于是再/ect/my.cnf中加入max_connections=1000    wait_timeout=5这两个配置
+ i5 k: n1 R8 t$ M. X4 {3 \; h+ N' @( J( @( v; [9 L' S
% O/ m: J1 q+ U8 [
3 V# |% @; J  N' O
重启mysql,启动成功,但是项目却无法打开,又重新打开mysql日志发现他一直无休止的重启,百度搜了好多办法都不行- E9 H, f! ]/ x

4 ^7 O% u$ k- z; x5 a. M& ^1 x后来看到这段配置
) \8 F2 n2 ]5 e4 l/ N0 w
% X# p- n. K1 v/ r' A( Z" m2 C' L  D! y2 c
: U/ m) _  g" p7 x; C) ^7 m: g* X
我想应该是因为文件问题导致ibdata1损坏了,然后从1 到6全部都试了一遍,效果却是然并卵8 \- ?4 A6 }' _( v/ R* g3 k

2 A' D( N# a% Y9 [/ u% U到最后是这样配置的
' j3 w% A0 p% I# T. Q/ O" J9 F) N2 \( j& U; \. ^2 Y, M% K
https://img-blog.csdn.net/20180511171205193?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dsX2FuZw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70! U; k$ c( q- `, `: O- `! U( e
& s, h( u% ^9 C" X+ i
然后重启mysql没有问题,然后打开项目发现还是访问不了,后来发现tomcat停了,重启tomcat,完美解决
$ E, F+ Z& f  d6 H

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2021-12-15 01:00:05 | 显示全部楼层
操作步骤:
: K/ M8 ~: `1 t. q% s* V! t

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2021-12-15 01:00:06 | 显示全部楼层

概念:
& k- C# n* L+ U3 `, s) h事務日誌或稱redo日誌,在mysql中默認以ib_logfile0,ib_logfile1名稱存在,可以手工修改參數,調節開啟幾組日誌來服務於當前mysql數據庫,mysql采用順序,循環寫方式,每開啟一個事務時,會把一些相關信息記錄事務日誌中(記錄對數據文件數據修改的物理位置或叫做偏移量);# ?1 w1 y- a; H, q
這個系列文件個數由參數innodb_log_files_in_group控制,若設置為4,則命名為ib_logfile0~3。
# L' K2 t/ b  U這些文件的寫入是順序、循環寫的,logfile0寫完從logfile1繼續,logfile3寫完則logfile0繼續。  b( x3 m2 R: e2 B, |; q+ C" C
6 j+ F) I6 X  s% G' ?4 I
作用:1 }% x+ x( `" U' `. T7 U7 K+ ]8 l
在系統崩潰重啟時,作事務重做;在系統正常時,每次checkpoint時間點,會將之前寫入事務應用到數據文件中。; z) `2 v+ x: U6 |: z$ U/ Q
2 F. `: ]3 j4 g( Z, `4 N
Ib_logfile的checkpoint field
1 \1 L* I& |5 L2 U% D  P實際上不僅要記錄checkpoint做到哪兒(LOG_CHECKPOINT_LSN),還要記錄用到了哪個位置(LOG_CHECKPOINT_OFFSET)等其他信息。所以在ib_logfile0的頭部預留了空間,用於記錄這些信息。
: L2 W5 i( i5 \8 |( f: ~因此即使使用後面的logfile,每次checkpoint完成後,ib_logfile0都是要更新的。同時你會發現所謂的順序寫盤,也並不是絕對的
/ C! Y2 n. b; w# M  X! Y+ ~& Z8 n相關的一些數字
5 n0 N' L) Y' F9 v* ya) InnoDB留了兩個checkpoint filed,按照註釋的解釋,目的是為了能夠“write alternately”
7 s: S3 U3 I, }( r. ?# l' Ob) 每個checkpint field需要的大小空間為304字節。(相關定義在log0log.h)
$ t( y: o4 Q( W; i- H& k* qc) 第一個checkpoint的起始位置在ib_logfile0的第512字節(OS_FILE_LOG_BLOCK_SIZE)處;. i/ ~! K$ H6 b0 \: d! v3 v& ^% n
d) 第二個在1536 (3 * OS_FILE_LOG_BLOCK_SIZE)字節處。
, S0 e4 X3 A" s1 l7 k1 j" }, W& [, n  V+ ]" R0 O1 {; ]

( p1 @- u3 a& [, Z, z* ~特點:; A& y+ }  P# g. p3 M
redo log只是記錄所有innodb表數據的變化。4 g0 }6 r1 u. @/ T
redo log只是記錄正在執行中的dml以及ddl語句。4 @8 s- T6 K: g
redo log可以作為異常down機或者介質故障後的數據恢復使用

引入一個問題:在m/s環境中,innodb寫完ib_logfile後,服務異常關閉,會不會主庫能用ib_logfile恢復數據,而binlog沒寫導致從庫同步時少了這個事務?從而導致主從不一致;redo日誌寫入方式:1.ib_logfile寫入當前事務更新數據,並標上事務準備trx_prepare2.寫入bin-log3.ib_logfile當前事務提交提交trx_commit恢復方式:如果ib_logfile已經寫入事務準備,那麽在恢復過程中,會依據bin-log中該事務是否存在恢復數據。假設:1)結束後異常,因沒有寫入bin-log,從庫不會同步這個事務,主庫上,重啟時,在恢復日誌中這個事務沒有commit,即rollback這個事務.2)結束後異常,這會bin-log已經寫入,從庫會同步這個事務。主庫依據恢復日誌和bin-log,也正常恢復此事務綜上描述:bin-log寫入完成,主從會正常完成事務;bin-log沒有寫入,主從庫rollback事務;不會出現主從庫不一致問題.8 g. y5 J# @. `/ b( A2 Y
相關參數(全局&靜態):innodb_log_buffer_sizeinnodb_log_file_sizeinnodb_log_files_in_groupinnodb_log_group_home_dirinnodb_flush_log_at_trx_commitinnodb_log_buffer_size:事務日誌緩存區,可設置1M~8M,默認8M,延遲事務日誌寫入磁盤,把事務日誌緩存區想象形如"漏鬥"狀,會不停向磁盤記錄緩存的日誌記錄,而何時寫入通過參數innodb_flush_log_at_trx_commit控制,稍後解釋,啟用大的事務日誌緩存,可以將完整運行大事務日誌,
0 Y+ o: _% ]& q8 @; h# x暫時存放在事務緩存區中,不必(事務提交前)寫入磁盤保存,同時也起到節約磁盤空間占用;innodb_log_file_size:控制事務日誌ib_logfile的大小,範圍5MB
~4G;所有事務日誌ib_logfile0+ib_logfile1+..累加大小不能超過4G,事務日誌大,checkpoint會少,節省磁盤IO,但是大的事務日誌意味著數據庫crash時,恢復起來較慢.引入問題:修改該參數大小,導致ib_logfile文件的大小和之前存在的文件大小不匹配解決方式:在幹凈關閉數據庫情況下,刪除ib_logfile,而後重啟數據庫,會自行創建該文件;innodb_log_files_in_group:DB中設置幾組事務日誌,默認是2;innodb_log_group_home_dir:事務日誌存放目錄,不設置,ib_logfile0...存在在數據文件目錄下innodb_flush_log_at_trx_commit:控制事務日誌何時寫盤和刷盤,安全遞增:0,2,1事務緩存區:log_buffer;0:每秒一次事務緩存區刷新到文件系統,同時文件系統到磁盤同步,但是事務提交時,不會觸發log_buffer到文件系統同步;2:每次事務提交時,會把事務緩存區日誌刷新到文件系統中去,且每秒文件系統到磁盤同步;1:每次事務提交時刷新到磁盤,最安全;適用環境:0:磁盤IO能力有限,安全方便較差,無復制或復制延遲可以接受,如日誌性業務,mysql損壞丟失1s事務數據;2:數據安全性有要求,可以丟失一點事務日誌,復制延遲也可以接受,OS損壞時才可能丟失數據;1:數據安全性要求非常高,且磁盤IO能力足夠支持業務,如充值消費,敏感業務;
" z! B, l& a$ u, ]- d" ?

! I7 N2 g9 o% z4 H0 l2 o

引入ib_logfile的寫入策略

1、基本概念4 {$ r2 B' t1 z6 D% R1 D$ S
a)、ib_logfile文件個數由innodb_log_files_in_group配置決定,若為2,則在datadir目錄下有兩個文件,命令從0開始,分別為ib_logfile0和ib_logfile.
- L) g3 s7 x7 b2 zb)、文件為順序寫入,當達到最後一個文件末尾時,會從第一個文件開始順序復用。9 a1 K4 Q$ C$ x; z8 N% M
c)、lsn: Log Sequence Number,是一個遞增的整數。 Ib_logfile中的每次寫入操作都包含至少1個log,每個log都帶有一個lsn。在內存page修復過程中,只有大於page_lsn的log才會被使用。
+ w5 _# t8 z. z( yd)、lsn的保存在全局變量log_sys中。遞增數值等於每個log的實際內容長度。即如果新增的一個log長度是len,則log_sys->lsn += len.
; a6 X% z, }; je)、ib_logfile每次寫入以512(OS_FILE_LOG_BLOCK_SIZE)字節為單位。實際寫入函數 log_group_write_buf (log/log0log.c)
+ a9 i9 H' T$ l$ nf)、每次寫盤後是否flush,由參數innodb_flush_log_at_trx_commit控制。, M, _  w* `' }
) O" }. |# L( ^7 Y  J- O
2 M$ G9 _4 f2 ]2 g. ~
2、log_sys介紹
% o0 q& _) e1 A% l9 }log_sys是一個全局內存結構。以下說明幾個成員的意義。( M: V; V$ U" d

lsn表示已經分配的最後一個lsn的值。
written_to_all_lsnn表示實際已經寫盤的lsn。需要這個值是因為並非每次生成log後就寫盤。
flushed_to_disk_lsn表示刷到磁盤的lsn。需要這個值是因為並非每次寫盤後就flush。
buf待寫入的內容保存在buf中
buf_sizebuf的大小。由配置中innodb_log_buffer_size決定,實際大小為innodb_log_buffer_size /16k * 16k。
buf_next_to_writebuf中下一個要寫入磁盤的位置
buf_freebuf中實際內容的最後位置。當buf_free> buf_next_to_write時,說明內存中還有數據未寫盤。

; X2 I# l6 Z- _; O  U1 q9 X
. ~# n$ o) _# M: T. b$ C5 v6 D1 s
* P% N$ b( P6 _1 }1 R+ W
3、相關更新
+ o( q+ I2 l9 Y8 B5 t' j用一個簡單的更新語句來說明log_sys以及ib_logfile的更新內容的過程。假設我們的更新只涉及到非索引的固定長度字段。0 {! e- }6 y/ M$ j
a) 在bufferpool中寫入undo log。 對於一個單一的語句,需要先創建一個undolog頭。8 e7 L  L* K  D7 |  }
b) 在bufferpool中寫入undo log的實際內容。+ M+ j0 d% Z: d' y  h
c) 在log_sys->buf中寫入buffer page的更新內容。此處保存了更新的完整信息。
  M0 x/ a4 f5 i9 b' k! X' a) ]d) 在log_sys->buf中寫入啟動事務(trx_prepare)的日誌
( r4 c( H% N, F, |/ A  T2 oe) 將c、d更新的log內容寫入ib_logfile中。
' q1 J! `# L7 Ef) 在log_sys->buf中寫入事務結束(trx_commit)的日誌+ {: ^3 M+ B  v5 P
g) 將f步驟的log內容寫入ib_logfile中。
* C7 T+ x# W9 H  d3 T  D, K9 O$ a
, K; Z/ k) U- i: W( z# l4、說明; P; ], a! L) f/ y" `: R$ U6 i
a) 完成上述所有操作時,數據文件還沒有更新。
5 u# L# V5 T; \$ p$ [+ z; o- yb) 每次寫入log_sys->buf時同時更新lsn和buf_free。 每次寫ib_logfile時同時更新written_to_all_lsn和buf_next_to_write;
0 Y  g  u6 g  \9 nc) 每次寫ib_logfile時以512字節為對齊,如需寫入600字節,則實際寫入1k。寫到最後一個文件末尾則從第一個文件重復使用。
$ Y, ~+ C* T# Q7 f: Yd) 從上述流程看到,在a~d過程中若出現異常關閉,由於沒有寫入到磁盤中,因此整個事務放棄;若在e剛完成時出現異常關閉,雖然事務內容已經寫盤,但沒有提交。在重啟恢復的時候,發現這個事務還沒有提交,邏輯上整個事務放棄。 (重啟日誌中會有Found 1 prepared transaction(s) in InnoDB字樣)。在g完成後出現異常關閉,則能夠在重啟恢復中正常提交。
: ^3 P6 T* O* a4 W+ O, v5 h- q; S- `$ L4 ]# N  @
在e和f之間會寫mysql的bin-log,若bin-log寫完前異常關閉,事務無效,bin-log寫入成功後,則異常重啟後能夠根據bin-log恢復事務的修改。5 Q- _; L0 ^/ E

# R5 }6 D  p/ J5 ~e) 若涉及到索引更新,在步驟c之後會增加索引更新的log。由於索引可能有merge過程,因此在merge過程中會另外增加寫入一個log。但事務完全提交仍在步驟g中。索引的更新由於已經寫盤,並不會因此丟失。

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2021-12-15 01:00:07 | 显示全部楼层
ib_logfile0 记录系统的回滚,重做日志。
. k- d6 ^: _9 @4 t- r: _4 M" g) t) G& ?1 l& c5 X
mysql-bin.000011 系统的所有更新记录。
9 q# q) c, \1 z+ B9 ]! u+ C; _/ U- z. @& K" B

% r! X2 T- z' O1 I2 U0 U如果需要更详细的则建议看一下数据库原理方面的教材,应该有一个章节讲这个redo,undo 日志的。   D7 B4 ^2 ^. o1 {. n* b; J- C8 `3 Y
,ib_logfile0是重做日志,记录的是文件的物理更改         ! E, l6 P; T9 O0 u) C% d; I; z
mysql-bin.000011是数据库更新日志  记录的是逻辑更改
+ m8 b( x8 A  H, E4 S: t" e3 g* y4 t/ Y) |& q5 R
,
2 n/ U& ]1 B# v) n# Y+ U" {ib_logfile0是重做日志,也就是 在你修改数据之前,会先把 修改的操作 作为日志先记录下来。# |# ?! r# h& O# c8 V- Z
        
# Z$ H$ H8 K; s6 D! \6 |mysql-bin.000011是二进制日志,格式是二进制的,但是这个日志更加有用,比如 在我们做 数据库的主从复制时,这个二进制日志就是关键,mysql会把日志发送到slave,salve会接收日志,然后解析日志,把里面的sql语句重新应用到数据库里,于是就能同步数据了。7 l# m/ g, c% U9 b5 P2 n0 ]% A% u; G
,ib_logfile0:记录的是redo log和undo log的信息,这里记录的基本是commit之前的数据。9 f/ a" F  e' p
3 F9 n0 h8 h0 Q% [2 ^5 Q7 U
mysql-bin.000011:记录的是已经执行完毕的对数据库的dml和ddl信息,这里记录的基本是commit之后的数据信息。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

返回首页|Archiver|手机版|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )

GMT+8, 2026-6-12 02:20 , Processed in 0.029086 second(s), 29 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表