全球主机交流论坛
标题:
有什么办法让每隔10分钟拷贝mysql目录的data目录到指定目录?
[打印本页]
作者:
mayapop1
时间:
2010-8-5 23:06
标题:
有什么办法让每隔10分钟拷贝mysql目录的data目录到指定目录?
系统是2003
作者:
foxlovefox
时间:
2010-8-5 23:09
vb...
作者:
laixuhui
时间:
2010-8-5 23:14
嘿嘿。。牛。。。。
作者:
usa
时间:
2010-8-5 23:16
bat
作者:
WAKAKA
时间:
2010-8-5 23:17
while :
do
cp -a /!@#$/mysql/data /root/save/
sleep 15m
done
复制代码
sleep
update: 不好意思,看错了,原来是2003 ....
[
本帖最后由 WAKAKA 于 2010-8-5 23:19 编辑
]
作者:
mayapop1
时间:
2010-8-6 01:13
2003咋弄呢
作者:
vnconfig
时间:
2010-8-6 01:16
任务计划……
作者:
zyypp
时间:
2010-8-6 01:43
计划任务定时执行 vbs或者bat之类的脚本
或者直接找现成的第三方备份管理工具
作者:
Captain
时间:
2010-8-6 02:57
应mayapop1要求所写,该程序特点是可按日期(精确到秒)生成备份文件(copy机制,原文件无损),并可生成log文件备查看,可以用与mysqldata文件以及其他重要文件备份
本论坛首发 若转载请注明来自 全球主机交流论坛
www.loc.010206.xyz
(, 下载次数: 5)
上传
点击文件名下载附件
内容比较简单,大家可以手动改改,拿去做他用
务必先手动设置mysqlbackup.bat的参数
:: 参数设置部分,请手动设置参数,bakdir为备份目录,sqldatadir为mysql\data文件夹目录
@set bakdir="e:\mysqlbak"
@set sqldatadir="d:\mysql\data"
mysqlbackup.bat
@echo off
@echo ------------
@echo 数据自动备份批处理脚本
@echo ------------
:: 参数设置部分,请手动设置参数,bakdir为备份目录,sqldatadir为mysql\data文件夹目录
@set bakdir="e:\mysqlbak"
@set sqldatadir="d:\mysql\data"
:: 以下可以无视
set ThisDay=%date:~0,4%%date:~5,2%%date:~8,2%
if "%time:~0,2%" lss "10" (
set ThisTime=0%time:~1,1%%time:~3,2%
) else (
set ThisTime=%time:~0,2%%time:~3,2%
)
set Now=%ThisDay%%ThisTime%
if not exist %bakdir% (md %bakdir%)
echo d|xcopy "%sqldatadir%" "%bakdir%\mysqldata-%Now%" /S /E /Y /C >> %bakdir%\log.txt
复制代码
接下来只要运行run.bat,输入密码即可定时备份
run.bat
copy mysqlbackup.bat %windir%\System32\mysqlbackup.bat
schtasks /create /sc minute /mo 10 /tn "mysql定时备份" /tr "%windir%\System32\mysqlbackup.bat" /ED 2099/12/31
复制代码
[
本帖最后由 Captain 于 2010-8-6 03:37 编辑
]
作者:
Captain
时间:
2010-8-6 02:59
来个打包
[
本帖最后由 Captain 于 2010-8-6 03:00 编辑
]
作者:
WAKAKA
时间:
2010-8-6 03:02
MARK 收藏
作者:
堕落市场
时间:
2010-8-6 03:06
这个确实很有用,谢谢分享
作者:
mmxp
时间:
2010-8-6 03:23
提示:
作者被禁止或删除 内容自动屏蔽
作者:
herolee
时间:
2010-8-6 11:14
这种备份方法不科学……
作者:
ATOM
时间:
2010-8-6 11:20
标记收藏.
作者:
小菜鸟
时间:
2010-8-6 11:25
十分钟备份一次。
楼主也算是牛人了。
要是数据库很大,上G了,10分钟一次不是折腾吗。
要是数据库很少,有必要10分钟一次吗?
一般来说。一天备份一次就OK了。
作者:
mudfrog
时间:
2010-8-6 11:45
我来贡献一段代码
我曾经维护过不少windows2003服务器,php+mysql环境
直接copy data目录数据安全性无法保证
建议用mysqldump导出备份
echo 备份某个网站的数据库
C:\MySQL\bin\mysqldump.exe dbname --opt >E:\backup\dbname.sql -ubackupadmin -pbackupadminmima
echo 用winrar对数据库文件进行打包
C:\Progra~1\WinRAR\rar.exe a -inul -ri0 -r -s -inul -hp123456 -ms E:\backup\dbname.rar E:\backup\dbname.sql
echo 根据日期将数据库文件进行归档
for /f "tokens=1,2,3,4* delims=- " %%a in ("%date%") do move E:\backup\dbname.rar E:\backup\db\dbname%%a%%b%%c.rar
复制代码
简单介绍一下代码
路径什么自己调整
首先将 数据备份成.sql文件,然后rar压缩,再整理出包含日期名的归档文件。
备份时候
dbname 就是数据库的名称
-u参数后面跟的是用户名 -p是密码
rar打包那一段,打包文件是加密码的,密码是123456,自己可以修改,也可以取消密码保护
上面代码里面 我在mysql里面创建了一个backupadmin的用户,密码是backupadminmima
全局权限给予
select
lock tables
这两个权限
这样可以避免用root来备份。
保存成bat文件后,用计划任务来调用执行即可。
我的站 butian.org
[
本帖最后由 mudfrog 于 2010-8-6 11:49 编辑
]
作者:
cuxian
时间:
2010-8-6 11:49
用bat 呵呵
作者:
炎羽
时间:
2010-8-6 12:56
你们数据库都不会被锁定的么,无法复制和写入
作者:
spectrum
时间:
2010-8-6 13:18
提示:
作者被禁止或删除 内容自动屏蔽
作者:
winsock
时间:
2010-8-6 13:30
bin-log吧,复制data肯定是不可取的。。
作者:
Captain
时间:
2010-8-6 19:51
本人从事管理win2003系统多年,经常帮客户还原数据,每周备份复制出来的data还没出现过出错的情况,但是考虑到数据不停的读写,如果复制的话,复制同时新写入的文件可能会不会记录,所以这个任务最好是在半夜执行,每24小时比较妥当
如果用我的方案,想保证数据最新且同步,可以先停止mysql,备份好之后再启动,但是不适合较大的数据库,因为网站不能等数据库停止太长时间
以下是这个方法的改法,在备份前后,加mysql停止和启动
net stop mysql
if not exist %bakdir% (md %bakdir%)
echo d|xcopy "%sqldatadir%" "%bakdir%\mysqldata-%Now%" /S /E /Y /C >> %bakdir%\log.txt
net start mysql
若是想不停止数据库来备份的话,可以采用17楼的方法,+上我帖子里run.bat添加计划任务来实现,就是设置的地方稍微复杂一些了
欢迎光临 全球主机交流论坛 (https://loc.010206.xyz/)
Powered by Discuz! X3.4