登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

糟老頭的地盤

老頭的地盤听老頭的

 
 
 

日志

 
 

使用mysqldump 批量备份 mysql数据库 for windows  

2010-08-27 00:54:37|  分类: study |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

使用asp文件生成备份脚本

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

view plaincopy to clipboardprint?
<%  
'----------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 
%> 
<%
'----------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;
也就是把内存中的数据都刷新到磁盘中,同时锁定数据表,以保证拷贝过程中不会有新的数据写入。这种方法备份出来的数据恢复也很简单,直接拷贝回原来的数据库目录下即可。


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/pengyouchuan/archive/2010/03/06/5351931.aspx

  评论这张
 
阅读(1631)| 评论(0)

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018