博客
关于我
MYSQL数据库自动本地/异地双备份/MYSQL增量备份
阅读量:788 次
发布时间:2023-02-12

本文共 1925 字,大约阅读时间需要 6 分钟。

构建高安全电子商务网站之(网站文件及数据库自动本地/异地双备份)架构图

在电子商务网站运营中,数据安全是首要任务之一。尤其是对网站文件和数据库的备份,需要设计一个既高效又可靠的方案。本文将介绍一个适用于Linux服务器的自动备份架构,通过Shell脚本实现本地备份及异地备份,确保数据安全。

一、准备工作

  • 在Linux服务器上安装lftp工具。
  • 创建备份目录/home/backup/,并确保FTP服务正常运行。
  • 确保已在服务器上创建了必要的FTP账户和密码。
  • 二、网站运维异地备份方案及故障应急备用镜像站

    异地备份方案的核心在于数据的双重保护。通过定期检查异地备份的可靠性,确保在故障发生时能够快速恢复。建议定期执行备份检查,并设置应急镜像站,以应对突发情况。

    三、网站及数据库自动本地/异地双备份Shell脚本

    本文提供一个完整的Shell脚本实例,该脚本用于实现网站文件和数据库的自动备份,并通过FTP上传到异地服务器。脚本主要功能包括:

  • 本地备份:备份网站文件及相关数据文件。
  • 异地备份:通过FTP将备份文件上传至指定服务器。
  • 清理旧备份:定期删除30天前的旧备份,优化存储空间。
  • 以下是脚本的主要内容:

    #!/bin/bash# 该脚本用于备份网站文件和数据库# 作者:Jimmy Li# 网站地址:http://jimmyli.blog.51cto.com/# 设置备份目录Backup_Dir1=/data/wwwroot/www.zuihuasuan8.netMySQL_UserName=rootMySQL_PassWord=你的MySQL数据库root密码Backup_Database_Name1=www.zuihuasuan8.netFTP_HostName=www.zuihuasuan8.netFTP_UserName=www.zuihuasuan8.netFTP_PassWord=www.zuihuasuan8.netFTP_BackupDir=www.zuihuasuan8.net——backup# 生成备份文件名TodayWWWBackup=www-*-$(date +%Y%m%d).tar.gzTodayDBBackup=db-*-$(date +%Y%m%d).sqlOldWWWBackup=www-*-$(date -d -30day +%Y%m%d).tar.gzOldDBBackup=db-*-$(date -d -30day +%Y%m%d).sql# 执行备份操作tar zcf /home/backup/www-$Backup_Dir1-$(date +%Y%m%d).tar.gz -C /home/wwwroot/ -exclude=softmysqldump -u$MySQL_UserName -p$MySQL_PassWord $Backup_Database_Name1 > /home/backup/db-$Backup_Database_Name1-$(date +%Y%m%d).sql# 清理旧备份rm $OldWWWBackuprm $OldDBBackup# 上传备份文件cd /home/backup/lftp -u $FTP_UserName, $FTP_PassWord $FTP_HostName < EOFcd $FTP_BackupDirmrm $OldWWWBackupmrm $OldDBBackupmput $TodayWWWBackupmput $TodayDBBackupbyeEOF

    脚本解析说明

  • 备份文件生成:脚本会根据当前日期生成备份文件名,区分今天的全量备份和增量备份。
  • 本地备份:使用tar命令备份网站文件,mysqldump命令备份数据库。
  • 异地备份:通过FTP上传备份文件到指定服务器。
  • 旧备份清理:定期删除30天前的旧备份,释放存储空间。
  • 使用说明

  • 将脚本保存至/root目录,并设置执行权限:
    chmod +x /root/backup.sh
  • 使用crontab定期执行备份任务:
    crontab -e

    添加以下行:

    0 3 * * * /root/backup.sh
  • 脚本将在每日凌晨3点自动执行。

    温馨提示

  • 确保MySQL的binlog功能正常运行。如需修改,请参考以下配置:
    log-bin=../logs/mysql-binmax-binlog-size=512M
  • 增量备份时,建议每天全量备份一次,每小时进行一次binlog备份。
  • 通过以上方案,您可以实现网站文件和数据库的自动化双备份,确保数据安全并降低运维成本。

    转载地址:http://djdfk.baihongyu.com/

    你可能感兴趣的文章
    MySQL原理、设计与应用全面解析
    查看>>
    MySQL原理简介—1.SQL的执行流程
    查看>>
    MySQL参数调优详解
    查看>>
    mysql参考触发条件_MySQL 5.0-触发器(参考)_mysql
    查看>>
    MySQL及navicat for mysql中文乱码
    查看>>
    MySqL双机热备份(二)--MysqL主-主复制实现
    查看>>
    MySql各种查询
    查看>>
    mysql同主机下 复制一个数据库所有文件到另一个数据库
    查看>>
    mysql启动以后会自动关闭_驾照虽然是C1,一直是开自动挡的车,会不会以后就不会开手动了?...
    查看>>
    mysql启动和关闭外键约束的方法(FOREIGN_KEY_CHECKS)
    查看>>
    Mysql启动失败解决过程
    查看>>
    MySQL启动失败:Can't start server: Bind on TCP/IP port
    查看>>
    mysql启动报错
    查看>>
    mysql启动报错The server quit without updating PID file几种解决办法
    查看>>
    MySQL命令行登陆,远程登陆MySQL
    查看>>
    mysql命令:set sql_log_bin=on/off
    查看>>
    mySQL和Hive的区别
    查看>>
    MySQL和Java数据类型对应
    查看>>
    mysql和oorcale日期区间查询【含左右区间问题】
    查看>>
    MySQL和SQL入门
    查看>>