欢迎来到天天文库
浏览记录
ID:22692583
大小:55.50 KB
页数:5页
时间:2018-10-30
《sql server 数据库快照妙用--》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、SQLServer数据库快照妙用>> 如果要在一个特定的时间分析数据库中的数据,你会怎么做?例如,你想要分析晚上12点的数据,你会采取什么样的措施?最经常用到的方法,创建一个计划任务,在晚上12点的时候执行备份,将当前数据库以一个新的名字备份到服务器上,然后再开始分析这个备份数据库中的数据。这样做的问题就在于,如果这个数据库很大,那么备份它就需要花费大量的时间和磁盘空间。如果你需要在数据访问高峰期做备份的话,它花费的资源足以让你的服务器宕机。然而,在SQLServer2005中,有一项新的功能,名为数据库快照
2、,可以让你很方便的处理类似的问题。 除了上面提到的优点,使用数据库快照还有很多其它的好处,本文将集中讨论数据库快照的优点。数据库快照是一项不太起眼的功能,这意味着,许多DBA和开发者都没有注意到它的存在。 数据库快照是什么 数据库快照是当前数据库的只读静态视图,不包括那些还没有提交的事务。没有提交的事务被回滚了,这样才能保证数据库的事务一致性。 工作原理 通常,我们使用一项功能的时候并不需要知道它的工作原理。然而,知道其工作原理将会给我们的工作带来大大的好处。 一旦你创建数据库快照,快照数据库将被分
3、配到一个空闲文件中。当原始数据页发生变化的时候,该页就会被移动到这个空闲文件。当你访问数据库快照的时候,你会访问到空闲文件,以及原始数据库上那些没有发生变化的数据页。我们可以从下图看出数据库快照是如何工作的。 图一(:SQLServer2005在线手册) 使用数据库快照 首先,你需要创建一个数据库快照。有两种方法可以创建数据库快照。 CREATEDATABASEssAdventureE=AdventureE= 'C:ProgramFilesMicrosoftSQLServerMSSQL.1MS
4、SQLDataAdventure[ssAdventuremsdb.dbo.syscategoriese=N'[Uncategorized(Local)]'ANDcategory_class=1)BEGINEXECReturnCode=msdb.dbo.sp_add_categoryclass=N'JOB',type=N'LOCAL',name=N'[Uncategorized(Local)]'IF(ERROR<>0ORReturnCod
5、e<>0)GOTOQuitsdb.dbo.sp_add_jobjob_name=N'Databasesnapshot', enabled=1, notify_level_eventlog=0, notify_level_email=0, notify_level_send=0, notify_level_page=0, delete_level=0, description=N'Nodescriptiona
6、vailable.', category_name=N'[Uncategorized(Local)]',123下一页>>>>这篇文章来自..,。oe=N'Dinesh-Mobdinesh',job_id=jobIdOUTPUTIF(ERROR<>0ORReturnCode<>0)GOTOQuitE=AdventureE=''C:ProgramFilesMicrosoftSQLServerMSSQL.1MSSQLDataAd
7、ventureITTRANSACTIONGOTOEndSaveQuitWithRollback: IF(TRANCOUNT>0)ROLLBACKTRANSACTIONEndSave: 其它信息 很多时候我们都知道,可以从sys.databases的系统视图中看到数据库的清单列表。数据库快照也在这个清单中。在这个视图中,有两列与数据库快照相关。一列是source_database_id,它将指名源数据库ID或者快照的源数据库。另一列是is_read_only,当一个快照数据库是一个只读数据库时,该列的
8、值为1. SE上一页123下一页>>>>这篇文章来自..,。LECTNAME, database_id, source_database_id, is_read_only FROMsys.databases 优点 1.数据库快照最大的优点就在于它可以作为一个报告数据库。因为数据库快照是主数据库的一个只读副本,对一个数据库快照执行报告能够大大的减少加载时间。 2.数据库快
此文档下载收益归作者所有