Регламентное обслуживание базы данных "Рестарт"

Внимание! Данный форум является модерируемым.
Для получения к нему доступа необходимо зарегистрироваться или авторизоваться на сайте.

Страницы: 1
RSS
Регламентное обслуживание базы данных "Рестарт", оптимизация работы баз данных, проверки на ошибки и общее сокращение времени выпольнения скриптов
 
Любая база данных нуждается в регулярном обслуживании. Особенно если она достигает достаточно большого объема или содержит транзакции за большой период.

Т.к. Рестарт в качестве СУБД использует Microsoft SQL Server, то и обслуживание баз может производиться его же средствами.

Если вы используете полноценную версию SQL Server, то вы можете использовать мощный планов обслуживания. Например как показано в статье: http://www.compline-ufa.ru/statiy/reglamentnyie-operacii-subd-ms-sql

Если же у вас стоит бесплатная версия (SQL Express, по умолчанию входящий в дистрибутив), то придется запускать процедуру обслуживания вручную.
Физически это выражается в запуске 4-х скриптов. Что вам для этого понадобится:

1. Установить средство управления SQL сервером. Найдите в дистрибутиве программу SQLManagementStudioExpress и установите ее.
2. Скачать архив со скриптами:
3. Запускать скрипты в порядке очереди:
  • Обновление статистик;
  • Очистка процедурного кэша;
  • Дефрагментация индексов;
  • Реиндексация индексов;


ВНИМАНИЕ: текст третьего скрипта имеет вид: sp_msforeachtable N'DBCC INDEXDEFRAG (RestartMain, ''?'')', где RestartMain это название базы данных. Если у вас другое название, то укажите его в скрипте.

Время выполнения скриптов зависит только от размеров БД и может достигать нескольких десятков минут. Будьте терпеливы и не прерывайте процесс принудительно.

В обязательном порядке перед запуском скриптов сделайте бэкап базы данных.
Изменено: Андрей Рыданов - 22.01.2018 10:01:50
 
Автоматическое обслуживание бд. Создаем 4 текстовых файла: первый допустим назовем "statAndcache.sql" тоесть обновление статистик и процедурного кеша с текстом внутри
exec sp_updatestats
DBCC FREEPROCCACHE
Второй reindex.sql реиндексация индексов с текстом:
sp_msforeachtable N'DBCC DBREINDEX (''?'')'
Третий назовем backupANDtrans.sql где делается бекап и дефрагментация индексов с текстом
ALT ER DATABASE [restartmain] SET RECOVERY SIMPLE
DBCC SHRINKFILE (N'restartmain_log' , 128, TRUNCATEONLY )
ALT ER DATABASE [restartmain] SET RECOVERY FULL
--
BACKUP DATABASE [restartmain]
TO  DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\pos.bak'
WITH NOFORMAT, NOINIT,  NAME = N'restartmain_full_backup',
SKIP, NOREWIND, NOUNLOAD,  STATS = 10
где restartmain — это название БД, а TO  DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\pos.bak это путь куда будут сохранятся бекапы (можете указать свой путь)
И наконец четвертый файл где у нас будут запускаться предыдущие три файла, назовем его optimpiz.bat с текстом внутри
sqlcmd -S term1\restart -U sa -P rarus -d restartmain -i "C:\backupANDtrans.sql"
sqlcmd -S term1\restart -U sa -P rarus -d restartmain -i "C:\statANDcashe.sql"
sqlcmd -S term1\restart -U sa -P rarus -d restartmain -i "C:\reindex.sql"
где term1 название компьютера где БД, restartmain название БД — (если у вас отличное от этого, меняйте на свое)
Потом в стандартном Виндовс планировщике создаем задание на выполнение файла optimiz.bat с указанием времени и дней когда оно у нас будет выполняться.
P.S Все файлы "кидаем" в одно место, допустим на диск С:\
Изменено: Виталий Баскаков - 07.10.2012 11:42:00
 
Виталий продемонстрировал один из способов замены стандартных "планов обслуживания", отсутствующих в бесплатной поставке MS SQL Server. Спасибо за подробную инструкцию! Попробую использовать в работе.
Страницы: 1
Читают тему
Поддержка отраслевых решений «1С-Рарус»
Услуги 1С