mysql 備份與恢復 全量與增量

2021-07-30 17:39:55 字數 2255 閱讀 2137

全量備份使用自帶的mysqldump命令

備份命令

mysqldump -u[username] -p[password]  [database] [table] > backup.sql

恢復命令

mysql -u[username] -p[password] [database] < backuo.sql

注意恢復命令是mysql不是mysqldump了。

增量備份與恢復

我們開啟日誌功能,在進行備份後,在指定目錄下會產生當次備份後所有操作的日誌,通過這個日誌,可以把全量備份後所進行的操作所改變的資料狀態恢復出來。

1.在 /etc/mysql 下的my.conf 配置檔案中。找到log_bin語句,並取點前面的注釋符號。

#log_bin = /var/log/mysql/mysql-bin.log

2.使用一下命令進行備份

mysqldump -u[username] -p[password] --single-transaction --flush-logs --master-data=2  [database] [table] > backup.sql

single-transaction的作用是在乙個事務裡對全部表取得一致性快照來保證事務的一致性。

master-data=2 主要是記錄binlogde log 和pos,用於之後基於位置和時間點的恢復。

執行了上面這條命令之後,同樣會得到乙個backup.sql的備份檔案,另外在目錄/var/log/mysql/下面會有日誌檔案生成。

例如,在我的目錄下生成了名為 「mysql-bin.000005」 的二進位制檔案。

使用命令 mysqlbinlog mysql-bin.000005 > test0005.sql

可以將二進位制檔案解析出來。

部分擷取如下:

#170331  0:56:19 表示時間是2023年03月31日的0點56, end_log_pos 295 表示上一條命令的行序號

#170331  0:56:19 server id 1  end_log_pos 295  xid = 443

commit/*!*/;

# at 295

#170331  0:56:22 server id 1  end_log_pos 364  query  thread_id=39    exec_time=0    error_code=0

set timestamp=1490946982/*!*/;

begin

/*!*/;

# at 364

#170331  0:56:22 server id 1  end_log_pos 456  query  thread_id=39    exec_time=0    error_code=0

set timestamp=1490946982/*!*/;

insert one value(2233,"qwe")

我們同樣使用命令:

mysqldump -u[username] -p[password]  [database] [table] > backup.sql

來恢復全量備份。

然後通過對日誌的檢視,通過使用「時間」或者「行號」作為約束條件,我們可以恢復我們所需要的增量資料。

a.使用時間作為約束條件

mysqlbinlog --start-datetime="20170331 00:56:19" --stop-datetime="20170331 00:57:11" mysql-bin.000005 | mysql -u[username] -p[password] 

b.使用行號作為約束條件

mysqlbinlog --start-position=1556 --stop-position=1648 mysql-bin.000005 |mysql -u[username] -p[password]

補充一下,如果要在linux下面執行定時備份,先建立可執行指令碼。

#!/bin.bash

mysqldump -u[username] -p[password] kuone | gzip  > /home/andy/testsql/databasename_$(date +%y%m%d_%h%m%s).sql

然後使用命令 crontab -e  在裡面寫定時任務,比如每天0點執行一次

0 0 * * * sh /home/andy/backup.sh 

然後重啟一下cron任務

service cron restart 

好了,就是這樣。

MySQL 全備份與增量備份 全恢復與增量恢復

一,全備份 與 全恢復 1 vim root db backup mysqldump mraz.php,內容如下 date default timezone set prc d date ymd his exec usr local mysql bin mysqldump uroot p111111...

Mysql增量備份與全量備份

1.首先確保已開啟binlog日誌功能。在my.cnf中包含下面的配置以啟用二進位制日誌 mysqld log bin mysql bin 2.建立兩份指令碼檔案,乙份為增量備份的指令碼檔案,另乙份為全量備份的指令碼檔案。指令碼檔案放這裡 全量備份指令碼start bin bash program ...

MySQL全量 增量備份與恢復 zfm55123

資料備份的重要性 1 在生產環境中,資料的安全性是至關重要的,任何資料的丟失都可能產生嚴重的後果2 造成資料丟失的原因程式錯誤人為錯誤計算機失敗磁碟失敗災難 如 等 和偷竊 資料庫備份的分類 一 從物理與邏輯的角度,備份可分為 1 物理備份 對資料庫作業系統的物理檔案 如資料檔案 日誌檔案等 的備份...