SQL Server 2005部署备份任务.120308

news/2025/1/21 10:01:51/文章来源:https://www.cnblogs.com/amadeuslee/p/18683042

环境:SQL Server 2005

任务:
1,每日凌晨1点给本地sql server做本地完整备份,且只保留7天的本地备份;
2,每日凌晨5点将本地的备份打包上传到存储服务器。

思路:
1,sql server2005不支持SQL Server2000的sqlmaint命令,所以,需要通过数据库维护计划进行备份,而不能一步成型的写bat脚本;
2,备份地址先保存到D:\dbbak\sqltemp,并给每个数据库建立子目录,凌晨1点执行;
3,写批处理,将sqltemp目录下的文件保留一个,并将这个文件rar打包放到D:\dbbak\data目录,并保存七天的备份文件,凌晨3点执行;
4,写一个wsf,将每日data目录的压缩包文件上传到存储服务器,凌晨5点执行。

操作步骤:

1,给SQL Server每日本地完整备份
1)打开management Studio-》管理-》右键 维护计划-》维护计划向导
2)按需选择自己的备份计划,本例备份完整的数据库,并存放在D:\dbbak\sqltemp,并给每个数据库建立子目录,备份文件名为bak,每日1点备份 
3) 开启sqlagent代理,测试一下,看是否正常。

2,创建脚本dbbackup.bat,实现思路3,内容如下:

@echo cd \ D: set catalog=D:\dbbak : 保留一天的备份文件 @for /f %%i in ('dir /b/ad %catalog%\sqltemp') do (@for /f "skip=1" %%f in ('dir /b/o-n %catalog%\sqltemp\%%i') do del /s/q %catalog%\sqltemp\%%i\%%f) : 压缩sqltemp子目录文件到data目录 @for /f %%i in ('dir /b/ad %catalog%\sqltemp') do (@for /f %%f in ('dir /b %catalog%\sqltemp\%%i') do (if not exist %catalog%\data\%%i mkdir %catalog%\data\%%i) & rar a -inul -m5 -r -ep1 %catalog%\data\%%i\%%f.rar %catalog%\sqltemp\%%i\%%f) : data目录(本地备份压缩文件)保留7天的备份 @for /f %%i in ('dir /b/ad %catalog%\data') do (@for /f "skip=7" %%f in ('dir /b/o-n %catalog%\data\%%i') do del /s/q %catalog%\data\%%i\%%f)

3,创建db-backup.wsf,实现思路4,内容如下:

<job> <script language="VBScript"> Function execMethod Dim WshShell, oExec WScript.echo "run method" Set WshShell = CreateObject("WScript.Shell") Set oExec = WshShell.Exec("calc") Do While oExec.Status = 0 WScript.Sleep 100 Loop WScript.Echo oExec.Status end function '文件根目录,压缩包目录,FTP命令文件,FTP目标IP function runMethod (folderspec,rarpath,ftpfile,ftpaddr) Dim sdate,datedir,dirname,xcopyDate ' get date path sdate = dateadd("d",d,date) datedir = year(sdate) & right("0" & month(sdate),2) & right("0" & day(sdate),2) xcopyDate = right("0" & month(sdate),2) & "-" & right("0" & day(sdate),2) & "-" & year(sdate) ' if hasdate="TRUE" then ' dirname = filedir & "\" & datedir ' else ' dirname = filedir ' end if Dim fso, f, f1, fc, foldname ,batfile , listname , ftplogfile Dim runstr batfile= rarpath & "runbat.bat" listname = rarpath & "log_" & datedir & ".log" ftplogfile = rarpath & "log_" & datedir & "ftp.log" Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso.GetFolder(folderspec) Set fc = f.SubFolders Set fbat= fso.CreateTextFile(batfile, True) Set flist =fso.CreateTextFile(listname, True) Set fftp=fso.CreateTextFile(ftplogfile, True) Dim i,maxi,alli maxi=1 i=0 alli=0 For Each f1 in fc i=i+1 alli=alli+1 foldname = f1.name flist.WriteLine ( alli & ".. " & foldname & chr(13) ) 'fbat.WriteLine (" rar.exe a " & rarpath & foldname & "_" & datedir &".rar " & folderspec & "\" & foldname & chr(13) ) 'following: 修改为每天上传,并且只上传一个 fbat.WriteLine ("xcopy " & folderspec & foldname & "\*.rar /D:" & xcopyDate &" " & rarpath) 'fbat.WriteLine ("xcopy " & folderspec & foldname & "\*.rar" &" " & rarpath) fbat.WriteLine ("echo " & alli & "------------------- " & foldname & ">>" & ftplogfile & chr(13)) if i=maxi then fbat.WriteLine (" ftp -s:" & ftpfile & " " & ftpaddr & ">>" & ftplogfile & chr(13) ) fbat.WriteLine (" del *.rar" & chr(13) ) i=0 end if Next flist.WriteLine ("total: " & alli & chr(13) ) if i>0 then fbat.WriteLine (" ftp -s:" & ftpfile & " " & ftpaddr & chr(13) ) fbat.WriteLine (" del *.rar" & chr(13)) end if set fso=nothing set f1=nothing set f=nothing set fc=nothing set fbat=nothing set flist=nothing set fftp = nothing Dim oShell Set oShell = WScript.CreateObject ("WSCript.shell") runstr = "cmd /K cd " & rarpath runstr = runstr & " & runbat.bat " ' runstr = runstr & " & ftp -s:" & ftpfile & " " & ftpaddr ' runstr = runstr & " & del " & rarpath & & foldname & ".rar" runstr = runstr & " & exit" ' WScript.Echo runstr oShell.run runstr Set oShell = Nothing end function 'run '文件根目录,压缩包目录,FTP命令文件,FTP目标IP call runMethod ("D:\dbbak\data\","C:\job\dbback_up\db_backup\","c:\job\dbback_up\ftp.conf","11.11.13.14") </script> </job>  

ftp.conf内容:

username password cd db59237 bin prompt hash mput *.rar bye

另记得建一个db_backup子目录,用于存放日志。

4,创建计划任务,每日凌晨3点执行dbbackup.bat,每日凌晨5点执行db-backup.wsf  
  对于sql2000的备份,可以不依赖sql agent,只是创建一个维护计划,并直接在批处理文件中通过sqlmaint方式调用即可。

sql2000 dbbackup.bat内容:

@echo cd \ D: set catalog=D:\sqlbak **if not exist %catalog%\sqltemp mkdir %catalog%\sqltemp** **"C:\Program Files\Microsoft SQL Server\MSSQL\Binn\sqlmaint.exe" -PlanName data -BkUpDB %catalog%\sqltemp -BkUpMedia DISK -CrBkSubDir** rd /s/q %catalog%\sqltemp\msdb @for /f %%i in ('dir /b/ad %catalog%\sqltemp') do (@for /f "skip=1" %%f in ('dir /b/o-n %catalog%\sqltemp\%%i') do del /s/q %catalog%\sqltemp\%%i\%%f) @for /f %%i in ('dir /b/ad %catalog%\sqltemp') do (@for /f %%f in ('dir /b %catalog%\sqltemp\%%i') do (if not exist %catalog%\data\%%i mkdir %catalog%\data\%%i) & rar a -inul -m5 -r -ep1 %catalog%\data\%%i\%%f.rar %catalog%\sqltemp\%%i\%%f) @for /f %%i in ('dir /b/ad %catalog%\data') do (@for /f "skip=7" %%f in ('dir /b/o-n %catalog%\data\%%i') do del /s/q %catalog%\data\%%i\%%f)  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/872678.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[每日 B] Kevin and Geometry

前言 想着能做的题也不多, 直接当每日一练的形式写就好了 心态放平, 冷静利用时间 思路 转化题意 考虑一个等腰梯形的性质朴素的想法是, 枚举 \(b\) , 枚举 \(c < b\) , 然后计算是否有对应的 \(a\) 满足 \(\exists a, \exists a + 2c\) , 特判 \(c = 0\) 这样直接爆炸, 考虑…

【译】调查并确定 Windows 运行速度变慢问题

我最近注意到,我的 Windows 7 家用笔记本电脑运行速度比平时要慢。系统似乎在磁盘 I/O 上花了很多时间。当我查看任务管理器时,我发现笔记本电脑的缓存磁盘数据量大约只有平时的 五分之一,但问题的原因并不明显。 我的工作之一是性能专家——要调查各种日常或深层次的性能问…

SQLServer2005恢复Master库.110509

master库对于SQLServer来说,是很重要的系统数据库,保存着所有Sqlserver的用户信息、数据库信息等,当数据库崩溃时,master数据库的恢复成功与否起着重要的作用。这就跟Oracle的System表空间一样,非常的重要。 备份数据前期准备: (1)在备用机准备好和生产机器一样的sql20…

legged-robot关于locomotion、Navigation任务主要文章速览

0. 前言 目前legged robot包括locomotion(怎么走)、navigation(往哪走)、人形机器人的whole body control以及基于机械臂的manipulation的任务。 本文章特此记录 一方面便于日后自己的温故学习,另一方面也便于大家的学习和交流。 如有不对之处,欢迎评论区指出错误,你我共…

IT部门管理之IT十二条令.180409

团队越来越大,靠人管几乎有力无心,只能靠制度管理了。 前段时间对部门颁布了12条令,效果明显。 特此Mark。汇报:三条总结:汇报讲究精简,一个事情最多一句话概括。 一页报告:内容精简,报告一页word搞定。 统计分析:尽量用报表或图表说话。用数字说话,比用语言表达更加…

IDEA如何查看类中的方法和属性列表

前言 大家好,我是小徐啊。我们在开发Java应用的时候,一般都是需要写属性和方法的。这些属性和方法构成了我们代码开发的基础。当一个Java类中,有很多属性和方法的时候,如何快速找到这些方法和属性呢?今天,小徐就来介绍下如何在IDEA中查找。 如何查找属性和方法 首先,打开…

MySql 执行计划

目录获取执行计划解读执行计划type 字段Extra 字段访问谓词与过滤谓词完整字段信息格式化参数执行计划中的分区表信息获取额外的执行计划信息获取指定连接的执行计划获取实际运行的执行计划执行计划(execution plan,也叫查询计划或者解释计划)是 MySQL 服务器执行 SQL 语句的…

用css实现倒影的效果

在前端开发中,使用 CSS 来实现倒影效果是一个常见的技巧。这通常可以通过使用 CSS3 的 box-reflect 属性或者通过伪元素和线性渐变来实现。然而,需要注意的是,box-reflect 是一个非标准的 WebKit 属性,主要在 Chrome 和 Safari 中支持,而在 Firefox 和 IE 中不支持。 方法…

Mac电脑如何卸载软件?App Cleaner

Mac电脑如何卸载软件?App Cleaner 垃圾清理 App Cleaner & Uninstaller Pro Mac,是一款Mac卸载工具,残余垃圾清除工具!可以卸载应用程序或只删除不需要的服务文件,甚至可以删除以前删除的应用程序中的文件。使用该应用程序,您可以管理Mac扩展程序并使用一个按钮禁用所…

20 GitHub 仓库帮助你成为 React专家

原文:https://dev.to/martinadamsdev/20-github-repositories-to-become-a-react-master-opl#how-to-become-a-react-master-1推荐的 GitHub 仓库列表:reactjs/reactjs.org:官方 React 文档,提供了详细的学习指南和示例代码。facebook/react:React 的官方仓库,包含了核心…

WebStorm 2024.3.1 前端开发工具

WebStorm 2024.3.1 前端开发工具 JetBrains WebStorm 2024 mac,是一款JavaScript开发工具,WebStorm 非常了解您的项目结构,可以在编码的各个方面提供帮助。它将自动补全代码,检测错误和冗余并提出修正建议,帮助您安全地重构代码。