Tempdb в sql как почистить
TEMPDB представляет собой системную базу данных Microsoft SQL Server, в которой хранятся временные таблицы созданные как самим сервером, так и пользователями. Эта база данных создается заново при каждом перезапуске Microsoft SQL Server. По умолчанию размер этой базы данных неограничен и увеличение его осуществляется при необходимости автоматически, порциями по 10% от текущего размера TEMPDB, однако эти параметры могут быть переопределены пользователем. По умолчанию, минимальный размер этой базы данных, который устанавливается при старте Microsoft SQL Server, определяется размером системной базы данных MODEL. Очистка журнала транзакций в этой базе данных производится автоматически, при этом удаляются только неактивные записи журнала транзакций.
При работе 1С:Предприятия 8 в режиме клиент-сервер широко используются временные таблицы . Кроме того, TEMPDB используется Microsoft SQL Server при выполнении запросов, использующих операторы GROUP BY, UNION, DISTINCT и т.п.
Проблема
В процессе работы 1С:Предприятия 8 возможно значительное увеличение размера базы данных TEMPDB .
Причина
Причиной увеличения размера базы данных TEMPDB, как правило, является невозможность автоматической очистки журнала транзакций и повторного использования свободного пространства в базе данных TEMPDB из-за наличия активных транзакций, использующих объекты этой базы данных. Основные причины, вызывающие длительную блокировку работы этих механизмов базы данных TEMPDB, заключаются в следующем:
- «Большие» транзакции, использующие TEMPDB , выполнение которых занимает большой промежуток времени.
- Сетевые ошибки, из-за которых Microsoft SQL Server не получает уведомление о потере сетевого подключения. Если клиентская рабочая станция зависает, перезагружается, или будет выключена во время исполнения определяемой пользователем транзакции, то Microsoft SQL Server будет считать, что клиент продолжает работу, и выполняющаяся клиентская транзакция будет по-прежнему активна. Время обнаружения подобной ситуации зависит от настроек параметров сетевого протокола, используемого Windows . Например, при использовании протокола TCP/IP это время составляет 2 часа.
Читайте также: 18 Стальных колес какая самая лучшая
Если для завершения активных транзакций не хватает места в базе данных, Microsoft SQL Server автоматически увеличивает размер TEMPDB на величину, заданную в параметрах этой базы данных (по умолчанию – 10% от текущего размера).
Решение
Уменьшить размер базы данных TEMPDB до требуемой величины можно следующими способами:
В этом случае размер базы данных TEMPDB будет установлен по умолчанию или, если эта величина переопределена пользователем, размер будет установлен в соответствии с заданными параметрами.
DBCC SHRINKDATABASE (TEMPDB)
DBCC SHRINKFILE ( Имя_Файла_Данных, Желаемый_Размер_Файла_Данных )
go
DBCC SHRINKFILE ( Имя_Файла_Журнала_Транзакций, Желаемый_Размер_Файла_Журнала_Транзакций )
go
Следует отметить, что эти команды рекомендуется выполнять в период наименьшей активности пользователей, и для их выполнения необходимо обладать правами администратора.
Более подробное описание и рекомендации по использованию этих команд можно найти в документации по Microsoft SQL Server.
Системная база данных TEMPDB участвует в работе пользователей, подключённых ко всем пользовательским базам данных сервера СУБД.
TEMPDB используется при работе с временными таблицами и процедурами, в ней создаются внутренние (internal) и пользовательские объекты (user objects) промежуточных результатов запросов и т.п..
При запуске сервера, TEMPDB создаётся заново, если TEMPDB по каким то причинам не может быть создана, то сервер СУБД не запуститься. По умолчанию размер этой базы данных неограничен и увеличение его осуществляется при необходимости автоматически, порциями по 10% от текущего размера TEMPDB, однако эти параметры могут быть переопределены пользователем. По умолчанию, минимальный размер этой базы данных, который устанавливается при старте Microsoft SQL Server, определяется размером системной базы данных MODEL. Очистка журнала транзакций в этой базе данных производится автоматически, при этом удаляются только неактивные записи журнала транзакций.
При работе 1С:Предприятия 8 в режиме клиент-сервер широко используются временные таблицы. Кроме того, TEMPDB используется Microsoft SQL Server при выполнении запросов, использующих операторы GROUP BY, ORDER BY, UNION, SORT, DISTINCT и т.п.
Читайте также: Драйвер пак солюшен ошибка установки драйверов
Наиболее частой проблемой, с которой сталкиваются пользователи, является значительное увеличение размера базы TEMPDB. Причиной увеличения размера базы данных TEMPDB, как правило, является невозможность автоматической очистки журнала транзакций и повторного использования свободного пространства в TEMPDB из-за наличия активных транзакций, использующих объекты этой базы данных.
Какие могут быть решения данной проблемы:
1. Перезапустить MS SQL Server. В этом случае размер базы данных TEMPDB будет установлен по умолчанию.
2. Сжать базу данных TEMPDB. Для этого нужно в Query Analyzer выполнить следующую команду: DBCC SHRINKDATABASE (TEMPDB).
3. Уменьшить размер отдельных файлов. Для этого нужно в Query Analyzer выполнить команды:
DBCC SHRINKFILE (Логическое_Имя_Файла_Данных, Желаемый_Размер_Файла_Данных_В_Мегабайтах)
go
DBCC SHRINKFILE (Логическое_Имя_Файла_Журнала_Транзакций,
Желаемый_Размер_Файла_Журнала_Транзакций_В_Мегабайтах)
go
Пример.
Уменьшение размера файлов базу TEMPDB до 20 мегабайт
USE TempDB
DBCC SHRINKFILE (tempdev, 20)
go
DBCC SHRINKFILE (templog,20)
go
Пункты 2 и з также можно выполнить с помощью Management Studio
4. Переместить базу данных TEMPDB нас диск большего размера. Изменить месторасположение файлов базы данных TEMPDB можно с помощью команды ALTER DATABASE. Для этого нужно в Query Analyzer выполнить следующую последовательность команд и перезапустить сервер СУБД:
USE master
GO
ALTER DATABASE tempdb
MODIFY FILE (NAME = tempdev, FILENAME = ‘Новый_Диск:Новый_Каталог empdb.mdf’)
GO
ALTER DATABASE tempdb
MODIFY FILE (NAME = templog, FILENAME = ‘Новый_Диск:Новый_Каталог emplog.ldf’)
GO
В завершении еще парочка советов по работе с базой TEMPDB:
1. Для оптимизации работы базы данных TEMPDB рекомендуется ее вынесение на отдельный жёсткий диск или RAM-диск и разбиение MDF файла на части (одинакового размера) по числу процессоров (ядер): если процессоров 8, то количество файлов для начала 8, а затем добавлять по мере необходимости.
2. При использовании временных таблиц используется кеширование, но это не относится к операциям создания индексов, сортировки, группировки и т.п. Например: создали таблицу, построили индекс (что разумно с точки зрения построения плана), то данная таблица кешироваться не будет. Но если таблица очень маленькая и почти наверняка она SQL-сервером будет сканироваться и создается она очень часто, то возможно имеет смыл операцию создания индекса опустить, в этом случае за счет кеширования таблица будет создаваться быстрее.
Читайте также: Температура воды при обмывании мяса
Заметки о сетях, администрировании и вообще
Иногда база TempDB может разрастись (например после выполнения долгих транзакций над большим количеством данных), если место в TempDB уже освободилось, то для освобождения места на диске можно выполнить ее сжатие (shrink). Сделать это можно либо запросом либо в SSMS студии (сжимать нужно файл данных tempdev — tempdb.mdf).
Если операция shrink не привела к уменьшению файла БД, значит необходимо произвести сброс буферов и кешей сервера и повторить shrink :
Создаем checkpoint и сбрасываем буферы страниц и индексов на диск:
Чистим кеш хранимых процедур:
Очищаем остальные типы кешей:
Чистим кеш сессий:
После этого можно повторно запустить сжатие файла — место на диске должно освободиться (способ чаще всего срабатывает и без первого пункта — без создания checkpoint и сброса буфера страниц).
Редактирование баз данных tempdb

Всем привет ребята. Настраиваю sql сервер. Но на нем уже есть база. В документации описано о настройке базы данных model и tempdb Сейчас значения такие: https://i.stack.imgur.com/zrtJn.png Нужно Могу ли Я внести эти изменения в tempdb. Не будет ли проблем с основной базой? Основная база 500гб
Select session_id, wait_type, wait_duration_ms, blocking_session_id, resource_description, ResourceType = Case When Cast(Right(resource_description, Len(resource_description) - Charindex(':', resource_description, 3)) As Int) - 1 % 8088 = 0 Then 'Is PFS Page' When Cast(Right(resource_description, Len(resource_description) - Charindex(':', resource_description, 3)) As Int) - 2 % 511232 = 0 Then 'Is GAM Page' When Cast(Right(resource_description, Len(resource_description) - Charindex(':', resource_description, 3)) As Int) - 3 % 511232 = 0 Then 'Is SGAM Page' Else 'Is Not PFS, GAM, or SGAM page' End From sys.dm_os_waiting_tasks Where wait_type Like 'PAGE%LATCH_%' And resource_description Like '2:%'
Не выдал ничего, может быть и менять ничего не нужно?
Отслеживать
задан 22 июл 2021 в 4:47
191 12 12 бронзовых знаков
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Вам стоит установить больший начальный размер файлов tempdb. Особенно это важно для LOG-файла. Вообще следует избегать ситуаций неконтролируемого прироста файлов БД.
Я бы рекомендовал установить начальный размер файлов в 512 Мб с приростом 256 Мб. Через пару недель под рабочей нагрузкой посмотрите на состояние файлов и, в случае увеличения их размера, задайте им новый размер, несколько больший текущего (+256 Мб).
Важно! Файлы данных (ROWS Data) должны быть одинакового размера.
Запрос из sys.dm_os_waiting_tasks ничего не говорит о проблемах относящихся к размеру файлов tempdb. Он выводит текущие (на момент выполнения) ожидающие таски, причем ожидающие latch-ей. А в вашем случае со временем скорее всего начнет выстреливать LOGMGR_RESERVE_APPEND, WRITELOG или LOGBUFFER.
Указанные изменения в tempdb никак не касаются основной БД. Возможно некоторое замедление на время расширения файла лога. Транзакции, которые должны быть записаны в лог, будут ожидать завершения операции прироста.
Tempdb в sql как почистить. Tempdb в sql как почистить?
С помощью команды age мы можем изменить размер файлов tempdb. Предположив, что начальный размер файла данных и журнала составляет 1 ГБ, мы можем установить его на более низкий уровень с помощью этой команды.
Tempdb в sql как почистить
TEMPDB — это системная база данных Microsoft SQL Server, в которой хранятся временные таблицы, созданные как самим сервером, так и пользователями. Эта база данных создается заново при каждом перезапуске Microsoft SQL Server. Размер этой базы данных по умолчанию неограничен и при необходимости автоматически увеличивается до частей 10% от текущего размера TEMPDB, но эти параметры могут быть переопределены пользователем. По умолчанию минимальный размер этой базы данных, который устанавливается при запуске Microsoft SQL Server, определяется размером базы данных MODEL системы. Журнал транзакций в этой базе данных автоматически очищается, и удаляются только неактивные записи журнала транзакций.
Временные таблицы часто используются в режиме клиент-сервер в «1С:Предприятии 8». Кроме того, TEMPDB используется Microsoft SQL Server при выполнении запросов с операторами GROUP BY, UNION, DISTINCT и т.д.
Проблема
При использовании «1С:Предприятия 8» можно значительно увеличить размер базы данных TEMPDB.
Причиной увеличения размера TEMPDB обычно является невозможность автоматической очистки журнала транзакций и повторного использования свободного пространства в базе данных TEMPDB, поскольку активные транзакции используют объекты базы данных. Основные причины, по которым эти механизмы базы данных TEMPDB блокируются на длительный период времени, следующие:
- «Большие» транзакции, использующие TEMPDB, выполнение которых занимает большой промежуток времени.
- Сетевые ошибки, из-за которых Microsoft SQL Server не получает уведомление о потере сетевого подключения. Если клиентская рабочая станция зависает, перезагружается, или будет выключена во время исполнения определяемой пользователем транзакции, то Microsoft SQL Server будет считать, что клиент продолжает работу, и выполняющаяся клиентская транзакция будет по-прежнему активна. Время обнаружения подобной ситуации зависит от настроек параметров сетевого протокола, используемого Windows. Например, при использовании протокола TCP/IP это время составляет 2 часа.
Что такое веб-страница — шпаргалка для начинающих. Веб страница что это такое
Когда в базе данных недостаточно места для завершения активных транзакций, Microsoft SQL Server автоматически увеличивает размер TEMPDB на величину, указанную в параметрах этой базы данных (по умолчанию 10% от текущего размера).
Решение
Вы можете уменьшить размер базы данных TEMPDB до необходимого размера следующим образом:
В этом случае размер базы данных TEMPDB устанавливается по умолчанию, или, если это значение переопределено пользователем, размер устанавливается в соответствии с заданными параметрами.
DBCC SHRINKDATABASE (TEMPDB)
DBCC SHRINKFILE ( Data_file_name, Desired_Data_file_size ) go DBCC SHRINKFILE ( Transaction_file_name, Desired_Transaction_file_size ) go
Обратите внимание, что эти команды лучше всего выполнять, когда пользователи менее активны и требуют привилегий администратора.
Более подробное описание и рекомендации по использованию этих команд см. в документации по Microsoft SQL Server.
База данных системы TEMPDB использует
TEMPDB создается заново при запуске сервера. Если TEMPDB не может быть создана по какой-либо причине, сервер СУБД не будет запущен. По умолчанию размер этой базы данных неограничен и при необходимости автоматически увеличивается до частей, составляющих 10% от текущего размера TEMPDB. По умолчанию минимальный размер этой базы данных, который устанавливается при запуске Microsoft SQL Server, определяется размером базы данных MODEL системы. Журнал транзакций в этой базе данных автоматически очищается, и удаляются только неактивные записи журнала транзакций.
Временные таблицы широко используются в режиме клиент-сервер в «1С:Предприятии 8». Кроме того, TEMPDB используется Microsoft SQL Server при выполнении запросов с GROUP BY, ORDER BY, UNION, SORT, DISTINCT и т.д.
Наиболее распространенной проблемой, с которой сталкиваются пользователи, является значительное увеличение размера базы данных TEMPDB. Причиной увеличения размера базы данных TEMPDB обычно является невозможность автоматического удаления журналов транзакций и повторного использования свободного места в TEMPDB, поскольку активные транзакции используют объекты в этой базе данных.
OK Google – как настроить голосовую активацию и разблокировку. Гугл ассистент как включить
Каковы возможные решения этой проблемы?
1. 1. в этом случае установите размер базы данных TEMPDB по умолчанию.
2. Сократите базу данных TEMPDB, выполнив следующую команду в Query Analyzer: DBCC SHRINKDATABASE (TEMPDB).
Уменьшите размер отдельных файлов. Для этого выполните следующие команды в Query Analyzer:
DBCC SHRINKFILE (Logical_Data_file_name, Desired_Data_file_Size_In_Megabytes) go DBCC SHRINKFILE (Logical_Transaction_file_name, Desired_Transaction_file_Size_In_Megabytes) go.
Сокращение размера базы данных TEMPDB до 20 мегабайт
USE TempDB DBCC SHRINKFILE (tempdev,20) go DBCC SHRINKFILE (templog,20) go
Пункты 2 и 3 также можно выполнить с помощью Management Studio.
Прежде всего, Microsoft настоятельно рекомендует не уменьшать размер файлов TempDB, которые активно используются. Это связано с тем, что «вы можете получить множество ошибок согласованности», которые не только прервут пользовательскую активность («рабочие таблицы промежуточных результатов, созданных во время обработки и сортировки запросов»), происходящую в TempDB в это время, но и могут полностью прервать операцию сокращения. Однако если активность пользователей в вашем случае минимальна или отсутствует, вы можете выполнить следующие 2 шага для уменьшения размера файла TempDB:
METHOD 1: Shrink & Modify file
USE TempDB GO DBCC SHRINKFILE (N’logical_file_name’, 5) — Размер в МБ
Затем выполните оператор ALTER DATABASE для каждого из этих файлов с нужным вам размером. Это приведет к тому, что новый размер будет внесен в master.sys.master_files, системный каталог, который SQL Server использует для создания новой, пустой TempDB при каждом перезапуске сервера/установки.
ИСПОЛЬЗОВАТЬ ХОЗЯИНА ИДТИ СТАРЫМ
Этот метод устраняет риск ошибок согласованности, обеспечивая при этом успешную работу по уменьшению размера файлов. С другой стороны, перед началом работы необходимо отключить всех пользователей. Однако при правильном планировании вы сможете внести эти изменения примерно за 10 минут, если выполните следующие действия:
NET STOP MSSQLSERVER
NET STOP "SQL Server (MSSQLSERVER)".
METHOD 2 — Modify files in Restricted user mode
USE MASTER GO ALTER DATABASE TEMPDB MODIFY FILE (NAME=’logical_file_name’, SIZE=6MB)
- Establish a Dedicated Administrator Connection (DAC) from Management Studio to the instance you are working on. You can do this by simply prefixing the tag «Admin:» in front of the instance name. E.g., ADMIN:ProdServer\Instance1
- Run ALTER DATABASE with the REMOVE option to mark the ndf files obsolete. USE MASTER GO ALTER DATABASE TEMPDB REMOVE FILE logical_file_name
- RDP to the server and.
- Stop the instance from command prompt. For default instance:
C:\>NET START MSSQLSERVER
NET START "SQL Server (MSSQLSERVER)"
NET START "SQL Server ( имя экземпляра )"
NET START MSSQL$instancename
C:\>ALTER DATABASE TEMPDB ADD FILE (NAME=logical_file_name, FILENAME='C:\SQL\Data\logical_file_name.ndf',SIZE=6MB).
В конце запустите этот запрос еще раз, чтобы убедиться, что все ваши изменения правильно отображаются в основной базе данных:
SELECT DB_NAME(DATABASE_ID)DBNAME, NAME LOGICAL_FILENAME, *8/1024 SIZE_MB FROM MASTER.SYS.MASTER_FILES WHERE DB_NAME(DATABASE_ID) = 'TEMPDB'.
Первый метод, конечно, намного проще и быстрее, но вы рискуете испортить данные в TempDB. Более того, процесс сокращения может даже не завершиться из-за одновременного использования этих файлов. Второй способ более сложный, но обеспечивает плавный процесс. Однако это требует времени простоя.
Ваши конструктивные отзывы всегда приветствуются!
NET STOP "SQL Server (MSSQLSERVER)".
Удаление существующего экземпляра SQL Server (программа установки)
В данной статье описан процесс удаления изолированного экземпляра SQL Server. Шаги, перечисленные в этой статье, помогут подготовить систему для повторной установки SQL Server.
Для удаления отказоустойчивого кластера SQL Server используется функция удаления узла, предоставляемая программой установки SQL Server , которая удаляет каждый узел по отдельности. Дополнительные сведения см. на странице Добавление и удаление узлов в отказоустойчивом кластере SQL Server (настройка).
Рекомендации
- Удаление экземпляра SQL Server должен производить локальный администратор, имеющий разрешения на вход в систему в качестве службы.
- Если на компьютере установлен минимальный требуемый объем физической памяти, увеличьте размер файла подкачки вдвое больше объема физической памяти. Нехватка виртуальной памяти может привести к неполному удалению SQL Server.
- В системе с несколькими экземплярами SQL Server служба браузера SQL Server удаляется только после удаления последнего экземпляра SQL Server. Службу браузера SQL Server можно удалить вручную через Программы и компоненты на панели управления.
- При удалении SQL Server удаляются файлы данных tempdb, добавленные во время процесса установки. Файлы с именем, удовлетворяющим шаблону tempdb_mssql_*.ndf, удаляются, если они существуют в каталоге системной базы данных.
Подготовка.
Резервное копирование данных. Либо создайте полные резервные копии всех баз данных, включая системные базы данных, либо вручную скопируйте MDF- и LDF-файлы в отдельное место. База данных master содержит все сведения на уровне системы для сервера, такие как имена входа и схемы. База данных msdb содержит сведения о заданиях, такие как задания агента SQL Server, журнал резервного копирования и планы обслуживания. Дополнительные сведения о системных базах данных см. в разделе Системные базы данных.
Необходимо сохранить следующие файлы баз данных.
- master.mdf
- msdbdata.mdf
- Tempdb.mdf
- mastlog.ldf
- msdblog.ldf
- Templog.ldf
- model.mdf
- Mssqlsystemresource.mdf
- ReportServer[$InstanceName]
- modellog.ldf
- Mssqlsustemresource.ldf
- ReportServer[$InstanceName]TempDB
Базы данных ReportServer включены в службы SQL Server Reporting Services.
Остановите все службы SQL Server. Перед удалением компонентов SQL Server рекомендуется остановить все службы SQL Server. Наличие активных соединений может помешать удалению компонентов.
Выбор учетной записи с необходимыми разрешениями. Выполните вход на сервер с учетной записью службы SQL Server или с учетной записью, обладающей аналогичным набором разрешений. Например, можно войти на сервер с учетной записью, входящей в локальную группу администраторов.
Удаление
- Windows 10 и 2016 +
- Windows 2008 — 2012 R2
Чтобы удалить SQL Server из Windows 10, Windows Server 2016, Windows Server 2019 и более поздних версий, выполните следующие действия.
Чтобы начать процесс удаления, перейдите к Параметры в меню "Пуск" и выберите Приложения.
Введите sql в поле поиска.
Выберите Microsoft SQL Server (версия) (разрядность) . Например, Microsoft SQL Server 2017 (64-bit) .
Выберите Удалить.

Выберите Удалить во всплывающем диалоговом окне SQL Server, чтобы запустить мастер установки Microsoft SQL Server.

На странице Выбор экземпляра воспользуйтесь раскрывающимся списком, чтобы указать удаляемый экземпляр SQL Server, или укажите параметр для удаления только общих компонентов и средств управления SQL Server. Чтобы продолжить работу, щелкните Далее.
На странице Выбор компонентов укажите компоненты, которые нужно удалить из указанного экземпляра SQL Server.
На странице Все готово для удаления просмотрите список компонентов и функций, подлежащих удалению. Нажмите кнопку Удалить , чтобы начать удаление
Обновите окно Приложения и компоненты, чтобы убедиться, что экземпляр SQL Server был успешно удален, и определите, какие компоненты SQL Server все еще остались. При необходимости удалите эти компоненты из этого окна.
Чтобы удалить SQL Server из Windows Server 2008, Windows Server 2012 и Windows 2012 R2, выполните следующие действия.
Чтобы начать процесс удаления, перейдите в панель управления, а затем выберите Программы и компоненты.
Щелкните правой кнопкой мыши Microsoft SQL Server (версия) (разрядность) и выберите Удалить. Например, Microsoft SQL Server 2012 (64-bit) .

Выберите Удалить во всплывающем диалоговом окне SQL Server, чтобы запустить мастер установки Microsoft SQL Server.

На странице Выбор экземпляра воспользуйтесь раскрывающимся списком, чтобы указать удаляемый экземпляр SQL Server, или укажите параметр для удаления только общих компонентов и средств управления SQL Server. Чтобы продолжить работу, щелкните Далее.
На странице Выбор компонентов укажите компоненты, которые нужно удалить из указанного экземпляра SQL Server.
На странице Все готово для удаления просмотрите список компонентов и функций, подлежащих удалению. Нажмите кнопку Удалить , чтобы начать удаление
Обновите окно Программы и компоненты, чтобы убедиться, что экземпляр SQL Server был успешно удален, и определите, какие компоненты SQL Server все еще остались. При необходимости удалите эти компоненты из этого окна.
В случае сбоя
В случае сбоя процесса удаления изучите файлы журнала установки SQL Server, чтобы определить основную причину.
Статья базы знаний Обнаружение проблем установки SQL Server в файлах журнала установки может помочь в расследовании. Хотя она предназначена для SQL Server 2008, описываемая методология применима к каждой версии SQL Server.
Привет
Базы на сервере небольшие, а темпдб 10Г (это mdf файл), это ненормально, тем более учитывая то, что занято всего 100 мб, остальное свободно.
Шринк, перезапуск сервера не помогает.
Просмтрел саму темпдб — юзерских объектов нету.Post by tengiz » Wed Sep 24, 2003 9:47 am
Post by Win32nipuh » Wed Sep 24, 2003 10:08 am
Спасибо, только это и помогло.
Сначала не хотел шринкать, писал, что лог файл заполнен, но после рестарта сервера сработало.Но, вот, не ясно, почему файл данных в темпдб вырос до таких размеров.
Написал процедуру для непосредственного уничтожения объектов с типом ‘U’ — а их там нет .
Post by Vladimir913 » Thu Sep 25, 2003 7:31 pm
Post by Merle » Fri Sep 26, 2003 8:22 am
Угу, один раз там на вопрос почему в MSSQL’е в связке master/detail дедлок выскакивает, полфорума советовали хинт read past использовать, шоб значит дедлока-то не было.
После таких советов пострадавшие начинают на Привете про самые страшные случаи в жизни DBA рассказывать.Так что я с трудом верю в полезность sql.ru.
Post by Roman » Fri Sep 26, 2003 4:24 pm
1. Посмотри, каков в пропертях стоит начальный размер файла tempdb и model.
2. Tempdb в любом случае пересоздается заново при перезапуске сервиса как копия model.
Как удалить SQL Server
SQL Server – служебная программа для управления реляционными БД от Microsoft, основанная на языке запросов Transact-SQL. Чтобы полностью удалить SQL Server с компьютера, необходимо воспользоваться встроенными утилитами Windows или сторонним ПО. В последствии пользователь сможет подготовить операционную систему к повторной установке приложения на ПК.

Зачем удалять систему управления БД?
К сожалению, в последние годы количество кибератак увеличилось. Так, специалисты из IBM X-Force в мае 2018 г. выявили троян, который способен передавать запросы в командный центр через Microsoft SQL для связи с CC. Троян MnuBot, который хакеры разработали на базе языка программирования Delphi, разыскивает файл Desk.txt в стандартной директории %AppData%Roaming.
Если указанный элемент в Roaming отсутствует, то зловред самостоятельно его создает и подменяет стандартный Desktop методом наложения слоя, что вполне предсказуемо в случае с трояном. Таким образом все действия на экране пользователя могут фиксироваться в конфигурации MnuBot. Функционал трояна поражает спектром возможностей. Он способен:
- делать скриншоты экрана;
- использовать опцию key logger, т. е. считывать действия пользователя с клавиатуры;
- имитировать ввод текста и цифр на клавиатуре, клики мышки;
- осуществлять внеплановый ребут взломанной системы;
- уничтожать защитные механизмы Windows, в т. ч. Trusteer Rapport;
- воровать любые вводимые юзером данные, включая информацию по банковским картам с паролями и CVV.

Самое неприятное, что MnuBot автоматически запрашивает у MS SQL Server данные, что, ко всему прочему, сильно тормозит работу компьютера. Поэтому, если СУБД активно не используется, ее лучше удалить и почистить реестр от остаточных файлов.
В противном случае можно столкнуться с хакерскими атаками, сбоями в работе ПК и со списанием денежных средств с электронных кошельков и банковских карт, либо с иными неприятностями, которые влечет за собой похищение персональных данных пользователя третьими лицами.
Активным юзерам данного программного решения удаление Microsoft SQL Server может понадобиться для того, чтобы очистить систему от остаточных компонентов приложения с целью последующей установки новой версии СУБД.

Подготовка к деинсталляции
Перед тем как приступить к процессу уничтожения данных, нужно подготовиться:
- Удостовериться в том, что у файла подкачки Windows достаточный размер. Оптимальным показателем является диапазон:
- от 3548 до 3548 Мб для ПК с оперативкой 2048 Мб;
- от 3024 до 3024 Мб для ПК с оперативкой 4096 Мб;
- от 2016 до 2016 Мб для ПК с оперативкой 8 Гб.
Нехватка виртуальной памяти может привести к тому, что SQL Server 2008 будет удален с компьютера не полностью.
- Если на ПК установлено несколько версий SQL Server, то браузер будет уничтожен после деинсталляции последней версии. Для полного удаления SQL Server 2017 нужно будет в разделе «Программы и компоненты» вручную деинсталлировать браузер SQL Server из перечня софта.
- После очистки приложения будут удалены все tempdb. Так, данные по шаблону «tempdb_mssql_*.ndf» уничтожатся. Требуется сохранить нужные файлы.

Перед деинсталляцией важно выполнить следующие операции:
- Сохранить имеющиеся базы данных tempdb: создать резервную копию БД. Для этого скопировать данные и журналы из директории MSSQL в любую другую папку. Так, нужно сохранить файлы в формате «.mdf» под именами «Master», «Model», «Msdbdata», «Mssqlsystemresource», «Tempdb» и «.ldf» под именами «Mastlog», «Modellog», «Msdblog», «Mssqlsustemresource»и «Templog», а также БД Reporting Services ReportServer[$name] и ReportServer[$name]TempDB – временную БД Службы Reporting Services.
- Уничтожить локальные группы безопасности.
- Остановить службы через «Диспетчер задач».
- Перейти в учетную запись с правами admin.

Процесс деинсталляции
Удаление СУБД будет зависеть от версии программного продукта. Чтобы удалить SQL Server 2005 с ПК, можно воспользоваться как встроенными утилитами Windows – «Установка и удаление…» или «Программы и компоненты», так и путем скачивания специализированных деинсталляторов. Рассмотрим оба возможных варианта. Удалить SQL Server 2005 и 2008 можно следующим способом:
- Кликнуть по изображению лупы, которое находится в левом углу экрана – рядом с меню «Пуск». В поисковой строке Виндовс ввести запрос «Add or Remove Programs». Войти в данный раздел также можно через меню «Пуск», щелкнув по значку в виде шестеренки и перейдя во вкладку «Приложения» в окне «Параметры».
- В боковом меню найти раздел «Приложения и возможности» — в поисковой строке, расположенной под синей надписью «Управление дополнительными параметрами», ввести наименование деинсталлируемой БД. Можно осуществить поиск вручную, отсортировав файлы по имени или дате установки.

- Щелкнуть по отобразившемуся элементу левой кнопкой мышки и нажать «Delete».
- Действовать согласно подсказкам «Мастера установки и удаления», периодически нажимая «Далее».
- Чтобы удалить конкретный экземпляр SQL Server, необходимо в «Мастере удаления» во вкладке «Выбор экземпляра» указать ненужный файл или параметр, относящийся к категории общих компонентов или средств управления данной СУБД. Кликнуть «Далее».
- Следующим этапом станет выбор компонентов – выделить ненужные данные. На экране появится диалоговое окошко для подтверждения действий пользователя – нажать «ОК».
- Установщик выдаст на экране окошко «Все готово для удаления» – проверить правильность заполнения формы и запустить процесс деинсталляции, тапнув по «Delete».

- По завершении процесса кликнуть «ОК», выйти из «Параметров» и осуществить перезагрузку ПК.
Указанный метод удаления подойдет для SQL Server 2012 и более поздних версий продукта.
Можно провести деинсталляцию через «Панель управления». Для этого:

- Во встроенной поисковой строке Windows ввести ключевой запрос «Панель управления».
- В окне «Все элементы панели управления» выбрать «Программы и компоненты».
- В «Удаление или изменение программы» найти ненужное ПО вручную, либо воспользоваться строкой поиска, находящейся в правом верхнем углу экрана.
- Тапнуть левой клавишей мыши по найденному компоненту – рядом с опцией «Упорядочить», расположенной над списком установленных программ. На дисплее появится опция «Удалить» — кликнуть по ней. Можно деинсталлировать элемент, щелкнув по нему правой кнопкой мыши и выбрав опцию «Delete».
- Компонент SQL Server 2008 r2 будет удален.
Деинсталляция узлов кластера SQL включает в себя следующие этапы:

- Запустить setup.exe.
- В окне «Мастера установки» на крайней панели инструментов тапнуть по «Обслуживанию», после чего выбрать функцию «Удалить узел из отказоустойчивого кластера».
- Согласиться с удалением, кликнув на «ОК» в появившемся диалоговом окне.
- В меню «Файлы поддержки программы установки» кликнуть на «Установить» для проверки ОС Windows. После завершения запущенного автоматического процесса щелкнуть на «Далее».
- В «Конфигурации узла кластера» ввести имя изменяемого компонента, который при деинсталляции отобразится в поле «Имя этого узла».
- Выделить узел и щелкнуть на «Delete».
- По завершении работы uninstall.exe щелкнуть на «Закрыть» (выход из открытого диалогового окна).

Теперь потребуется почистить реестр от остаточных файлов, чтобы в системе не осталось мусора. Впоследствии пользователь сможет легко установить новую версию СУБД без конфликтов с компонентами Windows. Процесс ручной чистки включает в себя следующие основные манипуляции:
- Необходимо создать точку восстановления Windows. Это важно для того, чтобы при возникновении внештатной ситуации (например, случайной деинсталляции критического файла ОС) можно было откатить Виндовс до работоспособного состояния. Сделать это легко: кликнуть по значку лупы, расположенному справа от меню «Пуск», и вбить запрос «Восстановление».
- Перейти в раздел «Настройка восстановления системы» — на дисплее отобразится окно «Свойства системы». Нужно кликнуть по интерактивной клавише «Настроить…», находящейся прямо над кнопкой «Отмена».

- Указать наименование точки восстановления и директорию будущего расположения файла.
- Обязательно тапнуть «Применить» и выйти из открытого диалогового окна, щелкнув на «ОК».
- Теперь зайти на ПК в Безопасном режиме, чтобы в процессе чистки ОС не нанести вред критическим компонентам Windows.
- Для входа в безопасном режиме нужно удерживать клавишу «Shift» в процессе стандартной перезагрузки компьютера. В момент возникновения черного экрана загрузки щелкнуть на клавишу «F8» — комбинация зависит от пакета поставки и указывается в инструкции производителя, после чего на экране появится синее диалоговое окно «Выбор действия».
- Перейти во вкладку «Поиск неисправностей». В разделе «Диагностика» выбрать пункт «Доп. параметры».

- Тапнуть по значку шестеренки – «Параметры загрузки».
- Кликнуть по кнопке (расположена в правом нижнем углу монитора) «Перезагрузить» для того, чтобы войти в систему в требуемом режиме.
- После перезагрузки на мониторе появится меню «Параметры загрузки» — для входа в нужный параметр потребуется использовать цифру «4» или «F4».
- Также можно выполнить шаги 6-11 следующим образом: зайти в меню msconfig. Надо вызвать диалоговое окно «Выполнить» (комбинация Win+R) или осуществить ввод команды через встроенный поисковик, вбив код «msconfig» без кавычек. Также можно воспользоваться поисковой строкой Виндовс и ввести код «msconfig» или ключевую фразу «Конфигурация системы».

- Зайти на вкладку «Загрузка» из окна Конфигуратора и отметить галочкой параметр «Безопасный режим». Обязательно выделить пункт, расположенный в правом нижнем углу окошка встроенной утилиты, «Сделать параметры загрузки постоянными» на случай, если придется повторно осуществить ребут в процессе чистки ОС от leftovers.
- Кликнуть «Применить», нажать «ОК». Следующий вход будет осуществлен в нужной конфигурации.
- Теперь юзер может перейти к очистке реестра штатными методами: зажать сочетание Win+R — в окошке «Выполнить» в поле «Открыть» ввести команду «regedit».

- Создать резервную копию текущего состояния «Windows registry» – зайти в меню «Файл» в левом верхнем углу «Registry editor» и выбрать опцию «Экспорт…». Задать имя документа и указать директорию сохранения. В поле «Диапазон экспорта», находящемся в левом углу Editor, щелкнуть на «Весь реестр». Нажать «Сохранить». Запустится системный процесс, который может занять несколько минут.
- В «Редакторе реестра» зажать сочетание клавиш Ctrl+F для вызова встроенного поисковика – в поле «Найти» вбить название удаляемой СУБД, тапнуть «Найти далее».
- Высветится перечень остаточных файлов: изучить каждый из компонентов реестра и проверить поля «Параметр» и «Значение», чтобы узнать, имеет ли та или иная запись отношение к деинсталлированному софту или нет. Чистить нужно данные из папки «HKEY_LOCAL_MACHINE» — «SOFTWARE». Щелкнуть по удаляемому файлу правой клавишей мышки и выбрать опцию «Delete». На экране появится сообщение системы о подтверждении выполняемого действия – тапнуть «Да».

- Проводить процедуру до тех пор, пока в указанной папке не останется компонентов, относящихся к SQL Server.
Удаление сторонними утилитами
Если пользователю нужно срочно полностью удалить SQL Server 2012, а чистить систему вручную не хочется или же юзер боится повредить компоненты Виндовс, то можно воспользоваться сторонней программой. Вот несколько вариантов софта на выбор:
- Revo Uninstaller;
- Uninstall Tool;
- Reg Organizer;
- CCleaner.
Для деинсталляции СУБД в Revo Uninstaller потребуется выполнить следующие действия:
- Скачать утилиту с официального сайта, загрузить и открыть.
- Перейти в меню «Все программы» вкладки «Деинсталлятор».

- В правом верхнем углу над списком программ расположена встроенная поисковая строка – ввести наименование удаляемого приложения.
- Выделить левой клавишей мышки отобразившийся элемент списка и на верхней панели инструментов щелкнуть «Delete» (значок в виде папки с красным крестиком) или кликнуть по файлу правой кнопкой мышки и нажать «Delete».
- По завершении процесса uninstall.exe на мониторе появится окошко «Выполнение первоначального анализа…». Выбрать «Продвинутый» режим и тапнуть на «Сканировать».
- Запустится процесс проверки ОС на предмет leftovers, по окончании которого щелкнуть в левом нижнем углу программы «Выбрать все» и «Delete», нажать «Далее».
- В меню «Найденные оставшиеся файлы и папки» можно очистить компоненты вручную и кликнуть на «Готово».

- Для удаления мусора из ОС достаточно перейти в меню «Чистильщик Windows» и выбрать пункт меню «Очистить историю открытия ключей реестра», «Следы в реестре» и «Следы на жестком диске». В правом верхнем углу тапнуть по «Очистить».
- По завершении процесса нажать «ОК» и закрыть приложение.
- Перезагрузить компьютер.
Для удаления софта при помощи Uninstall Tool необходимо:

- Скачать, установить и открыть приложение.
- Перейти во вкладку «Software» — в поле «Search» вбить имя удаляемого ПО и нажать «Enter».
- Если уничтожить программу стандартным способом не получается, то следует выбрать опцию «Принудительное удаление» и следовать подсказкам на экране – нажать «Да».
- По факту деинсталляции на экране появится список остаточных элементов файловой системы и реестра – выделить все и кликнуть «Delete».
- На экране появится сообщение «Все остатки программы удалены» — щелкнуть «ОК».
- Осуществить ребут.
Чтобы выполнить аналогичную операцию через Reg Organizer, понадобится:

- Загрузить, установить и открыть утилиту.
- Перейти во вкладку «Удаление программ» на правой боковой панели инструментов. Воспользоваться встроенным поисковиком или найти файл вручную, выделить его и щелкнуть на «Delete». Действовать подсказкам «Мастера удаления» на мониторе.
- По завершении процесса потребуется почистить реестр от остаточных компонентов: перейти в меню «Автом. чистка» в левой верхней части дисплея и запустить логическую, физическую структуру registry, а также чистку диска.
- При необходимости воспользоваться инструментом ручной очистки.
- Перезагрузить ПК.
Самым популярным инструментом у пользователей является CCleaner, так как данное приложение является бесплатным. С его помощью можно полностью удалить SQL Server с ПК:

- Скачать, установить и открыть Клинер.
- Зайти в меню «Сервис» (значок гаечного ключа слева), выбрать «Удаление программ» — найти деинсталлируемый элемент, щелкнуть по нему правой кнопкой мышки и тапнуть по «Деинсталляции» либо воспользоваться клавишей в правой верхней части дисплея.
- Войти в меню «Реестр» — выделить все пункты в разделе «Целостность реестра» и кликнуть «Поиск проблем».
- На экране отобразится перечень неисправностей – нажать «Исправить…».
- Создать точку восстановления – кликнуть в открывшемся окне на «Да», ввести имя файла и директорию, после чего нажать «Исправить отмеченные» и «Закрыть».
- Осуществить перезагрузку Виндовс.
Как сжать базу данных tempdb в SQL Server
В этой статье приведены различные способы, которые можно использовать для сжатия базы данных tempdb в Microsoft SQL Server. Прежде чем сжать базу данных tempdb с помощью методов, описанных в этой статье, ознакомьтесь со следующей информацией:
Размер базы данных tempdb устанавливается равным последнему заданному значению (то есть размеру по умолчанию или последнему размеру, установленному с помощью команды alter database) после каждого перезапуска. Поэтому, если нет необходимости использовать другие значения или немедленно уменьшить размер, не следует выполнять действия, приведенные в этой статье. Для уменьшения размера базы данных можно подождать следующего перезапуска службы SQL Server. Большие размеры базы данных tempdb не повлияют негативным образом на работоспособность службы SQL Server.
В SQL Server 2005 и более поздних версиях сжатие базы данных tempdb ничем не отличается от сжатия базы данных пользователя, кроме того что для размера базы данных tempdb устанавливается заданное значение после каждого перезапуска экземпляра SQL Server.
Команду shrink можно безопасно выполнить в базе данных tempdb во время ее работы. Однако могут возникнуть другие ошибки, например блокирование, взаимоблокировка и др., из-за которых команда shrink не будет выполнена. Поэтому, чтобы команда shrink была выполнена правильно наверняка, мы советуем запускать ее, когда сервер работает в однопользовательском режиме или после прекращения всех действий с базой данных tempdb.
Сведения о базе данных tempdb
База данных tempdb является временной рабочей областью. Сервер SQL Server использует базу данных tempdb для выполнения многих задач. Вот некоторые из них:
хранение временных таблиц, созданных явным образом;
хранение рабочих таблиц, содержащих результаты, созданные в процессе обработки запросов и сортировки;
хранение материализованных статических курсоров;
хранение записей о версиях при использовании уровней изоляции моментальных снимков или уровней изоляции моментальных снимков зафиксированного чтения.
Сервер SQL Server записывает в журнал транзакций базы данных tempdb сведения, необходимые только для отката транзакции, но недостаточные для воспроизведения транзакций в процессе восстановления базы данных. Это позволяет повысить производительность инструкций INSERT в базе данных tempdb. Кроме того, сведения для воспроизведения каких-либо транзакций не требуется записывать в журнал, поскольку база данных tempdb создается заново каждый раз после перезапуска сервера SQL Server. Таким образом, в ней нет транзакций для наката или отката. При запуске сервера SQL Server база данных tempdb создается заново с помощью копии базы данных model, а ее размер устанавливается равным последнему заданному значению. Заданный размер является последним значением размера, установленным явным образом при выполнении операций, изменяющих размер файла, таких как ALTER DATABASE с параметром MODIFY FILE либо инструкции DBCC SHRINKFILE или DBCC SHRINKDATABASE.
По умолчанию база данных tempdb настроена для автоувеличения размера по мере необходимости. Таким образом, со временем размер этой базы данных может превысить желаемый. Простой перезапуск сервера SQL Server устанавливает размер базы данных равным последнему заданному значению.
В SQL Server 2005 и более поздних версиях можно использовать любой из следующих способов изменения размера базы данных tempdb:
Необходима ли перезагрузка?
Полный контроль размера файлов базы данных tempdb по умолчанию (tempdev и templog).
Работает на уровне базы данных.
Позволяет сжать отдельные файлы.
Способ сжатия файлов базы данных через графический пользовательский интерфейс.
Примечание. Средство SQL Server Management Studio в SQL Server 2005 не показывает правильный размер файлов базы данных tempdb после выполнения операции сжатия. Значение параметра «Выделенное в данный момент место» всегда берется из динамического административного представления sys.master_files и не обновляется после выполнения операции по сжатию размера для базы данных tempdb. Чтобы узнать правильный размер файлов базы данных tempdb после сжатия, в SQL Server Management Studio выполните следующую инструкцию:
Здесь рассказывается о первых трех методах.
Примечание. Для установок SQL Server 2000 вместо SQL Server Management Studio нужно использовать анализатор запросов. Кроме того, для использования команд DBCC базу данных потребуется перевести в однопользовательский режим.
Следующие три способа можно использовать для сжатия базы данных tempdb до значения ниже заданного:
Способ 1. Используйте команды Transact-SQL
Примечание. Для этого способа нужно перезапустить SQL Server.Остановите SQL Server.
Из командной строки запустите экземпляр в режиме минимальной конфигурации. Для этого выполните следующие действия:
В командной строке перейдите к следующей папке:
Если этот экземпляр SQL Server является именованным, выполните следующую команду:
sqlservr.exe -s имя_экземпляра -c -f Если этот экземпляр SQL Server является экземпляром по умолчанию, выполните следующую команду:
sqlservr -c -f Примечание. Параметры -c и -f приводят к запуску SQL Server в режиме минимальной конфигурации, в котором размер файла данных базы данных tempdb составляет 1 МБ, а размер файла журнала — 0,5 МБ.
Подключитесь к серверу SQL Server с помощью анализатора запросов и выполните следующие команды Transact-SQL:
Остановите SQL Server. Для этого в окне командной строки нажмите клавиши CTRL+C, перезапустите SQL Server как службу и проверьте размер файлов Tempdb.mdf и Templog.ldf.
Ограничение этого способа заключается в том, что он работает только с логическими файлами базы данных tempdb по умолчанию, tempdev и templog. Если к базе данных tempdb были добавлены дополнительные файлы, их можно сжать после перезапуска сервера SQL Server как службы. Все файлы базы данных tempdb заново создаются во время запуска. Однако они являются пустыми и могут быть удалены. Чтобы удалить дополнительные файлы в базе данных tempdb, выполните команду ALTER DATABASE с помощью параметра REMOVE FILE.
Способ 2. Используйте команду DBCC SHRINKDATABASE
Используйте команду DBCC SHRINKDATABASE для сжатия базы данных tempdb. DBCC SHRINKDATABASE получает параметр target_percent. Этот параметр указывает желаемый размер свободного места в процентах, который останется в файле базы данных после ее сжатия. При использовании команды DBCC SHRINKDATABASE может потребоваться перезапуск сервера SQL Server.Определите место на диске, используемое в настоящий момент базой данных tempdb, с помощью хранимой процедуры sp_spaceused. Затем рассчитайте долю в процентах свободного места на диске, доступного для использования, как значение параметра команды DBCC SHRINKDATABASE. Этот расчет основан на желаемом размере базы данных.
Примечание. В некоторых случаях потребуется выполнить команду sp_spaceused @updateusage=true для повторного расчета используемого места на диске, чтобы получить обновленный отчет. Дополнительные сведения о хранимой процедуре sp_spaceused см. на веб-сайте электронной документации на SQL Server.
Рассмотрим следующий пример.
Предположим, что база данных tempdb содержит два файла: основной файл данных (Tempdb.mdf) размером 100 МБ и файл журнала (Tempdb.ldf) размером 30 МБ. Предположим, что команда sp_spaceused сообщает, что основной файл данных содержит 60 МБ данных. Также предположим, что необходимо сжать основной файл данных до 80 МБ. Рассчитаем желаемую долю в процентах свободного места на диске, которое останется после уменьшения размера: 80 МБ – 60 МБ = 20 МБ. Теперь поделим 20 МБ на 80 МБ = 25 % и получим значение параметра target_percent. Размер файла журнала транзакций уменьшается соответствующим образом, оставляя 25 % или 20 МБ свободного места после сжатия базы данных.
Подключитесь к серверу SQL Server с помощью анализатора запросов и выполните следующие команды Transact-SQL:
Существуют определенные ограничения для использования команды DBCC SHRINKDATABASE для базы данных tempdb. Конечный размер файла данных и файла журнала не может быть меньше размера, указанного при создании базы данных, или последнего размера, явным образом установленного при выполнении операций, изменяющих размер файлов, например команды ALTER DATABASE с параметром MODIFY FILE. Другим ограничением команды BCC SHRINKDATABASE является расчет значения параметра target_percentage и его зависимость от текущего используемого места на диске.
Способ 3. Используйте команду DBCC SHRINKFILE
Используйте команду DBCC SHRINKFILE для сжатия отдельных файлов базы данных tempdb. Команда DBCC SHRINKFILE обеспечивает большую гибкость, чем команда DBCC SHRINKDATABASE, так как ее можно использовать для отдельного файла базы данных, не затрагивая другие файлы, относящиеся к той же базе данных. Команда DBCC SHRINKFILE использует параметр target size. Это желаемый окончательный размер файла базы данных.Определите желаемый размер основного файла данных (tempdb.mdf), файла журнала (templog.ldf) и дополнительных файлов, добавленных к базе данных tempdb. Убедитесь, что используемое файлами место на диске меньше желаемого размера или равно ему.
Подключитесь к серверу SQL Server с помощью анализатора запросов и выполните следующие команды Transact-SQL для конкретных файлов базы данных, которые необходимо сжать:
Преимущество команды DBCC SHRINKFILE заключается в том, что она позволяет уменьшить размер файла до размера ниже исходного. Команду DBCC SHRINKFILE можно выполнять для любых файлов данных и файлов журнала. Ограничение команды DBCC SHRINKFILE заключается в том, что размер базы данных нельзя сделать меньше, чем размер шаблона базы данных.
Ошибки 2501 и 8909 при выполнении операций сжатия
Если база данных tempdb используется и предпринимается попытка сжать ее с помощью команды DBCC SHRINKDATABASE или DBCC SHRINKFILE, могут появиться сообщения, подобные приведенным ниже (в зависимости от используемой версии SQL Server).
SQL Server 2005 и более поздние версии
Сервер: Сообщение 8909, уровень 16, состояние 1, строка 1 Ошибка таблицы: идентификатор объекта 0, идентификатор индекса -1, идентификатор секции 0, идентификатор единицы размещения 0 (тип Unknown), идентификатор страницы (6:8040) содержит неправильный идентификатор страницы в заголовке страницы. PageId в заголовке страницы = (0:0).
SQL Server 2000
Сервер: Сообщение 2501, уровень 16, состояние 1, строка 1 Не удается найти таблицу с именем ‘1525580473’. Проверьте таблицу sysobjects.
Сервер: Сообщение 8909, уровень 16, состояние 1, строка 0 Таблица повреждена: идентификатор объекта 1, идентификатор индекса 0, идентификатор страницы %S_PGID. PageId в заголовке страницы = %S_PGID.
Эти ошибки не означают наличие реальных повреждений в базе данных tempdb. Тем не менее, имейте в виду, что могут быть другие причины ошибок физического повреждения данных, таких как ошибка 8909, включая проблемы с подсистемой ввода-вывода. Поэтому, если ошибка происходит не в процессе выполнения операции сжатия, необходимо дополнительно исследовать проблему.
В SQL Server 2005 и более поздних версиях при выполнении операции сжатия может отображаться сообщение об ошибке 8909, однако это не говорит о наличии ошибок такой операции.
В SQL Server 2000 и более ранних версиях эти ошибки вызовут сбой операций сжатия. Поэтому для сжатия базы данных tempdb необходимо будет перезапустить SQL Server, чтобы повторно создать базу данных tempdb.
Похожие публикации:
- Как на айпад мини 2 установить телеграмм
- Как наклеить защитную пленку на айпад
- Что нужно указывать при создании таблицы sql
- Что такое echo в php
