mysqldump定時備份數據庫

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
相關文章
相關標籤/搜索