运行 MS SQL Express 的客户端设备的定期备份和存档选项,包括恢复

运行 MS SQL Express 的客户端设备的定期备份和存档选项,包括恢复

在当前环境中,客户端应用程序已部署在单个端点设备上,例如笔记本电脑。客户端应用程序记录和检索监管和合规性所需的信息,目前,没有数据备份。

由于这些数据对于监管和合规报告至关重要,因此正在探索备份和存档选项。

有哪些可用的选项可用于备份、存档和恢复客户端数据库?

环境

  1. 客户端设备运行 Windows 7
  2. MS SQL Express 2008

要求

  1. RTO-24 小时
  2. RPO – 15 分钟

答案1

我假设你的预算是有限的(因为它总是有限的,不是吗?)。

前往Ola Hallengren 的网站并获取他的维护解决方案的副本。配置完基本配置后运行脚本:

SET @BackupDirectory     = N'C:\Backup' -- Specify the backup root directory.
SET @CleanupTime         = NULL         -- Time in hours, after which backup files are deleted. If no time is specified, then no backup files are deleted.

由于您使用的是 Express 版本,因此您将没有允许您安排任务的 SQL Agent,因此请使用 Windows 任务计划程序来设置备份。由于您的 RPO 为 15 分钟,我建议每天进行 1 次完整备份(例如在午夜)并每 5 分钟进行一次日志备份。确保您的数据库处于FULL

一份典型的工作看起来是这样的:

sqlcmd -E -S MYSERVER\MYINSTANCE -d master -Q "EXECUTE dbo.DatabaseBackup @Databases = 'ALL_DATABASES', @Directory = N'F:\SQLBackup', @BackupType = 'FULL'" -b

(每天安排此活动)

sqlcmd -E -S MYSERVER\MYINSTANCE -d master -Q "EXECUTE dbo.DatabaseBackup @Databases = 'ALL_DATABASES', @Directory = N'F:\SQLBackup', @BackupType = 'LOG'" -b

(每 5 分钟安排一次)

在使用此解决方案时,请研究更新统计数据和索引维护的其他可能性......

恢复时,按顺序恢复完整和所有后续日志备份。确保使用 进行恢复,NORECOVERY直到应用最后一个日志文件。因为可能有很多文件,您可能需要研究编写脚本。看这里了解更多信息。

现在到了最困难的部分。如果机器坏了,你仍然无法获得 RPO,因此你需要将备份从机器上取下来(甚至可能放在地理位置很远的地方)。这里有很多选择。

我通常的做法是使用环境中用于平面文件备份的备份工具将其备份到不同的数据中心/机器。如果没有,您可能需要考虑获取一个 Amazon Web Services 帐户并将其移动到 S3。如果您担心安全性,您可以使用以下应用程序加密备份陣容

因此,最后:恢复时间目标。这可能很棘手,取决于你如何看待它。你是否有一个团队可以在需要时部署新的 SQL Server 并恢复备份(从 AWS)?是否有轮班值班制度?你会 24/7 接听电话吗?

如果您想要自动执行此操作,事情会变得更加复杂,您肯定会需要额外的服务器。由于您使用的是 2008,因此您可以设置日志传送。这是 SQL Server 中的一项功能,您可以免费使用每个可能的版本。它会复制日志文件并将其还原到您的辅助 SQL 服务器。如果您愿意,我可以详细说明。

请务必测试 你的 解决方案并监控备份是否运行良好!没有什么比必须进行恢复并发现备份在 5 天内没有运行更糟糕的了。如果需要便宜,邮寄结果也可以,但这很快就会过时。也许可以研究一下监控系统,例如伊辛加如果钱是一个问题的话。

PSA:我与我在此提出的任何解决方案都没有任何关联,这只是我遇到这个问题时通常会做的事情。

答案2

我认为您将高可用性与备份混为一谈了。它们是两个不同的东西。Always On Availability 组与备份 SQL 数据库无关。您也不需要将数据库备份到 SQL 场(无论您认为 SQL 场是什么)。您只需在安装了 SQL Server Express 的客户端计算机上以符合您的 RPO 的间隔编写数据库备份脚本即可。

答案3

MSSQL Express 版本缺少 SQL Server Agent。您可以结合使用OSQLUtility(命令行实用程序)和 Windows Scheduler 来执行 t-sqlBACKUP DATABASE语句。您可以备份到外部位置(如果 mssql 进程帐户允许)。您可以使用 FULL 恢复模式和BACKUP DATABASE/的组合BACKUP LOG来进行连续备份(即每 15 分钟进行一次日志备份)。不要忘记系统数据库(master、model、msdb)。

您也可以使用 Dropbox(或类似程序)作为外部位置。实际上,dropbox 文件夹是本地文件夹,因此您不会遇到访问网络文件夹的问题(mssql windows 帐户可以限制它)。MSSQL 2008 R2 可能会在备份时压缩数据(不确定 express 版本是否可以)。

相关内容