日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

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

發(fā)布時(shí)間:2024/9/3 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql增量备份具体步骤_记一次mysql全量备份、增量备份的学习过程 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

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

為了方便操作,我們先來做些準(zhǔn)備工作。在客戶端直接輸入mysql、mysqldump、mysqladmin、mysqlbinlog??词欠衲苤苯映鰜怼?/p>

[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]

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

# /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

好了,接下來,我們將正式進(jìn)入話題。

第一步 :修改my.cnf

(1)添加如下配置

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

log_bin=/var/mysqlbackup/binlog

# server-id 必須要有,可以任意賦值。如果缺失,則無法啟動(dòng)服務(wù)。

server-id=127

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

第二步:建立全量備份

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

說明:

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

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

--all-databases, -A??? 轉(zhuǎn)儲(chǔ)所有數(shù)據(jù)庫中的所有表。會(huì)帶有CREATE DATABASE 語句。

--databases?? -B?????????? 第一個(gè)名稱參數(shù)視為數(shù)據(jù)庫名稱

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

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

--flush-logs, -F ? ? ? ?? 在開始轉(zhuǎn)儲(chǔ)之前刷新MySQL服務(wù)器日志文件。

--delete-master-logs?? 刪除前面二進(jìn)制日志。此選項(xiàng)自動(dòng)啟用?--master-data。此參數(shù)可加可不加

--single-transaction??? 此選項(xiàng)將事務(wù)隔離模式設(shè)置為,?REPEATABLE READ并START TRANSACTION在轉(zhuǎn)儲(chǔ)數(shù)據(jù)之前將SQL語句發(fā)送到服務(wù)器。它僅對(duì)事務(wù)表有用,例如InnoDB

--routines,?-R?????????? 在輸出中包含轉(zhuǎn)儲(chǔ)數(shù)據(jù)庫的存儲(chǔ)例程(過程和函數(shù))

-E,? --events????????????? 任務(wù)

下面開始測試

第三步,往一個(gè)表里面增加數(shù)據(jù)、刪除數(shù)據(jù)

(1)先建一個(gè)測試表,有以下原始數(shù)據(jù)

(2)先添加一些記錄

(3)刪除一些記錄

第四步:刷新日志

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

使用以下語句

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)

第五步:恢復(fù)全量備份

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

此步操作有點(diǎn)慢,耐心等候,完成后,我們查看表,已經(jīng)還原到初始狀態(tài)

第六步:增量備份還原

(1)查看日志

①將其轉(zhuǎn)化為sql文件

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

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

--verbose重建行事件并將其顯示為注釋的SQL語句。如果給出此選項(xiàng)兩次(通過傳入“-vv”或“--verbose --verbose”),則輸出包括用于指示列數(shù)據(jù)類型和一些元數(shù)據(jù)的注釋,以及如果已配置的行查詢?nèi)罩臼录?/p>

②找位置和時(shí)間節(jié)點(diǎn)

找自己想恢復(fù)的某個(gè)點(diǎn),我這里找到最后一個(gè)插入語句節(jié)點(diǎn)

③恢復(fù)節(jié)點(diǎn)

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 在時(shí)間戳等于或晚于datetime參數(shù)的第一個(gè)事件處開始讀取二進(jìn)制日志

--start-position 在位置等于或大于的第一個(gè)事件處開始讀取二進(jìn)制日志

--stop-datetime 在時(shí)間戳等于或晚于datetime參數(shù)的第一個(gè)事件處停止讀取二進(jìn)制日志

--stop-position 在位置等于或大于的第一個(gè)事件處停止讀取二進(jìn)制日志

恢復(fù)后面的

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

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

知識(shí)點(diǎn):

要查看所有二進(jìn)制日志文件的列表,請(qǐng)使用以下語句:

mysql> SHOW BINARYLOGS;

要確定當(dāng)前二進(jìn)制日志文件的名稱,請(qǐng)發(fā)出以下語句:

mysql> SHOW MASTER STATUS;

與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。