Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 DBCC SHRINKFILE + EMPTYFILE = Error 2555 ?  [new]
Alexander Us
Member

Откуда:
Сообщений: 1133
Может ли кто выполнить данный скрипт без ошибок? (если да, сообщите пож. версию сервера)
Может ли кто объяснить почему вылезает ошибка 2555?

use Master
Go
CREATE DATABASE [Mak3]  
GO
Use Mak3
GO

ALTER DATABASE Mak3 ADD FILE( NAME = 'Mak3_TEMP', SIZE=20, FILENAME = 'D:\MSSQL\Data\Mak3_TEMP.mdf') 
go

DBCC SHRINKFILE('Mak3','EMPTYFILE')
--->>Msg 2555, Level 16, State 1, Line 1
--->>Cannot move all contents of file "Mak3" to other places to complete the emptyfile operation.
go


DBCC SHRINKFILE('Mak3_TEMP','EMPTYFILE')
go

ALTER DATABASE Mak3 REMOVE FILE Mak3_TEMP
go

use master
go
DROP DATABASE Mak3
go




у меня:
SELECT SERVERPROPERTY('productversion') , SERVERPROPERTY ('productlevel'), SERVERPROPERTY ('edition') 
9.00.5057.00	SP4	Developer Edition (64-bit)
21 мар 13, 17:50    [14078770]     Ответить | Цитировать Сообщить модератору
 Re: DBCC SHRINKFILE + EMPTYFILE = Error 2555 ?  [new]
Гость333
Member

Откуда:
Сообщений: 3683
Alexander Us,

Потому что нельзя удалить primary data file
BOL, Files and Filegroups Architecture
SQL Server databases have three types of files:
  • Primary data files
    The primary data file is the starting point of the database and points to the other files in the database. Every database has one primary data file.
    ...
    In SQL Server, the locations of all the files in a database are recorded in the primary file of the database and in the master database.
  • 21 мар 13, 18:04    [14078814]     Ответить | Цитировать Сообщить модератору
     Re: DBCC SHRINKFILE + EMPTYFILE = Error 2555 ?  [new]
    Alexander Us
    Member

    Откуда:
    Сообщений: 1133
    Гость333,

    никто не пытается его удалить: только перелить данные во второй файл, затем назад.
    21 мар 13, 18:09    [14078829]     Ответить | Цитировать Сообщить модератору
     Re: DBCC SHRINKFILE + EMPTYFILE = Error 2555 ?  [new]
    Glory
    Member

    Откуда:
    Сообщений: 104760
    Alexander Us
    никто не пытается его удалить: только перелить данные во второй файл, затем назад.

    первичный файл нельзя очистить. На то он и первичный.
    21 мар 13, 18:10    [14078835]     Ответить | Цитировать Сообщить модератору
     Re: DBCC SHRINKFILE + EMPTYFILE = Error 2555 ?  [new]
    Alexander Us
    Member

    Откуда:
    Сообщений: 1133
    Glory
    первичный файл нельзя очистить. На то он и первичный.

    Да, видимо это так...
    тут объясняют таким образом: "because the primary file has contain the metadata and can not be moved but the file other data has been move to the new files"

    Хотя в бол это лихо проделывают: The following example truncates the primary data file...

    В принципе, это мне надо для усечения базы после очистки BLOB столбцов.
    21 мар 13, 18:26    [14078888]     Ответить | Цитировать Сообщить модератору
     Re: DBCC SHRINKFILE + EMPTYFILE = Error 2555 ?  [new]
    Гость333
    Member

    Откуда:
    Сообщений: 3683
    Alexander Us
    никто не пытается его удалить: только перелить данные во второй файл, затем назад.

    После того, как к файлу применена команда DBCC SHRINKFILE EMPTYFILE, "the Database Engine no longer allows data to be placed in the empty file". Так что "перелить назад" какие-либо данные в такой файл уже не получится, такой файл можно только удалить.
    21 мар 13, 18:28    [14078897]     Ответить | Цитировать Сообщить модератору
     Re: DBCC SHRINKFILE + EMPTYFILE = Error 2555 ?  [new]
    Alexander Us
    Member

    Откуда:
    Сообщений: 1133
    Alexander Us,

    насчёт БОЛ я ошибся...
    Пожалуйста игнорируйте строку...
    21 мар 13, 18:30    [14078903]     Ответить | Цитировать Сообщить модератору
     Re: DBCC SHRINKFILE + EMPTYFILE = Error 2555 ?  [new]
    Гость333
    Member

    Откуда:
    Сообщений: 3683
    Alexander Us
    объясняют таким образом: "because the primary file has contain the metadata and can not be moved but the file other data has been move to the new files"

    О мои глаза, развидьте этот образец английского языка.
    21 мар 13, 18:34    [14078921]     Ответить | Цитировать Сообщить модератору
     Re: DBCC SHRINKFILE + EMPTYFILE = Error 2555 ?  [new]
    Alexander Us
    Member

    Откуда:
    Сообщений: 1133
    Гость333,

    Насчёт EMPTYFILE: спасибо за объяснения.
    Что касается английского: там линк на источник.
    21 мар 13, 18:46    [14078959]     Ответить | Цитировать Сообщить модератору
     Re: DBCC SHRINKFILE + EMPTYFILE = Error 2555 ?  [new]
    Гость333
    Member

    Откуда:
    Сообщений: 3683
    Alexander Us
    Что касается английского: там линк на источник.

    Да я в общем-то понял, что это цитата, а не ваш авторский текст :-)
    21 мар 13, 19:01    [14079009]     Ответить | Цитировать Сообщить модератору
     Re: DBCC SHRINKFILE + EMPTYFILE = Error 2555 ?  [new]
    fatena
    Member

    Откуда:
    Сообщений: 13
    Может кому пригодится, была такая же ошибка SQL Error 2555 при переносе данных из основного файла в дополнительный.
    Объем больше 200 Гб. Проблема исчезла после изменения Autogrowth для дополнительного файла с 10 Мб на 10 %
    21 янв 14, 15:16    [15447101]     Ответить | Цитировать Сообщить модератору
    Все форумы / Microsoft SQL Server Ответить