日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql增量备份具体步骤_记一次mysql全量备份、增量备份的学习过程

發布時間:2024/9/3 数据库 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql增量备份具体步骤_记一次mysql全量备份、增量备份的学习过程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

增量備份依賴于全量備份,因此首先要有全量備份,在全量備份的基礎上,添加增量備份。

為了方便操作,我們先來做些準備工作。在客戶端直接輸入mysql、mysqldump、mysqladmin、mysqlbinlog。看是否能直接出來。

[root@develop mysqlbackup]# mysql

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection idis 15Server version:5.7.20-log MySQL Community Server (GPL)**********mysql>

[root@develop mysqlbackup]# mysqldump

Usage: mysqldump [OPTIONS] database [tables]

OR mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]

OR mysqldump [OPTIONS] --all-databases [OPTIONS]

如果提示 :未找到命令,我們可以創建軟鏈接

# /usr/local/mysql/ 為mysql的安裝路徑

[root@develop ~]# ln -s /usr/local/mysql/bin/mysql /usr/bin

[root@develop ~]# ln -s /usr/local/mysql/bin/mysqladmin /usr/bin

好了,接下來,我們將正式進入話題。

第一步 :修改my.cnf

(1)添加如下配置

# log_bin為增量備份位置,我這里設置為/var/mysqlbackup/,binlog是它的文件名

log_bin=/var/mysqlbackup/binlog

# server-id 必須要有,可以任意賦值。如果缺失,則無法啟動服務。

server-id=127

(2)修改完之后,重啟服務,使其生效,生效后,會有下列兩個初始化文件

第二步:建立全量備份

mysqldump -uroot -p --all-databases --flush-logs --delete-master-logs --single-transaction -R > /data/mysqlfullbackup/prm1.sql -- 數據全量備份

說明:

/data/mysql/backups/prm1.sql??存放路徑,自定義

-u 賬戶???????????? -p 密碼

--all-databases, -A??? 轉儲所有數據庫中的所有表。會帶有CREATE DATABASE 語句。

--databases?? -B?????????? 第一個名稱參數視為數據庫名稱

--tables??????????????????????? 表名

--add-drop-database? 在每個CREATE DATABASE語句之前添加DROP DATABASE語句

--flush-logs, -F ? ? ? ?? 在開始轉儲之前刷新MySQL服務器日志文件。

--delete-master-logs?? 刪除前面二進制日志。此選項自動啟用?--master-data。此參數可加可不加

--single-transaction??? 此選項將事務隔離模式設置為,?REPEATABLE READ并START TRANSACTION在轉儲數據之前將SQL語句發送到服務器。它僅對事務表有用,例如InnoDB

--routines,?-R?????????? 在輸出中包含轉儲數據庫的存儲例程(過程和函數)

-E,? --events????????????? 任務

下面開始測試

第三步,往一個表里面增加數據、刪除數據

(1)先建一個測試表,有以下原始數據

(2)先添加一些記錄

(3)刪除一些記錄

第四步:刷新日志

由于恢復全量備份的操作會存在日志里,所以先刷新日志,這樣恢復全量備份的操作會存在新的日志里,有利于跟前面的增量備份區分開來

使用以下語句

mysqladmin -uroot -p flush-logs;

或者

[root@develop ~]# mysql

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection idis 42.....................mysql>flush logs;

Query OK,0 rows affected (0.14 sec)

第五步:恢復全量備份

mysql -uroot -p < /data/mysql/backups/prm1.sql

此步操作有點慢,耐心等候,完成后,我們查看表,已經還原到初始狀態

第六步:增量備份還原

(1)查看日志

①將其轉化為sql文件

mysqlbinlog --base64-output=decode-rows -vv binlog.000002 > temp.sql

--base64-output使用base-64編碼打印二進制日志條目,decode-rows

--verbose重建行事件并將其顯示為注釋的SQL語句。如果給出此選項兩次(通過傳入“-vv”或“--verbose --verbose”),則輸出包括用于指示列數據類型和一些元數據的注釋,以及如果已配置的行查詢日志事件。

②找位置和時間節點

找自己想恢復的某個點,我這里找到最后一個插入語句節點

③恢復節點

mysqlbinlog --stop-datetime="2019-01-11 11:10:54" binlog.000002 | mysql -uroot -p

mysqlbinlog--stop-position=1449 binlog.000002 | mysql -uroot -p

--start-datetime 在時間戳等于或晚于datetime參數的第一個事件處開始讀取二進制日志

--start-position 在位置等于或大于的第一個事件處開始讀取二進制日志

--stop-datetime 在時間戳等于或晚于datetime參數的第一個事件處停止讀取二進制日志

--stop-position 在位置等于或大于的第一個事件處停止讀取二進制日志

恢復后面的

mysqlbinlog --start-position=1449 binlog.000002 | mysql -uroot -p

最后一步:flush logs 刷新日志,開始新的操作

知識點:

要查看所有二進制日志文件的列表,請使用以下語句:

mysql> SHOW BINARYLOGS;

要確定當前二進制日志文件的名稱,請發出以下語句:

mysql> SHOW MASTER STATUS;

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的mysql增量备份具体步骤_记一次mysql全量备份、增量备份的学习过程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。