MSSQL Express版本自动备份数据库
Posted MoChiu程序人生
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MSSQL Express版本自动备份数据库相关的知识,希望对你有一定的参考价值。
由于Express版本的数据库没有自动备份数据库的功能,所以需要自己搭建好备份功能
一、具体原理:
1、利用SQL备份命令:Backup Database
2、使用sqlcmd执行备份命令
3、使用系统计划任务定时执行备份
二、具体操作步骤:
1、在数据库创建一个存储过程:sp_BackupDataBase
问:为什么要存储过程来执行Backup命令呢?
答:因为可以有更多的自定义操作
USE [master] GO /****** Object: StoredProcedure [dbo].[sp_BackupDataBase] Script Date: 2016/6/4 14:40:29 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: <Author,,Name> -- Create date: <Create Date,,> -- Description: <Description,,> -- ============================================= CREATE PROCEDURE [dbo].[sp_BackupDataBase] -- Add the parameters for the stored procedure here @Database NVARCHAR(300), @BackupFolder NVARCHAR(300) AS BEGIN SET NOCOUNT ON; --取得当前时间字符串 Declare @now Varchar(8) Set @now = Convert(Varchar(8),GETDATE(),112) --组成文件名 Declare @filename Nvarchar(200) Set @filename = @Database + N‘_‘ + @now + ‘.bak‘ --组成完整保存路径 Declare @BackupPath Nvarchar(max) Set @BackupPath = @BackupFolder + ‘\‘ + @filename --备份数据库 BACKUP DATABASE @Database TO DISK = @BackupPath WITH FORMAT; END GO
2、编写一个bat,使用sqlcmd执行存储过程
@ECHO OFF IF NOT EXIST "C:\DB_Backup" MD "C:\DB_Backup" sqlcmd -S . -E -Q "sp_BackupDatabase N‘要备份的数据库名‘,N‘C:\DB_Backup\‘"
3、在系统创建计划任务,定时调用第二部创建的bat
至此,已经能正常自动备份了
注意一点就是,配置运行权限为SYSTEM
以上是关于MSSQL Express版本自动备份数据库的主要内容,如果未能解决你的问题,请参考以下文章
Windows Server2012R2+SQL Server 2017 Express版本下,每日自动备份数据库的操作实践笔记