Linux下資料庫的備份與還原

2021-10-24 08:12:07 字數 2797 閱讀 3112

資料的備份

mkdir /backup #首先建立備份目錄

innobackupex --user=root --password='password'

/backup/full

# 命令解析 innobackupex 是備份命令 需要說明使用者和密碼 宣告路徑這種方法為所有資料庫全部路徑

systemctl stop mysql #模擬資料庫出現損壞

rm-rf /

var/lib/mysql/*

#模擬資料受到損壞和丟失

rm-rf /

var/log/mysqld.log #刪除日誌

innobackupex --

copy

-back /backup/full/備份檔案 #還原資料

在實際情況中我們很少天天做全備份 所以有一種方法是增量備份

增量備份分為差異備份

增量備份和差異備份是基於全備份的基礎上的

區別在於

增量備份會有很多份 恢復的時候需要將資料一一回滾 還原即可

差異備份還原時只需要將全備份和上一次備份節點的備份進行回滾還原即可

下面以增量備份的使用和還原作為說明

innobackupex --user=root --password='password'

/backup/full/

#不管增量備份還是差異備份都需要進行一次完整的備份

date 09010102 #手動模擬時間的輪轉 更改後時間為2020-09-01-01-02

#對資料庫的資料做一些增改如insert 和delete

innobackupex --user=root --password='password'

--increatemtal /backup --incretemental-basedir=/backup/full/

#增量備份的備份與完整的備份區別在於需要宣告是基於哪個備份點做的增量備份

date 09020102 #手動模擬時間輪轉

#對資料庫做一些增改的操作

innobackupex --user=root --password='password'

--increatemental /backup --incretemental-basedir=/backup/2020-09-01-01-02

#基於上次做的增量備份繼續做增量備份

增量備份與差異備份的備份區別

增量備份總是在基於上乙個備份繼續做備份

差異備份總是在基於最近的完整備份做備份

增量備份的還原

dir=/backup/2020-09-01-01-02 #在完整的資料回滾的資料上追加增量備份

dir=/backup/2020-09-02-01-02 #繼續追加第二個增量備份

innobackupex --

copy

-back /backup/full/

#增量的備份還原與完整的備份的還原方法相同

增量備份的還原需要一次次追加災難點前的到完整資料備份之間的所有增量備份 然後還原完整備份即可

差異備份則是只需要追加在在災難點前的完整資料備份及距離災難點最近的一次差異備份 然後還原完整備份即可

使用二進位制檔案對資料庫進行備份

命令為:

vim /etc/my.cnf   #編輯資料庫配置檔案

log_bin #開啟二進位制檔案 二進位制檔案只記錄資料庫的增刪改 不記錄查詢

server_id=1 #定義資料庫的id

備份資料

mysqldump -p'password' \  #資料庫登入預設當前使用者 可以省略-u  \為換行符

--all-database --single-tansaction \ 備份所有資料庫並翻譯成二進位制檔案

--master_data=2 \ 下面詳細說明

--flush_logs \ #重新整理日誌檔案

> /backup/`%

data

+%y-%d`-all.mql

還原資料庫環境

systemctl stop mysql     #刪除資料庫之前需要先停止資料庫

rm-rf /

var/lib/mysql/*

#刪除所有資料

rm-rf /

var/log/mysqld.log #刪除資料庫日誌

systemctl start mysql #啟動資料庫

grep 'password'

/var

/log/mysqld.log #檢視資料庫初始密碼

mysqladmin -uroot -p'kyzw;u2dqpassword 'new-passwd'

#修改密碼

還原資料庫

mysql -p'new-passwd'

< /backup/*

-all.sql #還原資料

systemctl restart mysqld #重啟資料庫

通過二進位制檔案還原資料庫

cp

-rf /

var/lib/mysql/localhost-bin.

*/backup/

#將二進位制檔案複製到/backup裡面

mysqlbinlog localhost-bin.000001 localhost-bin.000002 | mysql -p 』new-passwd『 #通過二進位制檔案還原

Linux下MySQL資料庫的備份與還原

一.匯出 1 匯出資料和表結構 mysqldump u使用者名稱 p密碼 資料庫名 資料庫名.sql 如果要匯出資料庫全部 mysqldump uroot p123456 all databases all day.sql 2 匯出單個表 mysqldump u使用者名稱 p密碼 資料庫名 表名 生...

linux備份 還原資料庫

1 建立儲存 mysql 備份檔案的路徑 var mysqlbak mkdir var mysqlbak 2 建立 usr sbin mysql bak.sh檔案 3 nano usr sbin vws bak.sh 第一種方式 tar的方式必須先停止資料庫服務,否則容易丟失資料 bin sh et...

資料庫備份與還原

在開發和資料庫有關的應用程式的時候,很多時候我們做的操作就是和資料庫打交道,而使用者最關心的也是資料,而一旦資料庫出現故障,我們事先又沒有做任何的預防措施,帶來的將會是災難性的錯誤。雖然資料庫本身提供備份和還原的功能,也可設定定期備份資料庫的操作,但是很多時候使用者並不知道怎樣操作,特別是還原。所以...