1,數據庫目錄mysql
/var/lib/mysqlsql
測試庫shell
/var/lib/mysql/ambari數據庫
2,建立備份目錄bash
cd /home 編輯器
mkdir mysqlbackup 測試
cd mysqlbackupui
3, 查看系統支持的存儲引擎spa
show engines;日誌
查看錶使用的存儲引擎
兩種方法:
a、show table status from db_name where name='table_name';
b、show create table table_name;
若是顯示的格式很差看,能夠用\g代替行尾分號
有人說用第二種方法不許確,我試了下,關閉掉原先默認的Innodb引擎後根本沒法執行show create table table_name指令,由於以前建的是Innodb表,關掉後默認用MyISAM引擎,致使Innodb表數據沒法被正確讀取。
修改表引擎方法
alter table table_name engine=innodb;
關閉Innodb引擎方法
關閉mysql服務
找到/etc目錄下的my.cnf文件:
找到default-storage-engine=INNODB 改成default-storage-engine=MYISAM
4,建立shell腳本
vi backupmysqldaily.sh
寫入一下內容
若是引擎是myisam 加上--lock-tables=false參數,若是是innodb,則加上--single-transcation比較好。
須要注意的是命令要用絕對路徑命令,不然由於環境變量的問題,會致使備份腳本運行後失敗,備份下來的數據庫大小爲0
#!/bin/bash
/usr/local/mysql/bin/mysqldump -uroot -p123456 -R --lock-tables=false ambari | gzip > /home/mysqlbackup/ambari_$(date +%Y%m%d_%H%M%S).sql.gz
5,添加可執行權限
chmod u+x backupmysqldaily.sh
添加可執行權限以後先執行一下,看看腳本有沒有錯誤,能不能正常使用;
./backupmysqldaily.sh
6,添加計劃任務
確認crontab是否安裝:
執行 crontab 命令若是報 command not found,就代表沒有安裝
crontab
執行命令:
crontab -e
這時就像使用vi編輯器同樣,能夠對計劃任務進行編輯。
輸入如下內容並保存:
*/1 * * * * /home/mysqlbackup/backupmysqldaily.sh
具體是什麼意思呢?
意思是每一分鐘執行一次shell腳本「/home/backup/bkDatabaseName.sh」。
7,測試計劃任務是否執行
很簡單,咱們就執行幾回「ls」命令,看看一分鐘事後文件有沒有被建立就能夠了!
若是任務執行失敗了,能夠經過如下命令查看任務日誌:
# tail -f /var/log/cron
天天執行任務59 23 * * * /home/mysqlbackup/backupmysqldaily.sh