1. 概述
对于数据库来说,数据备份是非常重要的。否则,一个意外的事件就可能带来灾难性的后果。因此,数据库管理员需要经常备份服务器数据并存储于其他安全的地方。在Microsoft SQL Server中,数据存在于一个或多个数据文件中,而且这些数据文件的大小可以很大。在备份数据时,管理员需要考虑文件复制所需的时间、磁盘空间和网络宽带等因素。同时,手动备份也比较繁琐,可能会导致数据备份不及时,或是漏掉某些重要数据。因此,自动备份是非常必要的。本文将简单介绍如何使用SQL Server的自动备份功能。
2. 设置自动备份
2.1 配置备份设备
首先,需要配置用于备份的设备。SQL Server支持将备份存储在硬盘、磁带、网络共享驱动器等设备上。在这里,我们以硬盘为例,假设我们将备份存储在一个文件夹中,该文件夹已授权访问权限。
USE [master]
GO
EXEC sp_configure 'backup compression default', 1
GO
RECONFIGURE WITH OVERRIDE
GO
BACKUP DATABASE [AdventureWorks2014] TO DISK = N'C:\Backups\AdventureWorks2014.bak' WITH INIT , NOUNLOAD , NAME = N'AdventureWorks2014 bak', NOSKIP , STATS = 10, NOFORMAT
GO
在这里,我们使用了backup compression default命令来启用备份压缩功能,该命令使备份文件更小、占用更少磁盘空间,同时也加快了备份速度。
2.2 设置备份计划
在SQL Server中,可以使用SQL Server代理来自动化管理作业,包括备份。在本例中,我们将使用SQL Server代理来自动备份AdventureWorks2014数据库。
我们需要在SQL Server代理中创建一个新的作业。作业是一个包含一个或多个作业步骤的计划,用来完成特定的任务。在这里,我们创建一个备份作业。
作业的三个重要元素是:
- 作业(job):包含了一个或多个作业步骤,并且设定了作业运行的时刻和频率等信息。
- 作业步骤(step):包含了一个或多个T-SQL语句或SSIS数据包,设定了作业执行时的具体操作。
- 作业计划(schedule):基于时间、事件或者人工触发器的策略,控制了作业的执行时间和频率。
在此示例中,我们创建一个简单的作业步骤来备份AdventureWorks2014数据库。
首先,我们需要连接到SQL Server实例,打开“SQL Server代理”窗口,并新建一个作业(点击下图中的“新建作业”按钮)。
![SQL Server代理窗口](https://img-blog.csdn.net/20170622111541270?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvanVzdGlmeWluZ3poMC9sb2dvNTcz/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/80/aHR0cDovL2kzNC5naXRodWIuaW8vLzIwMTgvMDEvMzAxMDgwMzQzODQ3OV8xNTEzNzAzMTkyNTIxNDQ5LmpwZw==)
接着,我们在作业步骤中添加我们的备份逻辑。可以使用T-SQL脚本来完成这个步骤。下面的代码将在指定时间自动备份AdventureWorks2014数据库。
USE [msdb]
GO
EXEC msdb.dbo.sp_add_jobstep @job_id = @jobId, @step_name = N'Backup AdventureWorks2014',
@subsystem = N'TSQL', @command = N'BACKUP DATABASE AdventureWorks2014 TO DISK = N''C:\Backups\AdventureWorks2014.bak''',
@retry_attempts = 5, @retry_interval = 5
GO
在此步骤中,我们使用了sp_add_jobstep命令向作业添加了一个命令,该命令将AdventureWorks2014备份到磁盘中指定的位置。
2.3 配置作业计划
最后,我们需要为我们的作业计划一个执行时间。我们可以点击“新建”按钮来创建一个新的计划,并设置作业的运行频率和时间。下面是一个简单的作业计划示例,每小时备份一次AdventureWorks2014数据库。
![计划界面](https://img-blog.csdn.net/20170622112227605?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvanVzdGlmeWluZ3poMC9sb2dvNTcz/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/80/aHR0cDovL2kzNC5naXRodWIuaW8vLzIwMTgvMDEvMzAxMDgwMzQ1Njk1OF8xNTEzNzAzNTI3NDE4Mzg0LmpwZw==)
3. 总结
在本文中,我们介绍了如何使用SQL Server自动备份功能来保护你的数据库。我们首先配置了备份设备,然后创建了一个备份作业,并在计划中设置了作业的运行频率和时间。这些步骤可以确保你的数据备份自动执行并存储在安全的位置。请务必根据你自己的环境和需求进行适当的配置和调整。