資料備份與恢復

2022-08-30 10:15:09 字數 4358 閱讀 6469

一.備份與匯出的區別

1.資料匯出用於把資料從乙個系統遷移到另乙個系統

2.資料備份用於儲存乙個資料庫例項的全部資訊

二.備份方式

1.聯機冷備份

2.聯機熱備份

備份時需要注意auto.cnf檔案,如果跨主機應用應該區別auto.cnf

三.整體表碎片檔案

alter table test1 engine = innodb;

四.xtrabackup

1.優勢

1.xtrabackup備份過程加讀鎖,資料可以讀,但是不可以寫

2.xtrabackup備份過程不會打斷正在執行的事務

3.xtrabackup能夠基於壓縮等功能節約磁碟空間和流量

2.原理:

xtrabackup是一種物理備份工具,通過協議連線到mysql服務端,然後讀取並複製底層檔案,完成物理備份

xtrabackup支援innodb引擎做全量備份和增量備份

xtrabackup只能對myisam引擎做全量備份

3.安裝

yum install 

yum install percona-xtrabackup-24

4.全量熱備份

<1>xtrabackup命令種類

序號命令描述1

xbcrypt

用於加密或者解密備份的資料

2xbstream

用於壓縮或者解壓縮xbstream檔案

3xtrabackup

備份innodb資料表

4innobackupex

是上面三種命令的perl指令碼封裝

<2>.備份命令

a.全量熱備份命令:

innobackupex --defaults-file=/etc/my.cnf --copy-back /backdata/2019-01-18_10-23-56/

然後將資料目錄的許可權改為mysql,啟動資料庫

b.使用流式壓縮備份

引數如下:

innobackupex ..... --no-timestamp --stream=xbstream -> /backdata2/bak.xbstream

示例:innobackupex --defaults-file=/etc/my.cnf --host=192.168.192.135 --user=root --password=123456 --port=3306

--no-timestamp --stream=xbstream ->/backdata2/backup.xbstream

恢復:關閉資料庫,將資料目錄移到其他目錄,執行如下操作:

mkdir /justbak

xbstream -x < /backdata2/backup.xbstream -c /justbak

將資料目錄的許可權改為mysql,然後啟動mysql

c.使用加密備份

序號引數描述1

encrypt

用於加密的演算法:aes128,aes192,aes256

2encrypt-threads

執行加密的執行緒數

3encrypt-chunk-size

加密執行緒的快取大小

4encrypt-key

金鑰字元

5encryption-key-file

金鑰檔案

命令引數如下:

innobackupex --encrypt=aes256 --encrypt-threads=10 --encrypt-key=....... --encrypt-chunk-size 521 .....

示例:innobackupex --defaults-file=/etc/my.cnf --host=192.168.192.135 --user=root --password=123456 --port=3306

--encrypt=aes256 --encrypt-threads=10 --encrypt-key=111111111111111111111111 --encrypt-chunk-size 512

--no-timestamp --stream=xbstream -> /backdata3/backup1.xbstream

恢復:關閉資料庫,將資料目錄移到其他目錄,執行如下操作:

mkdir /justbak

xbstream -x < /backdata3/backup1.xbstream -c /justbak

innobackupex --decompress --decrypt=aes256 --encrypt-key=111111111111111111111111 /justbak

將資料目錄的許可權改為mysql,啟動mysql

d.其他引數

序號引數描述1

compress

壓縮innodb資料檔案

2compress-threads

執行壓縮的執行緒數

3compress-chunk-size

壓縮執行緒的快取

4include

需要備份的資料表的正規表示式

5galera-info

備份pxc節點狀態檔案

命令引數如下:

innobackupex .... --compress --compress-threads=10 --include=test1.t1,test1.t2 --galera-info ....

示例:innobackupex --defaults-file=/etc/my.cnf --host=192.168.192.135 --user=root --password=123456 --port=3306 

--encrypt=aes256 --encrypt-threads=10 --encrypt-key=111111111111111111111111 --encrypt-chunk-size 512 

--compress --compress-threads=10 --include=test1.t1,test.t1 --galera-info

--no-timestamp --stream=xbstream ->/backdata4/b.xbstream

e.通過指令碼自動備份

#

!/bin/bash

time=$(date "

+%y-%m-%d %h:%m:%s")

echo

"執行全量熱備份

"innobackupex --defaults-file=/etc/my.cnf --host=192.168.192.135 --user=root --password=123456 --port=3306 --encrypt=aes256 --encrypt-threads=10 --encrypt-key=111111111111111111111111 --encrypt-chunk-size 512 --no-timestamp --stream=xbstream -> /backdata5/backup1.xbstream

<3>.恢復命令

恢復前準備工作

1.關閉mysql,清空資料目錄,包括表分割槽的目錄

2.回滾沒有提交的事務,同步已經提交的事務到資料檔案

5.增量備份

1.無論全量熱備份使用了流式壓縮,還是內容加密,都必須解密解壓縮成普通全量熱備份

2.增量熱備份可以使用流式壓縮或者內容加密

例子:首先備份

1.首先全備

innobackupex --defaults-file=/etc/my.cnf --host=192.168.192.135 --user=root --password=123456 --port=3306 /backdata

2.首次增備

innobackupex --defaults-file=/etc/my.cnf --host=192.168.192.135 --user=root --password=123456 --port=3306

--incremental-basedir=/backdata/2019-01-21_11-36-02/ --incremental /inc

3.第二次增備

innobackupex --defaults-file=/etc/my.cnf --host=192.168.192.135 --user=root --password=123456

--incremental-basedir=/inc/2019-01-21_11-42-32/ --incremental /inc/

然後恢復:

處理事務日誌

資料備份與恢復

一 mysqldump備份 mysqldump 備份資料會丟失掉從備份點開始的資料,所以需要結合mysqlbinlog的二進位制日誌增量備份恢復。常用的選項 all databases 匯出全部資料庫。add drop table 每個資料表建立之前新增drop刪表語句,防止恢復時衝突。all da...

資料備份與恢復

mysqldump u p db name table name,filename.sql cmd 命令 可以選擇要備份哪些表 如果不指定代表 全部備份 示例 單庫備份 mysqldump uroot p123 db1 db1.sql mysqldump uroot p123 db1 table1 ...

MySQL資料備份與恢復

mysql命令列匯出資料庫 mysql命令列匯出資料庫 1,進入mysql目錄下的bin資料夾 cd mysql中到bin資料夾的目錄 如我輸入的命令列 cd c program files mysql mysql server 4.1 bin 或者直接將windows的環境變數path中新增該目錄...