mysql异机备份
xx.xx..4.43----xx.xx..4.51
1、配置client通过密钥来连接server
43机器上:
/root/.ssh 目录下执行
ssh-keygen -t rsa
ls /root/.ssh会发现在/root/.ssh下生成一对密钥id_dsa和id_dsa.pub,将生成的公钥id_dsa.pub拷贝到server的/root/.ssh目录下:
scp -P 10022 /root/.ssh/id_dsa.pub xx.xx..4.51:~/.ssh/ id_dsa.pub
51上:
cat id_rsa.pub >>authorized_keys
在43上ssh 登录51 免密登录---ok
2、编写备份数据的脚本
可以通过编写shell脚本,执行脚本实质上是一个指令集,它的编写正确与否是实现自动异地备份数据库的关键所在。
假设shell脚本命名为auto.sh,处于目录/home/mysql/autobackup下,脚本编辑如下:
DATE=`date +%Y%m%d`
DATEOLD=`date -d"-3 day" +%Y%m%d`
mysqldump --database mysql>"home/mysql/autobackup/$DATE.sql" -uroot -h localhost –p mysql
tar -czvPf /home/mysql/autobackup/$DATE.tar.gz /home/mysql/autobackup
scp -P 10022 /home/mysql/autobackup/$DATE.tar.gz xx.xx..4.51:/home/backup1
rm -rf /opt/$DATEOLD.tar.gz
针对以上脚本,需要注意以下几点:
u DATE和DATEOLD是系统用来获取当前以及3天前日期的参数,格式书写十分重要,“`”是指tab键上方的符号,“+”前一定要有空格。
u client下的目录/opt/backup以及server下的目录/opt/backup1事先要存在
u 压缩指令为tar -czvPf,不加P参数系统会有报错提示,因为此时系统把/opt/backup当成相对路径。
u auto.sh的文件属性为755
注:auto.sh中的每一条指令可通过手动执行来验证其正确性,无误后进行下一步操作。