首页 > 开发 > 综合 > 正文

SQL如何创建数据库快照

2024-07-21 02:52:54
字体:
来源:转载
供稿:网友
最近开始学的数据库,使用的是SQL server 2008,以下是我学习数据库快照的笔记,如有错误还请指正。

什么是数据库快照: 数据库快照,顾名思义就是给数据库某个时刻拍的照片,是数据库(源数据库)的只读、静态视图。多个快照可以位于一个源数据库中,并且可以作为数据库始终驻留在同一服务器实例上。创建快照时,每个数据库快照在事务上与源数据库一致。在被数据库所有者显式删除之前,快照始终存在。

如何创建数据库快照:

下面是进行如下操作的一些最佳方法:命名数据库快照、创建它们时进行计时、限制它们的数量以及将客户端连接重新定向到快照。 数据库快照的命名: 为了便于管理,数据库快照的名称可以包含标识数据库的信息,且每个数据库快照的名称具有唯一性。 例如: .源数据库的名称 .该新名称用于数据库快照的信息 .快照的创建日期和时间、序列号或一些其他的信息(例如一天中的某个时间)以区分给定的数据库上的连续快照基于每天24小时制,这里的数据名称为TEST,那么就可以这样命名: TEST_snapshot_0600 --上午六时的数据库快照 TEST_snapshot_1203 --中午12时3分的数据库快照 TEST_snapshot_1820 --18时20分的数据库快照数据库快照的创建可以根据具体需要在不同的时刻进行创建。创建数据库快照的语句基本与数据库的创建相同,只不过在末尾加了AS SNAPSHOT OF DB_NAME(作为xx数据库的快照)

下面是创建数据库快照的T-SQL语句: CREATE DATABASE db_name ON ( NAME = db_name_data, FILENAME = ‘path/db_name_data.ss’ ) AS SNAPSHOT OF db_name;

例:

GO --执行批处理 CREATE DATABASE TEST ON ( NAME = TEST_data_1800, --设置快照文件名称 FILENAME = 'D:/SQL/TEST_data_1800.ss' --指定快照文件位置 ) AS SNAPSHOT OF TEST; --指定为数据库快照 GO注意:创建数据库快照时,CREATE DATABASE 语句中不允许有日志文件、脱机文件、还原文件和不起作用的文件建好数据库快照后,点击对象资源管理器-数据库-数据库快照,就可以查看已建好的数据快照。如果要删除数据快照,可以使用以下语句:USE TEST --指定当前操作的数据库 DROP DATABASE SalesSnapshot0600 --删除名为 SalesSnapshot0600 的数据库快照,而不影响源数据库 删除后SalesSnapshot0600 的所有用户连接都被终止,并删除快照使用的所有 NTFS 文件系统稀疏文件

将数据库恢复到数据库快照步骤

1、标识要将数据库恢复到的数据库快照2、删除其他任何数据库快照。3、执行恢复操作如果数据库使用完整恢复模式,则在执行恢复之前,应先备份日志,恢复数据库快照要求源数据库具有RESTORE DATABASE 权限。TSQL语句如下:RESTORE DATABASE <数据库名称> FROM DATABASE_SNAPSHOT = <数据库快照名称>例:--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已恢复的数据库将保留数据库快照的权限和配置(例如,数据库所有者和恢复模式)。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表