mysql數據庫每日一備

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是否安裝: 
執行 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

相關文章
相關標籤/搜索