Выполнение dbcc-проверок (checkdb)

Командный файл checkdb позволяет выполнить полный набор dbcc-проверок структуры базы данных — например, после ее загрузки из дампа на специальный DBCC-сервер. В приведенном ниже командном файле проверяется база данных с именем dbl, уже загруженная на сервер.

Заметим, что при создании копии этой базы данных на вспомогательном сервере большую помощь может оказать процедура p_dbcreate, позволяющая получить полное описание структуры исходной базы данных основного сервера в виде последовательности команд создания этой базы данных (при необходимости в полученной последовательности потребуется изменить названия серверных устройств). Отметим, что генерируемые процедурой p_dbcreate команды автоматически создают базу данных в режиме for load.

Командный файл checkdb запускается в ручном режиме с указанием единственного параметра — пароля администратора сервера:

checkdb

Имя проверяемой базы данных жестко встроено в приведенный ниже командный файл. Однако его легко изменить так, чтобы это имя указывалось в командной строке при запуске файла. Отметим, что фактически используемая структура файла checkdb зависит от особенностей процедуры проверки баз данных, принятой в вашей информационной системе.

Как правило, в наиболее крупных базах данных dbcc-проверки производятся только по отношению к некоторым таблицам. В подобной ситуации, возможно, придется создать набор командных файлов, проверяющих каждую базу
данных по отдельности.

#!/bin/csh -f
# Команда select @@servername выдает имя сервера, к которому вы подключились.
# Команда select db_name() возвращает название текущей базы данных.
# Команда select getdate() сообщает дату и время выполнения файла.
# Команда dbcc traceon (3604) направляет выдачу dbcc-подкоманд на экран терминала (в нашем случае выдача переадресовывается в файл протокола).
# В процессе работы командный файл checkdb сообщает дату и время завершения каждой отдельной dbcc-проверки, что важно для планирования последующих запусков команды dbcc на основном сервере системы (например, для устранения повреждений, обнаруженных при анализе копий баз данных на вспомогательном DBCC-сервере).
isql #Usa #P$l #SDDSMAIN1 > dbcc_dbl.out << finish_sql
select @@servername
go
use dbl
go
select db_name()
go
select getdate()
go
dbcc traceon (3604)
go
dbcc checkalloc (dbl)
go
select getdate()
go
dbcc checkdb (dbl)
go
select getdate()
go
dbcc checkcatalog (dbl)
go
select getdate()
go
finish_sql
mail #s "dbcc runs for dbl completed" dba < dbcc_dbl.out
exit(0)

Вы можете следить за любыми ответами на эту запись через RSS 2.0 ленту. Вы можете оставить ответ, или trackback с вашего собственного сайта.

Оставьте отзыв

XHTML: Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

 
Rambler's Top100