MS SQL Server 2008 R2(简体中文版)日志收缩详解
SQLServer数据库无法收缩问题

MS SQL Server数据库无法收缩的处理办法一. 数据库数据文件无法收缩的情况在MS SQL Server 2008中有一个叫做“张金玉”的数据库。
想把他收缩一下。
进入“SQL Server Management Studio”,使用“数据库”→“张金玉”鼠标右键菜单中的“任务”→“收缩”→“文件”菜单项,弹出一个“收缩文件”窗口,如下图。
在这个窗口中可以看到“当前分配的空间”为31236.00MB,“可用空间”为23341.81MB (74%)。
可以缩小很多。
选中窗口中的“在释放未使用的空间前重新组织页”单选按钮,并将那个“将文件收缩到”框框里面的值设为0(此处设为0在运行中会自动填入这个框框右边的最小值—7825)。
点击“确定”按钮,稍等片刻,这个窗口自动关闭,表示已经收缩完毕。
但是,再次打开这个窗口看看,“当前分配的空间”仍然是31236.00MB。
换句话说,这个数据库实际上并没有收缩。
换用其它的收缩方法,统统不能收缩。
鉴于此种情况,考虑数据库本身可能存在错误。
试用“DBCC CHECKDB”检查是否有误。
在“SQL Server Management Studio”中新建一个查询选项卡,先指定数据库名称为“张金玉”,然后执行“DBCC CHECKDB”。
执行期间服务器的硬盘灯常亮。
执行完毕后报告有错。
在报告开头附近就有两行红字如下:张金玉的DBCC 结果。
Service Broker 消息9675,状态1: 已分析的消息类型: 14。
Service Broker 消息9676,状态1: 已分析的服务约定: 6。
Service Broker 消息9667,状态1: 已分析的服务: 3。
Service Broker 消息9668,状态1: 已分析的服务队列: 3。
Service Broker 消息9669,状态1: 已分析的会话端点: 0。
Service Broker 消息9674,状态1: 已分析的会话组: 0。
sql shrinkfile收缩日志写法

sql shrinkfile收缩日志写法SQL Server是一种关系型数据库管理系统,它的日志文件是用来记录数据库操作的详细信息的。
在使用SQL Server时,我们经常需要对日志文件进行收缩,以便释放磁盘空间。
在本文中,我们将介绍如何使用SQL Server的shrinkfile命令来收缩日志文件。
首先,我们需要了解一些基本概念。
SQL Server的日志文件分为两种类型:事务日志和错误日志。
事务日志用于记录数据库操作的详细信息,而错误日志用于记录SQL Server的错误和警告信息。
事务日志文件通常具有较小的大小,而错误日志文件通常具有较大的大小。
在SQL Server中,我们可以使用shrinkfile命令来收缩日志文件。
该命令的语法如下:DBCC SHRINKFILE (file_name [, target_size] [, truncateonly])其中,file_name是要收缩的日志文件的名称;target_size是要收缩到的目标大小(以MB为单位);truncateonly是一个可选参数,用于指定是否仅截断日志文件而不进行实际的收缩操作。
在使用shrinkfile命令时,我们需要注意以下几点:1. 在收缩日志文件之前,我们应该先备份数据库。
这是因为收缩日志文件可能会导致数据丢失或损坏,而备份可以帮助我们恢复数据。
2. 我们应该尽量避免频繁地收缩日志文件。
频繁的收缩操作可能会导致性能下降,并且可能会导致日志文件无法正常工作。
3. 我们应该根据实际情况来确定目标大小。
如果我们将目标大小设置得太小,可能会导致日志文件再次增长,从而浪费磁盘空间。
如果我们将目标大小设置得太大,可能会导致性能下降。
4. 我们应该在非繁忙时段进行收缩操作。
收缩操作可能会占用大量的系统资源,从而影响数据库的性能。
下面是一个示例,演示如何使用shrinkfile命令来收缩日志文件:DBCC SHRINKFILE (AdventureWorks2016_Log, 1024)在这个示例中,我们将AdventureWorks2016数据库的日志文件收缩到1024MB。
SQL Server 2008 R2 日志收缩处理方法

SQL Server 2008 R2 日志收缩数据库日志文件收缩方法一:1、将数据库恢复模式改为简单模式,右击数据库选择属性,弹出窗口如下图,选择“选项”,将“恢复模式”改为“简单”。
2、右击数据库如下图选择,打开“收缩文件”窗口3、收缩文件窗口如下图,“文件类型”选择“日志”,单击“确定”完成日志收缩。
数据库日志文件收缩方法二:在SQL2008中清除日志就必须在简单模式下进行,等清除动作完毕再调回到完全模式。
SQL代码如下(用指定数据库名替换DNName):USE MASTERGOALTER DATABASE DNName SET RECOVERY SIMPLE WITH NO_WAITGOALTER DATABASE DNName SET RECOVERY SIMPLE--简单模式GOUSE DNNameGODBCC SHRINKFILE (N'DNName_Log',11, TRUNCA TEONL Y)GOUSE MASTERGOALTER DATABASE DNName SET RECOVERY FULL WITH NO_W AITGOALTER DATABASE DNName SET RECOVERY FULL--还原为完全模式GO优点:此清除日志所运行消耗的时间短,90GB的日志在分钟左右即可清除完毕,做完之后做个完全备份在分钟内即可完成。
缺点:不过此动作最好不要经常使用,因为它的运行会带来系统碎片。
普通状态下LOG 和DIFF的备份即可截断日志。
此语句使用的恰当环境:当系统的日志文件异常增大或者备份LOG时间太长可能影响系统的情况下使用。
数据库日志文件收缩方法三:通过分离数据库,然后再删除事务日志文件,再附加mdf数据文件,也可以达到某种意义上的事务日志收缩。
总结:建议资讯同事用方法一来收缩日志,另外需求把日志文件增长方式按如下图来设置,将日志文件选择按MB来增长(目前正式账套F22X库已经设置OK);。
收缩SQL数据库的方法

收缩SQL数据库的方法
收缩SQL数据库的方法
一般情况下,SQL数据库的收缩并不能很大程度上减小数据库大小,其主要作用是收缩日志大小,应当定期进行此操作以免数据库日志过大
1、设置数据库模式为简单模式:打开SQL企业管理器,在控制台根目录中依次点开Microsoft SQL Server-->SQL Server组-->双击打开你的服务器-->双击打开数据库目录-->选择
你的'数据库名称(如论坛数据库Forum)-->然后点击右键选择属性-->选择选项-->在故障还原的模式中选择“简单”,然后按确定保存
2、在当前数据库上点右键,看所有任务中的收缩数据库,一般里面的默认设置不用调整,直接点确定
3、收缩数据库完成后,建议将您的数据库属性重新设置为标准模式,操作方法同第一点,因为日志在一些异常情况下往往是恢复数据库的重要依据。
SQLServer2008日志文件无法收缩处理方法

SQL Server 2008 事务日志物理文件尺寸无法减小的解决办法(含日志收缩(shrink)技巧)作者:宋林发现有的数据库日志文件太大,无论如何收缩执行几次SQL语句都不行。
事务日志达30+G,而且使用常规的截断、收缩方法均无法减小日志物理文件的尺寸,经过一番寻找,终于找到了解决方法。
查看日志信息在查询分析器中执行如下代码来查看日志信息:DBCC LOGINFO('数据库名称')我们看到status=0的日志,代表已经备份到磁盘的日志文件;而status=2的日志还没有备份。
当我们收缩日志文件时,收缩掉的空间其实就是status=0的空间,如果日志物理文件无法减小,这里一定能看到非常多status=2的记录。
接下来分析为什么会有这么多status=2的记录查看日志截断延迟原因活跃(active)的日志无法通过收缩来截断,有各种原因会使日志截断延迟,具体表现就是事务日志的物理文件无法通过截断、收缩来减小,通过下面的代码可以看到实例上每个数据库的日志截断延迟原因:1USE[master]2SELECT[name] ,[database_id] ,[log_reuse_wait] ,[log_reuse_w ait_desc]FROM[sys].[databases]各种原因及解释如下:针对延迟日志截断原因的部分解决方案∙LOG_BACKUP备份日志后再执行收缩即可backup log [database] with nolog ∙REPLICATION这是我遇到的情况,但我根本没有启用过REPLICATION,据查,这好像是SQLSERVER2008的一个BUG,解决方法是给标有“REPLICATION”的数据库任意一个表创建数据库事务复制(TRANSACTION REPLICATION),然后再删除,执行数据库与日志备份后,就可以收缩了。
∙收缩日志小技巧∙一般收缩日志的代码中都要求指定日志的文件名称,下面的代码则可以自动获取日志文件名称:∙1USE[数据库名称]2DECLARE@LogFileLogicalName sysname3SELECT@LogFileLogicalName=Name FROM sys.database_files WHERE Type=14PRINT@LogFileLogicalName5DBCC SHRINKFILE (@LogFileLogicalName, 1);然后再收缩数据库DBCC SHRINKDATABASE(库名)。
数据库2008清理日志

数据库2008清理日志
清理数据库日志是一个常见的操作,特别是在数据库日志文件
过大或者需要释放磁盘空间的情况下。
在SQL Server 2008中,你
可以通过以下几种方法来清理数据库日志:
1. 备份日志,最常见的清理数据库日志的方法是通过备份日志
文件。
你可以使用SQL Server Management Studio (SSMS)或者Transact-SQL命令来进行日志备份。
通过备份日志,数据库引擎会
将已经提交的事务从日志文件中清除,从而释放空间。
2. 收缩日志文件,你可以使用DBCC SHRINKFILE命令来收缩日志文件的大小。
但是在使用这个命令之前需要注意,收缩日志文件
可能会导致日志文件的不连续性,影响性能,因此建议在非高峰期
进行操作。
3. 更改恢复模式,如果你的数据库处于完整恢复模式下,你可
以考虑将其改为简单恢复模式,这样可以减少日志文件的增长速度。
但是需要注意的是,这样做会影响到数据库的恢复能力,需要谨慎
操作。
4. 限制日志文件增长,你可以通过设置日志文件的初始大小和自动增长选项来限制日志文件的增长,避免日志文件过大。
需要注意的是,在清理数据库日志的过程中,一定要确保数据库的完整性和可恢复性,避免造成数据丢失或者损坏。
另外,在进行任何数据库操作之前,建议先在测试环境中进行测试,以避免意外情况的发生。
sqlserver2008 收缩数据库方法
sqlserver2008 收缩数据库方法
在SQL Server 2008 中,您可以使用以下方法来收缩数据库:
1. 使用SHRINK DATABASE 命令:
```sql
SHRINK DATABASE [YourDatabaseName];
```
这将收缩整个数据库文件。
请注意,这种方法可能会导致数据库文件中的数据碎片,并降低性能。
2. 使用SHRINK FILE 命令:
```sql
SHRINK FILE [YourLogicalFileName];
```
这将收缩指定的数据库文件。
您需要将`YourLogicalFileName` 替换为逻辑文件名。
这种方法只会收缩指定的文件,而不会影响整个数据库。
3. 使用DBCC SHRINKDATABASE 和DBCC SHRINKFILE 命令:
```sql
DBCC SHRINKDATABASE (YourDatabaseName, TargetSizeInMB);
DBCC SHRINKFILE (YourLogicalFileName, TargetSizeInMB);
```
这些命令提供了更多的选项和灵活性,允许您指定收缩的目标大小(以MB 为单位)。
请注意,这些命令可能需要一些时间来执行,具体取决于数据库的大小和目标大小。
请注意,频繁地收缩数据库可能会对性能产生负面影响,并导致数据碎片。
在大多数情况下,最好避免频繁地收缩数据库,而是使用定期维护和备份策略来管理数据库大小。
SQLServer压缩日志与减少SQLServer文件大小的方法
SQLServer压缩⽇志与减少SQLServer⽂件⼤⼩的⽅法⼀般不建议做第4,6两步,第4步不安全,有可能损坏数据库或丢失数据。
第6步如果⽇志达到上限,则以后的数据库处理会失败,在清理⽇志后才能恢复。
1.清空⽇志 DUMP TRANSACTION 库名 WITH NO_LOG 2.截断事务⽇志 BACKUP LOG 数据库名 WITH NO_LOG 3.收缩数据库⽂件 (如果不压缩,数据库的⽂件不会减⼩企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩⽂件 选择⽇志⽂件--在收缩⽅式⾥选择收缩⾄XXM,这⾥会给出⼀个允许收缩到的最⼩M数,直接输⼊这个数,确定就可以了 选择数据⽂件--在收缩⽅式⾥选择收缩⾄XXM,这⾥会给出⼀个允许收缩到的最⼩M数,直接输⼊这个数,确定就可以了,也可以⽤SQL语句来完成 收缩数据库 DBCC SHRINKDATABASE(客户资料) 收缩指定数据⽂件,1是⽂件号,可以通过这个语句查询到: select * from sysfiles DBCC SHRINKFILE(1)4.为了最⼤化的缩⼩⽇志⽂件(如果是sql 7.0,这步只能在查询分析器中进⾏) 分离数据库: 企业管理器--服务器--数据库--右键--分离数据库 在我的电脑中删除LOG⽂件 附加数据库: 企业管理器--服务器--数据库--右键--附加数据库 此法将⽣成新的LOG,⼤⼩只有500多K 或⽤代码: 下⾯的⽰例分离 pubs,然后将 pubs 中的⼀个⽂件附加到当前服务器。
分离 EXEC sp_detach_db @dbname = 'pubs' 删除⽇志⽂件 再附加 EXEC sp_attach_single_file_db @dbname = 'pubs', @physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf' 4.为了以后能⾃动收缩,做如下设置 企业管理器--服务器--右键数据库--属性--选项--选择"⾃动收缩" SQL语句设置⽅式: EXEC sp_dboption '数据库名', 'autoshrink', 'TRUE' 5.如果想以后不让它⽇志增长得太⼤ 企业管理器--服务器--右键数据库--属性--事务⽇志 将⽂件增长限制为xM(x是你允许的最⼤数据SQL Server ⽂件⼤⼩) SQL语句的设置⽅式: alter database 数据库名 modify file(name=逻辑⽂件名,maxsize=20)这⾥⼩编为⼤家分享个我⾃⼰经常使⽤的⽅法:DUMP TRANSACTION [jb51] WITH NO_LOGBACKUP LOG [jb51] WITH NO_LOGDBCC SHRINKDATABASE([jb51])jb51就是数据库名称。
SQL Server 2008 数据仓库可伸缩性相关功能介绍
SQL Server 2008数据仓库可伸缩性相关功能介绍SQL Server 技术文档作者: Eric N. Hanson, Kevin Farlee, Stefano Stefani, Shu Scott, Gopal Ashok, Torsten Grabs, Sara Tahir, Sunil Agarwal, T.K. Anand, Richard Tkachuk, CatherineChang, 以及 Edward Melomed, Microsoft Corp.技术检查员:Eric N. Hanson, Microsoft Corp.发布日期: 2007年12月适用产品: SQL Server 2008摘要: SQL Server 2008在数据仓库的可伸缩性方面有了巨大的飞跃,从来没有一款产品能够像SQL Server 2008这样轻松的满足大型企业对于数据仓库的需求。
SQL Server 2008中集成了一系列的产品来帮助您构建数据仓库并对其中的数据进行查询和分析。
这其中包括SQL Server 的关系型数据库系统,Analysis Services, Integration Services, 以及Reporting Services. 此文档将介绍上述组件所带来的高性能以及新的管理功能,它们都能够提高数据仓库的可伸缩性。
SQL SERVER 2008数据仓库可伸缩性相关功能介绍 (1)目录 (3)简介 (1)数据仓库新功能 (1)SQL Server 关系型数据库管理系统针对数据仓库的改进 (1)星型关联 (2)分区表并行 (3)对齐分区索引视图 (4)GROUPING SETS (4)MERGE (5)变更数据捕捉 (6)最低限度日志记录INSERT (7)数据压缩 (8)备份压缩 (8)Resource Governor (8)集成服务的改进 (10)Lookup 性能 (10)管道性能 (11)分析服务的改进 (12)MDX查询性能:块计算 (12)查询和回写性能 (14)分析服务针对备份的增强 (14)用于分析服务的可扩展共享数据 (15)报表服务的改进之处 (16)报表可伸缩性 (16)服务器可伸缩性 (16)总结 (16)参考文献 (17)Microsoft® SQL Server™ 2008 提供了一套全面的数据仓库平台,它可以通过集成统一的产品套装来帮助你构建、管理数据仓库,并实现对用户的洞察力,另外还可以让最终用户和IT人员更具竞争力,以满足大型企业的需求。
sql server 2008数据库操作日志 -回复
sql server 2008数据库操作日志-回复SQL Server 2008数据库操作日志是数据库管理系统中的一个重要功能,用于记录和追踪数据库操作的详细信息。
SQL Server 2008数据库操作日志可以帮助管理员了解数据库的使用情况,还可以用于故障排除和恢复。
在本文中,我们将一步一步回答以下问题:SQL Server 2008数据库操作日志是什么?为什么数据库操作日志如此重要?如何配置和管理SQL Server 2008数据库操作日志?如何使用数据库操作日志进行故障排除和恢复?一、SQL Server 2008数据库操作日志是什么?SQL Server 2008数据库操作日志是SQL Server 2008数据库管理系统中的一个特殊文件,用于记录数据库中发生的每个操作的详细信息。
这些操作包括插入、更新和删除数据,以及创建、修改和删除数据库对象等。
数据库操作日志包含了数据库的完整操作历史,包括事务的开始和结束,以及每个操作的执行结果。
日志文件记录了每个操作的详细信息,包括操作的时间戳、操作类型、操作的对象和操作者等。
二、为什么数据库操作日志如此重要?数据库操作日志在数据库管理中起着重要的作用。
以下是数据库操作日志的重要性所在:1.数据恢复:数据库操作日志可以用于数据库的故障恢复。
通过分析日志文件,可以重建数据库,并将损坏或丢失的数据恢复到一个一致的状态。
2.故障排除:数据库操作日志可以用于识别和解决数据库操作中的问题。
通过分析日志文件,管理员可以找到引起错误和异常的原因,并采取适当的措施来修复这些问题。
3.性能优化:数据库操作日志还可以用于分析数据库的性能问题。
通过查看日志文件中的操作,管理员可以了解数据库的实际使用情况,找出潜在的瓶颈和优化机会,并采取相应的措施来提高数据库的性能。
三、如何配置和管理SQL Server 2008数据库操作日志?SQL Server 2008数据库操作日志的配置和管理包括以下步骤:1.启用日志记录:在SQL Server 2008中,默认情况下,数据库操作日志是启用的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MS SQL Server 2008 R2(简体中文版)
日志收缩详解
1、右击要收缩的数据库,选择“属性”,如下图所示。
2、在弹出的窗口左侧“选择页”中点击“选项”,在右侧选择“恢复模式”值为“简单”,点击“确定”按钮,如下图所示。
3、右击数据库,选择“任务”-“收缩”-“文件”,如下图所示:
4、在“收缩文件”对话框中,选择“文件类型”值为“日志”,在收缩操作中选择“在释放未使用的空间前重新组织页”,将文件收缩到指定大小,单击“确定”按钮,完成日志收缩。
5、右击数据库,选择“属性”,在弹出的窗口左侧“选择页”中点击“选项”,在右侧选择“恢复模式”值为“完整”,点击“确定”按钮即可。