SQLSERVER完整数据库还原(简单恢复模式)
完整数据库还原(简单恢复模式)
数据库完整还原的目的是还原整个数据库。 整个数据库在还原期间处于脱机状态。
在数据库的任何部分变为联机之前,必须将所有数据恢复到同一点,即数据库的所有部分都处于同一时间点并且不存在未提交的事务。
在简单恢复模式下,数据库不能还原到特定备份中的特定时间点。
重要
建议您不要附加或还原来自未知或不可信源的数据库。 这些数据库可能包含执行非预期 Transact-SQL 代码的恶意代码,或通过修改架构或物理数据库结构导致错误。
使用来自未知源或不可信源的数据库前,请在非生产服务器上针对数据库运行 DBCC CHECKDB ,然后检查数据库中的代码,例如存储过程或其他用户定义代码。
在简单恢复模式下还原数据库的概述
简单恢复模式下的完整数据库还原只涉及一个或两个 RESTORE 语句,具体取决于是否需要还原差异数据库备份。 如果只使用完整数据库备份,则只需还原最近的备份,如下图所示。
仅还原完整数据库备份
如果还使用差异数据库备份,则应还原最近的完整数据库备份而不恢复数据库,然后还原最近的差异数据库备份并恢复数据库。 下图显示了这一过程。
还原完整数据库备份和差异数据库备份
基本 TRANSACT-SQL RESTORE 语法
用于还原完整数据库备份的基本 Transact-SQLRESTORE 语法是:
RESTORE DATABASE database_name FROM backup_device [ WITH NORECOVERY ]
备注
如果还打算还原差异数据库备份,则应使用 WITH NORECOVERY。
用于还原数据库备份的 RESTORE 语句的基本语法是:
RESTORE DATABASE database_name FROM backup_device WITH RECOVERY
示例 (Transact-SQL)
以下示例首先显示如何使用 BACKUP 语句来创建 AdventureWorks2012 数据库的完整数据库备份和差异数据库备份。 然后按顺序还原这些备份。 将数据库还原到完成差异数据库备份时的状态。
该示例说明数据库完整还原方案的还原序列中的关键选项。 还原顺序 由通过一个或多个还原阶段来移动数据的一个或多个还原操作组成。 将省略与此目的不相关的语法和详细信息。 在恢复数据库时,尽管 RECOVERY 选项是默认值,但为清楚起见,仍建议显式指定该选项。
备注
此示例以 ALTER DATABASE 语句开头,该语句将恢复模式设置为 SIMPLE。
USE master; --Make sure the database is using the simple recovery model. ALTER DATABASE AdventureWorks2012 SET RECOVERY SIMPLE; GO -- Back up the full AdventureWorks2012 database. BACKUP DATABASE AdventureWorks2012 TO DISK = 'Z:\SQLServerBackups\AdventureWorks2012.bak' WITH FORMAT; GO --Create a differential database backup. BACKUP DATABASE AdventureWorks2012 TO DISK = 'Z:\SQLServerBackups\AdventureWorks2012.bak' WITH DIFFERENTIAL; GO --Restore the full database backup (from backup set 1). RESTORE DATABASE AdventureWorks2012 FROM DISK = 'Z:\SQLServerBackups\AdventureWorks2012.bak' WITH FILE=1, NORECOVERY; --Restore the differential backup (from backup set 2). RESTORE DATABASE AdventureWorks2012 FROM DISK = 'Z:\SQLServerBackups\AdventureWorks2012.bak' WITH FILE=2, RECOVERY; GO
————————————————
聚焦技术与人文,分享干货,共同成长更多内容请关注“数据与人”
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了