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版本下,每日自动备份数据库的操作实践笔记

sql server 2008 自动备份(非维护计划)

精简版sql2005怎么自动备份数据库

Sql Express数据备份和还原

如何设置MSSQL每天自动备份

Mssql2008 R2自动备份数据库出现错误