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

继续介绍Linux服务器文件备份,数据库备份,数据安全存储相关的电子商务系统架构。针对安全性有多种多样的解决方案,其中数据备份是重中之重的首要工作。

电子商务网站更加注重考虑数据安全,数据备份方案,包括本地备份、异地备份架构。其中Linux服务器的备份方案非常多,本文介绍一个大众化适用的解决方案,通过编写Shell脚本来完成自动备份。本架构包括备份网站文件、数据库,自动本地备份并FTP上传备份脚本,完成相应本地备份、异地备份,实现双层备份解决方案。

本文要点:

1.MYSQL数据库自动本地/异地双备份/MYSQL数据库增量备份。

2.编写Shell脚本来完成自动MYSQL备份、MYSQL数据库增量备份。

3.同时进行自动本地/异地双备份,FTP上传备份。

4.Linux服务器的备份解决方案。

5.Shell脚本包括备份网站文件,网站程序文件、数据文件,MYSQL数据库。

6.定期定时自动完成备份。定期删除旧备份,这里是自动删除30天前备份,复用利用备份空间。

目录:

一、准备工作

二、网站运维异地备份方案及故障应急备用镜像站架构图

三、网站MYSQL数据库自动本地/异地双备份/MYSQL数据库增量备份Shell脚本,完整的实例;备份脚本进行详细解说,注释。

在运营中的电子商务网站,建站之初就一直在重申一定要备份好自己的数据,因为太多的不确定性可能会造成数据库丢失,而且大部分基础服务商也不可能提供每天备份数据。原来本BLOG提供过一个备份方法,介绍了Shell脚本MYSQL数据库自动备份,没有介绍MYSQL数据库增量备份。今天分享一个自己的备份脚本。

参考之前的文章http://jimmyli.blog.51cto.com/3190309/691069《构建高安全电子商务网站之(网站文件及数据库自动本地/异地双备份)[连载之电子商务系统架构]》

一、准备工作:

Linux服务器安装好lftp,另外需要提前在Linux服务器上创建/home/backup/ 备份目录建立。并且保证FTP能正常使用账户密码登陆上次文件。既是保证FTP服务正常提供服务。

二、网站运维异地备份方案及故障应急备用镜像站架构图

网站运维异地备份方案及故障应急备用镜像站

定期检查异地备份故障应急时,启用应急Web服务连接:http://jimmyli.blog.51cto.com/3190309/584992网站运维异地备份方案及故障应急备用镜像站

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

脚本一:

网站及数据库自动本地备份并FTP上传备份Shell脚本,完整的实例:

========================================================================

Shell

#!/bin/bash

#Funciont: Backup website and mysql database

#Author: Jimmy Li

#Website: http://jimmyli.blog.51cto.com/

#IMPORTANT!!!Please Setting the following Values!

Backup_Dir1=/data/wwwroot/www.zuihuasuan8.net

MYSQL_UserName=root

MYSQL_PassWord=你的mysql数据库root密码

Backup_Database_Name1=www.zuihuasuan8.net

FTP_HostName=www.zuihuasuan8.net

FTP_UserName=www.zuihuasuan8.net

FTP_PassWord=www.zuihuasuan8.net

FTP_BackupDir=www.zuihuasuan8.net——backup

TodayWWWBackup=www-*-$(date +"%Y%m%d").tar.gz

TodayDBBackup=db-*-$(date +"%Y%m%d").sql

OldWWWBackup=www-*-$(date -d -30day +"%Y%m%d").tar.gz

OldDBBackup=db-*-$(date -d -30day +"%Y%m%d").sql

tar zcf /home/backup/www-$Backup_Dir1-$(date +"%Y%m%d").tar.gz -C /home/wwwroot/ $Backup_Dir1 --exclude=soft

/usr/local/mysql/bin/mysqldump -u$MYSQL_UserName -p$MYSQL_PassWord $Backup_Database_Name1 >

/home/backup/db-$Backup_Database_Name1-$(date +"%Y%m%d").sql

rm $OldWWWBackup

rm $OldDBBackup

cd /home/backup/

lftp $FTP_HostName -u $FTP_UserName,$FTP_PassWord << EOF

cd $FTP_BackupDir

mrm $OldWWWBackup

mrm $OldDBBackup

mput $TodayWWWBackup

mput $TodayDBBackup

bye

EOF

备份脚本进行详细解说,注释参考 http://jimmyli.blog.51cto.com/3190309/691069 《构建高安全电子商务网站之(网站文件及数据库自动本地/异地双备份)[连载之电子商务系统架构]》

========================================================================

脚本二:

MYSQL数据库增量备份Shell脚本

如果数据库数据量比较大,可以一天全备一次, 再每隔一小时增量备份一次;

建立增量备份目录

增量备份的文件放在/backup/mysql/daily目录下。

增量备份的数据量比较小,但是要在完整备份的基础上操作。

增量备份使用bin log,脚本如下:

Shell

#!/bin/sh

# mysql data backup script

# use mysqldump --help,get more detail.

#Author: Jimmy Li

#Website: http://jimmyli.blog.51cto.com/

# mysql binlog backup script

/usr/bin/mysqladmin flush-logs

DATADIR=/var/lib/mysql

BAKDIR=/backup/mysql/daily

###如果mysql bin log你做了特殊设置,请修改此处或者修改应用此变量的行:缺省取机器名,mysql缺省也是取机器名

HOSTNAME=`uname -n`

cd $DATADIR

FILELIST=`cat $HOSTNAME-bin.index`

## COUNTER number

COUNTER=0

for file in $FILELIST

do

COUNTER=`expr $COUNTER + 1 `

done

NextNum=0

for file in  $FILELIST

do

base=`basename $file`

NextNum=`expr $NextNum + 1`

if [ $NextNum -eq $COUNTER ]

then

echo "skip lastest"

else

dest=$BAKDIR/$base

if(test -e $dest)

then

echo "skip exist $base"

else

echo "copying $base"

cp $base $BAKDIR

fi

fi

done

echo "backup mysql binlog ok"

脚本解析说明:

增量备份脚本是备份前flush-logs,mysql会自动把内存中的日志放到文件里,然后生成一个新的日志文件,所以我们只需要备份前面的几个即可,也就是不备份最后一个.

因为从上次备份到本次备份也可能会有多个日志文件生成,所以要检测文件,如果已经备份过,就不用备份了.

温馨提示、增量备份:

每天中午03点和晚上03点做一次全备,每隔一小时备份binlog,也就是增量备份,具体操作如下:

Linux下开启binlog

MYsql Binlog

/etc/my.cnf中的mysqld部分加入:

[mysqld]

log-bin=../logs/mysql-bin

max-binlog-size=512M

windows下开启binlog

%mysql%/my.ini中的mysqld部分加入:

[mysqld]

log-bin =../logs/mysql-bin

max-binlog-size=512M

将脚本放到/root/ 下面,按上面的注释修改脚本中的参数,使用vim编辑器并保存。

执行:chmod +x /root/backup.sh 为脚本添加执行权限。

执行:crontab -e 添加定时执行。

在crontab中加入:0 3 * * * /root/backup.sh

凌晨3点自动执行/root/bakcup.sh 脚本,备份Linux服务器上的数据并上传到预先设定好的异地FTP上。

选择在凌晨3进行备份,是因为这个时间段网站的访问量是最低。也就是说在很少人访问的情况下做备份操作。

mysql 本地备份_MYSQL数据库自动本地/异地双备份/MYSQL增量备份相关推荐

  1. mysql自动异地备份脚本_MYSQL数据库自动本地/异地双备份/MYSQL增量备份

    构建高安全电子商务网站之(网站文件及数据库自动本地/异地双备份)架构图 继续介绍Linux服务器文件备份,数据库备份,数据安全存储相关的电子商务系统架构.针对安全性有多种多样的解决方案,其中数据备份是 ...

  2. MySQL自动备份到本地数据库_MYSQL数据库自动本地/异地双备份/MYSQL增量备份

    构建高安全电子商务网站之(网站文件及数据库自动本地/异地双备份)架构图 继续介绍Linux服务器文件备份,数据库备份,数据安全存储相关的电子商务系统架构.针对安全性有多种多样的解决方案,其中数据备份是 ...

  3. mysql 数据库 自动备份_MYSQL数据库自动备份

    第一步:配置mysql的环境变量 在PATH中添加mysql的路径到bin目录(如:E:\mysql\MySQL Server 5.1\bin) 第二步:创建批处理文件(.bat)内容如下: @ech ...

  4. mysql window系统备份远程数据库到本地

    使用方法:创建test.bat文件,保存以下内容,修改配置后双击打开 @echo offREM 声明采用UTF-8编码 chcp 65001echo. echo MySQL数据库备份脚本 echo. ...

  5. Linux下自动备份Oracle数据库并删除指定天数前的备份

    说明: Oracle数据库服务器 操作系统:CentOS IP:192.168.0.198 端口:1521 SID:orcl Oracle数据库版本:Oracle11gR2 具体操作: 1.root用 ...

  6. RMAN备份数据库_制作和更新RMAN增量备份(Incremental Backup)

    增量备份只拷贝从指定的之前的备份以后更改过的数据文件块.使用BACKUP命令来创建增量备份. 增量备份要么是累积增量备份,要么是差异增量备份. 虽然备份的内容相同,BACKUP DATABASE和BA ...

  7. mysql数据库双机备份_MySQL数据库本地备份和双机相互备份

    MySQL的本地备份和双机相互备份脚本: 首先,我们需要修改脚本进行必要的配置,然后以root用户执行. ◆1. 第一执行远程备份时先用 first参数. ◆2. 本地备份用local参数 ◆3. 远 ...

  8. mysql备份脚本+关_mysql数据库自动定期备份的脚本

    mysql数据库自动定期备份的脚本 说明: 保留每天备份的数据是件不太现实的事,做好的做法是保留前三天的 备份数据.把备份的数据打包并压缩,文件名以系统时间命名,打包后的 备份文件放在一个特定的文件夹 ...

  9. mysql异地备份_MySQL数据库异地备份与还原方法

    一.传统的MySQL数据库备份和恢复数据方法: 生成duSQL脚本 在控制zhi台使用mysqldump命令可以用来生成指定数据库的dao脚本文本,但要注意,脚本文本中只包含数据库的内容,而不会存在创 ...

最新文章

  1. 每天60万人次在连接风险WiFi 有你吗
  2. Node.js 把图片流送到客户端
  3. C++实现选择排序(附完整源码)
  4. Java -- 内部类(一)
  5. 附件中可能包含对计算机有害的病毒.附件可能无法正确显示,广西成人高校计算机实用基础统考理论试题(A卷)...
  6. 推荐系统顶会RecSys’20亮点赏析
  7. 你的食物变质没?用AI算法来检测一下吧
  8. php给别人写接口,php给客户端写接口记录
  9. vue怎么使用php调取数据,vue 数据操作
  10. “华为鸿蒙”操作系统下月发布?华为辟谣:请以官方声明为准
  11. matlab编辑rayfile光源文件,rayfile网盘功能详解 rayfile网盘安装步骤及安装注意事项...
  12. LA 6538 Dinner Coming Soon DP
  13. [论文阅读] Variational Adversarial Active Learning
  14. opencv基础---直方图均衡化(原理equalizeHist)
  15. java url压缩_URL压缩算法的短地址
  16. ocienvcreate php 失败_win7 homebasic下,.net2008 连接oracle,提示错误OCIEnvCreate
  17. 【空瓶识别】基于matlab灰度+二值化空瓶检测【含Matlab源码 806期】
  18. Cisco 路由器破解密码
  19. 天翼网关 ddns设置_超高并发服务网关架构设计与实现
  20. 如何在项目中规范git commit格式

热门文章

  1. 【OpenCV学习】内存分配讨论两例
  2. UI控件库分享:DWZ(j-UI)、LigerUI、Linb
  3. Hibernate5.x Idea搭建
  4. 企业数据中心和互联网数据中心有何不同?
  5. spring boot启用tomcat ssl
  6. kafka入门:简介、使用场景、设计原理、主要配置及集群搭建
  7. Qt5 和 Qt4 的一些改动和不同
  8. mysql 查询 字段是否为空
  9. linux系统 克隆 恢复 Clonezilla 再生龙 使用
  10. linux shell 缺少 ps 命令