SQL Server 备份和还原全攻略

本文涉及的产品
云数据库 RDS SQL Server,基础系列 2核4GB
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
日志服务 SLS,月写入数据量 50GB 1个月
简介: 原文:SQL Server 备份和还原全攻略 一、知识点 完全备份: 备份全部选中的文件夹,并不依赖文件的存档属性来确定备份那些文件。(在备份过程中,任何现有的标记都被清除,每个文件都被标记为已备份,换言之,清除存档属性)。
原文: SQL Server 备份和还原全攻略

一、知识点

完全备份: 备份全部选中的文件夹,并不依赖文件的存档属性来确定备份那些文件。(在备份过程中,任何现有的标记都被清除,每个文件都被标记为已备份,换言之,清除存档属性)。完全备份也叫完整备份。

差异备份: 差异备份是针对完全备份:备份上一次的完全备份后发生变化的所有文件。(差异备份过程中,只备份有标记的那些选中的文件和文件夹。它不清除标记,即:备份后不标记为已备份文件,换言之,不清除存档属性)。

增量备份: 增量备份是针对于上一次备份(无论是哪种备份):备份上一次备份后,所有发生变化的文件。(增量备份过程中,只备份有标记的选中的文件和文件夹,它清除标记,即:备份后标记文件,换言之,清除存档属性。)

事务日志备份: 在特定事务日志备份之前执行的完整数据库备份和上次差异备份(如果有)。在完整数据库备份之后执行的所有事务日志备份或在特定事务日志备份之前执行的差异备份(如果您还原了差异备份)。如果你设置了恢复模式为【简单】,你将无法使用【事务日志】备份。SQL Server 2000 和 SQL Server 2005: 创建事务日志备份,您必须使用完整恢复或大容量日志记录恢复模型。

部分备份: 通过指定 READ_WRITE_FILEGROUPS 创建的备份称为“部分备份”。在简单恢复模式下,只允许对只读文件组执行文件组备份。还原的数据备份类型:数据库备份、部分备份或文件备份。对于数据库备份或部分备份,日志备份序列必须从数据库备份或部分备份的结尾处开始延续。对于一组文件备份,日志备份序列必须从整组文件备份的开头开始延续。

文件备份: “文件备份”包含一个或多个文件(或文件组)中的所有数据。

日志链: 连续的日志备份序列称为“日志链”。日志链从数据库的完整备份开始。通常,仅当第一次备份数据库时,或者将恢复模式从简单恢复模式切换到完整恢复模式或大容量日志恢复模式之后,才会开始一个新的日志链。除非在创建完整数据库备份时选择覆盖现有备份集,否则现有的日志链将保持不变。在该日志链保持不变的情况下,便可从媒体集中的任何完整数据库备份还原数据库,然后再还原相应恢复点之前的所有后续日志备份。恢复点可以是上次日志备份的结尾,也可以是任何日志备份中的特定恢复点。

一个备份方案例子: 某个站点在星期天晚上执行完整数据库备份。在白天每隔 4 小时制作一个事务日志备份集,并用当天的备份重写头一天的备份。每晚则进行差异备份。如果数据库的某个数据磁盘在星期四上午 9:12 出现故障,则该站点可以:

1)     备份当前事务日志;(已经出现故障了,如何备份当前事务日志?)

2)     还原从星期天晚上开始的数据库备份;

3)     还原从星期三晚上开始的差异备份,将数据库前滚到这一时刻;

4)     还原从早上 4 点到 8 点的事务日志备份,以将数据库前滚到早上 8 点;

5)     还原故障之后的日志备份。这将使数据库前滚到故障发生的那一刻。

 

二、还原步骤

创建一个叫TestBackup的数据库,创建一张叫Table1的表,这个时候进行一次完整备份,备份文件为:TestBackupDB-full.bak;接着创建表Table2后进行差异备份,备份文件为:TestBackupDB-diff.bak;接着创建表Table3后进行事务日志备份(如果数据库设置了恢复模式为【简单】,那么在备份类型选项中将看不到【事务日志】),备份文件为:TestBackupDB-log.bak;

创建一个叫TestBackup2的数据库,用于测试TestBackup数据库的备份文件的还原。


(图1:创建库结构)


(图2:备份类型)

       下面我们就可以对三个备份文件:TestBackupDB-full.bak、TestBackupDB-diff.bak、TestBackupDB-log.bak进行还原:

       步骤1:还原完整备份文件TestBackupDB-full.bak,选项如图4、图5所示,还原成功后数据列表就会如图6所示,这是因为恢复状态选项:不对数据库执行任何操作,不回滚未提交的事务。可以还原其他事务日志。(RESTORE WITH NORECOVERY)


(图3:进入SSMS还原)


(图4:还原常规)


(图5:还原选项)


(图6:完整备份还原)

步骤2:还原差异备份文件TestBackupDB-diff.bak,操作如步骤1所示,这个时候的数据库还是跟图6的状态一样的。

步骤3:还原事务日志备份文件TestBackupDB-log.bak,如图7进入事务日志的还原操作界面;看图8的选项中有指定事务的时间进行还原(还原过程中的恢复状态都是默认为RESTORE WITH RECOVERY,所以这里没有提及这个选项)。还原后的TestBackup2数据库,还原之后的数据库TestBackup2如图9所示。


(图7:进入事务日志)


(图8:事务日志)


(图9:还原后的数据库)

 

三、升级

通常来说文章写到这里就应该结束了,但是很幸运,再给你介绍一下如何在对表进行分区后的还原操作,从上面的操作来看只包括了mdf和ldf文件,但如果多了几个ndf文件,这些还原又一样吗?所以我称这部分的内容为升级。

情景一:如果本来就有对应的分区文件的,只要在还原的时候修改【还原为】的文件名就可以进行还原了。

情景二:如果刚刚新建了分区文件组和文件,这个时候接着还原备份就会出现图10的错误(不知道是不是在SQL Server 2005的问题);要解决这个问题有两个方法,第一个:重启数据库服务再还原;第二个:设置数据库的【限制访问】设置为【Single】;

 

(图10:错误)

 

四、参考文献

SQL SERVER数据的差异备份如何还原

使用事务日志备份

SQL Server 2008事务日志备份工作原理

有关从完整恢复模式或大容量日志恢复模式切换的注意事项 

备份和还原操作指南主题

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
目录
相关文章
|
6月前
|
关系型数据库 MySQL 网络安全
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
|
7月前
|
SQL 数据库
Microsoft SQL Server 2014如何来备份数据库
Microsoft SQL Server 2014如何来备份数据库
695 3
|
7月前
|
SQL 存储 数据库
备份SQL语句
【8月更文挑战第20天】备份SQL语句
62 3
|
7月前
|
SQL 数据库
SQL Server 如何进行备份?
【8月更文挑战第20天】SQL Server 如何进行备份?
165 3
|
8月前
|
SQL 存储 监控
SQL Server的并行实施如何优化?
【7月更文挑战第23天】SQL Server的并行实施如何优化?
204 13
|
8月前
|
SQL
解锁 SQL Server 2022的时间序列数据功能
【7月更文挑战第14天】要解锁SQL Server 2022的时间序列数据功能,可使用`generate_series`函数生成整数序列,例如:`SELECT value FROM generate_series(1, 10)。此外,`date_bucket`函数能按指定间隔(如周)对日期时间值分组,这些工具结合窗口函数和其他时间日期函数,能高效处理和分析时间序列数据。更多信息请参考官方文档和技术资料。
122 9
|
8月前
|
SQL 存储 网络安全
关系数据库SQLserver 安装 SQL Server
【7月更文挑战第26天】
102 6
|
7月前
|
SQL 存储 数据库
SQL Server 中的备份类型详解
【8月更文挑战第31天】
183 0
|
7月前
|
数据库 Java 监控
Struts 2 日志管理化身神秘魔法师,洞察应用运行乾坤,演绎奇幻篇章!
【8月更文挑战第31天】在软件开发中,了解应用运行状况至关重要。日志管理作为 Struts 2 应用的关键组件,记录着每个动作和决策,如同监控摄像头,帮助我们迅速定位问题、分析性能和使用情况,为优化提供依据。Struts 2 支持多种日志框架(如 Log4j、Logback),便于配置日志级别、格式和输出位置。通过在 Action 类中添加日志记录,我们能在开发过程中获取详细信息,及时发现并解决问题。合理配置日志不仅有助于调试,还能分析用户行为,提升应用性能和稳定性。
92 0
|
7月前
|
SQL 安全 测试技术
【数据守护者必备】SQL数据备份与恢复策略全解析:从全量到日志备份,手把手教你确保企业信息万无一失的实战技巧!
【8月更文挑战第31天】数据库是企业核心业务数据的基石,为防止硬件故障、软件错误或人为失误导致的数据丢失,制定可靠的备份与恢复策略至关重要。本文通过一个在线购物平台的案例,详细介绍了使用 SQL Server 进行全量备份、差异备份及事务日志备份的方法,并演示了如何利用 SQL Server Agent 实现自动化备份任务。此外,还提供了数据恢复的具体步骤和测试建议,确保数据安全与业务连续性。
350 0

热门文章

最新文章