全自动备份vss和sql数据库(含源码下载)
2011-10-09 14:40 Bingo Lee 阅读(2049) 评论(6) 编辑 收藏 举报- 前言
visual source safe 里有代码,sql server 里有数据,这就是项目的全部。
拥有他们就拥有了全部,所以这些东西的安全实在是重要。
本文以批处理的方式,实现了全自动备份vss和全部sql数据库的功能。
- 备份数据库:
采用osql调用sql脚本的方式,自动备份全部数据库,并导出执行结果。
备份数据库的批处理文件(auto_backup_db.bat),他采用信任连接的方式调用auto_backup_db.sql脚本实现备份功能,
并将备份的日志写入backup_database_log.txt,为避免重名覆盖将文件名修改为backup_database_log_%DATE%.txt,
形如:backup_database_log_2011-10-09.txt。
@echo off
@echo start to backup database
osql -E -i auto_backup_db.sql -o backup_database_log.txt
@echo finished backup database
FOR /F "tokens=1-3 delims=- " %%i IN ('date /t') DO SET DATE=%%i-%%j-%%k
rename "backup_database_log.txt" "backup_database_log_%DATE%.txt"
@echo on
备份数据库sql脚本auto_backup_db.sql如下,请根据情况修改文件备份路径:
USE master
go
DECLARE @bak_path NVARCHAR(200)
DECLARE @bak_file_name NVARCHAR(200)
--设置文件备份路径
SET @bak_path = 'E:\DataBaseBAK'
--利用游标遍历,逐个备份数据库
DECLARE @db_name SYSNAME
DECLARE cur_database CURSOR FOR
SELECT [name]-- 查询所有数据库
FROM sys.databases
WHERE [state] = 0 -- 0 = ONLINE 在线状态
AND [name] NOT IN ( 'master', 'model', 'msdb', 'tempdb', 'ReportServer','ReportServerTempDB')
--系统数据库、演示数据库除外
OPEN cur_database
FETCH NEXT FROM cur_database INTO @db_name
WHILE ( @@FETCH_STATUS = 0 )
BEGIN
--设置备份文件名称,形如:dbname_2011-10-09.bak
SET @bak_file_name = @bak_path + '\' + @db_name + '_'
+ CONVERT(VARCHAR(10), GETDATE(), 120) + '.bak'
--开始完整备份
BACKUP DATABASE @db_name TO DISK = @bak_file_name
FETCH NEXT FROM cur_database INTO @db_name
END
CLOSE cur_database
DEALLOCATE cur_database
- 自动备份vss auto_backup_vss.bat
@ECHO OFF
@TITLE Backing up source safe databases
SET VSS_Install_Path="C:\Program Files\Microsoft Visual SourceSafe\"
SET VSS_DB="\\192.168.0.244\vss"
SET Bak_File="e:\%DATE%_vss_backup.ssa"
SET VSS_Admin_Name="admin"
SET VSS_Admin_Password="your_password"
FOR /F "tokens=1-3 delims=- " %%i IN ('date /t') DO SET DATE=%%i-%%j-%%k
%VSS_Install_Path%"ssarc" -d- -y%VSS_Admin_Name%,%VSS_Admin_Password% -s%VSS_DB% %Bak_File% $/
@ECHO finished backup vss
请根据情况修改这些条目:
VSS_Install_Path = vss的安装路径
VSS_DB = vss数据库路径
Bak_File = 备份文件路径
VSS_Admin_Password=vss超级管理员密码
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构