2014年4月9日
摘要: SQL Server中的数据库都是由一或多个数据文件以及一或多个事务日志文件组成的。顾名思意,数据文件主要存储数据库的数据,包括数据库内容结构,数据页,索引页等等。那么事务日志到底是干什么的呢?它主要是用来保存数据库修改记录的,如下图:SQL Server的工作原理为什么这样呢?为什么不把数据立刻写入数据文件呢?原因很简单:为了得到更高的效率和性能。数据文件为了适应新的数据可能会扩展, 可能会重新分配页,分配新空间等等。而日志都是连续被记录的,所以记录事务日志要快得多。这也就是为什么我们通过推荐把物理磁盘单独划分一区用来存储事务 日志的原因了,这样可以使磁盘在读写上最大程序的保持自然连续。数据 阅读全文
posted @ 2014-04-09 15:46 无敌百搭 阅读(570) 评论(0) 推荐(0) 编辑
摘要: 假设在下面几个时间段中,一个数据库积累插入了如下数据:1.完整数据库备份故名思意,完整数据库备份包括完整的数据库信息。它包括数据库的数据文件和备份结尾的部份活动事务日志。完整备份基本语法如下:BACKUP DATABASE AdventureWorks TO DISK = 'g:/backups/AdventureWorks.bak'2.差异性数据库备份差异性数据库备份包括自从上一次完整性备份以来所有改变的数据页,以及备份结尾的部份活动事务日志。差异备份和完整备份的语法很相似,唯一不同的是加上了DIFFERENTIAL选项,如下:BACKUP DATABASE Adventur 阅读全文
posted @ 2014-04-09 15:45 无敌百搭 阅读(1004) 评论(0) 推荐(0) 编辑
摘要: 在SQL Server中,除了系统数据库外,你创建的每一个数据库都有三种可供选择的恢复模型: Simple(简单), full(完整), bulk-logged(批量日志)。 下面这条语句可以显示出所有在线数据库的恢复模型:SELECT name, (SELECT DATABASEPROPERTYEX(name, 'RECOVERY')) RecoveryModel FROM master..sysdatabases ORDER BY nameSQL Server 2005及以上版本也可以使用下面这条语句来查看:SELECT name, recovery_model_desc 阅读全文
posted @ 2014-04-09 15:44 无敌百搭 阅读(450) 评论(0) 推荐(0) 编辑
摘要: 当SQL Server截断事务日志时,它仅仅是在虚拟日志文件中做个标记,以便不再使用它,然后准备以重用形式来做备份(假如运载在完整或是批量日志恢复模型)。也就是说,在使用简单恢复模型时,事务日志包括如下的日志记录:当checkpoint发生时,虚拟日志文件1、2不再被使用,因为事务1、2已经被提交了,而且日志记录也不再需要回滚了。然后SQL Server重用虚拟日志文件1、2,如下图:这就是我们所熟知的事务日志截断。基本上,事务日志的活动区间已经被截断了,但是事务日志的物理大小不会改变,除非数据库使用自动收缩的属性设置。在这种情况下,事务日志就会尽可能的在物理上进行周期性的收缩。为了物理上减小 阅读全文
posted @ 2014-04-09 15:23 无敌百搭 阅读(7229) 评论(0) 推荐(1) 编辑
  2014年4月8日
摘要: 事务日志备份有以下3种类型(1)纯日志备份:仅包含相隔一段时间的事务日志记录,而不包含任何大容量更改(2)大容量操作日志备份.包括由大容量操作更改的日志和数据页,不支持时间点恢复(3)尾日志备份:从可能已破坏的数据库创建,用于捕获尚未备份的日志记录。在失败后创建尾日志备份可以防止工作损失,并且,尾日志备份可以包含纯日志或大容量日志数据必须至少有一个完整备份或一个等效文件备份集,才能进行任何日志备份。通常DBA定期(如每周)创建数据库完整备份,以更短的间隔(如每天)创建差异备份,并会频繁(如每10分钟)创建事务日志备份。最恰当的备份间隔取决于一系列因素,如数据的重要性、数据库的大小和服务器的工作 阅读全文
posted @ 2014-04-08 15:47 无敌百搭 阅读(3727) 评论(0) 推荐(0) 编辑
  2014年3月24日
摘要: SQL Server Management Studio登陆窗口 清空这些多余的登陆名删除SqlStudio.bin文件WinXP: C:\Documents and Settings\用户文件夹\Application Data\Microsoft\Microsoft SQL Server\100\Tools\ShellWin 7 C:\Users\用户文件夹\Application Data\Microsoft\Microsoft SQL Server\100\Tools\Shell 阅读全文
posted @ 2014-03-24 13:41 无敌百搭 阅读(2473) 评论(0) 推荐(0) 编辑
  2014年3月21日
摘要: 一, 数据库复制 SQL Server 2008数据库复制是通过发布/订阅的机制进行多台服务器之间的数据同步,我们把它用于数据库的同步备份。这里的同步备份指的是备份服务器与主服务器进行 实时数据同步,正常情况下只使用主数据库服务器,备份服务器只在主服务器出现故障时投入使用。它是一种优于文件备份的数据库备份解决方案。 SQL Server的复制分为种:1. 快照发布: 发布服务器按预定的时间间隔向订阅服务器发送已发布数据的快照。每隔一段时间将订阅数据库中的相应表中的数据全部删除,然后将自己相应表中的全部插到订阅数据库中 使用快照复制本身是最合适的: 1)很少更改数据。 ... 阅读全文
posted @ 2014-03-21 12:47 无敌百搭 阅读(4402) 评论(0) 推荐(0) 编辑
摘要: win7 在地址栏直接输入下面路径,删除SqlStudio.bin文件%AppData%\Microsoft\Microsoft SQL Server\100\Tools\Shell 阅读全文
posted @ 2014-03-21 08:59 无敌百搭 阅读(174) 评论(0) 推荐(0) 编辑
  2014年3月20日
摘要: USE [master]GOALTER DATABASE STAR9SQL SET RECOVERY SIMPLE WITH NO_WAITGOALTER DATABASE STAR9SQL SET RECOVERY SIMPLE --简单模式GOUSE star9sqlGODBCC SHRINKFILE (N'STAR9SQL_log' , 11, TRUNCATEONLY)GOUSE [master]GOALTER DATABASE STAR9SQL SET RECOVERY FULL WITH NO_WAITGOALTER DATABASE STAR9SQL SET RE 阅读全文
posted @ 2014-03-20 09:35 无敌百搭 阅读(360) 评论(0) 推荐(0) 编辑
  2014年2月26日
摘要: 最近几天,公司的技术维护人员频繁让我恢复数据库,因为他们总是少了where条件,导致update、delete出现了无法恢复的后果,加上那些库都是几十G。恢复起来少说也要十几分钟。为此,找了一些资料和工作总结,给出一下几个方法,用于快速恢复表,而不是库,但是切记,防范总比亡羊补牢好。 在生产环境或者开发环境,往往都有某些非常重要的表。这些表存放了核心数据。当这些表出现数据损坏时,需要尽快还原。但是,正式环境的数据库往往都是非 常大的,统计数据表明,1T的数据库还原时间接近24小时,所以因为一个表而还原一个库,不单空间,甚至时间上都是一个很大的挑战。本文介绍如何恢复单 表,而不需要恢复整个库.. 阅读全文
posted @ 2014-02-26 10:41 无敌百搭 阅读(10995) 评论(0) 推荐(0) 编辑