如何将数据库恢复到数据库快照 (Transact-SQL)
来源:互联网 发布:c语言编译器win10下载 编辑:程序博客网 时间:2024/05/22 00:40
数据库快照不是冗余存储,因此,不针对磁盘错误或其他类型的损坏提供任何保护功能。但是,如果在联机数据库中发生用户错误,则可以将数据库恢复到发生错误之前的数据库快照。
为了保护数据库,非常有必要定期执行备份并测试还原计划。如果必须将源数据库还原到创建数据库快照的时间点,请实施允许您执行该操作的备份策略。
恢复的数据库会覆盖原来的源数据库。恢复到快照将删除所有全文目录。
在执行恢复之前,应熟悉恢复到数据库快照中的信息。
将数据库恢复到数据库快照
标识要将数据库恢复到的数据库快照。您可以在 SQL Server Management Studio 中查看数据库快照(请参阅如何查看数据库快照 (SQL Server Management Studio))。此外,您还可以在 sys.databases (Transact-SQL) 目录视图的 source_database_id 列中找到某个视图的源数据库。
删除其他任何数据库快照。
有关删除快照的信息,请参阅如何删除数据库快照 (Transact-SQL)。如果数据库使用完整恢复模式,则在执行恢复之前,应先备份日志。有关详细信息,请参阅如何备份事务日志 (SQL Server Management Studio) 或如何在数据库损坏时备份事务日志 (Transact-SQL)。
执行恢复操作。
恢复操作要求对源数据库具有 RESTORE DATABASE 权限。若要恢复数据库,请使用下列 Transact-SQL 语句:
RESTORE DATABASE <数据库名称> FROM DATABASE_SNAPSHOT =<数据库快照名称>
其中,<数据库名称> 是源数据库的名称,<数据库快照名称> 是要将数据库恢复到的快照的名称。注意,必须在此语句中指定快照名称而非备份设备。
有关详细信息,请参阅 RESTORE (Transact-SQL)。
注意 在恢复操作过程中,快照和源数据库都不可用。源数据库和快照都标记为“还原中”。如果在恢复操作期间发生错误,则数据库在重新启动后,将尝试完成恢复操作。
如果创建数据库快照后数据库所有者发生了变化,您可能希望更新恢复的数据库的数据库所有者。
注意 已恢复的数据库将保留数据库快照的权限和配置(例如,数据库所有者和恢复模式)。
启动数据库。
尤其在使用完整(或大容量日志)恢复模式时,可以选择备份已恢复的数据库。有关备份数据库的信息,请参阅如何备份数据库 (SQL Server Management Studio) 或如何创建完整数据库备份 (Transact-SQL)。
本节包含将数据库恢复到数据库快照的示例。 此示例假定 AdventureWorks2008R2 数据库当前只存在一个快照。有关在此创建数据库要恢复到的快照的示例,请参阅如何创建数据库快照 (Transact-SQL)。 此示例假定 Sales 数据库当前存在两个快照:sales_snapshot0600 和 sales_snapshot1200。此示例删除了较旧的快照并将数据库恢复到较新的快照。 有关用于创建此示例所基于的示例数据库和快照的代码,请参阅: 有关 Sales 数据库和 sales_snapshot0600 快照,请参阅 CREATE DATABASE (Transact-SQL) 中的“使用文件组创建数据库”和“创建数据库快照”。 有关 sales_snapshot1200 快照,请参阅如何创建数据库快照 (Transact-SQL) 中的“创建 Sales 数据库的快照”。A. 恢复 AdventureWorks2008R2 数据库的快照
USE master;-- Reverting AdventureWorks2008R2 to AdventureWorks2008R2_dbss1800RESTORE DATABASE AdventureWorks2008R2 from DATABASE_SNAPSHOT = 'AdventureWorks2008R2_dbss1800';GO
B. 恢复 Sales 数据库的快照
--Test to see if sales_snapshot0600 exists and if it -- does, delete it.IF EXISTS (SELECT dbid FROM sys.databases WHERE NAME='sales_snapshot0600') DROP DATABASE SalesSnapshot0600;GO-- Reverting Sales to sales_snapshot1200USE master;RESTORE DATABASE Sales FROM DATABASE_SNAPSHOT = 'sales_snapshot1200';GO
- 如何将数据库恢复到数据库快照 (Transact-SQL)
- 如何创建数据库快照 (Transact-SQL)
- SQL从快照恢复数据库
- SQL如何创建数据库快照
- 如何将图片保存到sql数据库
- 如何将oracle数据库恢复到指定日期
- 如何将远程SQL Server数据库备份到本地数据库
- SQL数据库快照
- SQL Server 数据库快照
- SQL 创建数据库快照
- SQL数据库快照删除
- sql server数据库快照
- SQL数据库快照
- Transact-SQL数据库基本操作
- Transact-SQL Cursor (数据库游标)
- 【数据库视频】Transact-SQL编程
- 如何将EXCEL数据导入到SQL数据库中来
- 如何将SQL Server数据库迁移到新服务器中
- Oracle中的Null(再提)
- CPU卡操作系统COS文件访问安全的实现
- vmware 7+ubuntu桥接网络设置(非常适用于公司/学校网络)
- perl学习-第十章
- 如何创建数据库快照 (Transact-SQL)
- 如何将数据库恢复到数据库快照 (Transact-SQL)
- IE 8 中设置打开新网页时在新选项卡中显示。
- varchar和Nvarchar区别
- 重复定律
- 新的开始
- HDU_acm1002
- Ibiats入门配置
- Ibiats 的sql配置文件
- 为什么我的积分是负数?