码迷,mamicode.com
首页 > 数据库 > 详细

服务器数据库备份到另外一个服务器的数据库

时间:2020-07-30 18:21:55      阅读:98      评论:0      收藏:0      [点我收藏+]

标签:创建数据库   作用   copy   判断   方便   文件   免密   从服务器   备份   

数据库备份
1、在 CentOS7 中安装 rsync
yum -y install rsync
2、用密钥实现免密登录
由于需要使用命令行传输文件,不方便输入密码,所以在服务器 A 中配置 ssh 免密登录,配置成功后,服务器 A 登录服务器 B 时就不需要输入密码就可以登录了。
(1)生成公钥
在服务器 A 中输入命令:
ssh-keygen
该命令会生成一个公钥,执行命令后,在 ~/.ssh/ 会出现两个新文件:
生成公钥
(2)将公钥传输到服务器 B 中
在服务器 A 中输入命令:
ssh-copy-id root@B服务器ip

或者

ssh-copy-id -i ~/.ssh/id_rsa.pub root@B服务器ip
从此以后,在服务器 A 中使用 ssh 方式登录服务器 B 就不需要输入密码了。
3、在服务器 A 中书写脚本 backup.sh
这个脚本主要的作用是将要备份的数据导出为一个 SQL 脚本,并将这个脚本传输到服务器 B 的指定目录中:
#!/bin/bash
# 将 woods数据库 导出为一个 SQL 脚本
mysqldump -h服务器A的IP -u用户名 -p密码 woods > /etc/backup/sql/woods`date +%Y%m%d%H%M%S`.sql
# 同步目录(传输新增文件到服务器的B的指定目录)
rsync -arv --delete /etc/backup/sql/ root@服务器B的IP:/etc/backup/sql/
这个脚本做了两个操作:
将 woods数据库 导出为一个 SQL 脚本,这个脚本的命名带上了当前时间。
会将服务器A的 /etc/backup/sql/ 目录与服务器 B 的 /etc/backup/sql/ 目录进行同步。
4、将 backup.sh 加上可执行权限
在服务器 A 中输入命令:

//chmod 744 /usr/local/backup.sh
chmod 744 /home/backup/local/backup.sh

5、测试 backup.sh 是否达到预期的效果
在服务器 A 中输入命令:

sh /usr/local/backup.sh
执行完毕后,查看是否已经生成了备份文件:

是否已经生成了备份文件

6、添加定时任务
输入命令:

crontab -e
在打开的文件中加入如下内容:

0 1 * * * sh /usr/local/backup.sh
这个意思是每天凌晨 1 点执行脚本。关于 crontab 表达式的更多内容就不在这里说了,感兴趣的可以自己去搜索引擎搜索 crontab 表达式自行学习。

(二)、在服务器 B 上需要进行的操作
注意:以下命令全部在服务器 B 上进行。

1、书写脚本 reduction.sh
这个脚本的作用是执行从服务器 A 中传入过来的 SQL 脚本:

#!/bin/bash
# 找到当天的备份文件的位置并存入到变量 woods_file
woods_file=$(find /etc/backup/sql -name woods`date +%Y%m%d*`)

# 一个 if 判断,意思是如果变量 woods_file 字符串不为空,就执行 then 后面的命令
if [ -n $woods_file ]
then
echo $woods_file
# 执行查找到的 MySQL 脚本
mysql -u用户名 -p密码 数据库名 --default-character-set=utf8 -A -e "source "$woods_file

fi
注意,MySQL 一定已经有你要备份的数据库,mysqldump 导出的 SQL 脚本没有带创建数据库的命令,所以没有就要先自行创建。

2、测试 reduction.sh 是否达到预期效果
sh /usr/local/reduction.sh
执行脚本,查看数据库的内容是否已经变化为备份文件的内容,如果没有发生变化,请根据报错提示,进行排查。

3、设置定时任务
设置定时任务定期执行脚本 reduction.sh

输入命令:

crontab -e
在打开的文件中加入如下内容:

30 1 * * * sh /usr/local/reduction.sh
这个意思是每天凌晨 1 点 30 分执行脚本。

该文章引用自:https://segmentfault.com/a/1190000022525635

服务器数据库备份到另外一个服务器的数据库

标签:创建数据库   作用   copy   判断   方便   文件   免密   从服务器   备份   

原文地址:https://www.cnblogs.com/slothful/p/13404200.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!