MySQL ç Binlog è®°å½ç MySQL æ°æ®åºçææåæ´ä¿¡æ¯ï¼äºè§£ Binlog çç»æå¯ä»¥å¸®å©æ们解æBinlogï¼çè³å¯¹ Binlog è¿è¡ä¸äºä¿®æ¹ï¼æè
说æ¯â篡æ¹âï¼ä¾å¦å®ç°ç±»ä¼¼äº Oracle ç flashback çåè½ï¼æ¢å¤è¯¯å é¤çè®°å½ï¼æ update çè®°å½åè¿ååå»çãæ¬æå°å¸¦æ¨æ¢è®¨ä¸ä¸è¿äºç¥å¥åè½çå®ç°ï¼æ¨ä¼åç°æ¯æ¨æ³è±¡å°è¦ç®åå¾å¤ãæ¬ææç Binlog æ¯ ROW 模å¼ç Binlogï¼è¿ä¹æ¯ MySQL 8 éçé»è®¤æ¨¡å¼ï¼STATEMENT 模å¼å 为使ç¨ä¸æå¾å¤éå¶ï¼ç°å¨ç¨å¾è¶æ¥è¶å°äºã
Binlog ç±äºä»¶ï¼eventï¼ç»æï¼è¯·æ³¨ææ¯äºä»¶ï¼eventï¼ä¸æ¯äºå¡ï¼transactionï¼ï¼ä¸ä¸ªäºå¡å¯ä»¥å
å«å¤ä¸ªäºä»¶ãäºä»¶æ述对æ°æ®åºçä¿®æ¹å
容ã
ç°å¨æ们已ç»äºè§£äº Binlog çç»æï¼æ们å¯ä»¥è¯çä¿®æ¹ Binlog éçæ°æ®ãä¾å¦åé¢ä¸¾ä¾ç Binlog å é¤äºä¸æ¡è®°å½ï¼æ们å¯ä»¥è¯çæè¿æ¡è®°å½æ¢å¤ï¼Binlog éé¢æ个å é¤è¡ï¼DELETE_ROWS_EVENTï¼çäºä»¶ï¼å°±æ¯è¿ä¸ªäºä»¶å é¤äºè®°å½ï¼è¿ä¸ªäºä»¶ååè¡ï¼WRITE_ROWS_EVENTï¼çäºä»¶çæ°æ®ç»ææ¯å®å
¨ä¸æ ·çï¼åªæ¯å é¤è¡äºä»¶çç±»åæ¯ 32ï¼åè¡äºä»¶çç±»åæ¯ 30ï¼æ们æ对åºç Binlog ä½ç½®ç 32 æ¹æ 30 å³å¯æå·²ç»å é¤çè®°å½åæå
¥åå»ãä»åé¢ç âshow binlog eventsâ éé¢å¯çå°è¿ä¸ª DELETE_ROWS_EVENT æ¯ä»ä½ç½® 378 å¼å§çï¼è¿éçä½ç½®å°±æ¯ Binlog æ件çå®é
ä½ç½®ï¼ä»¥åè为åä½ï¼ãä»äºä»¶ï¼eventï¼çç»æéé¢å¯ä»¥çå° type_code æ¯å¨ event ç第 5 个åèï¼æ们å个 Python å°ç¨åºææ第383ï¼378+5=383ï¼åèæ¹æ 30 å³å¯ãå½ç¶æ¨ä¹å¯ä»¥ç¨äºè¿å¶ç¼è¾å·¥å
·æ¥æ¹ã
æ¾åº Binlog ä¸ç大äºå¡
ç±äº ROW 模å¼ç Binlog æ¯æ¯ä¸ä¸ªåæ´é½è®°å½ä¸æ¡æ¥å¿ï¼å æ¤ä¸ä¸ªç®åç SQLï¼å¨ Binlog éå¯è½ä¼äº§çä¸ä¸ªå·¨æ é¸çäºå¡ï¼ä¾å¦ä¸ä¸ªä¸å¸¦ where ç update æ delete è¯å¥ï¼ä¿®æ¹äºå
¨è¡¨éé¢çææè®°å½ï¼æ¯æ¡è®°å½é½å¨ Binlog éé¢è®°å½ä¸æ¬¡ï¼ç»ææ¯ä¸ä¸ªå·¨å¤§çäºå¡è®°å½ãè¿æ ·ç大äºå¡ç»å¸¸æ¯äº§ç麻ç¦çæ ¹æºãæçä¸ä¸ªå®¢æ·æä¸æ¬¡åææ±æ¨ï¼ä¸ä¸ª Binlog åæ»ï¼æ»äºä¸¤å¤©ä¹æ²¡æå¨éï¼ææé£ä¸ª Binlog 解æäºä¸ä¸ï¼åç°éé¢æ个äºå¡äº§çäº 1.4G çè®°å½ï¼ä¿®æ¹äº 66 ä¸æ¡è®°å½ï¼ä¸é¢æ¯ä¸ä¸ªç®åçæ¾åº Binlog ä¸å¤§äºå¡ç Python å°ç¨åºï¼æ们ç¥éç¨ mysqlbinlog 解æç Binlogï¼æ¯ä¸ªäºå¡é½æ¯ä»¥ BEGIN å¼å¤´ï¼ä»¥ COMMIT ç»æãæ们æ¾åº BENGIN åé¢ç â# atâ çä½ç½®ï¼æ£æ¥ COMMIT åé¢ç â# atâ ä½ç½®ï¼è¿ä¸¤ä¸ªä½ç½®ç¸åå³å¯è®¡ç®åºè¿ä¸ªäºå¡ç大å°ï¼ä¸é¢æ¯è¿ä¸ª Python ç¨åºçä¾åã
åå² Binlog ä¸ç大äºå¡
对äºå¤§çäºå¡ï¼MySQL ä¼æå®å解æå¤ä¸ªäºä»¶ï¼æ³¨æä¸ä¸ªæ¯äºå¡ TRANSACTIONï¼å¦ä¸ä¸ªæ¯äºä»¶ EVENTï¼ï¼äºä»¶ç大å°ç±åæ° binlog-row-event-max-size å³å®ï¼è¿ä¸ªåæ°é»è®¤æ¯ 8Kãå æ¤æ们å¯ä»¥æè¥å¹²ä¸ªäºä»¶åå²æä¸ä¸ªåç¬çç¥å°çäºå¡
ROW 模å¼ä¸ï¼å³ä½¿æ们åªæ´æ°äºä¸æ¡è®°å½çå
¶ä¸æ个å段ï¼ä¹ä¼è®°å½æ¯ä¸ªå段åæ´ååçå¼ï¼è¿ä¸ªè¡ä¸ºæ¯ binlog_row_image åæ°æ§å¶çï¼è¿ä¸ªåæ°æ 3 个å¼ï¼é»è®¤ä¸º FULLï¼ä¹å°±æ¯è®°å½åçææä¿®æ¹ï¼å³ä½¿å段没æåçåæ´ä¹ä¼è®°å½ãè¿æ ·æ们就å¯ä»¥å®ç°ç±»ä¼¼ Oracle ç flashback çåè½ï¼æ个人估计 MySQL æªæ¥ççæ¬ä»å¯è½ä¼åºäº Binlog æ¨åºè¿æ ·çåè½ã
äºè§£äº Binlog çç»æï¼åå ä¸ Python è¿æç士ååï¼æ们è¿å¯ä»¥å®ç°å¾å¤åè½ï¼ä¾å¦æ们å¯ä»¥ç»è®¡åªä¸ªè¡¨è¢«ä¿®æ¹å°æå¤ï¼æ们è¿å¯ä»¥æ Binlog åå²æä¸æ®µä¸æ®µçï¼ç¶ååéç»ï¼å¯ä»¥çµæ´»å°è¿è¡ MySQL æ°æ®åºçä¿®æ¹åè¿ç§»çå·¥ä½ã
温馨提示:答案为网友推荐,仅供参考