我有一个大型数据库1.5 TB,其中包含图像数据。 有一个已经实施的归档过程已经删除了大部分数据。 我想缩小数据文件的大小。
我正在使用SSMS 2008用户界面中的Shrink File对话框。 我selectRelease unused space ,约30秒后操作失败。 我已经确保没有与数据库的活动连接。 错误,而不具名的将在下面。
==================================
DataFile'DBNAME'收缩失败。 (Microsoft.SqlServer.Smo)
- SQL服务器:如何加载破碎的意见
- 如何设置备用服务器
- 在第二张网卡上使用直接连接的以太网电缆连接SQL 2008和Web Server 2008
- 每天几次,一切都在SQL Server中超过一个小时
- SQL服务器pipe理工作室没有连接到新笔记本电脑上的远程数据库
——————————如需帮助,请单击: 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代理,日志传送,复制,数据库镜像,第三方应用程序等)也被禁用。