1.mysqlmp:最早,也是最成熟的邏輯備份工具,是 MySQL 原生的用來備份整個資料庫實例、單個資料庫、單張表的邏輯備份工具, 上手簡單,學習成本幾乎為 0。備份簡單,恢復也簡單。
比如導出單個資料庫 ytt: mysqlmp ytt > /tmp/ytt.sql;
恢復也非常簡單:mysql < /tmp/ytt.sql
缺點是備份速度慢。在整個備份過程中,是單線程運行;備份出來的數據集要恢復的話同樣也是單線程運行,恢復速度也慢。除非對同一時刻的所有表單獨備份出來,自己寫額外腳本進行多線程恢復。
2.mysqlpump:MySQL 5.7 GA 後推出的 mysqlmp工具的增強版。可以對同一個數據集多個線程並發備份,備份速度很快。
其他缺點和 mysqlmp 一樣。
3.MySQL Shell UTIL對象附帶的備份工具:隨 MySQL 8.0.21 最新版本捆綁發布,自帶多線程備份以及多線程恢復功能, 可以直接替代 mysqlmp/mysqlpump。
mp_instance/mpInstance 用來多線程備份 MySQL 整個單機實例
mp_schemas/mpSchemas 用來多線程備份 MySQL 單個資料庫
load_mp/loadDump 用來多線程恢復之前兩個工具導出的數據集文件
MySQL Shell UTIL 備份恢復工具具備如下特性:
1.壓縮導出(默認壓縮演算法 zstd)
2.數據集分塊導出,每塊 32M
3.默認導出存儲過程、存儲函數、觸發器、事件、用戶、視圖
4.默認 4 個線程導出
5.默認進度展示
6.默認字元集 utf8mb4
7.默認開啟一致性導出
8.默認表,視圖等定義導出為 SQL 語句
9.默認數據導出為 TSV 格式數據
⑵ Linux自動備份MySQL資料庫的實用方法
MySQL定期備份是一項重要的工作,但人工操作太繁瑣,也難避免有所疏漏,使用下面的方法即可讓系統定期備份數據。
◆1、創建備份文件夾
#cd /www
#makedir backup
◆2、編寫運行腳本
#vi autobackup
寫入以下內容:
filename=`date +%Y%m%d`
mysql_bin_dir/mysqlmp _opt dataname -u user -ppassword | gzip
/www/mysqlbackup/name$filename.gz
保存退枝褲出
說明:
(1)mysql_bin_dir:mysql的bin路徑;
(2)dataname:資料庫名;
(3)user:資料庫用戶名;
(4)password:陸搭歲用戶密碼;
(5)name:早睜自定義備份文件前綴標識。
如上例,將自動備份mysql資料庫,並以gzip壓縮方式存儲,文件名為name20080101.gz的形式。
◆3、為腳本添加執行許可權
#chmod +x autobackup
◆4、讓crontab來完成定期執行的任務
這一步中,Redhat的方法會不一樣,後面專門給出。
編輯crontab:
#vi /etc/crontab
在最後一行中加入:
01 5 * * * root /www/autobackup
每天5點運行腳本,也可以修改5為其他指定時間。
Redhat方法:
Redhat的crontab採用按時間調用4個目錄(/etc/cron.hourly:每小時;/etc/cron.daily:每天;/etc/cron.weekly:每周;/etc/cron.monthly:每月)中腳本出來運行的方式。
Redhat中只需要將剛才編輯的腳本復制到相應的目錄即可。
◆5、重啟crontab
#/etc/rc.d/init.d/crond restart
完成。
⑶ linux下mysql自動備份資料庫與自動刪除臨時文件
一、每日23:00自動刪除臨時文件
首先查看一下crontab的任務列表:
crontab
-l
然後新建:
crontab
-e
添加一行:
00
03
*
*
*
rm
-rf
/www/cmstest/my120/public/scripts/jpgraph/*
保存退出。
重啟服務:
/etc/rc.d/init.d/crond
restart
二、每日24:00自動備份資料庫
利用系統crontab來定時執行備份文件,按日期對備份結果進行保存,達到備份的目的。
1、創建保存備份文件的路徑/mysqldata
#mkdir
/mysqldata
2、創建/usr/sbin/bakmysql文件
查找資料庫庫文件的路徑:
一般都是:/var/lib/mysql,或者,/usr/local/mysql/var
查找方法:
1、/usr/local/mysql/bin/mysql
-u
root
-p
進入資料庫
2、輸入:show
databases;
3、這是可以查看到所有的資料庫,然後
4、find
/
-name
db(你想查找的資料庫名)
之後:#vi
/usr/sbin/bakmysql
輸入
復制代碼
代碼如下:
rq=`
date
+%Y%m%d
`
tar
zcvf
/mysqldata/mysql$rq.tar.gz
/var/lib/mysql
3、修改文件屬性,使其可執行
#
chmod
+x
/usr/sbin/bakmysql
新建任務:
首先查看一下crontab的任務列表:
crontab
-l
然後新建:
crontab
-e
添加一行
00
04
*
*
*
/usr/sbin/bakmysql
表示每天24點鍾執行備份
4、重新啟動crond
#
/etc/rc.d/init.d/crond
restart
此後每天就可以在/mysqldata中看到類似下的文件了:mysql20040619.tar.gz。