如何每天自动备份MySql文件

如何每天自动备份MySql文件,第1张

随着数据库在网站建设中的不断应用,现如今绝大多数网站已经离不开数据库支持了,因为数据库不仅可以存储网站内容等信息,还可以存储用户提交的信息。由于这些信息非常宝贵,一旦丢失几乎难以挽回。
所有站长不仅要注意备份服务器上的网页html文件,或者程序代码,还要对数据库文件优先进行备份。
最简单的数据库备份可以通过phpMyAdmin手动备份并下载文件到指定位置,但是对于那些需要每天及时备份的站长来说,手动备份数据库比较麻烦,所以本文讲解一下如何利用国外主机的时钟程序配合shell命令代码实现每天定时备份数据库文件并下载到指定目录。
shell备份数据库
首先创建一个文件命名为:“backupsh”,在其中输入以下命令:
#!/bin/bash
# Set a value that we can use for a datestamp
DATE=`date +%Y-%m-%d` $
# Our Base backup directory
BASEBACKUP="/backup/daily"
for DATABASE in `cat /backup/db-listtxt`
do
# This is where we throw our backups
FILEDIR="$BASEBACKUP/$DATABASE"
# Test to see if our backup directory exists
# If not, create it
if [ ! -d $FILEDIR ]
then
mkdir -p $FILEDIR
fi
echo -n "Exporting database: $DATABASE"
mysqldump --user=root --opt $DATABASE | gzip -c -9 > $FILEDIR/$DATABASE-$DATEsqlgz
echo " [ Done Exporting to local backup, now exporting for remote backup] "
cp $FILEDIR/$DATABASE-$DATEsqlgz /backup/uploads/$DATABASEsqlgz
echo " [Done]"
done
# AutoPrune our backups This will find all files
# that are "MaxFileAge" days old and delete them
MaxFileAge=4
find $BASEBACKUP -name 'gz' -type f -mtime +$MaxFileAge -exec rm -f {} \;
简单来说,这个命令会从db-listtxt文件(一个记录有数据库名称的列表文本文件)中逐行调取数据库并输出+压缩数据文件(datastamped )到/backup/daily/databasename/目录下面;然后该命令有把一个 non-datestamped 文件存储到/backup/uploads/目录下面,并覆盖掉原有的文件。
同时,为了节约资源,该命令会自动删掉4天前的数据库文件。
时钟命令(Cron Jobs)
备份完之后要利用时钟命令将数据库备份以及存储以自动的方式每天执行,首先需要激活backupsh;
10 4 sh / backup/backupsh
这个命令是让服务器每天早上4:10分开始执行数据库备份,当然什么时间执行是取决你的。
然后在时钟命令中输入以下命令:
10 6 /usr/local/bin/ncftpput -Ef /home/admin/ncftpputlogin / /backup/uploads/
这个命令是告诉一个命名为ncftpput的程序(该程序位于ncftputlogin目录下)每天早上6:10将数据库文件上传到/backup/uploads目录下面。ncftpputlogin目录中存有服务器的用户信息,如果你的服务器没有安装ncftp,你可以自己安装一个,很简单。
总结
如果你的数据库文件较大,可能备份的时候需要占用很多服务器资源,所以站长要尽量选择访客最少的时间段执行自动备份命令,比如凌晨4-5点左右。而且要注意给备份留下足够的时间然后执行存储命令。
因为一个服务器可能会遭到天灾人祸,备份的数据库文件要存在不同的服务器或者下载到本地更保险。

最安全的备份方法是将他们纪录於不同的媒体中,例如磁带,抽取式硬碟,可写式 cd 等。进行一般的备份应该是负责任的系统管理者的最高优先考虑。虽然Linux是一个高度可靠的作业系统,系统失效仍然可能发生。可能因为硬体故障,电源中断,或其他不可预料的问题。更常见的这些问题是来自人为的错误,不当的变动,甚至因为删除重要的档案。如果您负责管理系统上的用户,一定可能常被要求重建因为不小心误删的档案。如果您进行一般备份,以每日为基础较好(至少对更动频繁的使用者档案),您将会有助於减少档案的损失,并且增加复原程度。最安全的备份方法是将他们纪录於不同的媒体中,例如磁带,抽取式硬碟,可写式cd等。然後将您的备份和您的Linux系统分开存放。有时候这可能并不实际——也许在您可以存放备份磁带的地方没有防火室!或是在第一优先的地点没有办法存取这样的外部备份系统。虽然如此,仍然可以进行备份,只是会受到一点限制。服务器备份程序进行Linux备份有几种不同的方法,其中包括所有Linux发行版本中都有的命令列工具,例如“dd”,“dump”,“cpio”以及“tar”。其他还有文字型态工具,例如“Amanda”及“Taper”,这些是被设计来在备份及回存过程中加入更友善的使用者介面。当然也有图形介面的工具,像是“KDat”。最後,还有商业化的备份工具,像是“BRU”和“PerfectBackup+”。这些备份计划中任何之一都足以提供您宝贵资料的保护。这里有一些包括哪里可以获得工具的列表,可以在“LinuxApplicationsandUtilitiesPage”找到,当决定好备份方式,您可能要考虑下列几点因素:可携性-备份的可携性(亦即。从一个Linux发行版本或应用Unix备份然後回存到另外一个;例如从Solaris到RedHatLinux)对您而言是否重要?如果是,可能想要选择一个命令列的工具(亦即。“dd”,“dump”,“cpio”,或“tar”),因为您可以相当地确定该工具可以在另一个nix系统上找到。无人或自动备份-定期自动进行备份而不需人力介入之能力,对您而言是否重要?如果是,您可能需要能支援该方案的工具及备份媒体。使用者友善-使用者友善的介面对您而言是否重要?如果是,您可能想要选择一个文字或图形介面的工具。商业的应用程式可以提供最简便的介面及技术支援。远端备份-从远端机器进行备份及回存的能力对您而言是否重要?如果是,您可能想要选择命令列或文字模式的工具而不是图形介面(除非您有相当快的网络连结及执行远端Xsessions的能力)。网络备份-从网络主机进行备份及回存对您而言是否重要?如果是,您可能要用一些支援从网络存取备份设备的命令列工具(像是“tar”),或是专用工具程式例如“Amanda”或是一些商业工具程式。媒体型态-备份可以储存在很多不同的媒体,像是磁带,外接式硬碟,ZIP磁碟,或可读写CD考虑售价及可靠性,储存容量,及传送速度。警告:当备份您的系统时,不要包括“/proc”伪档案系统!/proc中的档案并非真的档案,而仅是看起来像档案的描述,而且指向核心资料结构的连结。备份“/proc/kcore”,这事实上这是一个伪装档案,包含记忆体中所有的资料,会浪费很多的磁带!您可能也需要避免备份“/mnt”档案系统,除非您有从CD-ROM,软碟机,网络分享档案,或其他安装设备上备份的特殊需求。明显地,备份及回存的过程会因您所选择的备份方法而有所不同。

单击"开始"|"所有程序"|Microsoft SQL Server 2008|配置工具|SQL Server配置管理器,启动SQL Server配置管理器
2
d出"SQL Server Configuration Manager"窗口,点击左侧"SQL Server"项,右侧可以看到默认状态下"SQL Server代理(MSSQLSERVER)"已停止,启动模式为"手动",下面将启用"SQL Server代理"并设定启动模式为"自动",通过这样设置,以后重启服务器时,会自动开启SQL SERVER代理服务
3
双击"SQL Server代理(MSSQLSERVER)",d出"SQL Server代理(MSSQLSERVER)属性"窗口,在"登录"选项卡内点击"启动"
4
切换到"服务"选项卡,启动模式下拉列表中选择"自动",再单击"确定"按钮
5
返回到"SQL Server Configuration Manager"窗口,可以看到SQL SERVER代理已运行,启动模式已设置为自动
END
向导方式创建备份计划
1
单击"开始"|"所有程序"|Microsoft SQL Server 2008|SQL Server Management Studio命令,启动SSMS
2
按照默认设置不变,点击"连接"按钮,连接到数据库服务器
3
在SSMS管理器的"对象资源管理器"子窗口中展开"管理"|"维护计划",鼠标右键单击"维护计划",d出一个快捷菜单,选择"维护计划向导"命令
4
d出"SQL SERVER维护计划向导"窗口,直接单击"下一步"按钮
5
d出"选择计划属性"窗口,在名称处填写"ERP账套每日完整备份计划",在说明处填写"完成公司两个账套ERP_AIS2014A和ERP_AIS2014B的每日23:00自动备份,对超过一个星期以上的备份账套进行消除,以节省服务器磁盘空间",点选"整个计划统筹安排或无计划"单选框,点击"下一步"按钮继续
6
d出"选择维护任务"窗口,此处勾选"消除维护任务"和"备份数据库(完整)"两个多选框,单击"下一步"按钮继续
7
d出"选择维护任务顺序"窗口,此处按照默认顺序,如果要调整顺序可以通过点击"上移","下移"按钮来实现,点击"下一步"按钮继续
8
d出"定义"备份数据库(完整)"任务"窗口
9
单击"数据库"下拉列表,选择ERP_AIS2014A和ERP_AIS2014B两个数据库,在"文件夹"右侧点击浏览按钮,选择数据库备份路径为"E:\账套备份",也可以直接在文本框内输入,勾选"验证备份完整性",选择"不压缩备份",最后单击"下一步"按钮
10
d出"定义"消除历史记录"任务"窗口
在此窗口中,点选"备份文件","文件夹"文本框内输入E:\账套备份,文件扩展名为bak,勾选"一级子文件夹",勾选"在任务运行时根据文件保留时间删除文件",并设置为1周时间,点击"下一步"按钮继续,如图所示
d出"选择报告选项",以默认方式不变,点击"下一步"按钮
d出"完成该向导"确认窗口,点击"完成"按钮
d出"完成成功"窗口,单击"关闭"按钮
返回到SSMS窗口,可以看到"ERP账套每日完整备份计划"创建成功
双击"ERP账套每日完整备份计划",将打开图形化的设计窗口,此处可以对备份计划进行修改
点击"未计划(按需)"右边的表格形按钮,d出"作业计划属性"窗口,名称处输入:ERP账套每日完整备份计划计划,计划类型:重复执行,执行频率为"每天",执行时间为23:00,最后点击"确定"按钮
至此整个备份计划创建完毕,下一步,要测试一下备份计划执行情况:右键单击"ERP账套每日完整备份计划",d出快捷菜单中选择"执行"命令项
立刻开始备份计划的执行,过一段时间后,提示执行成功,点击"关闭"按钮
到电脑中,打开备份路径E:\账套备份,发现自动生成了两个备份文件,至此整个 *** 作演示结束,圆满完成了既定的目标

添加计划任务首先要注意TaskScheduler服务是自动运行状态,其次是当前用户要有密码。也就是你添加任务的时候要设置运行的账户和密码,空密码不行。
再一个Fastcopy支持命令行 *** 作,具体参数可以看帮助文件或者百度,所以可以做一个批处理。添加计划任务的时候添加那个批处理文件就行了。

通过企业管理器设置数据库的定期自动备份计划。
1、打开企业管理器,双击打开你的服务器
2、然后点上面菜单中的工具-->选择数据库维护计划器
3、下一步选择要进行自动备份的数据-->下一步更新数据优化信息,这里一般不用做选择-->下一步检查数据完整性,也一般不选择
4、下一步指定数据库维护计划,默认的是1周备份一次,点击更改选择备份的日期及时间点确定,
5、下一步指定备份的磁盘目录,选择指定目录,然后选择删除早于多少天前的备份,选择一个星期删除一次备份,具体备份看你的要求,备份文件扩展名默认的是BAK
6、下一步指定事务日志备份计划,看你的需要做选择-->下一步要生成的报表,一般不做选择-->下一步维护计划历史记录,最好用默认的选项-->下一步完成
7、完成后系统很可能会提示Sql Server Agent服务未启动,先点确定完成计划设定,然后找到桌面最右边状态栏中的SQL图标,双击点开,在服务中选择Sql Server Agent,然后点击运行箭头,选上下方的当启动OS时自动启动服务
8、设置启动sql server Agent:
运行Servicesmsc,设置sqlserverAgent为自动启动。
启用SQLserver Agent是必要的,而且也可以通过它来添加作业或者SQL语句来执行备份。然后再通过相应的批处理来删除多余的备份,保留几天的备份。相关资料请另行查阅!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13181421.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-06-17
下一篇 2023-06-17

发表评论

登录后才能评论

评论列表(0条)

保存