SQL Server 每日定期备份与定期删除旧有备份档

SQL Server 资料库备份是将存放在资料库里面的资料,转成单一档案保存,通常是副档名为 bak 的档案,备份後的档案可以保留一阵子,如果将来资料库或是服务器发生问题时,我们可以将备份资料再还原,就可以救回重要的资料。

而定期备份资料库是专案管理或资料维护非常重要的一步,因为我们无法保证资料库或服务器何时会出现问题,可能硬体损坏也可能被骇客入侵,所以当网站或专案开始运作的时候,就要开始定期备份资料库,以免重要资料消失。

接下来我会示范如何在 SQL Server 内设定每日定期备份,并建立第 2 个排程为删除旧有备份。

要删除旧有备份的原因是防止硬碟容量成长太快,每一次备份都会增加硬碟空间,如果空间有限,对於太旧的备份档就要适时删除,而旧有备份要还原的机率也很小。

操作系统: Windows Server 2019
资料库版本: SQL Server 2019 Developer

每日定期备份操作

SQL Server 的操作工具是 Microsoft SQL Server Management Studio (SSMS) ,如果没有工具的话,可到此下载

打开 SSMS 之後,执行「管理 > 维护计划 (按右键) > 新增维护计划」。

输入计划名称

设定排程时间

点击日历图示开启排程时间

设定频率及时间,我选择为每日排程,於上午 12 点执行。完成後按下「确定」。

设定备份项目

接着要选择执行项目,在左上方的「工具箱 > 维护计划工作 > 备份资料库工作」

将「备份资料库工作」拖拉到维护计划中。

双点击「备份资料库工作」,在资料库中下拉再勾选要备份的资料库。

在「目的地」页签中选择要存放的位置,可存在本机、网路芳邻或是 NAS 。完成後按「确定」。

设定完成後再「储存」计划就完成了。

测试备份

设定完成之後,可以初次测试,在已新增的备份名称(看不到可以先按重整),按右键选「执行」。

测试成功。

检查是否有档案出现。

有档案出现表示我们的每日备份资料库计划已经成功了喔。

删除旧有备份档

删除旧有备份档跟建立备份排程是相似的,都需要启动一个新排程。
执行「管理 > 维护计划 (按右键) > 新增维护计划」

输入名称「删除旧有备份档」

设定排程时间

点击日历图示开启排程时间

设定频率及时间,我一样选择为每日排程,但时间错开备份时间。完成後按下「确定」。

设定清除项目

接着要选择执行项目,执行左上方的「工具箱 > 维护计划工作 > 维护清除工作」,拖拉至维护内容。

双击「维护清除工作」,接着选择档案位置,副档名为 bak。
档案存在时间就选择想删除多久以前的档案,时间单位有「小时、天、周、月、年」。完成後按「确定」。

设定完成後再「储存」计划就完成了。

问题排除

如果新增维护计划时,出现问题: 「Agent XPs’ 元件已经由此服务器的安装性组态关闭。…」

此原因为维护计划的执行服务未启动,只要启动 SQL Server Agent 服务就可以了。

解决方式:

开启「设定管理员」,在 2017 以前版本名称为「组态管理员」,也是同样的功能。

找到「SQL Server 服务 > SQL Server Agent(MSSQLSERVER)」。

按右键选「启动」。

这样就可以正常使用维护计划了,但因为 SQL Server Agent 预设为手动启动,所以要设定成自动启动,下次就不会再发生同样的问题。
在 SQL Server Agent 按右键选内容。

在「服务 > 启动模式」选择「自动」。

这样就完成了。

重点整理

  1. 定期备份资料库是专案管理或资料维护非常重要的一步
  2. 使用 SSMS 建立维护计划
  3. 设定时间排程,建议每日一次
  4. 建立维护工作为备份资料库
  5. 删除备份档一样是维护计划
  6. 删除备份档一样为每日执行
  7. 删除备份档可选择保留天数

相关学习文章

Windows Server 如何安装 SQL Server 2019 免费开发版
如何避免 MS-SQL 暴力登入攻击 (尝试评估密码时发生错误、找不到符合所提供名称的登入)
[C#] 产生 MSSQL Table DML (SELECT, INSERT, UPDATE, DELETE) SQL 语法


<<:  先做了个toDoList

>>:  各种电脑常见的问题与维修方法

day3 让我看看,什麽是Coroutine Scope

我想大家看到前一天的范例,应该会有这种感觉吧 唉呦,很猛嘛~ [coroutine]对呀,我超厉害的...

客制化带背景音乐与画面淡出的launchScreen

缘由: 从UIUX那边总是会收到各种有趣的需求,这次收到的新需求为希望launch页面可以停止个几秒...

mostly:functional 第二十六章的试炼:Functor 的证明

一样是上次那个模仿 Maybe 行为的 type: -- Haskell 语法 data Might...

课堂笔记 - 深度学习 Deep Learning (6) Lab2

使用读档方式用python实作PLA Lab2作业需求: 基本上和Lab大同小异,唯一要改的地方就...

15【雷坑】千万别肖想用 APCS 升大学

事实上一现在的情况来看,若是要用 APCS 成绩当作升大学的跳板是完全不建议的,理由如下: 高手独占...