SQL Server收缩文件失败

我有一个大型数据库1.5 TB,其中包含图像数据。 有一个已经实施的归档过程已经删除了大部分数据。 我想缩小数据文件的大小。

我正在使用SSMS 2008用户界面中的Shrink File对话框。 我selectRelease unused space ,约30​​秒后操作失败。 我已经确保没有与数据库的活动连接。 错误,而不具名的将在下面。

==================================

DataFile'DBNAME'收缩失败。 (Microsoft.SqlServer.Smo)

——————————如需帮助,请单击: http : //go.microsoft.com/fwlink?ProdName=Microsoft + SQL +服务器&ProdVer = 10.0.1600.22 +((SQL_PreRelease).080709-1414 +)&EvtSrc = Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID =收缩+数据文件&LINKID = 20476

——————————程序位置:

Microsoft.SqlServer.Management.Smo.DatabaseFile.Shrink(Int32 newSizeInMB,ShrinkMethod shrinkType)at Microsoft.SqlServer.Management.SqlManagerUI.ShrinkDatabaseFiles.OnRunNow(Object sender)

===================================

执行Transact-SQL语句或批处理时发生exception。 (Microsoft.SqlServer.ConnectionInfo)

——————————程序位置:

Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(String sqlCommand,ExecutionTypes executionType)at Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(StringCollection sqlCommands,ExecutionTypes executionType)at Microsoft.SqlServer.Management.Smo.ExecutionManager.ExecuteNonQuery (StringCollection查询)Microsoft.SqlServer.Management.Smo.DatabaseFile.Shrink(Int32 newSizeInMB,ShrinkMethod shrinkType)

===================================

当前命令发生严重错误。 如果有的话,结果应该被丢弃。 (.Net SqlClient数据提供程序)

——————————如需帮助,请单击: http : //go.microsoft.com/fwlink?ProdName=Microsoft + SQL +服务器&ProdVer = 10.00.1600&EvtSrc =&的MSSQLServer EvtID = 0&LINKID = 20476

——————————服务器名称:SERVERNAME错误号:0严重性:11状态:0

——————————程序位置:

在System.Data.SqlClient.SqlConnection.OnError(SqlExceptionexception,布尔breakConnection)
在System.Data.SqlClient.SqlInternalConnection.OnError(SqlExceptionexception,布尔breakConnection)
System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior,SqlCommand cmdHandler,SqlDataReader dataStream,BulkCopySimpleResultSet bulkCopyHandler,TdsParserStateObject stateObj)在System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds (String methodName,Boolean async)at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result,String methodName,Boolean sendToPipe)at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()at Microsoft.SqlServer.Management.Common.ServerConnection。 ExecuteNonQuery(String sqlCommand,ExecutionTypes executionType)

您手动运行DBCC SHRINKFILE命令时会得到什么输出?

我已经放弃了,并开始调查我的select,以移动到新的文件。 这个问题回答了一个build议,在这里解决了我原来的问题。

Reorganize pages before releasing unused space使用“ Reorganize pages before releasing unused space做到这一点。 一旦我把它弄下来,我就可以使用大型的100GB +块。

您可能有一个合法的理由不将表移动到新的文件组。

确保所有辅助进程(SQL代理,日志传送,复制,数据库镜像,第三方应用程序等)也被禁用。