最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

利用MyFlash實現(xiàn)MySQL數(shù)據(jù)閃回的操作指南

 更新時間:2024年06月21日 09:08:58   作者:逢生博客  
MySQL數(shù)據(jù)閃回是一種高級功能,它允許你在數(shù)據(jù)庫中恢復到某個特定的時間點,通常是事務開始或保存點的狀態(tài),以便處理數(shù)據(jù)錯誤或回滾意外更改,本文給大家介紹了如何利用MyFlash實現(xiàn)MySQL數(shù)據(jù)閃回,需要的朋友可以參考下

Github

MyFlash 限制

僅支持 5.6 與 5.7

binlog 格式必須為 row,且 binlog_row_image=full

只能回滾DML(增、刪、改

MySQL 準備

注: 本章 MySQL 是采用 Docker 部署,容器內是 不帶mysqlbinlog 的,可以從已安裝 MySQL 的Linux服務器上拷貝 mysqlbinlog 文件。

開啟 binlog

[mysqld]
# binlog功能
log_bin=/var/lib/mysql/mysql-bin
# binlog 文件格式
binlog_format=ROW
binlog_row_image=FULL
# binlog 文件保留時間7天(默認0天)
expire_logs_days=7
# binlog 單個文件的最大值大?。J1G)
max_binlog_size=512m
# 開啟 binlog 后需要創(chuàng)建 function 或 procedure 時要開啟
log_bin_trust_function_creators=1
# 服務id,以區(qū)分主庫和備庫
server-id=1
-- 顯示是否開啟 binlog
show variables like 'log_bin%';
-- 顯示 binlog 文件格式
show variables like 'binlog_format%';
-- 顯示 binlog 文件保留時間
show variables like 'expire_logs_days%';
-- 顯示 binlog 單個文件的最大值大小
show variables like 'max_binlog_size%';
-- 顯示 binlog 事件
show binlog events;
-- 顯示全部 binlog 文件列表
show binary logs;
show master logs;
-- 顯示最新 binlog 文件編號以及最后一個操作事件結束點(Position)值
show master status;
-- 結束當前 binlog 文件并生成新的 binlog 文件
flush logs;
-- 重置 binlog 文件(清空全部 biglog 文件)
reset master;

注: binlog 默認存放在 /var/lib/mysql/ 數(shù)據(jù)庫文件目錄。

mysqlbinlog

  • 查看 Linux 環(huán)境下 mysqlbinlog 目錄
# /usr/bin/mysqlbinlog
whereis mysqlbinlog
  • 將 mysqlbinlog 文件復制到容器內的 /usr/bin 目錄
docker cp mysqlbinlog mysql:/usr/bin
# 進入容器內
docker exec -it mysql /bin/bash
# 在容器內為 mysqlbinlog 添加權限
chmod +x /usr/bin/mysqlbinlog
  • 使用 mysqlbinlog 生成 sql 文件
# 進入容器內執(zhí)行
mysqlbinlog --no-defaults --base64-output=DECODE-ROWS -v /var/lib/mysql/mysql-bin.000001 >/tmp/binlog-000001.sql
# 進入容器內執(zhí)行
mysqlbinlog --no-defaults \
--database=db_name \
--start-datetime='2024-06-20 00:00:00' \
--stop-datetime='2024-06-20 17:00:00' \
/var/lib/mysql/mysql-bin.000001 >/tmp/binlog-000001.sql

安裝 MyFlash

  • 安裝依賴
# 安裝 gcc glib-2.0
yum install -y gcc libgnomeui-devel
# 驗證是否安裝成功
pkg-config --modversion glib-2.0
  • 安裝MyFlash
# 下載源碼
git clone https://github.com/Meituan-Dianping/MyFlash.git
cd MyFlash
# 動態(tài)編譯鏈接安裝
gcc -w `pkg-config --cflags --libs glib-2.0` source/binlogParseGlib.c -o binary/flashback
  • 配置環(huán)境變量
vim /etc/profile
# 在文件末尾添加
alias flashback=~/MyFlash/binary/flashback
source /etc/profile
  • 驗證是否安裝成功
cd ~/MyFlash/binary
./flashback --help

flashback 選項

選項說明
–databaseNamesdatabaseName to apply. if multiple, seperate by comma(,)
–tableNamestableName to apply. if multiple, seperate by comma(,)
–tableNames-filetableName to apply. if multiple, seperate by comma(,)
–start-positionstart position
–stop-positionstop position
–start-datetimestart time (format %Y-%m-%d %H:%M:%S)
–stop-datetimestop time (format %Y-%m-%d %H:%M:%S)
–sqlTypessql type to filter . support INSERT, UPDATE ,DELETE. if multiple, seperate by comma(,)
–maxSplitSizemax file size after split, the uint is M
–binlogFileNamesbinlog files to process. if multiple, seperate by comma(,)
–outBinlogFileNameBaseoutput binlog file name base
–logLevellog level, available option is debug,warning,error
–include-gtidsgtids to process. if multiple, seperate by comma(,)
–include-gtids-filegtids to process. if multiple, seperate by comma(,)
–exclude-gtidsgtids to skip. if multiple, seperate by comma(,)
–exclude-gtids-filegtids to skip. if multiple, seperate by comma(,)

生成回滾文件

# 進入MyFlash的bin目錄
cd ~/MyFlash/binary
# 生成回滾文件,執(zhí)行后會在當前目錄下生成 binlog_output_base.flashback 文件
./flashback --sqlTypes='INSERT' \
--binlogFileNames=/var/lib/mysql/mysql-bin.000001 \
--databaseNames=db_name \
--tableNames=table_name \
--start-datetime='2024-06-20 18:23:00'

執(zhí)行回滾操作

# 在binlog_output_base.flashback所在目錄下執(zhí)行以下命令
mysqlbinlog binlog_output_base.flashback | mysql -h 127.0.0.1 -uroot -p
# 或
mysqlbinlog binlog_output_base.flashback | mysql -uroot -p
# 輸入數(shù)據(jù)庫密碼

到此這篇關于利用MyFlash實現(xiàn)MySQL數(shù)據(jù)閃回的操作指南的文章就介紹到這了,更多相關MyFlash MySQL數(shù)據(jù)閃回內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • MySQL5.6.22 綠色版 安裝詳細教程(圖解)

    MySQL5.6.22 綠色版 安裝詳細教程(圖解)

    本文通過圖文并茂的形式給大家介紹了MySQL5.6.22 綠色版 安裝詳細教程,非常不錯,具有一定的參考借鑒價值,感興趣的朋友一起看看吧
    2016-11-11
  • win10下完全卸載+重裝MySQL步驟詳解

    win10下完全卸載+重裝MySQL步驟詳解

    小編是因為連接MySQL和Qt時出現(xiàn)問題,迫不得已選擇把64bitMySQL換成了32bitMySQL,在安裝過程中出現(xiàn)各種問題,下面小編把 win10下完全卸載+重裝MySQL步驟分享到腳本之家平臺,需要的朋友參考下
    2017-12-12
  • 聊聊QT添加MySQL驅動依賴的問題

    聊聊QT添加MySQL驅動依賴的問題

    這篇文章主要介紹了QT添加MySQL驅動依賴的問題,本文通過圖文實例代碼相結合給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-02-02
  • mysql 全文檢索中文解決方法及實例代碼

    mysql 全文檢索中文解決方法及實例代碼

    這篇文章主要介紹了mysql 全文檢索中文解決方法及實例代碼的相關資料,需要的朋友可以參考下
    2017-02-02
  • MySQL各個特殊時間段的查詢方法

    MySQL各個特殊時間段的查詢方法

    在MySQL數(shù)據(jù)庫中,經常需要查詢某個時間段內的數(shù)據(jù),所以本文給大家介紹了MySQL各個特殊時間段的查詢方法,并提供相應的源代碼示例,具有一定的參考借鑒價值,需要的朋友可以參考下
    2024-01-01
  • MYSQL查看表是否被鎖以及解鎖過程

    MYSQL查看表是否被鎖以及解鎖過程

    這篇文章主要介紹了MYSQL查看表是否被鎖以及解鎖過程,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-10-10
  • mysql jdbc連接步驟及常見參數(shù)

    mysql jdbc連接步驟及常見參數(shù)

    這篇文章主要介紹了mysql jdbc連接步驟及常見參數(shù),需要的朋友可以參考下
    2015-09-09
  • Mysql動態(tài)更新數(shù)據(jù)庫腳本的示例講解

    Mysql動態(tài)更新數(shù)據(jù)庫腳本的示例講解

    今天小編就為大家分享一篇關于Mysql動態(tài)更新數(shù)據(jù)庫腳本的示例講解,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • MYSQL復雜查詢練習題以及答案大全(難度適中)

    MYSQL復雜查詢練習題以及答案大全(難度適中)

    在我們學習mysql數(shù)據(jù)庫時需要一些題目進行練習,下面這篇文章主要給大家介紹了關于MYSQL復雜查詢練習題以及答案的相關資料,文中通過實例代碼介紹的非常詳細,這些練習題難度適中,需要的朋友可以參考下
    2022-08-08
  • MySQL中WITH ROLLUP的具體使用

    MySQL中WITH ROLLUP的具體使用

    本文主要介紹了MySQL中WITH ROLLUP的具體使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2025-07-07

最新評論

饶河县| 云龙县| 都匀市| 安泽县| 准格尔旗| 平阴县| 义马市| 阜宁县| 诸城市| 荥经县| 平顶山市| 余江县| 五寨县| 贺兰县| 恩平市| 尤溪县| 离岛区| 乐至县| 缙云县| 顺昌县| 孟连| 呼图壁县| 康马县| 松阳县| 永靖县| 盱眙县| 雷山县| 武川县| 潜江市| 上栗县| 府谷县| 新巴尔虎右旗| 青岛市| 察雅县| 石门县| 时尚| 上饶县| 越西县| 深水埗区| 高淳县| 竹溪县|