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全量备份、增量备份的学习过程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql更新数据索引慢_mysql添加
- 下一篇: ubuntu mysql 迁移_(最新)