您的位置:首页 > 数据库 > MySQL

[笔记]使用mysqldump 批量备份 mysql数据库 for windows

2010-03-06 14:45 597 查看
使用asp文件生成备份脚本

对应设置IIS用户,需要有读取mysql文件夹的权限

<%
'----------mysqldump用户名
root = "root"
'----------密码
pwd = "123456"
'----------mysql mysqldump 文件所在位置
mysql_bin_path = "D:/mysql/bin"
'----------mysql目录(本地路径)
mysql_path = "D:/mysql"
'----------mysql备份临时存放目录(本地路径)
mysq_back_temp_path = "D:/mysqlbackuptemp"
'----------mysql备份存放目录(本地路径)
mysq_back_path = "D:/mysqlbackup"
'----------winrar所在目录
winrar_path = "D:/WinRAR"
'----------备份脚本
back_content = ""
back_content = back_content & left(mysql_bin_path,2) & vbCrLf
back_content = back_content & "cd " & mysql_bin_path & vbCrLf
'----------压缩脚本
rar_content = ""
rar_content = rar_content & left(winrar_path,2) & vbCrLf
rar_content = rar_content & "cd " & winrar_path & vbCrLf
'遍历mysql数据库
Set fso = server.CreateObject("scripting.filesystemobject")
Set w1 = fso.getfolder(mysql_path)
For Each bak In w1.SubFolders
If FolderPermission(bak.Path) then
'mysqldump
back_content = back_content & "mysqldump -u" & root & " -p" & pwd & " " & bak.name & ">" & mysq_back_temp_path & "/" & bak.name & ".sql" & vbCrLf
'rar
rar_content = rar_content & "rar a -agYYYY-MM-DD -ep1 -df -ibck " & mysq_back_path & "/" & bak.name & ".rar " & mysq_back_temp_path & "/" & bak.name & ".sql" & vbCrLf
End If
Next
Set fso=Nothing
FileContent = back_content & vbCrLf & rar_content
'创建备份文件
response.write("创建MYSQL备份文件")
Call CreateFile("/backup_mysql.bat",FileContent)
Function FolderPermission(pathName)
'需要过滤的目录(不列在SiteMap里面)
PathExclusion = Array("guolv")
Folderpermission =True
for each PathExcluded in PathExclusion
if instr(ucase(pathName),ucase(PathExcluded))>0 then
Folderpermission = False
exit for
end if
next
End Function
'创建文件
Function CreateFile(FileName, ContentStr)
Set fso = CreateObject("Scripting.FileSystemObject")
Set txtFile = fso.CreateTextFile(Server.MapPath(FileName),True)
txtFile.Write(ContentStr)
txtFile.Close
Set fso = Nothing
End Function
%>


生成脚本 backup_mysql.bat 可以设置windows的任务计划来定时自动执行备份。

备注:

mysql中mysqldump用户权限

mysql中mysqldump是用来导出数据用的

如果需要特定的用户来完成导出工作

那至少需要 Select和LOCK TABLES 两个权限

mysql备份的最直接的方法,直接拷贝数据库文件
直接拷贝数据文件最为直接、快速、方便,但缺点是基本上不能实现增量备份。为了保证数据的一致性,需要在备份文件前,执行以下 SQL 语句:
FLUSH TABLES WITH READ LOCK;
也就是把内存中的数据都刷新到磁盘中,同时锁定数据表,以保证拷贝过程中不会有新的数据写入。这种方法备份出来的数据恢复也很简单,直接拷贝回原来的数据库目录下即可。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: