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,如需转载请自行联系原作者

相关文章
|
存储 关系型数据库 Linux
PostgreSQL命令行安装【静默安装】的全部流程
想要实现通过GUI软件一键安装PostgreSQL的功能,免去手动安装的过程,也可以添加一些对pgsql服务的管理功能。 这就要用到PostgreSQL通过命令行静默安装,放在软件中实现控制...
2729 0
PostgreSQL命令行安装【静默安装】的全部流程
|
SQL 分布式计算 HIVE
基于 Kyuubi 实现分布式 Flink SQL 网关
本文整理自网易互娱资深开发工程师、Apache Kyuubi Committer 林小铂的《基于 Kyuubi 实现分布式 Flink SQL 网关》分享。
105323 64
基于 Kyuubi 实现分布式 Flink SQL 网关
|
消息中间件 缓存 资源调度
【Java项目】使用Nacos实现动态线程池技术以及Nacos配置文件更新监听事件
【Java项目】使用Nacos实现动态线程池技术以及Nacos配置文件更新监听事件
819 0
|
存储 人工智能 Java
Java Collection与Map详解
Java Collection与Map详解
276 0
|
存储
【数据结构】二叉树的实现
【数据结构】二叉树的实现
160 0
|
移动开发
零基础VB教程060期:论print输出中换行与不换行的讲究
零基础VB教程060期:论print输出中换行与不换行的讲究
498 0
|
SQL 监控 算法
5 年 Java 经验,字节、美团、快手核心部门面试总结(真题解析)
由于个人发展的原因,前段时间又出去面试了,这次面试目标比较清晰,主要面一些业务量比较大、业务比较核心的部门。 前前后后面了一个多月,面了不少公司,面试轮次二三十轮应该是有的。 按照自己的习惯,将这次面试过程中的一些经验总结、心得体会记录下来,自己留个记录,也希望可以帮助到一些同学。
1005 0
vbs的字典存入和读取操作 comparemode属性
vbs的字典存入和读取操作 comparemode属性
|
API
INI文件的写入与读取
INI文件的写入与读取  [节名]         '[]中的节名对应此API的第一参数 Name=内容      'Nmae对应此API的第二参数 API的第三参数是没有取到匹配内容时返回的字符串; API的第四参数是要返回的字符串; API的第五参数是字符串缓冲的长度,一般255; API的第六参数是INI文件的路径。
1578 0