1. 程式人生 > 其它 >資料備份型別簡介

資料備份型別簡介

目錄

一.簡介

資料可以重複匯入,每次都是匯入的那個資料,如果資料不一致,會以匯入的資料覆蓋現在有的。

完全備份 備份所有資料(整個/整個庫/整個表)
a.只能把資料恢復到備份之前的狀態,新產生的資料無法恢復
b.備份資料和恢復資料都要加寫鎖

差異備份 備份完全備份後新產生的 從完全開始疊加

增量備份 備份上一次備份後新產生的 只增加新的

二.物理備份

直接備份mysql的data或者儲存檔案。

檢視儲存檔案所在位置
show global variables like "%datadir%";

備份後直接恢復即可
tar -zcvf mysqlbak.tar.gz /var/lib/mysql

三.匯出查詢結果

檢視預設使用目錄,一般為空
show variables like "secure_file_priv";

配置資料目錄
[mysqld]下新增

secure_file_priv="/data"

匯出查詢結果,只能到/data這個預設目錄下面
select * from mysql.user into outfile "/data/one.txt";

四.邏輯備份

開啟binlog日誌

開啟binlog日誌
vim /etc/my.cnf

log_bin
server_id=20 #區域網內不能重複,1-255

檢視binlog日誌,將從開啟binlog日誌時開始記錄
cd /var/lib/mysql
mysqlbinlog xx.000001

備份binlog日誌

1.首先做一次完整備份:
這時候就會得到一個全備檔案test.sql
mysqldump test>test.sql

在sql檔案中我們會看到:是指備份後所有的更改將會儲存到bin-log.000002二進位制檔案中。
cat test.sql

-- CHANGE MASTER TO MASTER_LOG_FILE='bin-log.000002', MASTER_LOG_POS=107;

2.在test庫的t_student表中增加兩條記錄,然後執行flush logs

命令。這時將會產生一個新的二進位制日誌檔案bin-log.000003,bin-log.000002則儲存了全備過後的所有更改,既增加記錄的操作也儲存在了bin-log.00002中。

3.再在test庫中的a表中增加兩條記錄,然後誤刪除t_student表和a表。a中增加記錄的操作和刪除表a和t_student的操作都記錄在bin-log.000003中。

恢復binlog日誌

1.首先匯入全備資料
mysql test < test.sql;

2.恢復整個bin-log.000002
mysqlbinlog bin-log.000002 |mysql test -uroot -p123456

本文版權歸作者所有,歡迎轉載,請務必新增原文連結。