找回密码
 注册
查看: 1396|回复: 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 恢复方法:0 i0 a2 A- z# W, U! |1 F
  w3 \) y( d6 W7 f% U- l% E
恢复的步骤和数据库版本没有太大关系。
& f; O- Z0 M& N2 F! R" U2 j在linux操作系统中,如果文件从操作系统级别别rm掉,之前打开的文件进程仍持有相应的文件句柄,
) d/ I6 y: r$ h" |所指向的文件仍然可以读写,且该文件的描述符可以从/proc目录中获得(不关闭MySQLd情况下).# k2 G' r: w" ]
/ Y/ M, }' }+ C0 E" V. a
在删除3个文件后,MySQLd 仍是可以运行,对外服务的,MySQL一只保持InnoDB文件打开,因此,  S2 I2 U7 f9 d# X
在工作中有必要监控文件是否存在。3 O& z6 E% S0 C4 q, H  @# K! W
发现文件被删除之后,不能重启InnoDB,因为启动InnoDB,检测到ibdata1,ib_logfile0,ib_logfile1
2 _# @7 H7 D0 j" ]- T8 E不存在,所以,将创建对应的空文件,InnoDB数据字典是空的,InnoDB无法使用原先存在的ibd文件,故,
) ]8 F  d$ \$ Y& XMySQL不重启,快速恢复删除的文件是可能的。' u( B9 a  s* M. S( \
7 y1 I# s0 H1 W  W! Z
在MySQLd运行过程中,ibdata1,ib_logfile0,ib_logfile1一直运行在& w# T/ Q4 [+ g1 W# |
/proc/mysql.pid/fd目录下,其中vm-mysql.pid是mysql进程的PID,获取方法:+ N& B3 p/ L3 V0 b2 v
[root@mysql ~]# ls -l /proc/$(cat /opt/mysql/data2/mysql.pid)/fd | grep -e ibdata -e ib_4 G& i/ T& ^& q, u. q
lrwx------ 1 root root 64 Oct 16 14:16 10 -> /opt/mysql/data2/ib_logfile1 (deleted)' b. m9 Z' A1 G* z5 h8 L
lrwx------ 1 root root 64 Oct 16 14:16 4 -> /opt/mysql/data2/ibdata1 (deleted)1 l" j8 B0 y( E. }
lrwx------ 1 root root 64 Oct 16 14:16 9 -> /opt/mysql/data2/ib_logfile0 (deleted)
6 w$ g5 j8 D7 g, S' {
$ G+ U% t7 X+ r! W, F但是,我们不能简单copy回源目录中,因在buffer pool有已经修改的页,这些页没有被写入磁盘,如果改变的页4 z4 g& ]9 i8 W: v( G' Y- y$ S# y. g
没有永久写入,数据将会丢失,这些导致数据损坏和丢失。8 t4 }" h( |1 k; c, L
同样原因,我们不能做MySQL备份,仅能coping那些文件。
% l' g1 |4 I1 f! W$ U; O因此,我们必须确保所有的修改全写入磁盘中。
; s5 h! F' ]- V( y! q! e/ w我们现在能做的阻止写,且等待InnoDB刷新所有的页。% l& X- a& q, c( H. o1 z' Y7 U+ ]
1.为了阻止写,我们要么停止应用程序或锁表。& N" }5 f% u' @! _* O8 B
MariaDB [(none)]> flush tables with read lock;, J' G  E3 f; x. N
Query OK, 0 rows affected (0.01 sec)" m5 B, R: y6 U; v& K# K) ^' X

" O/ I+ u" z% z5 K2. show engine innodb status 中脏页刷新到磁盘,
9 h( z3 i( x9 U4 I# K7 Z2 \5 ^---
) l2 _6 u) H+ w( h) ~, B) mLOG: n$ S% w; }/ G, g; {" x6 ]
---
  V5 }( D+ _% T7 G, MLog sequence number 0 50355
: ]! ]# N" |1 z) i2 L8 L3 I) _6 RLog flushed up to   0 50355
: u- g$ j" L+ B* @( P7 HLast checkpoint at  0 50355
. {7 g9 n0 n0 k7 V0 pending log writes, 0 pending chkp writes3 `: [1 [' S) J8 @- i2 \; j
39 log i/o's done, 0.00 log i/o's/second
% v& U! [2 l: Q( ]2 `/ P2 z1 r! [/ G' b8 M* x" l+ w2 c& Q7 T# c
加速脏页刷新,设置dirty pages percentage to zero:5 w) X) ^1 \. |" L4 n# a- ]
MariaDB [(none)]> set global innodb_max_dirty_pages_pct=0;" O6 F3 ?% t: _
Query OK, 0 rows affected (0.00 sec)
; I; m. O* Y+ U9 K! n0 V& p9 D% u6 O2 {: O% F0 {  M
3.确保所有后台进程已经完成自己的工作,也是重要的。* y. @, V7 K4 B3 T# Z% a
注意,插入缓冲线程,它的大小等于1) {& q0 k5 A* S5 J( _, ^
-------------------------------------
) s" I% K, K% H* B( M0 tINSERT BUFFER AND ADAPTIVE HASH INDEX
2 L( ?- `8 u  q-------------------------------------
! i2 f8 k) ]7 x0 H2 j) e& B& hIbuf: size 1, free list len 0, seg size 2,& E; C/ ]* ?- d& \- w0 v
0 inserts, 0 merged recs, 0 merges- f& B) D+ q1 T& d( g* R. F
Hash table size 34679, node heap has 1 buffer(s)
% }2 ^; v; I0 ?* O0.00 hash searches/s, 0.00 non-hash searches/s4 |, _/ g6 A; @' {# D
  [: O+ y9 t+ {5 m2 y5 F
4.后台写进程purge thread,清除所有事务。- t% f) g8 l* U; \
------------$ k& Q# P7 m* ]
TRANSACTIONS
, n0 Y. r  n7 i, I# p0 c9 u& ]------------
8 }7 I( I: X+ e/ a( Q9 Z1 r! @/ STrx id counter 0 784) F# C- o+ F# T! v7 |& q
Purge done for trx's n:o < 0 0 undo n:o < 0 0
0 U; K" `9 n0 ]0 P3 A6 ]但是,如果上次事务没有需要清理操作Trx id计数比较大(如,SELECT),
4 p; e9 m& O0 Z( p& V/ }: p: c' k在这种情况下,至少要保证InnoDB不再做任何写动作。
  p5 V8 s6 P! T* g3 P--------7 f5 v% U" D: Y0 s
FILE I/O
, p$ i9 g& ^2 a- ^2 ]8 {--------
4 o# M# s. t7 PI/O thread 0 state: waiting for i/o request (insert buffer thread)
# m, H' @4 \9 n, q8 \* qI/O thread 1 state: waiting for i/o request (log thread)
4 e  q" V, o$ c- X5 h" m$ R& M: @. tI/O thread 2 state: waiting for i/o request (read thread)
. R/ _: B# `) B/ a) k) eI/O thread 3 state: waiting for i/o request (write thread)1 l0 U9 K$ `. A, \
Pending normal aio reads: 0, aio writes: 0,
; h  z- Z- E, J# c" i0 J ibuf aio reads: 0, log i/o's: 0, sync i/o's: 01 \' s7 A- ]0 W. Z
Pending flushes (fsync) log: 0; buffer pool: 0  S' e2 g% {5 Y3 ~1 }6 A" I" T
0 OS file reads, 81 OS file writes, 59 OS fsyncs  f3 J) R- Q* L7 [0 X
0.00 reads/s, 0 avg bytes/read, 0.00 writes/s, 0.00 fsyncs/s- C6 V4 V- _4 \  j2 ]4 T4 B
' @- ~3 c6 z& g+ l0 `/ z
经历了4步,所有被修改脏页刷新到磁盘,现在开始copy InnoDB 文件到源目录:1 Z  r6 [) G. c" e! u
[root@mysql ~]# cp /proc/$(cat /opt/mysql/data2/mysql.pid)/fd/4 /opt/mysql/data2/ibdata1
9 ?$ V- A- N  O1 m[root@mysql ~]# cp /proc/$(cat /opt/mysql/data2/mysql.pid)/fd/9 /opt/mysql/data2/ib_logfile0
8 T6 k) B- V/ P3 H$ I( ?3 c/ X  y[root@mysql ~]# cp /proc/$(cat /opt/mysql/data2/mysql.pid)/fd/10 /opt/mysql/data2/ib_logfile1! ]9 P9 c1 L* O: g+ u
9 p# r4 R" ^- m: m2 G
5.修改ib*所属用户  T* q5 ~2 d- i  O# E- r% F2 U" o
chown -R mysql ib*
5 G- N, [: U# v: E) ^8 e7 M, l6 i  j7 @0 F' S
6.重启MySQLd3 F. G( j$ x/ @7 O6 G" ]
........) X3 S# t8 R$ [2 B; r; W) T. ^8 F' o. O
- {/ f# e! M( Y( o, [
结论:
, E* ?( }+ v0 U7 i% T1.监控InnoDB文件 ibdata 和 ib_logfile* 是否存在$ c* k8 E! x( A  i3 T/ B4 t
2.清楚恢复策略,否则不要重启MySQLd& ?% Q: Q+ @% D4 q  Q- i

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2021-12-15 01:00:04 | 显示全部楼层
于是再/ect/my.cnf中加入max_connections=1000    wait_timeout=5这两个配置" j0 j6 o/ ~( _" D' @
+ W' c' f" J: Q8 x% k7 W
1 g& h$ F1 P  ?" L; L+ _/ s( w

9 A( c0 I- [( ]9 e( Z2 a; E重启mysql,启动成功,但是项目却无法打开,又重新打开mysql日志发现他一直无休止的重启,百度搜了好多办法都不行
6 @9 K$ I; X+ `. J& i8 @0 {% ?+ n- l
后来看到这段配置
# `! e$ T# ^: |, y# l  L
( ^' G( E& \& s0 R4 a6 Q
. N% Z1 J9 X& D: S# v/ x8 k7 M2 |" s6 J3 h+ b
我想应该是因为文件问题导致ibdata1损坏了,然后从1 到6全部都试了一遍,效果却是然并卵
/ L" H. q5 j! e7 [, l
1 M% |4 R2 C/ G( t1 Y; V到最后是这样配置的; ]  S; s# L' Z, T3 `2 J6 g/ v1 s
) Q! M  s7 j  V- j% X# e. c2 q, B6 d
https://img-blog.csdn.net/20180511171205193?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dsX2FuZw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/708 {* K* B1 W+ H6 J% v6 r, X# l0 @

, k- ~/ k: ^1 Q) ]7 Q" A0 J然后重启mysql没有问题,然后打开项目发现还是访问不了,后来发现tomcat停了,重启tomcat,完美解决
) P, L3 ]7 V9 ]+ s

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2021-12-15 01:00:05 | 显示全部楼层
操作步骤:7 v! e& r& i5 m! x5 e  ]

1

主题

0

回帖

12

积分

管理员

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

概念:; C8 u' t4 s9 v, i/ T2 p2 N
事務日誌或稱redo日誌,在mysql中默認以ib_logfile0,ib_logfile1名稱存在,可以手工修改參數,調節開啟幾組日誌來服務於當前mysql數據庫,mysql采用順序,循環寫方式,每開啟一個事務時,會把一些相關信息記錄事務日誌中(記錄對數據文件數據修改的物理位置或叫做偏移量);
9 E' D/ d; ~$ C+ y這個系列文件個數由參數innodb_log_files_in_group控制,若設置為4,則命名為ib_logfile0~3。* m" F) H5 N# `$ K
這些文件的寫入是順序、循環寫的,logfile0寫完從logfile1繼續,logfile3寫完則logfile0繼續。
( f' l- Z$ `8 |& L- D# g) R0 \9 ~
+ _5 c4 V+ h$ {  O! H% t/ u* _作用:( m# T, k' a# T1 c- f0 R
在系統崩潰重啟時,作事務重做;在系統正常時,每次checkpoint時間點,會將之前寫入事務應用到數據文件中。
* `( l; r( Q% n$ I0 t8 S
- S5 i$ g" V: w. `8 nIb_logfile的checkpoint field
: @/ `1 o1 C+ s& K! Q實際上不僅要記錄checkpoint做到哪兒(LOG_CHECKPOINT_LSN),還要記錄用到了哪個位置(LOG_CHECKPOINT_OFFSET)等其他信息。所以在ib_logfile0的頭部預留了空間,用於記錄這些信息。
7 h5 T1 J1 ?6 h1 x9 `因此即使使用後面的logfile,每次checkpoint完成後,ib_logfile0都是要更新的。同時你會發現所謂的順序寫盤,也並不是絕對的
5 U+ n8 c, n3 o" g8 s) c3 D; S相關的一些數字" {1 Y1 m% l9 x4 d& J: f) Q# N
a) InnoDB留了兩個checkpoint filed,按照註釋的解釋,目的是為了能夠“write alternately”7 ?" m& l7 u6 v- J. ]
b) 每個checkpint field需要的大小空間為304字節。(相關定義在log0log.h)9 J" e( U- L9 Q/ K7 |
c) 第一個checkpoint的起始位置在ib_logfile0的第512字節(OS_FILE_LOG_BLOCK_SIZE)處;$ @2 c% x% ~/ Q/ E- W& n4 K
d) 第二個在1536 (3 * OS_FILE_LOG_BLOCK_SIZE)字節處。0 i  k" `5 ^) g( ?* u6 s  t1 Z

0 k* L8 l, f. P$ q7 f: N, ~# Z1 Z0 I; X( T& z
特點:% B9 U5 N, }1 d' r* a  \" A5 m! M
redo log只是記錄所有innodb表數據的變化。
. D+ L8 Z' P+ F6 ?8 s2 Sredo log只是記錄正在執行中的dml以及ddl語句。
( h, }/ X6 D$ ^" Bredo 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事務;不會出現主從庫不一致問題.+ q5 a3 A0 ?) r* \7 K8 e
相關參數(全局&靜態):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控制,稍後解釋,啟用大的事務日誌緩存,可以將完整運行大事務日誌,
% L, N  K' w! |8 L, s4 r9 k2 t% S暫時存放在事務緩存區中,不必(事務提交前)寫入磁盤保存,同時也起到節約磁盤空間占用;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能力足夠支持業務,如充值消費,敏感業務;

. u6 ?. K# N7 d, `
- o; W8 g' s. R

引入ib_logfile的寫入策略

1、基本概念( @5 N1 O4 m! i. ~" f
a)、ib_logfile文件個數由innodb_log_files_in_group配置決定,若為2,則在datadir目錄下有兩個文件,命令從0開始,分別為ib_logfile0和ib_logfile.
. x" }: q( ~" h$ ]b)、文件為順序寫入,當達到最後一個文件末尾時,會從第一個文件開始順序復用。
+ S% W  C$ V5 |$ p( j& A' `7 dc)、lsn: Log Sequence Number,是一個遞增的整數。 Ib_logfile中的每次寫入操作都包含至少1個log,每個log都帶有一個lsn。在內存page修復過程中,只有大於page_lsn的log才會被使用。
$ p3 n; I& Z) sd)、lsn的保存在全局變量log_sys中。遞增數值等於每個log的實際內容長度。即如果新增的一個log長度是len,則log_sys->lsn += len.% g( e9 p5 W& J' B; o
e)、ib_logfile每次寫入以512(OS_FILE_LOG_BLOCK_SIZE)字節為單位。實際寫入函數 log_group_write_buf (log/log0log.c)
  t% }1 c% b7 ?6 r3 F0 nf)、每次寫盤後是否flush,由參數innodb_flush_log_at_trx_commit控制。# g' h  m& ]. x6 B! w2 ]
  K$ `) D2 Q, N" D5 v( g) U

& f" V3 w7 V8 \7 w! ^1 _8 z  c* T2 o2、log_sys介紹
  p6 c+ z" {1 r0 Jlog_sys是一個全局內存結構。以下說明幾個成員的意義。% ~) @) Q4 @- G2 J0 @* h* |$ R

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時,說明內存中還有數據未寫盤。


* `* `: v. X( V6 ]+ b" y( x6 o, J1 T' n. x5 P) Y! x
( G2 U& G  r/ S+ k
3、相關更新
6 S5 T$ d6 M6 w8 v2 K* ^4 A用一個簡單的更新語句來說明log_sys以及ib_logfile的更新內容的過程。假設我們的更新只涉及到非索引的固定長度字段。3 B0 }% c$ D4 p' X6 K/ l
a) 在bufferpool中寫入undo log。 對於一個單一的語句,需要先創建一個undolog頭。
9 }3 m3 O/ [5 l3 i) K3 G1 Nb) 在bufferpool中寫入undo log的實際內容。
6 ~- m- S8 Q, Wc) 在log_sys->buf中寫入buffer page的更新內容。此處保存了更新的完整信息。
/ D3 r7 m7 ~9 f4 M5 q# v/ T: ?d) 在log_sys->buf中寫入啟動事務(trx_prepare)的日誌+ ?4 z% e6 y8 I: i; t) T! w0 ~
e) 將c、d更新的log內容寫入ib_logfile中。
% r" ]7 c  _& h' a% Z7 Af) 在log_sys->buf中寫入事務結束(trx_commit)的日誌; `- S/ J% _! O( G1 w) h
g) 將f步驟的log內容寫入ib_logfile中。
  T0 b* f5 a) j  |  V( R  b  G+ d$ y
8 B$ j7 H0 n' j" Q, ^7 S/ O4、說明
( z- S0 m1 F; Xa) 完成上述所有操作時,數據文件還沒有更新。
3 f1 L0 c% a! f' o" r) jb) 每次寫入log_sys->buf時同時更新lsn和buf_free。 每次寫ib_logfile時同時更新written_to_all_lsn和buf_next_to_write;5 c& x% C9 d0 J0 ]( m& C
c) 每次寫ib_logfile時以512字節為對齊,如需寫入600字節,則實際寫入1k。寫到最後一個文件末尾則從第一個文件重復使用。
. G; v% o* c' l% x( ad) 從上述流程看到,在a~d過程中若出現異常關閉,由於沒有寫入到磁盤中,因此整個事務放棄;若在e剛完成時出現異常關閉,雖然事務內容已經寫盤,但沒有提交。在重啟恢復的時候,發現這個事務還沒有提交,邏輯上整個事務放棄。 (重啟日誌中會有Found 1 prepared transaction(s) in InnoDB字樣)。在g完成後出現異常關閉,則能夠在重啟恢復中正常提交。
& |+ r" `5 l5 s' Z7 B
! _0 n/ X7 ?; y7 Z$ Y" `0 U$ |在e和f之間會寫mysql的bin-log,若bin-log寫完前異常關閉,事務無效,bin-log寫入成功後,則異常重啟後能夠根據bin-log恢復事務的修改。
- C. s. Q2 K: O
) a6 [+ @2 u1 L+ _e) 若涉及到索引更新,在步驟c之後會增加索引更新的log。由於索引可能有merge過程,因此在merge過程中會另外增加寫入一個log。但事務完全提交仍在步驟g中。索引的更新由於已經寫盤,並不會因此丟失。

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2021-12-15 01:00:07 | 显示全部楼层
ib_logfile0 记录系统的回滚,重做日志。
) W' ]  o8 ~2 @6 O4 s. B% A6 Q+ b2 i7 Q. A8 z. s
mysql-bin.000011 系统的所有更新记录。7 A6 [; W1 _& i2 D) h* R
" q9 e" G( j  c, ]
3 f$ [  E+ p1 ?& T" M$ Q
如果需要更详细的则建议看一下数据库原理方面的教材,应该有一个章节讲这个redo,undo 日志的。
, _9 i# m7 z# q/ e,ib_logfile0是重做日志,记录的是文件的物理更改         2 a. w4 R4 }! a% `  O4 P) h
mysql-bin.000011是数据库更新日志  记录的是逻辑更改6 A9 Z1 _% e( v5 U0 `3 \
6 E+ g4 g, l5 C; a; v% A0 ~
,, n! L( l) W2 }# U% r
ib_logfile0是重做日志,也就是 在你修改数据之前,会先把 修改的操作 作为日志先记录下来。6 H; [4 e/ ]  d4 }# ~
        & S1 Y! I0 M5 i. t2 f7 F7 H
mysql-bin.000011是二进制日志,格式是二进制的,但是这个日志更加有用,比如 在我们做 数据库的主从复制时,这个二进制日志就是关键,mysql会把日志发送到slave,salve会接收日志,然后解析日志,把里面的sql语句重新应用到数据库里,于是就能同步数据了。1 v" K+ G3 `2 k6 D: r" i
,ib_logfile0:记录的是redo log和undo log的信息,这里记录的基本是commit之前的数据。
. A0 W# X% @1 C# i+ n
- D7 I3 b3 W  t2 c0 d$ v) wmysql-bin.000011:记录的是已经执行完毕的对数据库的dml和ddl信息,这里记录的基本是commit之后的数据信息。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-12 02:28 , Processed in 0.030488 second(s), 28 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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