SQL备份数据库代码
2016-05-02 13:54 猎手家园 阅读(1223) 评论(0) 编辑 收藏 举报SQL备份数据库代码
#region 服务每天备份一次数据库 /// <summary> /// 服务每天备份一次数据库 /// </summary> public void ServiceForBackupDatabaseEveryDay() { Thread thread = new Thread(new ThreadStart(BackupDatabaseEveryDay)); thread.IsBackground = true; thread.Start(); } private void BackupDatabaseEveryDay() { while (true) { try { //每天凌晨1点进行全备份 if (DateTime.Now.Hour == 1) { string filename = string.Format("Grandmap.Cms_Full_{0}.bak", DateTime.Now.ToString("yyyyMMddHHmmss")); Hashtable param = new Hashtable(); param.Add("DatabaseName", "Grandmap.Cms"); param.Add("FileName", filename); //<![CDATA[ BACKUP DATABASE $DatabaseName$ TO DISK = '$FileName$';]]> } Thread.Sleep(TimeSpan.FromHours(1)); } catch (Exception ex) { Log4Net.Error("每天凌晨1点进行全备份数据库服务异常!", ex); } } } #endregion #region 每天12点和18点进行一次差异备份 /// <summary> /// 每天12点和18点进行一次差异备份 /// </summary> public void ServiceForBackupDatabaseWithDiffrent() { Thread thread = new Thread(new ThreadStart(BackupDatabaseWithDiffrent)); thread.IsBackground = true; thread.Start(); } private void BackupDatabaseWithDiffrent() { while (true) { try { //每天12点和18进行差异备份 if (DateTime.Now.Hour == 12 || DateTime.Now.Hour == 18) { string filename = string.Format("Grandmap.Cms_Diffrent_{0}.bak", DateTime.Now.ToString("yyyyMMddHHmmss")); Hashtable param = new Hashtable(); param.Add("DatabaseName", "Grandmap.Cms"); param.Add("FileName", filename); //<![CDATA[ BACKUP DATABASE $DatabaseName$ TO DISK = '$FileName$' WITH DIFFERENTIAL;]]> } Thread.Sleep(TimeSpan.FromHours(1)); } catch (Exception ex) { Log4Net.Error("每天12点和18进行差异备份数据库服务异常!", ex); } } } #endregion #region 文件夹创建 /// <summary> /// 文件夹创建 /// </summary> public void CreateDir() { string filedir = DateTime.Now.ToString("yyyy-MM"); string xmlPath = AppDomain.CurrentDomain.BaseDirectory; xmlPath = System.IO.Path.GetDirectoryName(xmlPath); if (!xmlPath.EndsWith("\\")) { xmlPath += "\\"; } xmlPath = string.Format("{0}DatabaseDir\\{1}", xmlPath, filedir); if (!Directory.Exists(xmlPath)) { Directory.CreateDirectory(xmlPath); } } #endregion
附:SQL存储过程
-- ============================================= -- Author: 管理员 -- Create date: 2016-03-12 -- Description: 备份数据库 -- ============================================= ALTER PROCEDURE [dbo].[up_BackupDatabase] -- Add the parameters for the stored procedure here @Backtype INT, @Databasename VARCHAR(50), @Filename VARCHAR(500) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; -- 全备份(压缩备份) IF(@Backtype = 1) BEGIN BACKUP DATABASE @Databasename TO DISK = @Filename WITH COMPRESSION; END --差异备份 IF(@Backtype = 2) BEGIN BACKUP DATABASE @Databasename TO DISK = @Filename WITH DIFFERENTIAL; END END
欢迎关注我的公众号:云栖语,不一样的研发视界。

云栖语微信公众号:change-1978
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术