VBS脚本获取最新数据备份及重名数据文件

简介:

我们前面提到了,近期公司一直对OA系统上线忙前忙后,所以对于运维的我来说需要借助一些脚本工具替我分担解忧,现在遇到的问题是,我们需要将从真实环境上定时备份的SQL数据库数据拷贝到测试环境中,然后还原数据库,由于还原数据库我们使用SQL自带的脚本程序就可以完成,但是在完成的过程中,我们需要对还原的数据库名称做统一,因为我们都知道数据库通过计划任务备份后都是以日期命名的,所以我们在用脚本自动还原的时候不太方便,毕竟不怎么人性化,所以我们就想到的是,将最新备份的SQL数据文件通过VBS脚本拷贝到本地后,然后重名,这样就可以使用SQL自带的脚本程序来指定还原数据库了,当然有一个最重要的话题就是,因为SQL自动备份是以日期命名的,我们需要对最新的备份数据进行判断,所以需要在脚本中通过判断最后一次修改日期和当前日期比较,将最新的数据拷贝及重命名,废话不多说了,具体见下:

我们首先声明一下:在脚本的开始,我们定义了一个变量rname,目标是为了更好的使用,rname值就等于最终需要重名的名称;

我们首先是先确认目标目录数据

image

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
dim rname
rname =  "SQLRecoveryData"
sourcefilespath= "D:\EcologyDB_Backup"
'desfilepath= "\\10.12.0.51\Backup\DataBackup" & "" &Year( date )&-Month( date )&-Day( date )& " " &Hour( time )&-Minute( time )&"\"
desfilepath="D:\DBRcoveryDir\"
Set dic=CreateObject( "Scripting.Dictionary" )
Set fso=CreateObject( "Scripting.FileSystemObject" )
If Not fso.FolderExists(desfilepath) Then
     'fso.CreateFolder desfilepath
End If
backFolderPath=GetLastModify(sourcefilespath)
'msgbox backFolderPath
fso.CopyFile backFolderPath,desfilepath&rname
 
 
Function GetLastModify(folder)
     Set fso = createobject( "scripting.FileSystemObject" )       
     Set Folder=fso.getFolder(folder)
     Set subFolders = Folder.Files
     nowdate= Now
     For Each subFolder In subFolders
         dic.Add datediff( "s" ,subFolder.DateLastModified,nowdate),subFolder.path
     Next        
     NumArray=dic.Keys
     bn = NumArray(0)       
     For Each nn In NumArray
         If bn >= nn Then
             bn = nn
         End If
     Next
     GetLastModify = dic.Item(bn)
End Function

然后保存脚本后,我们开始执行脚本,执行后我们查看执行结果;

image

需要注意的话,如果需要将数据远程拷贝的话,我们只需要将两个目录添加为共享,然后添加每个计算机对应的目录权限即可。

然后我们使用windows自带的计划任务进行定时运行脚本即可

image

最后我们顺便说说SQL数据库还原如果遇到提示数据库正在使用的我们可以在master数据库上执行以下语句

ALTER DATABASE [DBName]

SET OFFLINE WITH ROLLBACK IMMEDIATE

执行后,如果还原出现以下问题;

image

我们就在还原选项下勾选覆盖现有数据库

image



本文转自 高文龙 51CTO博客,原文链接:http://blog.51cto.com/gaowenlong/1835799,如需转载请自行联系原作者

相关文章
LXJ
|
Shell
文件备份脚本
服务器上文件备份脚本-shell
LXJ
100 0
VBS实现批量重命名文件并且操作前备份原有文件
'=========================================================================='' VBScript Source File -- Created with SAPIEN Technologies PrimalScript 4.
897 0
VBS自编写脚本。(实现批量修改文件名且在执行前,备份原有文件夹中的文件)
'=========================================================================='' VBScript Source File -- Created with SAPIEN Technologies PrimalScript 4.
1303 0
|
关系型数据库 MySQL 数据库