Назад | Перейти на главную страницу

Ошибка сжатия файла SQL Server

У меня большая база данных 1,5 ТБ, в которой содержатся данные изображений. Был реализован процесс архивирования, в результате которого была удалена большая часть данных. Я хочу уменьшить размер файла данных.

Я использую Shrink File диалоговое окно из пользовательского интерфейса SSMS 2008. Я выбираю Release unused space и операция не выполняется примерно через 30 секунд. Я удостоверился, что нет активных подключений к БД. Ошибка, пока неинформативная, будет ниже.

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

Не удалось сжать файл данных "DBNAME". (Microsoft.SqlServer.Smo)

------------------------------ Для получения справки щелкните: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=10.0.1600.22+((SQL_PreRelease).080709-1414+)&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&Evt+ DataFile и LinkId = 20476

------------------------------ Расположение программы:

в Microsoft.SqlServer.Management.Smo.DatabaseFile.Shrink (Int32 newSizeInMB, ShrinkMethod shrinkType) в Microsoft.SqlServer.Management.SqlManagerUI.ShrinkDatabaseFiles.OnRunNow (отправитель объекта)

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

Исключение при выполнении инструкции или пакета Transact-SQL. (Microsoft.SqlServer.ConnectionInfo)

------------------------------ Расположение программы:

в Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery (String sqlCommand, ExecutionTypes ExecutionType) в Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery (StringCollectionServerConnection.ExecuteNonQuery (StringCollectionSqlCommandager.ExecuteNonQuery) в Microsoft sqlCommandager.ExceptionMecutionType (Запросы StringCollection) в Microsoft.SqlServer.Management.Smo.DatabaseFile.Shrink (Int32 newSizeInMB, ShrinkMethod shrinkType)

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

Произошла серьезная ошибка в текущей команде. Результаты, если таковые имеются, следует отбросить. (Поставщик данных .Net SqlClient)

------------------------------ Для получения справки щелкните: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=10.00.1600&EvtSrc=MSSQLServer&EvtID=0&LinkId=20476

------------------------------ Имя сервера: SERVERNAME Номер ошибки: 0 Уровень серьезности: 11 Состояние: 0

------------------------------ Расположение программы:

в System.Data.SqlClient.SqlConnection.OnError (исключение SqlException, логическое breakConnection)
в System.Data.SqlClient.SqlInternalConnection.OnError (исключение SqlException, логическое 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) в System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery (результат DbAsyncResult, String methodName, логическое sendToPipe) в System.Data.SqlClient.SqlCommand.ExecagementNonQuery () в Microsoft.SqanlverConlver (). ExecuteNonQuery (String sqlCommand, ExecutionTypes executionType)

Какой результат вы получите, запустив команду DBCC SHRINKFILE вручную?

Я отказался от усадки и начал исследовать мои варианты при переходе к новому файлу. На этот вопрос был дан ответ с предложением, которое решило мою исходную проблему здесь.

Используя Reorganize pages before releasing unused space небольшими кусками сделали свое дело. Как только я немного разобрался, я смог использовать большие куски по 100 ГБ +.

Вероятно, у вас есть веская причина не перемещать таблицу в новую файловую группу.

Убедитесь, что все вспомогательные процессы (агент SQL, доставка журналов, репликация, зеркалирование БД, сторонние приложения и т. Д.) Также отключены.