通過binlog日誌查表資料缺少原因

2021-08-20 17:23:48 字數 1118 閱讀 5305

在做乙個ecstore專案的時候 

同事修改了一些東西  等到拉下來** 什麼時候cmd update後  什麼時候再登會員登不上了  許可權不正確  修改完新密碼 

一看這塊兒  sdb_b2c_members 表getlist不到資料導致的 再看表裡確實沒有我這個會員的資料了 

sdb_pam_members表裡是有的  同事說是應該是我們刪除了 自己確定沒有刪除過的  於是決定去查下mysql binlog日誌

進入mysql

這樣展示出來很多  看著不太方便

使用mysqlbinlog導到檔案中檢視搜尋會很方便 其中-d 是選擇哪個資料庫 可以不加 -d ecstore

sudo mysqlbinlog --start-datetime="2018-06-12 12:00:00" --stop-datetime='2018-06-12 23:00:00' -d ecstore /data/mysql/3306/localhost-bin.000030 > mysqlbin0613.log

然後檢視檔案 搜尋`sdb_b2c_members`

發現/*!*/;

# at 3274657

#180612 16:03:36 server id 1  end_log_pos 3274823 crc32 0x324a9e3e

query

thread_id=2137

exec_time=0

error_code=0

set timestamp=1528812216/*!*/;

alter ignore table `sdb_b2c_members` add unique index ind_company_name(`company_name`)

/*!*/;

cmd update時執行這條sql 有ignore的話 如果表中有多條相同的company_name會自動只保留一條 其它都乾掉 

所以sdb_b2c_members表裡 缺少了很多條會員資料

Mysql通過binlog檢視sql日誌

cd usr local mysql bin mysqlbinlog base64 output decode rows start datetime 2020 11 06 16 15 00 stop datetime 2020 11 06 16 42 00 desktop mysql bin.10...

通過binlog日誌來恢復誤刪資料時報錯

在mysql5.7的版中使用了gtid複製,可以多執行緒複製,同時也省去了記binlog起始點的煩惱 但是在一次測試環境中通過binlog日誌來恢復誤刪資料時卻耗了不少時間 root mysql 01 tmp mysqlbinlog no defaults mysql bin.000018 star...

MySQL 通過 binlog 恢復資料

通過了解 binlog 日誌的相關配置,簡單掌握通過 binlog 對資料庫進行資料恢復操作 任何成熟軟體都會有一套成熟的日誌系統,當軟體出現問題時,這些日誌就是查詢問題 的寶庫。同樣,mysql 也不例外,也會有一系列日誌記錄 mysql 的執行狀態。mysql 主要有以下幾種日誌 這些日誌均需要...