mysql備份與恢復

mysql數據庫備份與恢復

一、為什么要備份

災難恢復:硬件故障、軟件故障、自然災害、黑客攻擊、誤操作測試等數據丟失場景

備份注意要點

能容忍最多丟失多少數據

恢復數據需要在多長時間內完成

需要恢復哪些數據

還原要點

做還原測試,用于測試備份的可用性
還原演練

二、備份類型

備份類型:

完全備份,部分備份
完全備份:整個數據集
部分備份:只備份數據子集,如部分庫或表
完全備份、增量備份、差異備份
增量備份:僅備份最近一次完全備份或增量備份(如果存在增量)以來變化的數據,備份較快,還原復雜
差異備份:僅備份最近一次完全備份以來變化的數據,備份較慢,還原簡單
//注意:二進制日志文件不應該與數據文件放在同一磁盤

三、備份種類

冷、溫、熱備份

冷備:讀寫操作均不可進行
溫備:讀操作可執行;但寫操作不可執行
熱備:讀寫操作均可執行
MyISAM引擎:溫備,不支持熱備

InnoDB引擎: 都支持

物理和邏輯備份
物理備份:直接復制數據文件進行備份,與存儲引擎有關,占用較多的空間,速度快
邏輯備份:從數據庫中“導出”數據另存而進行的備份,與存儲引擎無關,占用空間少,速度慢,可能丟失精度

四、邏輯備份

邏輯備份特點

1.備份的都是SQL語句,數據量大的話SQL語句備份快,但是恢復數據的時候會很慢
2.備份的是建表、建庫、插入等操作所執行SQL語句(DDL DML DCL),適用于中小型數據庫。
3.效率相對較低

用法

mysqldump   -h 服務器(默認本機) -u..  -p..  數據庫名>name.sql

日常用法
備份所有數據庫

先配置用戶名和密碼
在任意文件內配置
[mysqldump]
user=root
password=root
...
文件內容配好的話,在備份的時候可以用 --defaults-file直接讀取文件內容,方便快捷

mysqldump --defaults-file=~/.mysql_user --all-databases > xxx.sql
# 不包含 INFORMATION_SCHEMA,performance_schema,sys

備份單個庫

mysqldump --defaults-file=/root/.mysql_user -hlocalhost  --databases servers >servers.sql
mysqldump --defaults-file=/root/.mysql_user -hlocalhost   servers>servers.sql
加與不加--databases的區別:   
         加上--databases的話,備份文件內會有創庫與進庫語句
        如果不加的話,必須自己創建庫并且進入庫

進入數據庫內使用    source  backup.sql

備份多個庫

mysqldump --defaults-file=/root/.mysql_user -hlocalhost  --databases db1 db2  db3  .  >db.sql

備份一個庫的幾個表

mysqldump  --defaults-file=/root/.mysql_user  -hlocalhost   db1 t1 t2 t3  >backup.sql

恢復數據

1.   mysql -uroot  -proot   db < backup.sql

2.   進入數據庫
source   backup.sql

五、物理備份

5.1、全量備份

知識

對數據庫在線進行全備的時候,用戶可以對數據庫進行增刪改查,如果數據庫已經完成備份后,數據并不會同步,如果不處理的話數據就會造成損失

這時會有一個事件用來監控那些已經備份完成之后的數據庫,這些內容會存儲在xtrabackup_logfile這個二進制文件內,但是這個文件并不能數據庫解析,所以數據備份之后就要對這個文件進行恢復,將其轉換為可以被mysql識別的文件,然后在進行恢復數據,也就是復制文件

下載xtrabackup

1.  yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
2.  yum  install -y libev  
3.  yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm
4.  yum install percona-xtrabackup-24

全備的大致流程

1.    創建好存儲備份的目錄
2.    對數據庫進行備份
3.    將事件產生的日志轉換為數據庫可以識別的
4.    將數據庫服務停止
5.    進行備份
6.    開啟數據庫服務進行驗證

全備的操作

1.   shell> xtrabackup --backup --user=root --password='123'  --target-dir=/backups/full

# 備份完成后,可以看到備份時的LSN號,當下次進行增量備份時,xtrabackup就只備份大于此號的page即可。
2.   shell> xtrabackup --prepare --target-dir=/backups/full
3.  shell> systemctl stop mysqld.service
4.  shell> rm -rf /var/lib/mysql/*
5.  shell> xtrabackup --copy-back --datadir=/var/lib/mysql --target-dir=/backups/ful
6.   systemctl start mysqld     開啟數據庫服務進行檢驗

5.2、增量備份

增量備份是在全備的基礎之上進行增量備份
特點:是在上一次備份的基礎上進行增量備份

創建增量備份

  1. 進行全量備份
xtrabackup --backup --user=root --password=root  --target-dir=/backup/full
  1. 進行增量備份
手動增加數據之后進行增量備份
第一次增量備份
xtrabackup --backup --user=root --password=root  --target-dir=/backup/inc1  --incremental-basedir=/backup/full
在第一次全備的基礎上進行增量備份,備份后的文件放在inc1目錄內
第二次增量備份
xtrabackup --backup --user=root --password=root  --target-dir=/backup/inc2  --incremental-basedir=/backup/inc1
在第一次增量備份的基礎上進行增量備份,備份后的文件放在inc2目錄內
  1. 恢復數據
1. 準備全備的數據
xtrabackup  --prepare  --apply-log-only --target-dir=/backup/full
2.把第一次備份的數據合并到全備的數據內
xtrabackup  --prepare  --apply-log-only --target-dir=/backup/full  --
incremental-dir=/backup/incl
3.把第一次備份的數據合并到全備的數據內
xtrabackup  --prepare   --target-dir=/backup/full  --
incremental-dir=/backup/inc2
注意最后一次合并不加 --apply-log-only
  1. 停止服務,刪除數據
systemctl stop mysqd
rm -rf /var/lib/mysqld/*

5.恢復數據

xtrabackup --copy-back --datadir=/var/lib/mysql  --target-dir=/backup/full

6.修改權限之后開啟服務就可以了

將數據庫恢復默認

1.  關閉服務   將數據庫內的內容全部清空
2.  mysqld --initialize --user=mysql 
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,501評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,673評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,610評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,939評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,668評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,004評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,001評論 3 449
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,173評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,705評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,426評論 3 359
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,656評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,139評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,833評論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,247評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,580評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,371評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,621評論 2 380

推薦閱讀更多精彩內容