mysql服務器ip:192.168.0.10html
備份服務器ip:192.168.0.11mysql
數據庫名稱:db_productsql
思路:在mysql服務器A上建立一個用戶分配權限專門用於數據庫備份,A服務器能夠是數據庫集羣中的slave之一。找一個磁盤寬裕的服務器B,安裝mysql的客戶端。數據庫
在服務器B上執行mysqldump命令備份數據庫。服務器
只安裝mysql客戶端的教程:http://www.javashuo.com/article/p-nylzkmdm-gc.htmlspa
#建立用戶,用戶名爲【backupuser】並限制客戶端鏈接ip,【192.168.0.11】爲B服務器的ip CREATE USER 'backupuser'@'192.168.0.11' IDENTIFIED BY 'pwd'; #授予用戶權限,限制了能夠訪問的數據庫 GRANT ALL ON db_product.* TO 'backupuser'@'192.168.0.11'; flush privileges;
編寫腳本code
#建立腳本
touch mysql_backup.sh
#增長可執行權限
chmod +x mysql_backup.sh
腳本內容htm
#!/bin/sh # File: /usr/local/xiaohb/mysql_backup.sh # Database info DB_NAME="db_product" DB_USER="backupuser" DB_PASS="pwd" DB_HOST="192.168.0.10" DB_PORT="3306" BIN_DIR="/usr/bin" BCK_DIR="/usr/local/xiaohb/mysql_backup" DATE=`date +%Y%m%d_%H%M%S` mkdir -p $BCK_DIR #$BIN_DIR/mysqldump --opt -u$DB_USER -p$DB_PASS $DB_NAME > $BCK_DIR/$DB_NAME.dump_$DATE.sql # 爲了減少磁盤空間的消耗,這裏使用gzip壓縮 $BIN_DIR/mysqldump --opt -h$DB_HOST -P$DB_PORT -u$DB_USER -p$DB_PASS $DB_NAME | gzip > $BCK_DIR/$DB_NAME.dump_$DATE.sql.gz
建立定時任務blog
#編輯定時任務 crontab -e #若crontab沒有安裝 yum install -y vixie-cron #天天凌晨1點執行 0 1 * * * /usr/local/xiaohb/mysql_backup.sh #重載crontab service crond reload