一.備份與匯出的區別
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 installyum 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.使用流式壓縮備份
引數如下:將資料目錄的許可權改為mysql,然後啟動mysqlinnobackupex ..... --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
c.使用加密備份
序號引數描述1
encrypt
用於加密的演算法:aes128,aes192,aes256
2encrypt-threads
執行加密的執行緒數
3encrypt-chunk-size
加密執行緒的快取大小
4encrypt-key
金鑰字元
5encryption-key-file
金鑰檔案
命令引數如下:mkdir /justbakinnobackupex --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
恢復:關閉資料庫,將資料目錄移到其他目錄,執行如下操作:
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中新增該目錄...