Maison base de données tutoriel mysql MYSQL数据库自动本地/异地双备份/MYSQL增量备份

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

Jun 01, 2016 pm 01:13 PM
数据库备份 电子商务 解决方案

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

  继续介绍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服务正常提供服务。


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


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

脚本二:
MYSQL数据库增量备份Shell脚本

如果数据库数据量比较大,可以一天全备一次, 再每隔一小时增量备份一次;
建立增量备份目录
增量备份的文件放在/backup/mysql/daily目录下。
增量备份的数据量比较小,但是要在完整备份的基础上操作。

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

双击代码全选
123456789101112131415161718192021222324252627282930313233343536373839404142434445 #!/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/mysqlBAKDIR=/backup/mysql/daily ###如果mysql bin log你做了特殊设置,请修改此处或者修改应用此变量的行:缺省取机器名,mysql缺省也是取机器名HOSTNAME=`uname -n`cd $DATADIR

FILELIST=`cat $HOSTNAME-bin.index`

 ## COUNTER numberCOUNTER=0

forfilein$FILELIST

doCOUNTER=`expr $COUNTER + 1 `done NextNum=0

forfilein $FILELIST

dobase=`basename $file`NextNum=`expr $NextNum + 1`if [ $NextNum -eq $COUNTER ]then

echo"skip lastest"

elsedest=$BAKDIR/$baseif(test -e $dest)then

echo"skip exist $base"

else

echo"copying $base"

cp $base $BAKDIRfifidone 

echo"backup mysql binlog ok"

脚本解析说明:
增量备份脚本是备份前flush-logs,mysql会自动把内存中的日志放到文件里,然后生成一个新的日志文件,所以我们只需要备份前面的几个即可,也就是不备份最后一个.
因为从上次备份到本次备份也可能会有多个日志文件生成,所以要检测文件,如果已经备份过,就不用备份了.
温馨提示、增量备份:
每天中午03点和晚上03点做一次全备,每隔一小时备份binlog,也就是增量备份,具体操作如下:
Linux下开启binlog
将脚本放到/root/ 下面,按上面的注释修改脚本中的参数,使用vim编辑器并保存。
执行:chmod +x /root/backup.sh 为脚本添加执行权限。
执行:crontab -e 添加定时执行。
在crontab中加入:0 3 * * * /root/backup.sh
凌晨3点自动执行/root/bakcup.sh 脚本,备份Linux服务器上的数据并上传到预先设定好的异地FTP上。
选择在凌晨3进行备份,是因为这个时间段网站的访问量是最低。也就是说在很少人访问的情况下做备份操作。

双击代码全选
12345678910 /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

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

双击代码全选
123456789101112131415161718192021222324252627282930 #!/bin/bash

#Funciont: Backup websiteandmysqldatabase

#Author: Jimmy Li#Website: http://jimmyli.blog.51cto.com/

#IMPORTANT!!!Please Setting the followingValues!

Backup_Dir1=/data/wwwroot/jimmyli.jimmyli.jimmyli.blog.51cto.comMYSQL_UserName=rootMYSQL_PassWord=你的mysql数据库root密码Backup_Database_Name1=jimmyli.jimmyli.jimmyli.blog.51cto.comFTP_HostName=jimmyli.jimmyli.jimmyli.blog.51cto.comFTP_UserName=jimmyli.jimmyli.jimmyli.blog.51cto.comFTP_PassWord=jimmyli.jimmyli.jimmyli.blog.51cto.comFTP_BackupDir=jimmyli.jimmyli.jimmyli.blog.51cto.com

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 $OldWWWBackuprm $OldDBBackupcd /home/backup/lftp $FTP_HostName -u $FTP_UserName,$FTP_PassWord <code>cd $FTP_BackupDirmrm $OldWWWBackupmrm $OldDBBackupmput $TodayWWWBackupmput $TodayDBBackupbyeEOF

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

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

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

本文出自 “Jimmy Li我站在巨人肩膀上” 博客,请务必保留此出处http://jimmyli.blog.51cto.com/3190309/888630

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Solution pour Win11 impossible d'installer le pack de langue chinoise Solution pour Win11 impossible d'installer le pack de langue chinoise Mar 09, 2024 am 09:15 AM

Win11 est le dernier système d'exploitation lancé par Microsoft. Par rapport aux versions précédentes, Win11 a considérablement amélioré la conception de l'interface et l'expérience utilisateur. Cependant, certains utilisateurs ont signalé avoir rencontré le problème de l'impossibilité d'installer le module linguistique chinois après l'installation de Win11, ce qui leur a posé des problèmes lors de l'utilisation du chinois dans le système. Cet article fournira quelques solutions au problème selon lequel Win11 ne peut pas installer le pack de langue chinoise pour aider les utilisateurs à utiliser le chinois en douceur. Tout d’abord, nous devons comprendre pourquoi le pack de langue chinoise ne peut pas être installé. D'une manière générale, Win11

Raisons et solutions de l'échec de l'installation de la bibliothèque Scipy Raisons et solutions de l'échec de l'installation de la bibliothèque Scipy Feb 22, 2024 pm 06:27 PM

Raisons et solutions de l'échec de l'installation de la bibliothèque scipy, des exemples de code spécifiques sont nécessaires Lors de l'exécution de calculs scientifiques en Python, scipy est une bibliothèque très couramment utilisée, qui fournit de nombreuses fonctions pour les calculs numériques, l'optimisation, les statistiques et le traitement du signal. Cependant, lors de l'installation de la bibliothèque scipy, vous rencontrez parfois des problèmes, entraînant l'échec de l'installation. Cet article explorera les principales raisons pour lesquelles l'installation de la bibliothèque Scipy échoue et fournira les solutions correspondantes. L'installation des packages dépendants a échoué. La bibliothèque scipy dépend de certaines autres bibliothèques Python, telles que nu.

Une solution efficace pour résoudre le problème des caractères tronqués provoqués par la modification du jeu de caractères Oracle. Une solution efficace pour résoudre le problème des caractères tronqués provoqués par la modification du jeu de caractères Oracle. Mar 03, 2024 am 09:57 AM

Titre : Une solution efficace pour résoudre le problème des caractères tronqués provoqués par la modification du jeu de caractères Oracle. Dans la base de données Oracle, lorsque le jeu de caractères est modifié, le problème des caractères tronqués se produit souvent en raison de la présence de caractères incompatibles dans les données. Afin de résoudre ce problème, nous devons adopter des solutions efficaces. Cet article présentera des solutions spécifiques et des exemples de code pour résoudre le problème des caractères tronqués provoqués par la modification du jeu de caractères Oracle. 1. Exportez les données et réinitialisez le jeu de caractères. Tout d’abord, nous pouvons exporter les données de la base de données à l’aide de la commande expdp.

Problèmes courants et solutions liés à la fonction Oracle NVL Problèmes courants et solutions liés à la fonction Oracle NVL Mar 10, 2024 am 08:42 AM

Problèmes courants et solutions pour la fonction OracleNVL La base de données Oracle est un système de base de données relationnelle largement utilisé et il est souvent nécessaire de gérer des valeurs nulles lors du traitement des données. Afin de résoudre les problèmes causés par les valeurs nulles, Oracle fournit la fonction NVL pour gérer les valeurs nulles. Cet article présentera les problèmes courants et les solutions des fonctions NVL, et fournira des exemples de code spécifiques. Question 1 : Utilisation inappropriée de la fonction NVL La syntaxe de base de la fonction NVL est : NVL(expr1,default_value).

Implémentation d'algorithmes d'apprentissage automatique en C++ : défis et solutions courants Implémentation d'algorithmes d'apprentissage automatique en C++ : défis et solutions courants Jun 03, 2024 pm 01:25 PM

Les défis courants rencontrés par les algorithmes d'apprentissage automatique en C++ incluent la gestion de la mémoire, le multithread, l'optimisation des performances et la maintenabilité. Les solutions incluent l'utilisation de pointeurs intelligents, de bibliothèques de threads modernes, d'instructions SIMD et de bibliothèques tierces, ainsi que le respect des directives de style de codage et l'utilisation d'outils d'automatisation. Des cas pratiques montrent comment utiliser la bibliothèque Eigen pour implémenter des algorithmes de régression linéaire, gérer efficacement la mémoire et utiliser des opérations matricielles hautes performances.

Causes courantes et solutions aux caractères chinois tronqués dans l'installation de MySQL Causes courantes et solutions aux caractères chinois tronqués dans l'installation de MySQL Mar 02, 2024 am 09:00 AM

Raisons et solutions courantes pour les caractères chinois tronqués dans l'installation de MySQL MySQL est un système de gestion de base de données relationnelle couramment utilisé, mais vous pouvez rencontrer le problème des caractères chinois tronqués lors de l'utilisation, ce qui pose des problèmes aux développeurs et aux administrateurs système. Le problème des caractères chinois tronqués est principalement dû à des paramètres de jeu de caractères incorrects, à des jeux de caractères incohérents entre le serveur de base de données et le client, etc. Cet article présentera en détail les causes courantes et les solutions des caractères chinois tronqués dans l'installation de MySQL pour aider tout le monde à mieux résoudre ce problème. 1. Raisons courantes : paramètre du jeu de caractères

Révéler la méthode pour résoudre l'échec de la clé PyCharm Révéler la méthode pour résoudre l'échec de la clé PyCharm Feb 23, 2024 pm 10:51 PM

PyCharm est un puissant environnement de développement intégré Python très apprécié des développeurs. Cependant, nous pouvons parfois rencontrer des problèmes d'invalidation de clé lors de l'utilisation de PyCharm, entraînant l'impossibilité d'utiliser le logiciel normalement. Cet article révélera la solution à l'échec de la clé PyCharm et fournira des exemples de code spécifiques pour aider les lecteurs à résoudre rapidement ce problème. Avant de commencer à résoudre le problème, nous devons d’abord comprendre pourquoi la clé n’est pas valide. L'échec de la clé PyCharm est généralement dû à des problèmes de réseau ou au logiciel lui-même

Analyse et solutions des vulnérabilités de sécurité du framework Java Analyse et solutions des vulnérabilités de sécurité du framework Java Jun 04, 2024 pm 06:34 PM

L'analyse des vulnérabilités de sécurité du framework Java montre que XSS, l'injection SQL et SSRF sont des vulnérabilités courantes. Les solutions incluent : l'utilisation des versions du cadre de sécurité, la validation des entrées, le codage des sorties, la prévention de l'injection SQL, l'utilisation de la protection CSRF, la désactivation des fonctionnalités inutiles, la définition des en-têtes de sécurité. Dans les cas réels, la vulnérabilité d'injection ApacheStruts2OGNL peut être résolue en mettant à jour la version du framework et en utilisant l'outil de vérification d'expression OGNL.

See all articles