Linux如何将Mysql数据库自动从一台服务器备份到另一台服务器

一、概述: 备份是容灾的基础,是指为防止系统出现操作失误或系统故障导致数据丢失,而将全部或部分数据集合从应用主机的硬盘或阵列复制到其它的存储介质的过程。而对于一些网站、系统来说,数据库就是一切,所以做好数据库的备份是至关重要的!
那么Linux如何实现将Mysql数据库自动从服务器A备份到服务器B呢?

二、通过Linux的scp命令:用于Linux之间复制文件和目录。

  1. scp在建立连接中是需要密码认证的,所以我们第一步就是在服务器A上添加ssh公匙
    ssh-keygen -t rsa
  2. 结果:会在用户目录~/.ssh/产生两个文件,id_rsa,id_rsa.pub
  3. 将id_rsa.pub文件拷贝到服务器B的/root/.ssh目录下,并命名authorized_keys,即
    scp /root/.ssh/id_rsa.pub root@10.1.1.2:/root/.ssh/authorized_keys
    这样从服务器A复制到服务器B就不需要密码了。

三、编写备份数据库脚本,使得每天固定时间,自动对数据库进行备份 bakmysql.sh

#!/bin/bash
#备份路径
BACKUP=/www/backup/mysql
#当前时间
DATETIME=$(date +%Y-%m-%d)
echo "===备份开始==="
echo "备份文件存放于${BACKUP}/$DATABASE-$DATETIME.sql"
#数据库地址
HOST=localhost
#数据库用户名
DB_USER=root
#数据库密码
DB_PW=123456
#创建备份目录
#[ ! -d "${BACKUP}/$DATETIME" ] && mkdir -p "${BACKUP}/$DATETIME"#后台系统数据库
DATABASE=db_test
echo $DATABASE-$DATETIME
#mysqldump -u${DB_USER} -p${DB_PW} --single-transaction --host=$HOST -q -R --databases $DATABASE | gzip > ${BACKUP}/$DATETIME/$DATABASE.sql
mysqldump -h localhost  -u${DB_USER} -p${DB_PW}  ${DATABASE} >${BACKUP}/$DATABASE-$DATETIME.sqlecho "===导出成功,开始传输==="
#压缩成tar.gz包
cd $BACKUP
#tar -zcvf $DATETIME.tar.gz $DATETIME
#备份到服务器B
scp $DATABASE-$DATETIME.sql root@1.1.1.2:/www/backup/mysql
#删除备份目录
rm -rf ${BACKUP}/$DATETIME#删除10天前备份的数据,这边可以自行更改
#find $BACKUP -mtime +10 -name "*.sql" -exec rm -rf {} \;
echo "===数据库备份到服务器成功==="

将sh脚本文件放到服务器A任一位置,我这边放在了/www/backup下

四、脚本编写完,利用Linux系统的crontab定时任务,去实现固定时间自动执行脚本

  1. 输入crontab -e,开始编辑定时任务
  2. 输入以下代码59 23 * * * /www/backup/bakmysql.sh #通过vi命令编辑insert,表示每天23:59自动执行代码
  3. 输入:wq! 保存退出
  4. 输入service crond restart 重启服务,如果是ubuntu系统,则是cron

五、Linux—crontab相关命令:

  • crontab –e : 修改 crontab 文件. 如果文件不存在会自动创建

  • crontab –l : 显示 crontab 文件

  • crontab -r : 删除 crontab 文件

  • crontab -ir :删除 crontab 文件前提醒用户

  • 例如:

    # 在 12:01 a.m 运行,即每天凌晨过一分钟。
    # 这是一个恰当的进行备份的时间,因为此时系统负载不大。
    1 0 * * * /root/bin/backup.sh#每个工作日(Mon – Fri) 11:59 p.m 都进行备份作业。
    59 11 * * 1,2,3,4,5 /root/bin/backup.sh# 每5分钟运行一次命令
    */5 * * * * /root/bin/check-status.sh #每个月的第一天 1:10 p.m 运行
    10 13 1 * * /root/bin/full-backup.sh #每个工作日 11 p.m 运行。
    0 23 * * 1-5 /root/bin/incremental-backup.sh
    

PS:务必要养成备份的好习惯啊,不然自己留下的坑,哭着也要填完。

Linux——MySQL数据库自动备份相关推荐

  1. linux 备份mysql并上传_实现Linux中Mysql数据库自动备份并上传到远程FTP服务器

    这篇文章很有分享价值,因为我们在实际的生产环境中需要将数据库进行自动备份,然后上传到指定的位置,当然也可以像以下文章中所讲的一样,上传到你指定的FTP服务器中,从而实现Mysql数据库自动备份并上传到 ...

  2. Linux oracle数据库自动备份自动压缩脚本代码

    Linux oracle数据库自动备份自动压缩脚本代码 Linux oracle数据库备份完成后可以自动压缩脚本代码. 复制代码代码如下: #!/bin/bash #backup.sh #edit: ...

  3. mysql nb3 备份_通过Navicat进行Mysql数据库自动备份与还原

    Mysql数据库自动备份流程 Navicat版本为:Navicat 12.0.26 例:test为用于测试自动备份的数据库,里面有表t_person,表中有两条数据. 1.点击"自动运行&q ...

  4. windows环境设置mysql数据库自动备份(测试成功)

    windows环境设置mysql数据库自动备份(测试成功) 要实现数据库的自动备份就需要一下两步: 利用MySQL提供的备份命令mysqldump 结合Windows的任务计划程序 实现步骤 编写脚本 ...

  5. windows环境mysql数据库自动备份

    1:mysql数据库备份命令 执行 mysqldump -u username -p database > c:/bak.sql 再次输入mysql密码,导出完成! 2:编写bat脚本 @ech ...

  6. mysql web备份软件_GitHub - toolzone/mysql_web_backup: mysql数据库自动备份,web网站自动备份shell脚本...

    注意: Mysql_backup.sh 为 mysql 自动备份 脚本,配合 crontab命令 用来管理需要周期性执行任务 Web_backup.sh 为 web文件 自动备份 脚本,配合 cron ...

  7. Linux MySQL数据库的备份

                  Linux MySQL数据库的全库和单库备份 MySQL数据库的备份重要性不用多说,备份方式也很多,但常用的是MySQL自带的备份程序MySQLdump,该程序一键备份,一 ...

  8. 【SpringBoot】70、SpringBoot实现MySQL数据库自动备份管理系统

    最近写了一个 MySQL 数据库自动.手动备份管理系统开源项目,想跟大家分享一下,项目地址: https://gitee.com/asurplus/db-backup 1.界面献上 登录界面 首页 实 ...

  9. mysql数据库备份自动备份_设置mysql数据库自动备份

    由于项目需要,在windows下的mysql实现数据库自动备份.经资料查询和尝试,得出方法有两种: 1.使用windows自带的任务计划,然后定时执行一个数据库备份的脚本. 2.使用mysql管理工具 ...

最新文章

  1. 内置host_浏览器内置对象应用实践
  2. 【HDOJ】1890 Robotic Sort
  3. Django--网页管理实例解析
  4. 1.1-1.5-vim编辑器
  5. python给excel文件加密码,并重新生成文件
  6. 从零开始通过 Artifactory 搭建公网的 maven 仓库
  7. java系列2:方法的重载
  8. 虚拟机卸载ubuntu安装mysql_ubuntu 卸载与安装mysql
  9. TCxGrid 把列移上移下。
  10. mysql join联接_MySQL_join连接
  11. 校园天翼客户端常见错误码
  12. 三星或将80%手机生产转至越南
  13. Dev-cpp调试教程
  14. IDL 解析葵花8Himawari-8标准数据(HSD),辐射定标、重投影、裁剪
  15. 微信小程序 下拉刷新 性能优化 参考饿了么小程序首页列表加载
  16. LFM信号脉冲压缩原理和仿真
  17. 接口自动化测试平台,Django“踩坑”之旅(四):“Not Found: /favicon.ico”错误处理
  18. 自动创建图片库、文档库
  19. Vue3使用element-plus1.3.0版本的el-menu菜单组件引入动态渲染icon图标时,图标组件刚好是Menu时报错,菜单不显示的解决方法
  20. 1225:金银岛 题解

热门文章

  1. 美联储货币政策模棱两可,非美强弱不一
  2. 盘点AWS、GCP及Microsoft Azure中的网络安全服务!
  3. 媒体访谈丨“新基建”风口已至,网络安全厂商如何乘势而为?
  4. 【SQL查询】正则表达式匹配字符串
  5. 关于新版微软输入法在windows11操作系统下,无法正常显示输入法中候选字词栏(candidate list)
  6. IIS——服务开启及本地发布网站图解(一)
  7. Hyperledger Fabric项目搭建区块链浏览器Hyperledger-blockchain-explorer
  8. java keydown_键盘事件之keydown keypress keyup区别
  9. 【2】ShutdownHTTP系列-HTTP报文篇
  10. 初学Python实训心得以及一个爬虫例子