sqlsever2012 数据库自动备份

一、通过SQL Server代理作业实现(推荐)

步骤说明:
创建备份文件夹
在服务器上创建固定目录(如 D:\DB_Backup),确保SQL Server服务账户有写入权限。
编写备份脚本
使用以下SQL脚本生成带日期的备份文件名,并执行备份:

   DECLARE @dbName NVARCHAR(100) = 'YourDBName'; -- 替换为实际数据库名
   DECLARE @backupPath NVARCHAR(200) = 'D:\DB_Backup\';
   DECLARE @fileName NVARCHAR(300);
   
   SELECT @fileName = @backupPath + @dbName + '_' 
          + CONVERT(VARCHAR(8), GETDATE(), 112) -- 格式:YYYYMMDD
          + '.bak';
   
   BACKUP DATABASE @dbName 
   TO DISK = @fileName 
   WITH FORMAT, COMPRESSION; -- FORMAT覆盖同名文件,COMPRESSION启用压缩
注:WITH FORMAT 确保每次覆盖同名文件,避免历史文件堆积。

设置文件清理(保留7天)
在备份脚本后添加删除旧文件的命令:

   DECLARE @cmd NVARCHAR(500);
   SELECT @cmd = 'FORFILES /P "' + @backupPath + '" /M "' + @dbName + '*.bak" /D -7 /C "CMD /C DEL @FILE"';
   EXEC xp_cmdshell @cmd; -- 需启用xp_cmdshell(见注意事项)
FORFILES 命令删除7天前的 .bak 文件。

创建SQL Server代理作业
打开 SQL Server Management Studio (SSMS) → 展开 SQL Server代理 → 右键 作业 → 新建作业。
在 步骤 中添加上述完整脚本。
在 计划 中设置每日执行时间(如凌晨2点)。

启用xp_cmdshell

开启高级选项配置
执行以下命令允许修改高级配置项:

   EXEC sp_configure 'show advanced options', 1;
   RECONFIGURE;
此命令解锁隐藏配置参数。

启用xp_cmdshell组件
执行以下命令激活组件:

   EXEC sp_configure 'xp_cmdshell', 1;
   RECONFIGURE;
RECONFIGURE确保配置立即生效。

验证启用状态
运行以下命令检查是否成功:

   EXEC sp_configure 'xp_cmdshell';
若config_value和run_value均为1,表示启用成功。

安全建议
仅在需要执行系统命令时临时启用,任务完成后立即禁用:

   EXEC sp_configure 'xp_cmdshell', 0;
   RECONFIGURE;
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容