linux下使用脚本自动化远程备份MySQL数据库

通常情况下、mysql都需要备份,备份的方法有很多种。下面是我用脚本配合计划任务完成的自动备份远程的数据库。

一、 确认备份方案:

备份机:ip192.168.8.51
数据库服务器:ip192.168.8.46

备份的内容:对mysql的studydb、coursedb库进行远程备份、每天2:30执行,每个库备份为独立的sql文件。然后压缩为tar.gz格式,文件中嵌入备份的日期和时刻。

1. 创建数据库:
[root@ns ~]# service mysqld status
mysqld (pid 3554) 正在运行...
[root@ns ~]# mysqladmin -uroot -p password 123123 ##更改密码
Enter password: ##输入原密码
[root@ns ~]# mysql -uroot -p123123
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 5.0.77-log Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
mysql> create database studydb; ##创建数据库
Query OK, 1 row affected (0.05 sec)
mysql> create database couredb;
Query OK, 1 row affected (0.00 sec)

2. 给数据库赋权:

mysql> grant select,lock tables on studydb.* to 'operator'@'192.168.8.51' identified by 'pwd123'; ##使用逻辑工具备份工具mysqldump是需要对库有select和lock tables的权限
Query OK, 0 rows affected (0.00 sec)
mysql> grant select,lock tables on coursedb.* to 'operator'@'192.168.8.51' identified by 'pwd123';
Query OK, 0 rows affected (0.00 sec)

3. 在192.168.8.51测试备份:
[root@localhost ~]# cd /tmp
[root@localhost tmp]# mysqldump -u operator -ppwd123 -h 192.168.8.46 --databases studydb >test.sql
[root@localhost tmp]# ls
bin games test.sql

二、 在192.168.8.51编写Mysql备份脚本:
[root@localhost ~]# mkdir /root/bin
[root@localhost ~]# cd /root/bin
[root@localhost bin]# vi dbbak.sh
#!/bin/bash
#这是一个简单的mysql数据库逻辑备份脚本
#1.定义数据库连接、目标库信息
MY_USER="operator"
MY_PASS="pwd123"
MY_HOST="192.168.8.46"
MY_CONN="-u $MY_USER -p$MY_PASS -h $MY_HOST"
MY_DB1="studydb"
MY_DB2="coursedb"
#2.定义备份目录、工具、时间、文件名主体
BF_DIR="/opt/dbbak/"
BF_CMD="/usr/local/bin/mysqldump"
BF_TIME=`date +%Y%m%d-%H%M`
NAME_1="$MY_DB1-$BF_TIME"
NAME_2="$MY_DB2-$BF_TIME"

#3.先导出为.sql脚本,然后再进行压缩(打包后删除原文件)
cd $BF_DIR/
/bin/tar zcf $NAME_1.tar.gz $NAME_1.sql --remove &>/dev/null
/bin/tar zcf $NAME_2.tar.gz $NAME_2.sql --remove &>/dev/null
[root@localhost bin]# mkdir /opt/dbbak ###创建备份目录
[root@localhost bin]# chmod a+x dbbak.sh ###给脚本执行权限
[root@localhost bin]# dbbak.sh ##运行脚本
[root@localhost bin]# ls /opt/dbbak/ ###验证效果
coursedb-20130505-0311.tar.gz studydb-20130505-0311.tar.gz

三、 在192.168.8.51上设置计划任务:
[root@localhost bin]# crontab -e
30 2 * * * /root/bin/dbbak.sh
[root@localhost bin]# chkconfig crond on
[root@localhost bin]# service crond status
crond (pid 3263) 正在运行...
好了数据库备份这件事就搞定了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值