- •Лабораторная работа 6. Администрирование sql сервера
- •Контрольные точки и их создание
- •Проверка целостности базы данных
- •Режимы выполнения команды dbcc
- •Dbcc checkalloc
- •Dbcc checkdb
- •Dbcc checktable
- •Dbcc checkfilegroup
- •Команды update statistics и recompile
- •Резервное копирование и восстановление баз данных и журнала транзакций
- •Импорт/экспорт данных в sql Server
- •1. Экспорт данных в другую бд sql Server (создание копии бд)
- •2. Экспорт данных в другую субд
Проверка целостности базы данных
USE master;
GO
EXEC sp_dboption 'Demo_DataBase', 'read only', 'TRUE';
Режимы выполнения команды dbcc
Команда DBCC поддерживает несколько режимов выполнения. В последующих разделах будут рассмотрены те из них, которые используются чаще всего. Кроме того, мы проанализируем, чем они могут помочь в управлении системой SQL Server.
Dbcc checkalloc
DBCC CHECKALLOC [('имя_базы_данных'[, NOINDEX])] [WITH NO_INFOMSGS]
Если при вызове команды опустить имя базы данных, SQL Server осуществит проверку текущей базы данных. При выполнении команды с указанием режима CHECKALLOC в отчет помещается детальная информация о системе и существующих в ней объектах базы данных. Эту информацию можно использовать для поиска возможных проблем в системе. Обнаруженные проблемы следует изучать и устранять по отдельности. Помещаемая в отчет информация – это сведения о существующей структуре таблиц, распределении страниц памяти и т.п. Каждое сообщение об обнаруженной ошибке обязательно сопровождается конкретными инструкциями по ее устранению.
Пример:
USE Demo_DataBase
GO
DBCC CHECKALLOC
Результат (фрагмент):
DBCC results for 'Demo_DataBase'.
***************************************************************
Table sys.sysrowsetcolumns Object ID 4.
Index ID 1, partition ID 262144, alloc unit ID 262144 (type In-row data). FirstIAM (1:139). Root (1:66). Dpages 5.
Index ID 1, partition ID 262144, alloc unit ID 262144 (type In-row data). 7 pages used in 0 dedicated extents.
Total number of extents is 0.
***************************************************************
...
CHECKALLOC found 0 allocation errors and 0 consistency errors in database 'Demo_DataBase'.
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
Dbcc checkdb
При вызове команды DBCC в режиме CHECKDB, на наличие ошибок проверяется каждая таблица и связанные с ней страницы данных, индексы и указатели. Индексы и страницы данных контролируются на предмет корректности установленных связей. Кроме того, индексы дополнительно анализируются на соответствие заданному порядку сортировки. Для каждой страницы проверяется обоснованность данных, целостность указателей и корректность ее формата. Дополнительно в режиме CHECKDB контролируется правильность связей между текстом, графикой и страницами типа NTEXT, а также корректность их размера. Если выполняется вызов команды DBCC в режиме CHECKDB, то повторно запускать ее в режимах CHECKALLOC или CHECKTABLE не потребуется. Команда DBCC в режиме CHECKDB имеет следующий синтаксис:
DBCC CHECKDB [('имя_базы_данных'[, NOINDEX])] [WITH NO_INFOMSGS]
Если опустить параметр имени базы данных, будет выполнена проверка текущей базы данных.
Результат (фрагмент) выполнения команды DBCC CHECKDB без параметров для текущей БД Demo_DataBase:
DBCC results for 'Demo_DataBase'.
Service Broker Msg 9675, State 1: Message Types analyzed: 14.
Service Broker Msg 9676, State 1: Service Contracts analyzed: 6.
Service Broker Msg 9667, State 1: Services analyzed: 3.
Service Broker Msg 9668, State 1: Service Queues analyzed: 3.
Service Broker Msg 9669, State 1: Conversation Endpoints analyzed: 0.
Service Broker Msg 9674, State 1: Conversation Groups analyzed: 0.
Service Broker Msg 9670, State 1: Remote Service Bindings analyzed: 0.
DBCC results for 'sys.sysrowsetcolumns'.
There are 557 rows in 5 pages for object "sys.sysrowsetcolumns".
DBCC results for 'sys.sysrowsets'.
There are 83 rows in 1 pages for object "sys.sysrowsets".
DBCC results for 'sysallocunits'.
There are 96 rows in 1 pages for object "sysallocunits".
DBCC results for 'sys.sysfiles1'.
There are 2 rows in 1 pages for object "sys.sysfiles1".
DBCC results for 'sys.syshobtcolumns'.
There are 557 rows in 5 pages for object "sys.syshobtcolumns".
DBCC results for 'sys.syshobts'.
There are 83 rows in 1 pages for object "sys.syshobts".
...
CHECKDB found 0 allocation errors and 0 consistency errors in database 'Demo_DataBase'.
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
