sqlserver Express版不含agent service(虽然可以从“服务”里看到,但是无法启动),因此无法使用代理服务执行备份作业,如果代理作业服务正常,建议还是首先采用代理服务。

此备份方法核心是利用T_SQL 命令和Sqlcmd实用工具

sqlcmd参考:https://docs.microsoft.com/zh-cn/sql/tools/sqlcmd-utility?view=sql-server-2017

Backup命令参考:https://docs.microsoft.com/en-us/sql/t-sql/statements/backup-transact-sql?view=sql-server-2017

sqlcmd
-a packet_size
-A (dedicated administrator connection)
-b (terminate batch job if there is an error)
-c batch_terminator
-C (trust the server certificate)
-d db_name
-e (echo input)
-E (use trusted connection)
....
BACKUP DATABASE MyDatabase
TO backup_destination [ ,...n ]
[ WITH with_options [ ,...o ] ]

范例(使用SQL Server Management Studio执行):

USE MyDatabase;
GO
BACKUP DATABASE MyDatabase
TO DISK = 'C:\SQLServerBackups\MyDatabase.bak'
WITH FORMAT,
MEDIANAME = 'C_SQLServerBackups',
NAME = 'Full Backup of MyDatabase;
GO

下面把以上命名包装成存储过程,然后利用sqlcmd命令执行此存储过程(把sqlcmd命令包装到bat文件中,利用windows自带的任务计划执行此bat)

第一步,创建存储过程(使用SQL Server Management Studio执行,注意放到系统数据库master下面)

USE [master]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_BackupDatabases]
@databaseName sysname = null,
@backupType CHAR(1),
@backupLocation nvarchar(200)
AS
SET NOCOUNT ON;
--
DECLARE @BackupName varchar(100)
DECLARE @BackupFile varchar(100)
DECLARE @sqlCommand NVARCHAR(1000)
DECLARE @dateTime NVARCHAR(20) -- 格式化日期为yyyyhhmmss格式,用作备份文件名称
SET @dateTime = REPLACE(CONVERT(VARCHAR, GETDATE(),101),'/','') + '_' + REPLACE(CONVERT(VARCHAR, GETDATE(),108),':','') -- 存储路径(物理文件名)
SET @BackupFile = @backupLocation+REPLACE(REPLACE(@DBNAME, '[',''),']','')+ '_FULL_'+ @dateTime+ '.BAK' --逻辑文件名
SET @BackupName = REPLACE(REPLACE(@DBNAME,'[',''),']','') +' full backup for '+ @dateTime -- 拼接命令
SET @sqlCommand = 'BACKUP DATABASE ' +@DBNAME+ ' TO DISK = '''+@BackupFile+ ''' WITH NOFORMAT, NOINIT, NAME= ''' +@BackupName+''', SKIP, NOREWIND,NOUNLOAD' -- 执行备份命令
EXEC(@sqlCommand)

第二步:创建脚本文件sqlbackup.bat(可以把下面的命令复制到CMD控制台执行一下,进行测试,看是否生成了备份文件,能成功执行则复制到sqlbackup.bak文件中,再进行第三步,注意当前windows登陆用户为管理员)

sqlcmd -S yourservername\SQLEXPRESS -E -Q "EXEC sp_BackupDatabases @backupLocation='D:\SQLBackups\', @databaseName='[mydatabase]', @backupType='F'"

第三步,添加任务计划

任务计划中,创建基本任务,根据实际情况进行设置触发器,程序或脚本选择sqlbackup.bat的路径,完成设置。

文章链接:https://sqlbackupandftp.com/blog/how-to-automate-sql-server-database-backups#tsql

利用windows任务计划备份sqlserver的更多相关文章

  1. 利用windows的计划任务和eKing.CmdReadFileAndSendEmailOper(控制台小程序)实现远程登录服务器的邮件告警提醒

    一.场景摘要: 1.windows计划任务中,有一个用户登录时候触发的事件 2.cmd命令:netstat -ano   | find "3389" 可以看到当前远程登录的IP 3 ...

  2. windows定时计划备份MySql

    使用 MySql 的 mysqldump 将数据库文件备份成 sql 文件. Windows下备份 本地的数据库环境 MySql 安装环境:C:\MySql 数据库名称:bbs root root 数 ...

  3. Windows任务计划创建计划,定时执行PowerShell命令

    [环境介绍] 操作系统:Windows Server 2012 R2,64位操作系统 PowerShell版本:PowerShell 1.0 脚本位置:C:\BackUp.ps1 启动目录:C:\Wi ...

  4. 使用Windows任务计划程序和Python备份Mysql数据库

    目标:每日定时自动备份Mysql数据库 方案: 1.安装Python: 使用的Python版本是Python3.7.1,下载地址:https://www.python.org/downloads/re ...

  5. windows mysql 自动备份的几种方法

    转自:http://www.cnblogs.com/liongis/archive/2013/03/12/2956573.html 1.复制date文件夹备份===================== ...

  6. MySql在Windows下自动备份的几种方法

    以下几种全部是批处理命令中对于备份文件 1.复制date文件夹备份============================假想环境:MySQL   安装位置:C:\MySQL论坛数据库名称为:bbs数 ...

  7. Windows的Subversion备份脚本

    2015-12-08更新:备份时添加--revision head 只备份最新的版本,已从脚本中移除. 2013-12-09更新:forfiles命令添加错误输出日志. 2013-12-04更新:添加 ...

  8. Windows Server Backup 备份Hypver-V VM

    在Windows Server 2012中,可以通过Windows Server Backup备份Hypver-V VM.在还原时,将会还原到Hypver-V管理器中. 设置只保存2个备份副本,命令如 ...

  9. 定时备份服务器数据库(借助windows任务计划以及mysqldump)

    最近社区多了,考虑到数据的安全性,要每天备份一次数据库,以防万一: linux目前还不是很了解,先用windows的计划任务吧: 大体思路就是 借用windows的计划任务来执行备份远程数据库到本地: ...

随机推荐

  1. MOS管做开关之初理解

    杰杰 物联网IoT开发 2017-10-12 大家好,我是杰杰.       今晚,设计电路搞了一晚上,终于从模电渣渣的我,把MOS管理解了那么一丢丢,如有写的不好的地方,请指出来.谢谢.      ...

  2. LightOJ - 1116-Ekka Dokka(思维)

    链接: https://vjudge.net/problem/LightOJ-1116 题意: Ekka and his friend Dokka decided to buy a cake. The ...

  3. 题解[51nod1555] 布丁怪

    题解[51nod1555] 布丁怪 题面 解析 本文参考这位dalao的题解 首先有一个巧妙的转换, 开一个数组记录每个横坐标的纵坐标, 简单来说就是对于点(x,y),令a[x]=y. 于是问题就变成 ...

  4. Linux ntp 时间同步服务配置

    一.基础环境 1.操作系统:CentOS 7.3 2.ntp:4.2.6 3.机器,服务端(192.168.1.210)客户端(192.168.1.211) 二.安装ntp yum -y instal ...

  5. (转)supervisor

    转载:https://www.cnblogs.com/zhoujinyi/p/6073705.html 进程管理supervisor的简单说明 背景: 项目中遇到有些脚本需要通过后台进程运行,保证不被 ...

  6. 适当设置,可以让win10显示更加和自己的意思

    一.个性化设置: 1.桌面右击-->个性化-->背景-->图片浏览-->C:\Windows\Web\Screen\img101.png,选择契合度-->适应 2.桌面右 ...

  7. linux下设置tomcat自启动

    怎么设置linux安装了tomcat之后让tomcat开机就启动呢? 下来我们来简单的说一下: 第一步@1: 首先我们找到tomcat的安装的位置,找到之后我们cd到tomcat的bin目录下面; 我 ...

  8. selenium反爬机制

    使用selenium模拟浏览器进行数据抓取无疑是当下最通用的数据采集方案,它通吃各种数据加载方式,能够绕过客户JS加密,绕过爬虫检测,绕过签名机制.它的应用,使得许多网站的反采集策略形同虚设.由于se ...

  9. 使用WebSocket实现服务端和客户端的通信

    开发中经常会有这样的使用场景.如某个用户在一个数据上做了xx操作, 与该数据相关的用户在线上的话,需要实时接收到一条信息. 这种可以使用WebSocket来实现. 另外,对于消息,可以定义一个类进行固 ...

  10. Linux系统下vi编辑器的一些简单使用操作

    Linux系统安装vi编辑器 打开终端,输入: sudo apt install vim 然后输入Y等待安装即可 Linux系统下使用vi编辑器的使用 安装好vim后,终端中输入vim即可进入vim编 ...