Разное

Sql проверка целостности базы данных: Задача «Проверка целостности базы данных» (план обслуживания) — SQL Server

Содержание

Задача «Проверка целостности базы данных» (план обслуживания) — SQL Server



  • Чтение занимает 2 мин

В этой статье

Применимо к: SQL Server (все поддерживаемые версии)

Диалоговое окно Задача «Проверка целостности базы данных» используется для проверки распределения и структурной целостности пользовательских и системных таблиц, а также индексов в базе данных путем запуска инструкции DBCC CHECKDBTransact-SQL . Запуск DBCC гарантирует, что будет сообщено обо всех проблемах с целостностью в базе данных, таким образом позволяя системному администратору или владельцу базы данных устранить их позже.

Параметры

Соединение
Выберите соединение с сервером, которое будет использоваться для выполнения этой задачи.

Создать
Создать новое соединение с сервером для его использования при выполнении этой задачи. Диалоговое окно Создание соединения описано ниже.

Базы данных
Укажите базы данных, для которых должна выполняться эта задача.

  • Все базы данных

    Позволяет сформировать план обслуживания, который запускает задачи обслуживания для всех баз данных Microsoft SQL Server, кроме tempdb.

  • Все системные базы данных

    Будет сформирован план обслуживания, запускающий задачи обслуживания для каждой системной базы данных SQL Server , за исключением базы данных tempdb. Для баз данных, созданных пользователями, задачи обслуживания выполняться не будут.

  • Все пользовательские базы данных

    Создается план обслуживания, по которому задачи обслуживания выполняются для всех баз данных, созданных пользователем. Для системных баз данных SQL Server задачи обслуживания выполняться не будут.

  • Определенные базы данных

    Создается план обслуживания, по которому задачи обслуживания должны выполняться только для указанных баз данных. Если выбран этот параметр, необходимо выбрать в списке хотя бы одну базу данных.

    Примечание

    Планы обслуживания выполняются только для баз данных, уровень совместимости которых 80 или выше. Базы данных с уровнем совместимости 70 или ниже не отображаются.

Включить индексы
Проверка целостности всех страниц индекса, а также табличных страниц данных.

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

Tablock
Указание значения аргумента приводит к получению инструкцией DBCC CHECKDB блокировок вместо использования внутреннего моментального снимка базы данных. Это включает краткосрочное использование монопольной блокировки (X) на базу данных. Использование этого параметра ускорит выполнение инструкции DBCC CHECKDB на базе данных, находящейся под интенсивной нагрузкой, однако уменьшит возможности одновременной работы пользователей с базой данных во время выполнения инструкции DBCC CHECKDB.

Просмотр T-SQL
Просмотрите инструкции Transact-SQL , выполняемые для данной задачи по отношению к серверу, на основе выбранных параметров.

Примечание

Если количество затронутых объектов велико, построение этого отображения может занять значительное время.

Диалоговое окно «Создание соединения»

Имя соединения
Введите имя нового соединения.

Выберите или введите имя сервера
Выберите сервер для подключения при выполнении этой задачи.

Обновить
Обновите список доступных серверов.

Введите данные для входа на сервер
Укажите способ проверки подлинности на сервере.

Использовать встроенную безопасность Windows
Подключиться к экземпляру компонента SQL Server Компонент Database Engine c проверкой подлинности Windows.

Использовать указанные имя пользователя и пароль
Подключиться к экземпляру компонента SQL Server Компонент Database Engine с использованием проверки подлинности SQL Server. Этот параметр недоступен.

User name
Укажите имя входа, используемое при проверке подлинности SQL Server . Этот параметр недоступен.

Пароль
Укажите используемый при проверке подлинности пароль. Этот параметр недоступен.

См. также:

DBCC CHECKDB (Transact-SQL)



Ms sql проверка целостности базы данных

Пошаговые руководства, шпаргалки, полезные ссылки.

Инструменты пользователя

Инструменты сайта

Боковая панель

Как проверить и восстановить базу данных SQL Server

1. На всякий случай делаем резервную копию базы данных

2. Выполняем проверку базы данных

Если в процессе проверки обнаружены ошибки переходим к п.3, если нет ошибок – к п.4

3. Переводим базу данных в однопользовательский режим и запускаем процедуру исправления ошибок

Возможно скрипт придётся выполнять несколько раз до тех пор пока ошибки не исчезнут.

4. Возвращаем базу данных в многопользовательский режим

Дополнительная информация:

ОБЛАСТЬ ПРИМЕНЕНИЯ: SQL Server База данных SQL Azure Azure Synapse Analytics (хранилище данных SQL) Parallel Data Warehouse APPLIES TO: SQL Server Azure SQL Database Azure Synapse Analytics (SQL DW) Parallel Data Warehouse

Диалоговое окно Задача «Проверка целостности базы данных» используется для проверки распределения и структурной целостности пользовательских и системных таблиц, а также индексов в базе данных путем запуска инструкции DBCC CHECKDB Transact-SQL Transact-SQL . Use the Check Database Integrity Task dialog to check the allocation and structural integrity of user and system tables, and indexes in the database, by running the DBCC CHECKDB Transact-SQL Transact-SQL statement. Запуск DBCC гарантирует, что будет сообщено обо всех проблемах с целостностью в базе данных, таким образом позволяя системному администратору или владельцу базы данных устранить их позже. Running DBCC ensures that any integrity problems with the database are reported, thereby allowing them to be addressed later by a system administrator or database owner.

Параметры Options

Соединение Connection
Выберите соединение с сервером, которое будет использоваться для выполнения этой задачи. Select the server connection to use when performing this task.

Создать New
Создать новое соединение с сервером для его использования при выполнении этой задачи. Create a new server connection to use when performing this task. Диалоговое окно Создание соединения описано ниже. The New Connection dialog box is described below.

Базы данных Databases
Укажите базы данных, для которых должна выполняться эта задача. Specify the databases affected by this task.

Все базы данных All databases

Создается план обслуживания, по которому задачи обслуживания должны выполняться для всех баз данных Microsoft Microsoft SQL Server SQL Server , кроме базы данных tempdb. Generate a maintenance plan that runs maintenance tasks against all Microsoft Microsoft SQL Server SQL Server databases except tempdb.

Все системные базы данных All system databases

Будет сформирован план обслуживания, запускающий задачи обслуживания для каждой системной базы данных SQL Server SQL Server , за исключением базы данных tempdb. Generate a maintenance plan that runs maintenance tasks against each of the SQL Server SQL Server system databases except tempdb. Для баз данных, созданных пользователями, задачи обслуживания выполняться не будут. No maintenance tasks are run against user-created databases.

Все пользовательские базы данных All user databases

Создается план обслуживания, по которому задачи обслуживания выполняются для всех баз данных, созданных пользователем. Generate a maintenance plan that runs maintenance tasks against all user-created databases. Для системных баз данных SQL Server SQL Server задачи обслуживания выполняться не будут. No maintenance tasks are run against the SQL Server SQL Server system databases.

Определенные базы данных These specific databases

Создается план обслуживания, по которому задачи обслуживания должны выполняться только для указанных баз данных. Generate a maintenance plan that runs maintenance tasks against only those databases that are selected. Если выбран этот параметр, необходимо выбрать в списке хотя бы одну базу данных. At least one database in the list must be selected if this option is chosen.

Планы обслуживания выполняются только для баз данных, уровень совместимости которых 80 или выше. Maintenance plans only run against databases set to compatibility level 80 or higher. Базы данных с уровнем совместимости 70 или ниже не отображаются. Databases set to compatibility level 70 or lower are not displayed.

Включить индексы Include indexes
Проверка целостности всех страниц индекса, а также табличных страниц данных. Check the integrity of all the index pages as well as the table data pages.

Только физические Physical only
Ограничивает проверку лишь проверкой целостности физической структуры страниц и заголовков записей и последовательности выделения пространства в базе данных. Limits the check to the integrity of the physical structure of the page, record headers, and the allocation consistency of the database. Указание этого параметра может снизить время выполнения инструкции DBCC CHECKDB для больших баз данных, поэтому рекомендуется для частого использования в рабочих системах. Using this option may reduce run-time for DBCC CHECKDB on large databases, and is recommended for frequent use on production systems.

Tablock Tablock
Указание значения аргумента приводит к получению инструкцией DBCC CHECKDB блокировок вместо использования внутреннего моментального снимка базы данных. Causes DBCC CHECKDB to obtain locks instead of using an internal database snapshot. Это включает краткосрочное использование монопольной блокировки (X) на базу данных. This includes a short-term exclusive (X) lock on the database. Использование этого параметра ускорит выполнение инструкции DBCC CHECKDB на базе данных, находящейся под интенсивной нагрузкой, однако уменьшит возможности параллелизма базы данных во время выполнения инструкции DBCC CHECKDB. Using this option may help DBCC CHECKDB run faster on a database under heavy load, but decreases the concurrency available on the database while DBCC CHECKDB is running.

Просмотр T-SQL View T-SQL
Просмотрите инструкции Transact-SQL Transact-SQL , выполняемые для данной задачи по отношению к серверу, на основе выбранных параметров. View the Transact-SQL Transact-SQL statements performed against the server for this task, based on the selected options.

Если количество затронутых объектов велико, построение этого отображения может занять значительное время. When the number of objects affected is large, this display can take a considerable amount of time.

Диалоговое окно «Создание соединения» New Connection Dialog Box

Имя соединения Connection name
Введите имя нового соединения. Enter a name for the new connection.

Выберите или введите имя сервера Select or enter a server name
Выберите сервер для подключения при выполнении этой задачи. Select a server to connect to when performing this task.

Обновить Refresh
Обновите список доступных серверов. Refresh the list of available servers.

Введите данные для входа на сервер Enter information to log on to the server
Укажите способ проверки подлинности на сервере. Specify how to authenticate against the server.

Использовать встроенную безопасность Windows Use Windows integrated security
Подключиться к экземпляру компонента SQL Server SQL Server Компонент Database Engine Database Engine c проверкой подлинности Windows. Connect to an instance of the SQL Server SQL Server Компонент Database Engine Database Engine with Windows Authentication.

Использовать указанные имя пользователя и пароль Use a specific user name and password
Подключиться к экземпляру компонента SQL Server SQL Server Компонент Database Engine Database Engine с использованием проверки подлинности SQL Server SQL Server . Connect to an instance of the SQL Server SQL Server Компонент Database Engine Database Engine using SQL Server SQL Server Authentication. Этот параметр недоступен. This option is not available.

User name User name
Укажите имя входа, используемое при проверке подлинности SQL Server SQL Server . Prov >SQL Server SQL Server login to use when authenticating. Этот параметр недоступен. This option is not available.

Пароль Password
Укажите используемый при проверке подлинности пароль. Provide a password to use when authenticating. Этот параметр недоступен. This option is not available.

еще один блог об IT. по-простому

среда, 19 февраля 2014 г.

DBCC CHECKDB. Решение одной из ошибок проверки целостности базы данных.

Эта ошибка описывает несоответствие размещения данных в страницах индекса согласно указателям – ошибка логического уровня. Сказывает это тем, что при обращение к данным страницам возможны некорректные ошибки или ошибки выполнения запроса.

1) Если объектов много , то для начала выяснить что за объект – локализации проблемы:
Можно взять из текста ошибки

Либо запросом:
select object_name ( 228195863 )

index ID 1 – это кластерный индекс

если номер индекса >1 , то тогда запросом:
select * from sys . indexes where object_id = 228195863 and index_ >= 1
Мой результат : PK_t_DSY_PB_wrk_dosye

В данном случае просто это возможно простым перестроением индекса:

Либо возможен как вариант пересоздать индекс.
Проверить исправление возможно запусти команду:

Немножко всего .. из жизни администратора ms sql server

Данным заголовком будет начата серия постов по решению
проблем, которые появляются после проверки целостности базы данных процедурой DBCC CHECKDB.

Утром пришло письмо, что на одном
из сервере MS SQL не прошла проверка целостности базы данных.

Заглянув на сервер, увидел
подробную информацию ошибки:

DBCC results for ‘t_DSY_PB_wrk_dosye’.

Msg 8928, Level 16, State 1, Line 1

Object ID 228195863, index ID 1, partition ID
72057594061193216, alloc unit ID 72057594097565696 (type In-row data): Page
(1:505650) could not be processed.  See
other errors for details.

Msg 8976, Level 16, State 1, Line 1

Table error: Object ID 228195863, index ID 1, partition ID
72057594061193216, alloc unit ID 72057594097565696 (type In-row data). Page
(1:505650) was not seen in the scan although its parent (1:3527852) and
previous (1:3527595) refer to it. Check any previous errors.

Msg 8944, Level 16, State 17, Line 1

Table error: Object ID 228195863, index ID 1, partition ID
72057594061193216, alloc unit ID 72057594097565696 (type In-row data), page
(1:505650), row 1. Test (columnOffsets->offTbl [varColumnNumber] <=
(nextRec — pRec)) failed. Values are 880 and 455.

Msg 8944, Level 16, State 17, Line 1

Table error: Object ID 228195863, index ID 1, partition ID
72057594061193216, alloc unit ID 72057594097565696 (type In-row data), page
(1:505650), row 1. Test (columnOffsets->offTbl [varColumnNumber] <= (nextRec
— pRec)) failed. Values are 880 and 455.

Msg 8978, Level 16, State 1, Line 1

Table error: Object ID 228195863, index ID 1, partition ID
72057594061193216, alloc unit ID 72057594097565696 (type In-row data). Page
(1:3527596) is missing a reference from previous page (1:505650). Possible
chain linkage problem.

There are 11997711 rows in 1308185 pages for object
«t_DSY_PB_wrk_dosye».

CHECKDB found 0 allocation errors and 5 consistency
errors in table ‘t_DSY_PB_wrk_dosye’ (object ID 228195863).

Уровень серьезности ошибки 16(Level
16) показывает, что данную ошибку может исправить пользователь базы данных, или,
проще говоря ошибка, не сильно серьезная, но нужно исправить.
Эта ошибка описывает несоответствие
размещения данных в страницах индекса  согласно указателям — ошибка логического
уровня. Сказывает это тем, что при обращение к данным страницам возможны некорректные
ошибки или ошибки выполнения запроса.
1) Если объектов много , то для
начала выяснить что за объект — локализации проблемы:
Можно взять из текста ошибки
DBCC results for ‘t_DSY_PB_wrk_dosye’
Либо запросом:
select  object_name(228195863)
2) Выявили таблицу, теперь
необходимо выявить объект таблицы –индекс, с которым проблема:
index ID 1 – это кластерный
индекс

если номер индекса >1 , то
тогда запросом:
select * from sys. indexes where object_id=228195863 and
index_id=1
Мой результат : PK_t_DSY_PB_wrk_dosye

3)Выявили индекс, теперь его «лечим».
В данном случае просто это
возможно простым перестроением индекса:
alter index
PK_t_DSY_PB_wrk_dosye on t_DSY_PB_wrk_dosye rebuild;
Либо возможен как вариант
пересоздать индекс.
Проверить исправление возможно
запусти команду:
dbcc checktable («dbo.t_DSY_RB_wrk_dosye»)

Которая должна показать отсутвие
ошибок.
Меньше ошибок, Удачи!

 

Автоматическая проверка целостности базы данных SQL Server

Есть ли способ проверить целостность базы данных SQL Server? У меня есть эти разработчики (OK, включая меня), которые постоянно меняют объекты в нашей базе данных (views/functions/stored procs), а иногда мы меняем сигнатуры объектов или отбрасываем объекты, и другие объекты становятся invalid/uncompilable. я хотел бы получить какой-то отчет/предупреждение о том, какие объекты сломаны, предпочтительно тот, который может быть интегрирован с CruiseControl. NET. Идеи?

sql

sql-server

sql-server-2008

sql-server-2008-r2

Поделиться

Источник


Denis    

18 октября 2013 в 14:23

3 ответа


  • План технического обслуживания базы данных ASP.Net SQL Server SessionState (ASPState)

    Я хотел бы уточнить, каков оптимальный план обслуживания для базы данных ASPState, используемой состоянием сеанса ASP.Net SQL Server. Стандартный план обслуживания базы данных пользователей не кажется подходящим. Мне никогда не понадобится восстанавливать данные сеанса point-in-time, поэтому…

  • Как проверить SQL скриптов? (Тестирование Целостности Данных/Миграции)

    Наша команда (QA) сталкивается со следующей проблемой: У нас есть база данных, доступ к которой осуществляется только нашим приложением Core , которое является приложением WCF services . Наши клиентские приложения используют Core для доступа к базе данных. В какой-то момент нам предоставили новую…


Поделиться


Punter015    

18 октября 2013 в 14:55



2

Я думаю, что вам нужны модульные тесты базы данных, которые затем могут быть выполнены через CruiseControl.NET. Я рекомендую использовать tSQLt ( http://tsqlt.org ). RedGate также продает хороший GUI поверх этого продукта, но не требуется, чтобы получить необходимую вам функциональность.
( http://www.red-gate.com/products/sql-development/sql-test/

Поделиться


Unknown    

18 октября 2013 в 15:10



1

Проблема, которую вы описываете, распространена-иметь несколько разработчиков, работающих над базой данных, проблематично.

Насколько я знаю, нет простого способа проверить целостность объектов базы данных так, как вы упомянули — зависимости между хранимыми процедурами и т. д. разрешаются во время компиляции, и proc вернет ошибку, если эта зависимость недопустима во время выполнения. Вы можете заново скомпилировать все процедуры, функции, представления и т. д. чтобы избавиться от ошибок во время выполнения пакета.

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

Существует целый ряд решений этой проблемы, которые сводят ее к минимуму; в некотором роде это зависит от вашей настройки разработки, в какую сторону вы идете. Этот процесс обычно известен как «continuous database integration».

Джефф Этвуд предоставил обзор давным-давно, а обновление чуть менее давным-давно (проверьте ссылки). Также посмотрите на инструменты Redgate -они делают процесс довольно безболезненным.

Поделиться


Neville Kuyt    

18 октября 2013 в 15:09


  • SQL Server проверка целостности после включения / выключения identity_insert

    Я импортирую данные из устаревшего приложения (php + mysql) в переписанную версию (sql server 2008 и mvc3). В настоящее время я нахожусь в середине написания пакета синхронизации / преобразования БД. Данные mysql имеют первичные ключи, но по какой-то причине не имеют внешних ключей, и поскольку…

  • Уровень совместимости для базы данных SQL Server

    My database hoster позволяет восстановить SQL Server базы данных с уровнем совместимости 90 (SQL Server 2005). Моя база данных создается локально с уровнем совместимости 100 (SQL Server 2008). Итак, я сгенерировал скрипт своей базы данных (версия 2008) и запустил в SQL Server 2005, резервное…


Похожие вопросы:

SQL Server Запрос На Уменьшение Размера Базы Данных

У меня есть экспресс-база данных SQL Server 2008, которая имеет размер 7.8 GB DataFile 1.2 ГБ LogFile 6.6 GB Модель Восстановления = Полная Автоматическая Термоусадочная = Ложь Как лучше всего…

Проверка целостности файлов MD5

Я знаю, что функции hash выполняют вычисления, и конечный результат-строка с фиксированной длиной. Они используются для проверки того, что файлы одинаковы — например, загруженные файлы. Существует…

Простое моделирование существующей схемы базы данных SQL Server в Python

Я хочу написать несколько небольших инструментов для управления содержимым таблицы для существующего SQL Server 2005 DB. У меня есть несколько десятков таблиц справочного контента для приложения,…

План технического обслуживания базы данных ASP.Net SQL Server SessionState (ASPState)

Я хотел бы уточнить, каков оптимальный план обслуживания для базы данных ASPState, используемой состоянием сеанса ASP.Net SQL Server. Стандартный план обслуживания базы данных пользователей не…

Как проверить SQL скриптов? (Тестирование Целостности Данных/Миграции)

Наша команда (QA) сталкивается со следующей проблемой: У нас есть база данных, доступ к которой осуществляется только нашим приложением Core , которое является приложением WCF services . Наши…

SQL Server проверка целостности после включения / выключения identity_insert

Я импортирую данные из устаревшего приложения (php + mysql) в переписанную версию (sql server 2008 и mvc3). В настоящее время я нахожусь в середине написания пакета синхронизации / преобразования…

Уровень совместимости для базы данных SQL Server

My database hoster позволяет восстановить SQL Server базы данных с уровнем совместимости 90 (SQL Server 2005). Моя база данных создается локально с уровнем совместимости 100 (SQL Server 2008). Итак,…

Защита Базы Данных SQL Server

У меня есть мой SQL Server, работающий на удаленном сервере. Я хочу делегировать задачи своей команде, которая будет обращаться к серверу для выполнения приложения ASP.NET, и, следовательно, учетные…

SQL server проверка ссылочной целостности

У меня есть база данных с 2K + таблицами. Мне нужно проверить, используется ли строка в одной таблице какой-либо другой таблицей (все отношения запущены и работают с IDs). Единственная идея, которая…

Проверка целостности ссылочной полноты в SQL

У меня есть 3 таблицы- users , teams и team_members . Последний представляет собой карту many-to-many от team(id) до user(id) (внешние ключи к teams и users соответственно). Есть ли какая-либо…

Как повредить вашу базу данных, чтобы проверить sql проверки целостности логика работает?

Я написал сценарии для плана поддержки баз данных

теперь я хочу проверить свой сценарий

у меня нет никакой свернутой базы данных, тогда как я могу поверить, что мой сценарий проверки integirty дает правильное сообщение об ошибке, если мой DB исправлен

я хочу исправить свою базу данных, чтобы проверить это, как исправить базу данных 🙂

DBCC CHECKDB С NO_INFOMSGS;
GO

sql

sql-server

sql-scripts

Поделиться

Источник


Yogesh    

11 января 2013 в 15:33

3 ответа


  • какой код может повредить мой сайт

    Я хочу убедиться, что мошенники не могут повредить мой сайт или базу данных, вставляя код в мои поля ввода. Какой код я должен использовать для его тестирования? Я знаю, что есть теги html, такие как iframe, но я не знаю, что положить внутрь, чтобы проверить это. Спасибо.

  • Вставьте файл .sql в вашу базу данных MySQL

    Я установил XAMPP. В этом я сделал базу данных через PhpMyadmin. Как я могу загрузить файл SQL в базу данных?


Поделиться


Brian Knight    

11 января 2013 в 15:51



1

Для возможного тестового сценария отбросьте ограничения и / или триггеры, повредите ваши данные (т. е. установите ссылки бывшего внешнего ключа на NULL), а затем посмотрите, обнаружит ли ваш сценарий повреждение.

Поделиться


matthudson    

11 января 2013 в 15:37



0

Доберитесь до внутренних служб и удалите все, что кажется важным. Если это не то, что вы хотите, то скопируйте все файлы на диск flash и повторно извлеките его неправильно — в конечном итоге он будет поврежден. Затем загрузите его обратно на серверную машину и проверьте. Но есть вероятность, что ваш сценарий будет поврежден

Поделиться


user5945423    

18 февраля 2016 в 10:56


  • Инструменты для проверки производительности базы данных Oracle

    У меня есть автономное приложение, которое запускает несколько потоков, для каждого потока есть подключение к базе данных, бизнес-логика заключается в том, чтобы сделать некоторые проверки и отправить данные в базу данных, это слишком много информации, около 2 миллионов строк за один час. Поэтому…

  • Логика проверки формы перед вставкой в базу данных

    Я хотел бы написать логику для проверки данных перед вставкой в базу данных. Если данные не верны, то это подскажет пользователю ошибки, но тогда я столкнусь с проблемой, которая не та логика, которую я хочу: (1) сообщение Data successfully inserted! показано даже сообщение об ошибке проверки было…


Похожие вопросы:

FluentNHibernate, Как проверить/проверить базу данных? (SQL Server Express)

С SQL Server Экспресс и FluentNHibernate: Я сопоставляю классы, настраиваю SessionFactory и выполняю SchemaExport; все работает. Но при запуске программы; как вы проверяете / проверяете, что таблицы…

Как я могу повредить базу данных SQL CE?

Я хочу иметь возможность проверить наличие поврежденной базы данных при запуске, а затем восстановить ее программно. Я могу сделать это достаточно легко. Моя проблема в том, что я хочу проверить,…

Как проверить SQL скриптов? (Тестирование Целостности Данных/Миграции)

Наша команда (QA) сталкивается со следующей проблемой: У нас есть база данных, доступ к которой осуществляется только нашим приложением Core , которое является приложением WCF services . Наши…

какой код может повредить мой сайт

Я хочу убедиться, что мошенники не могут повредить мой сайт или базу данных, вставляя код в мои поля ввода. Какой код я должен использовать для его тестирования? Я знаю, что есть теги html, такие…

Вставьте файл .sql в вашу базу данных MySQL

Я установил XAMPP. В этом я сделал базу данных через PhpMyadmin. Как я могу загрузить файл SQL в базу данных?

Инструменты для проверки производительности базы данных Oracle

У меня есть автономное приложение, которое запускает несколько потоков, для каждого потока есть подключение к базе данных, бизнес-логика заключается в том, чтобы сделать некоторые проверки и…

Логика проверки формы перед вставкой в базу данных

Я хотел бы написать логику для проверки данных перед вставкой в базу данных. Если данные не верны, то это подскажет пользователю ошибки, но тогда я столкнусь с проблемой, которая не та логика,…

Проверка целостности данных базы данных с помощью запроса Python SqlAlchemy или Sql

Я импортировал и буду продолжать импортировать данные из разных источников в базу данных sql server. Некоторые логические проверки, такие как сумма одного столбца, должны быть в 5 долларах разницы с…

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

Я получаю эту ошибку после развертывания веб-сайта Umbraco на общем хостинге. Не мог найти никакого решения. Попробовал освежить App Pool Кэш Xml поврежден. Используйте панель мониторинга…

Можно ли повредить репозиторий git с помощью удаленного управления?

Поэтому я пытаюсь понять, каким образом злоумышленник может повредить репозиторий git. Например, предположим, что есть ненадежный сервер, на который вы входите, и у него есть удаленный компьютер,…

Проверка, восстановление и оптимизация баз MySQL

Программа mysqlcheck используется для проверки целостности (-c, -m, -C), восстановления (-r), анализа (-a) или оптимизации (-o) таблиц базы данных MySQL. Некоторые опции (например -e и -q) могут использоваться одновременно.

Не все опции поддерживаются различными движками MySQL. Опции -c, -r, -a и -o взаимоисключаемые, что означает, что будет применена последняя указанная опция.

Если не указано ничего, то будет применена опция -c. Альтернативами (синонимами) являются:

mysqlrepair: опция по умолчанию -r
mysqlanalyze: опция по умолчанию -a
mysqloptimize: опция по умолчанию -o

Использование:

mysqlcheck [OPTIONS] database [tables]

или:

 mysqlcheck [OPTIONS] --databases DB1 [DB2 DB3...]

или

mysqlcheck -uлогин -pпароль [--auto-repair] [--check] [--optimize] [--all-databases] [имя_базы_данных]

Опции:

-A, --all-databases

Проверить все базы данных. Аналогична опции —databases, если указать все базы данных.

-1, --all-in-1

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

-a, --analyze

Анализировать данные таблицы.

--auto-repair

Если проверенная таблица повреждена, автоматически восстановить ее. Исправления будут произведены после проверки всех таблиц, если были обнаружены повреждения.

-#, --debug=...

Выводит информацию журнала отладки. Часто используется следующий набор параметров: ‘d:t:o,filename’

--character-sets-dir=...

Директория, где находятся установки символов.

-c, --check

Проверить таблицу на наличие ошибок.

-C, --check-only-changed

Проверить только таблицы, измененные со времени последней проверки или некорректно закрытые.

--compress

Использовать сжатие данных в протоколе сервер/клиент.

-?, --help

Вывести данную вспомогательную информацию и выйти из программы.

-B, --databases

Проверить несколько баз данных. Обратите внимание на разницу в использовании: в этом случае таблицы не указываются. Все имена аргументов рассматриваются как имена баз данных.

--default-character-set=...

Установить набор символов по умолчанию.

-F, --fast

Проверить только базы данных, которые не были закрыты должным образом.

-f, --force

Продолжать даже при получении ошибки SQL.

-e, --extended

При использовании данного параметра совместно с CHECK TABLE можно быть уверенным в целостности таблицы. Если же использовать этот параметр с REPAIR TABLE, запустится расширенное восстановление таблицы.

-h, --host=...

Хост базы данных.

-m, --medium-check

Быстрее, чем —extended-check, но находит только 99,99 процентов всех ошибок.

-o, --optimize

Оптимизировать таблицу.

-p, --password[=...]

Используемый пароль при подключении к серверу. Если пароль не указан, у пользователя запрашивается пароль с терминала.

-P, --port=...

Номер порта, используемого для подключения по TCP/IP.

--protocol=(TCP | SOCKET | PIPE | MEMORY)

Для указания протокола соединения, который надлежит использовать.

-q, --quick

При использовании данной опции совместно с CHECK TABLE предотвращается сканирование строк для корректировки неправильных связей. Это наиболее быстрый метод проверки. Если же использовать этот параметр с REPAIR TABLE, программа попытается восстановить только систему индексов. Это наиболее быстрый метод восстановления таблицы.

-r, --repair

Может исправить почти все, за исключением уникальных ключей, имеющих дубликаты.

-s, --silent

Выводить только сообщения об ошибках.

-S, --socket=...

Файл сокета, используемый для подсоединения.

--tables

Перекрывает опцию —databases (-B).

-u, --user=#

Имя пользователя MySQL, если этот пользователь в данное время не является активным.

-v, --verbose

Вывести информацию о различных этапах.

-V, --version

Вывести информацию о версии и выйти из программы.

Проверка базы данных 1C на целостность и исправление ошибок MS SQL. | +Aliance

Делимся опытом, как исправить ошибки в логической целостности в базе 1С, размещенной на Microsoft SQL Server.

Поступила жалоба от бухгалтера о проблемах с проведением документов в 1С.

Из скриншота выяснилось, что 1С «ругается» на проблемы с согласованностью «внутри» базы данных и предлагает провести проверку на согласованность.

Переходим в SQL Server Management Studio и, сделав, на всякий случай, бэкап текущего состояния, выполняем проверку:

Для начала переводим нужную нам БД в однопользовательский режим

Запускаем Окно запросов (CTRL+N). Выбираем Новый запрос и вводим запрос Transact-SQL (T-SQL) в этом окне:

ALTER DATABASE KA
SET SINGLE_USER
WITH ROLLBACK IMMEDIATE

Далее, вводим запрос на сканирование базы данных:

USE [ka]
GO
DBCC CHECKDB(N’ka’) WITH NO_INFOMSGS
GO

Проверка продлилась около 15 минут, после чего выдала следующее:

CHECKDB обнаружил 0 ошибок размещения и 766 ошибок согласованности, не связанных ни с одним объектом.
CHECKDB обнаружил 0 ошибок размещения и 1 ошибок согласованности в таблице «sys.sysdbfiles» (идентификатор объекта 20).
CHECKDB обнаружил 0 ошибок размещения и 1 ошибок согласованности в таблице «sys.sysxmlcomponent» (идентификатор объекта 91).
CHECKDB обнаружил 0 ошибок размещения и 49 ошибок согласованности в таблице «_AccRg1025» (идентификатор объекта 1778313595).
CHECKDB обнаружил 0 ошибок размещения и 3 ошибок согласованности в таблице «_AccRgAT21046» (идентификатор объекта 1826313766).
CHECKDB обнаружил 0 ошибок размещения и 1783 ошибок согласованности в таблице «_AccRg1051» (идентификатор объекта 1906314051).
CHECKDB обнаружил 0 ошибок размещения и 2603 ошибок согласованности в базе данных «KA».

Вариант решения №1: восстановление из бэкапа выявило накопительный характер ошибки: чем раньше сделан бэкап – тем меньше в базе ошибок, вплоть до самого «дальнего» (14 дней). Примерно на третьем бэкапе количество ошибок перестало уменьшаться – стало ясно, что этим путём мы придём только к потере актуальности базы и проблему не решить

Вариант решения №2: В справочной информации описаны три возможных варианта исправления этих ошибок, рассмотрим каждый:

REPAIR_FAST

Синтаксис поддерживается только для обеспечения обратной совместимости. Действия по восстановлению не выполняются.

REPAIR_REBUILD

Выполняет действия по восстановлению данных, которые можно выполнить без риска их потери. Это может быть быстрое восстановление (например, восстановление отсутствующих строк в некластеризованных индексах) или более ресурсоемкие операции (например, перестроение индекса).

REPAIR_ALLOW_DATA_LOSS

Пытается устранить все обнаруженные ошибки. Эти исправления могут привести к частичной потере данных.

Аргумент REPAIR_FAST нам не подходит, REPAIR_ALLOW_DATA_LOSS оставим на крайний случай — пробуем REPAIR_REBUILD:

DBCC CHECKDB(N’ka’, REPAIR_REBUILD) WITH NO_INFOMSGS

CHECKDB обнаружил 0 ошибок размещения и 766 ошибок согласованности, не связанных ни с одним объектом.
CHECKDB обнаружил 0 ошибок размещения и 1 ошибок согласованности в таблице «sys.sysdbfiles» (идентификатор объекта 20).
CHECKDB обнаружил 0 ошибок размещения и 1 ошибок согласованности в таблице «sys.sysxmlcomponent» (идентификатор объекта 91).
CHECKDB обнаружил 0 ошибок размещения и 49 ошибок согласованности в таблице «_AccRg1025» (идентификатор объекта 1778313595).
CHECKDB обнаружил 0 ошибок размещения и 3 ошибок согласованности в таблице «_AccRgAT21046» (идентификатор объекта 1826313766).
CHECKDB обнаружил 0 ошибок размещения и 1783 ошибок согласованности в таблице «_AccRg1051» (идентификатор объекта 1906314051).
CHECKDB обнаружил 0 ошибок размещения и 2603 ошибок согласованности в базе данных «KA».

Не помогло, переводим базу данных обратно в многопользовательский режим:

ALTER DATABASE KA
SET MULTI_USER

На всякий случай, я попробовал провести обслуживание базы данных и перепроверил – результат тот же.

Решил провести тестирование и исправление информационной базы средствами 1С, на что получил ошибку

Выгрузить базу данных в *.dt файл тоже не удалось:

Что ж, стало понятно, что часть потерянных данных – меньшее зло, по сравнению с «развалившейся» базой данных, пробуем REPAIR_ALLOW_DATA_LOSS:

DBCC CHECKDB (N’KA’, REPAIR_ALLOW_DATA_LOSS) WITH NO_INFOMSGS

И, наконец, после нескольких прогонов, количество ошибок немного уменьшилось:

CHECKDB обнаружил 0 ошибок размещения и 733 ошибок согласованности, не связанных ни с одним объектом.
CHECKDB обнаружил 0 ошибок размещения и 1 ошибок согласованности в таблице «sys.sysdbfiles» (идентификатор объекта 20).
CHECKDB обнаружил 0 ошибок размещения и 1 ошибок согласованности в таблице «sys.sysxmlcomponent» (идентификатор объекта 91).
CHECKDB обнаружил 0 ошибок размещения и 1783 ошибок согласованности в таблице «_AccRg1051» (идентификатор объекта 1906314051).
CHECKDB обнаружил 0 ошибок размещения и 2518 ошибок согласованности в базе данных «KA «.

Ситуацию это не спасло: база, по-прежнему не выгружалась и не «лечилась» средствами 1С.

Дальнейшие попытки (по очереди несколько раз запускал REPAIR_REBUILD и REPAIR_ALLOW_DATA_LOSS) не увенчались успехом: количество ошибок не уменьшилось, база, по-прежнему, не выгружалась и не «лечилась».

Коллеги подсказали попробовать очистить (именно очистить, без удаления самой таблицы) «проблемную» таблицу в MS SQL.

Больше всего ошибок в таблице «_AccRg1051» – ей и было принято решение заняться:

Вводим запрос

TRUNCATE TABLE _AccRg1051

И, после успешного выполнения, прогоняем проверку еще раз:

DBCC CHECKDB(N’ka’) WITH NO_INFOMSGS

15 минут ожидания и, о чудо – все ошибки исчезли, в том числе и в остальных таблицах.

Перевожу базу в многопользовательский режим, выгружаю в *.dt файл и загружаю обратно.

Звоню бухгалтеру – прошу проверить проблемные документы: всё работает нормально. Пускаю остальных пользователей в базу.

Через час снова ошибка:

Делаем вывод, что выгрузка в *.dt – не панацея. Выгоняем Вежливо просим пользователей выйти и ещё немного потерпеть и тестируем базу с исправлением ошибок в режиме конфигуратора 1С со следующими параметрами

Видим, что всё ОК

Пускаем обратно пользователей в 1С и идём молиться настраивать планы обслуживания баз данных.

Подробности и детали вы всегда можете уточнить у наших системных инженеров, написав на почту [email protected]

Задача проверки целостности базы данных (план обслуживания) — SQL Server

  • 2 минуты на чтение

В этой статье

Применимо к: SQL Server (все поддерживаемые версии)

Используйте диалоговое окно Check Database Integrity Task для проверки распределения и структурной целостности пользовательских и системных таблиц и индексов в базе данных, выполнив инструкцию DBCC CHECKDB Transact-SQL.Запуск DBCC гарантирует, что о любых проблемах целостности базы данных сообщается, тем самым позволяя решить их позже системному администратору или владельцу базы данных.

Опции

Соединение
Выберите соединение с сервером, которое будет использоваться при выполнении этой задачи.

Новое
Создайте новое соединение с сервером, которое будет использоваться при выполнении этой задачи. Диалоговое окно Новое соединение описано ниже.

Базы данных
Укажите базы данных, затронутые этой задачей.

  • Все базы

    Создайте план обслуживания, который запускает задачи обслуживания для всех баз данных Microsoft SQL Server, кроме tempdb .

  • Все базы данных системы

    Создайте план обслуживания, который запускает задачи обслуживания для каждой из системных баз данных SQL Server, кроме tempdb . Для баз данных, созданных пользователями, не выполняются никакие задачи обслуживания.

  • Все пользовательские базы данных

    Создайте план обслуживания, который запускает задачи обслуживания для всех созданных пользователями баз данных.Для системных баз данных SQL Server не выполняются задачи обслуживания.

  • Эти специальные базы данных

    Создайте план обслуживания, который запускает задачи обслуживания только для выбранных баз данных. Если выбран этот параметр, должна быть выбрана хотя бы одна база данных в списке.

    Примечание

    Планы обслуживания работают только с базами данных, для которых установлен уровень совместимости 80 или выше. Базы данных, для которых установлен уровень совместимости 70 или ниже, не отображаются.

Включить индексы
Проверьте целостность всех страниц индекса, а также страниц данных таблицы.

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

Tablock
Заставляет DBCC CHECKDB получить блокировки вместо использования внутреннего моментального снимка базы данных.Это включает краткосрочную эксклюзивную (X) блокировку базы данных. Использование этого параметра может помочь DBCC CHECKDB работать быстрее в базе данных при большой нагрузке, но снижает доступный параллелизм в базе данных во время работы DBCC CHECKDB.

Просмотр T-SQL
Просмотр операторов Transact-SQL, выполняемых для сервера для этой задачи, на основе выбранных параметров.

Примечание

Когда количество затронутых объектов велико, отображение может занять значительное время.

Диалоговое окно «Новое соединение»

Имя подключения
Введите имя для нового подключения.

Выберите или введите имя сервера
Выберите сервер для подключения при выполнении этой задачи.

Обновить
Обновить список доступных серверов.

Введите информацию для входа на сервер
Укажите способ аутентификации на сервере.

Использовать встроенную безопасность Windows
Подключитесь к экземпляру ядра СУБД SQL Server с проверкой подлинности Windows.

Используйте конкретное имя пользователя и пароль
Подключитесь к экземпляру ядра СУБД SQL Server, используя проверку подлинности SQL Server. Этот вариант недоступен.

Имя пользователя
Укажите имя входа SQL Server для использования при аутентификации. Этот вариант недоступен.

Пароль
Укажите пароль для использования при аутентификации. Этот вариант недоступен.

См. Также

DBCC CHECKDB (Transact-SQL)

Проверка целостности базы данных SQL Server

Содержание

  • О проверке целостности базы данных SQL
  • Как часто следует выполнять проверки целостности базы данных в базе данных SQL Server?
  • Как проверить целостность базы данных в SQL Server?
  • Используйте SQL Server Management Studio
  • Использование задачи проверки целостности базы данных
  • Что делать, если проверка целостности базы данных завершилась неудачно?
  • Альтернатива исправлению ошибок согласованности базы данных SQL
  • Заключение

О проверке целостности базы данных SQL

Выполнение проверок целостности является частью плана обслуживания базы данных SQL Server, который помогает обеспечить согласованность базы данных.

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

Как часто следует выполнять проверки целостности базы данных в базе данных SQL Server?

Выполнение проверки целостности может быть трудоемким и ресурсоемким процессом. Таким образом, важно понимать, как часто следует выполнять проверки целостности.Чтобы решить это, возьмем два примера:

  • Ваша база данных SQL повреждена или повреждена. У вас нет резервных копий. Единственный способ восстановить базу данных — запустить опцию восстановления, которая связана с риском потери данных. В этом случае регулярная проверка целостности (ежедневно или ежечасно) может выявить повреждение базы данных на раннем этапе, сводя к минимуму потерю данных и время простоя.
  • У вас есть комплексная стратегия резервного копирования базы данных, позволяющая восстанавливать базу данных SQL без потери данных или простоя или с минимальными потерями.В этом случае вы можете проводить проверки целостности один раз в неделю.

Как проверить целостность базы данных в SQL Server?

Ниже приведены два метода проверки целостности базы данных SQL:

Метод 1. Использование SQL Server Management Studio (SSMS)

  • Откройте SSMS и подключитесь к своему экземпляру SQL Server.
  • Из Базы данных щелкните правой кнопкой мыши базу данных, для которой вы хотите выполнить проверку целостности, а затем выберите опцию Новый запрос .
  • В окне «Новый запрос» введите DBCC CHECKDB , а затем нажмите кнопку «Выполнить », чтобы запустить запрос.

Если выполняется отчет запроса «0 ошибок распределения и 0 ошибок согласованности» , это означает, что база данных исправна. Если он сообщает об ошибках согласованности, проверьте рекомендуемый минимальный уровень исправления, который вам необходимо выполнить, в нижней части сводки сообщения (см. Изображение ниже):

Рисунок 1. Выполнение инструкции DBCC CHECKDB для проверки целостности базы данных

Метод 2 — Использование задачи проверки целостности базы данных

Выполните следующие действия, чтобы проверить целостность базы данных с помощью «Задача проверки целостности базы данных» в службах интеграции SQL Server (SSIS):

  • Откройте инструменты данных SQL Server (SSDT).
  • В открывшемся окне нажмите File > New > Project .
  • В появившемся окне ‘New Project’ выберите Integration Services Project , а затем нажмите OK .
  • В SSIS Toolbox , в Другие задачи дважды щелкните Проверить целостность базы данных Задача .Задача помогает проверить логическую и физическую целостность объектов базы данных.
  • Дважды щелкните поле Check Database Integrity Task . Откроется всплывающее окно «Задача проверки целостности базы данных» . В этом окне создайте новое соединение, нажав кнопку New .
  • В открывшемся диалоговом окне «Свойства подключения» введите имя подключения , имя вашего SQL Server и выберите метод Проверка подлинности Windows (рекомендуется).Щелкните ОК .
  • Щелкните стрелку раскрывающегося списка рядом с полем База данных: . Выберите одну или несколько баз данных, для которых вы хотите выполнить проверку целостности. Нажмите ОК .
  • При желании можно нажать кнопку View T-SQL , чтобы просмотреть инструкцию DBCC CHECKDBA для выполнения запланированной проверки целостности выбранных баз данных.

Примечание: Установите флажок «Включить индексы» , если вы хотите также выполнить проверку целостности на страницах индекса базы данных.

  • Инструкция DBCC CHECKDB для запуска запланированной проверки целостности.
  • Дважды щелкните задачу «Выполнить оператор T-SQL» и добавьте задачи с ограничением.
  • Нажмите кнопку «Начать отладку» , чтобы выполнить «Задача проверки целостности базы данных» , чтобы запустить все созданные вами задачи.

Задачи будут отображаться с зеленым статусом, если все в порядке.

Но иногда проверки целостности могут давать сбой и показывать ошибки. Это произойдет при повреждении базы данных SQL.

Что делать, если проверка целостности базы данных SQL не удалась?

Если проверка целостности базы данных SQL завершилась неудачно, рекомендуется восстановить базу данных SQL из последней резервной копии. Если у вас нет резервных копий, вы можете выполнить процесс восстановления базы данных, выполнив команду DBCC CHECKDB с опцией «REPAIR_ALLOW_DATA_LOSS» .

Прочтите это: Как восстановить базу данных SQL с помощью команды DBCC CHECKDB?

Параметр REPAIR_ALLOW_DATA_LOSS может исправить ошибки согласованности базы данных. Однако это помогает исправить только физическую структуру базы данных, а не внутреннюю целостность данных. Другими словами, выполнение команды DBCC CHECKDB с опцией REPAIR_ALLOW_DATA_LOSS может привести к потере данных.

Вы также можете исправить ошибки согласованности базы данных SQL, выполнив команду «REPAIR_REBUILD».Команда обычно используется для исправления проблемы в некластеризованных индексах. Этот вариант не приводит к потере данных.

Альтернатива исправлению ошибок согласованности базы данных SQL

Если при выполнении команды DBCC CHECKDB не удалось сохранить целостность и согласованность данных в базе данных SQL Server, можно использовать альтернативный инструмент восстановления базы данных SQL, например Stellar Repair для MS SQL, чтобы решить эту проблему.

Программа восстанавливает сильно поврежденные файлы MDF / NDF базы данных SQL, сохраняя целостность данных.Он может исправить повреждение баз данных SQL в системах Windows и Linux. Средство восстановления SQL может восстанавливать все объекты базы данных, включая удаленные записи таблиц версии SQL 2019, 2017, 2016 и более ранних версий.

Заключение

При запуске SQL Server периодически проверяйте целостность базы данных, чтобы убедиться, что база данных исправна и не повреждена. В этой статье объясняются действия, которые необходимо выполнить в SSIS для проверки целостности базы данных SQL Server.Также обсуждается использование команды DBCC CHECKDB с параметрами восстановления в случае сбоя проверки целостности. Но выполнение DBCC CHECKDB с командой REPAIR_ALLOW_DATA_LOSS может привести к потере данных и вызвать ошибки несогласованности. В этом случае лучшей альтернативой является использование Stellar Repair для MS SQL, чтобы исправить ошибки согласованности базы данных без риска потери данных.

Узнайте о проверке целостности базы данных SQL Server

В наши дни в SQL Server есть множество баз данных.Таким образом, есть вероятность, что они столкнутся с проблемой целостности базы данных SQL при работе с несколькими базами данных SQL. Из-за огромного количества данных SQL Server становится уязвимым для повреждения. Итак, здесь мы обсудим некоторую проверку целостности базы данных SQL Server.

Решение для проверки целостности базы данных SQL Server

Чтобы проверить проблему целостности базы данных SQL Server, администратор базы данных выполняет инструкции DBCC (команды консоли базы данных). Возможно, вы слышали или не слышали об этой команде, но она используется для выполнения таких операций, как обслуживание, разное, информационное и проверочное.Однако для проверки логической или физической целостности базы данных SQL Server необходимо выполнить команду DBCC CHECKDB.

С помощью команды CHECKDB выполняются следующие операции:

  • DBCC CHECKALLOC — Проверяет согласованность структуры дискового хранилища для конкретной базы данных.
  • DBCC CHECKTABLE — Эта команда используется для проверки целостности базы данных SQL Server всех страниц и структур, которые управляют представлением таблицы или индекса.
  • DBCC CHECKCATALOG — выполняется для проверки согласованности в конкретной базе данных.
  • DBCC CHECKDB — используется для проверки согласованности каталога в указанной базе данных SQL.

Синтаксис DBCC CHECKDB

Какова цель DBCC CHECKDB?

Команда DBCC CHECKDB выполняет в основном две роли. Первая цель — проверить целостность базы данных SQL Server, а вторая — исправить ошибки.

Проверка целостности:

Команда DBCC CHECKDB выполняет несколько шагов по ее выполнению для проверки целостности базы данных SQL Server.

  • Проверьте выделенные структуры, такие как GAM, SGAM, PFS, IAM
  • Проверьте целостность таблицы и всех ее индексов.
  • Наконец, проверьте все системные каталоги.

Исправление:

После того, как вы проверили базу данных SQL и заметили, что целостность не поддерживается.Затем вам необходимо исправить все возможные поврежденные или искаженные страницы. DBCC CheckDB сама может исправить эти повреждения.

Параметр «REPAIR_ALLOW_DATA_LOSS» заменяет поврежденную страницу на новую. Используя эту команду, вы можете сохранить целостность базы данных SQL Server. Но имейте в виду, что мы говорим только о физической структуре, а не о внутренней целостности данных.

Другой способ исправить целостность базы данных SQL Server — это команда REPAIR_REBUILD.Он используется для исправления проблемы в некластеризованных индексах. С помощью этой опции мы не теряем элементы данных.

Процесс для выполнения команды CHECKDB

Если говорить о процессе выполнения команды CHECKDB, он не запускается напрямую в базе данных SQL. Для выполнения команды создается скрытый снимок базы данных, и команда запускается на основе этого снимка. Но большинство людей понимают это только тогда, когда команда CheckDB запрещает выполнение, и как только они начинают поиск по ней, они узнают о «некотором снимке», создание которого не удалось.В этой ситуации вам обязательно захочется, что делать, если создание снимка не удается? Для этого есть три варианта. Вы можете выбрать любой из них:

  1. Исправьте разрешение на создание скрытого снимка.
  2. Выполните DBCC CHECKDB с опцией TABLOCK. Это может вызвать проблемы, так как база данных будет объектом блокировок.
  3. Создайте процесс, выполнив следующие шаги:
    • Создайте снимок базы данных.
    • Запустите команду DBCC CheckDB для этого снимка.

Ограничения команды проверки целостности базы данных SQL Server

Несмотря на то, что команда DBCC CHECKDB поддерживает целостность базы данных SQL Server, существует несколько ограничений, например, она не может исправить основные проблемы целостности базы данных SQL. Кроме того, ошибки, обнаруженные в системных таблицах и чистоте данных, не могут быть устранены с помощью команды DBCC CHECKDB. База данных SQL должна быть в режиме SINGLE_USER, чтобы выполнить исправление с помощью команды DBCC CHECKDB.

Когда команда CHECKDB не работает?

Если DBCC CHECKDB не удалось выполнить проверку целостности базы данных Microsoft SQL Server, вы можете использовать SQL Database Recovery Tool в качестве альтернативного варианта. Это программное обеспечение позволяет поддерживать как внутреннюю, так и внешнюю целостность после выполнения процесса восстановления. Он сканирует вашу базу данных и одновременно выявляет проблему и восстанавливает ее. Помимо этого, этот профессиональный инструмент имеет несколько функций, которые отличают его от других.Это приложение может легко удалить повреждение из базы данных SQL. Но также предоставляет вам расширенные функции, такие как пользователь может восстанавливать удаленные объекты базы данных таблиц SQL. Кроме того, это приложение поддерживает последнюю версию SQL Server 2019/2017/2016/2014/2012 и его версии ниже.

Загрузить сейчас Купить сейчас

Собираем все вместе

База данных

SQL играет важную роль в любой организации. Существует множество причин, которые могут повлиять на целостность базы данных SQL Server, поэтому вы должны проверить целостность базы данных SQL Server в базе данных.Следовательно, мы обсудили команду DBCC CHECKDB для проверки целостности базы данных SQL Server, поддерживается она или нет. Если не поддерживать, команда исправит проблемы. Но в случае серьезной проблемы рекомендуется использовать программу SysTools SQL Database Recovery.

Часто задаваемые вопросы

Что такое целостность базы данных в SQL Server?

Целостность данных означает точность и непротиворечивость данных.

Есть ли какие-либо отрицательные последствия при использовании DBCC CHECKDB?

Как правило, при проверке целостности базы данных такого воздействия на базу данных SQL нет.Но он не сможет исправить основные проблемы с целостностью базы данных SQL.

Можно ли восстановить базу данных с помощью команды DBCC CHECKDB «REPAIR_ALLOW_DATA_LOSS»?

Да, но Repair_Allow_Data_Loss не считается лучшим вариантом. Поскольку выполнение этой команды не очень поддерживается, так как это может вызвать проблемы с потерей данных.

Об авторе
Ашвани Тивари

Как главный технический оператор, я осведомлен о технических тонкостях, с которыми сталкивается пользователь при работе с несколькими технологиями.Итак, в моих блогах и статьях я люблю помогать всем пользователям, которые сталкиваются с различными проблемами при работе с технологиями.

Как запустить DBCC CHECKDB для проверки целостности базы данных SQL — SQLServerCentral

Команда консоли базы данных CHECKDB (DBCC CHECKDB) используется для проверки целостности (физической и логической) объектов в базе данных SQL Server. Команда поддерживается в базах данных, содержащих таблицы, оптимизированные для памяти, но проверка поддерживается только в дисковых системах. столы.Параметр восстановления DBCC недоступен в таблицах, оптимизированных для памяти, и поэтому приводит к необходимости регулярного резервного копирования базы данных. В случае возникновения проблемы в таблице, оптимизированной для памяти, данные могут быть восстановлены из последней выполненной резервной копии.

CHECKDB выполняет следующие операции:

  • Выполнение DBCC CHECKALLOC в базе данных SQL.
  • Выполнение DBCC CHECKTABLE для каждой таблицы и представления базы данных SQL.
  • Выполнение DBCC CHECKCATALOG в базе данных SQL.
  • Проверка содержимого индексированного представления базы данных.
  • Проверка согласованности на уровне ссылок между каталогами файлов и метаданными таблицы.
  • Проверка данных сервисного брокера.

Поскольку DBCC CHECKDB выполняет все остальные команды, нет необходимости запускать команды CHECKALLOC, CHECKTABLE и CHECKCATALOG по отдельности.

Синтаксис DBCC CHECKDB

Аргументы, используемые в приведенном выше синтаксисе, означают следующее:

имя_базы_данных | database_id | 0
Это имя базы данных.Если имя не указано или записан только 0, то используется текущая база данных.
NOINDEX
Указывает, что проверка целостности некластеризованных индексных таблиц не должна выполняться. Это приводит к сокращению времени полного выполнения. Этот синтаксис не влияет на данные, находящиеся в таблицах.
REPAIR_ALLOW_DATA_LOSS
Этот синтаксис исправляет ошибки, обнаруженные в базе данных. Это может привести к потере некоторых данных.

Примечание: Этот синтаксис поддерживается Microsoft и не всегда оказывается идеальным решением для перевода базы данных в хорошее физическое состояние.Это связано с тем, что он удаляет все данные, которые оказались поврежденными, и может привести к большей потере данных, чем это было первоначально сделано с базой данных. Поэтому его следует использовать в крайнем случае.

REPAIR_FAST
Этот аргумент поддерживает только обратную совместимость и не выполняет никаких исправлений.
РЕМОНТ ПЕРЕСТРОЙКА
Этот аргумент включает более быстрый процесс восстановления, который не представляет угрозы потери данных.
ALL_ERRORMSGS
Здесь показаны все ошибки, возникающие во всех объектах.Включение или исключение этого синтаксиса не будет иметь никакого эффекта, поскольку сообщения об ошибках обычно сортируются по идентификатору объекта. Максимальное количество создаваемых сообщений об ошибках может достигать 1000.
EXTENDED_LOGICAL_CHECKS
Этот аргумент запускает логическую непротиворечивую проверку представлений и индексов, только если уровень совместимости равен 100.
NO_INFOMSGS
Удаляет все информационные сообщения.
НАСТОЛЬНЫЙ БЛОК
Этот синтаксис обеспечивает монопольную блокировку базы данных и увеличивает скорость DBCC CHECKDB для базы данных во время большой нагрузки.Но это снижает доступность базы данных для одновременных операций.
ТОЛЬКО СМЕТА
Указывает или оценивает объем пространства, который потребуется базе данных для выполнения команды CHECKDB.
ТОЛЬКО ФИЗИЧЕСКИЕ
Это накладывает ограничение на проверку только физической структуры базы данных. Кратковременная проверка физической базы данных сопровождается обнаружением разорванных страниц, сбоев и общих проблем, с которыми сталкиваются пользователи.
ЧИСТОТА ДАННЫХ
Этот синтаксис проверяет значения столбцов, которые либо выходят за пределы допустимого диапазона, либо являются недопустимыми.Проверки целостности значения столбца включены по умолчанию и не нуждаются в синтаксисе DATA_PURITY.

О чем нужно помнить

  • Отключенные индексы не могут быть проверены с помощью DBCC CHECKDB.
  • Определяемые пользователем и упорядоченные по байтам типы должны быть сериализованы, если необходимо выполнить DBCC CHECKDB. В любом другом случае возникает ошибка 2537.
  • DBCC CHECKDB нельзя запускать напрямую в базе данных ресурсов, так как ее можно изменять только в одномодовом режиме.

Сообщения об ошибках, созданные DBCC CHECKDB

По завершении выполнения команды CHECKDB в журнал ошибок SQL записывается сообщение.В случае успеха он генерирует сообщение, указывающее на успех и общее время, в течение которого выполнялась команда. В случае сбоя процесс прекращается из-за возникновения некоторой ошибки, о чем свидетельствует сообщение. Различные значения состояния, которые представляют сообщение об ошибке:

Отчет об ошибке

При обнаружении повреждения командой CHECKDB в каталоге журнала SQL-сервера создается файл дампа с именем SQLDUMPNNNN.txt. Если сбор данных об использовании функций и отчеты об ошибках включены в SQL, отчет об ошибках отправляется в Microsoft для улучшения.

Восстановление базы данных

В случае возникновения ошибки в SQL-сервере рекомендуется восстановить базу данных из последней созданной резервной копии, а не восстанавливать базу данных. Если резервной копии нет, вы можете обратиться к вариантам восстановления. Но выбор восстановления с помощью REPAIR_ALLOW_DATA_LOSS может привести к удалению некоторых данных.

Альтернативное разрешение для восстановления базы данных

Обычно команда DBCC CHECKDB проверяет согласованность базы данных, включая физическую или логическую.Эта команда проверяет страницы, индекс и некоторые другие компоненты базы данных SQL-сервера, но в некоторых критических точках она отказывается восстанавливать базу данных SQL. В случае отсутствия резервной копии базы данных сервера MS SQL выбранные варианты восстановления могут удалить значительный объем данных. Поэтому, чтобы восстановить базу данных без ущерба для целостности данных, вы можете выбрать решение для восстановления базы данных Microsoft SQL. Они гарантируют полное восстановление базы данных без удаления какого-либо количества данных.

Решение для обслуживания SQL Server от Олы Халленгрена

Это вторая статья из серии «Решение для обслуживания SQL Server» Олы Халленгрен. Он будет охватывать задания на целостность базы данных, очистку истории резервного копирования и очистку истории заданий. Установка Технического решения Олы Халленгрена описана в первой статье серии: Решение Ола Халленгрен для обслуживания SQL Server — Установка и решение для резервного копирования SQL Server

Прежде чем продолжить чтение статьи, убедитесь, что все хранимые процедуры из решения для обслуживания Ola правильно установлены в главной базе данных.Для этого разверните следующие узлы в древовидном представлении обозревателя объектов в SQL Server Management Studio:

Базы данных \ Системные базы данных \ master \ Программируемость \ Хранимые процедуры

В последнем узле должны присутствовать четыре хранимые процедуры, если решение установлено правильно:

  1. dbo.CommandExecute
  2. dbo.DatabaseBackup
  3. dbo.DatabaseIntegrityCheck
  4. dbo.IndexOptimize

Решение для проверки целостности базы данных можно реализовать независимо от решений для поддержки резервного копирования и индексации. В этом случае нет необходимости устанавливать процедуры dbo.DatabaseBackup и dbo.IndexOptimize. Однако процедура dbo.CommandExecute должна быть установлена, поскольку она используется для всех созданных заданий в Maintenance Solution.

Помимо этих хранимых процедур, сценарий установки также создал 11 заданий агента SQL Server.Чтобы просмотреть эти задания, разверните узлы SQL Server Agent \ Jobs в обозревателе объектов в SSMS.

Проверка целостности базы данных

При использовании с настройками по умолчанию задания проверки целостности базы данных запускают команду DBCC CHECKDB для системных или пользовательских баз данных. Проверка целостности часто выполняется, чтобы убедиться, что в базе данных нет следов повреждения. Если проверка не удалась, настоятельно рекомендуется определить и удалить источник повреждения, чтобы предотвратить потенциальную потерю данных.

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

Чтобы настроить расписания для заданий проверки целостности, выполните следующие действия:

  1. Щелкните правой кнопкой мыши задание проверки целостности и выберите Свойства.

  2. В форме Job Properties перейдите на вкладку Schedules и нажмите кнопку New… , чтобы создать новое расписание, или нажмите кнопку Pick… , чтобы использовать предварительно созданное расписание.

  3. В форме Новое расписание заданий укажите имя расписания и укажите его тип, частоту, ежедневную частоту и продолжительность.Проверьте расписание Описание в разделе Сводка и, если дальнейшие изменения не требуются, нажмите кнопку ОК, чтобы сохранить расписание.

    Поскольку проверка целостности обычно выполняется ежедневно, расписание в этом примере будет установлено соответственно:

  4. В форме Свойства задания щелкните ОК , чтобы использовать созданное расписание.

  5. Теперь задание будет выполняться по заданному расписанию.Если его нужно запустить вручную, щелкните задание правой кнопкой мыши и выберите Начать задание на шаге…

  6. Сообщение об успешном выполнении отображается, если ошибок не обнаружено.

Хранимая процедура DatabaseIntegrityCheck

Эти готовые задания можно использовать на любом сервере, но вся мощь решения Ola заключается в его параметрах настройки. Хранимая процедура dbo.DatabaseIntegrityCheck принимает всего 15 параметров, которые могут быть предоставлены с помощью сценария CmdExec агента SQL Server.Затем сценарий можно использовать для создания настраиваемого полностью автоматизированного задания агента SQL Server.

Чтобы увидеть список всех параметров, принимаемых процедурой, просто разверните Параметры под узлом dbo.DatabaseIntegrityCheck хранит процедурный узел в SSMS.

Не рекомендуется изменять значения этих параметров по умолчанию, так как это повлияет на предварительно созданные задания проверки целостности базы данных. Вместо этого пользовательские параметры могут быть переданы процедуре с помощью сценария.Чтобы написать сценарий, нам нужно проверить свойства и значения для каждого параметра.

  • Базы данных

    Этот параметр используется для выбора базы данных. За параметром обычно следует имя базы данных. Чтобы включить несколько баз данных в сценарий, просто разделите имена запятыми (,). Чтобы исключить базу данных из определенного выбора, добавьте символ дефиса (-) перед именем базы данных. Символ процента также может использоваться для выбора подстановочного знака.Ниже представлена ​​таблица всех значений, поддерживаемых параметром Databases:

    Значение Описание
    SYSTEM_DATABASES Выбирает все системные базы данных
    USER_DATABASES Выбирает все пользовательские базы данных
    ALL_DATABASES Выбирает все базы данных на экземпляре SQL Server
    AVAILABILITY_GROUP_DATABASES Выбирает все базы данных в группе доступности
    База данных1, База данных2 Выбирает базы данных с именами Database1 и Database2
    % A% Выбирает все базы данных, в именах которых есть символ «A».
    USER_DATABASES, -Database1 Выбирает все пользовательские базы данных, но исключает Database1 из выбора
  • CheckCommands

    Параметр указывает команды проверки целостности, которые будут выполняться.Чтобы включить в сценарий несколько команд, просто разделите их запятой (,).

    Значение Описание
    CHECKDB Выполняет команду DBCC CHECKDB для набора выбранных баз данных. Это используется как значение по умолчанию, если не указаны другие значения.
    КОНТРОЛЬНАЯ ГРУППА Выполняет команду DBCC CHECKFILEGROUP для набора выбранных баз данных.
    КОНТРОЛЬНАЯ ТАБЛИЦА Выполняет команду DBCC CHECKTABLE для набора выбранных баз данных.
    ПРОВЕРИТЬ Выполняет команду DBCC CHECKALLOC для набора выбранных баз данных.
    КОНТРОЛЬНЫЙ КАТАЛОГ Выполняет команду DBCC CHECKCATALOG для набора выбранных баз данных.
  • Только физический

    Этот параметр ограничивает все проверки физической структурой базы данных.Это эквивалентно параметру SQL Server PHYSICAL_ONLY для команд проверки DBCC. Допустимые значения: Y (Да) и N (Нет). N используется как значение по умолчанию, если не указано иное.

  • No Индекс

    Этот параметр эквивалентен параметру NOINDEX для команд проверки DBCC в SQL Server. Эта опция пропускает проверку некластеризованных индексов. Доступные значения для параметра: «Y» (Да) и «N» (Нет), «Y» — значение по умолчанию.

  • ExtendedLogicalChecks

    Параметр равен параметр EXTENDED_LOGICAL_CHECKS — это SQL Server.Допустимые значения: «Y» (Да) и «N» (Нет). Нет — значение по умолчанию. Этот параметр нельзя комбинировать с PhysicalOnly.

  • TabLock

    Соответствует параметру TABLOCK для команд проверки DBCC в SQL Server. Допустимые значения: «Y» и «N», «N» — значение по умолчанию.

  • Файловые группы

    Выполняет выбор для указанного набора файловых групп, но только если для параметра CheckCommands указано значение CHECKFILEGROUPS.Синтаксис такой же, как и для выбора базы данных:

    • В выборку можно включить несколько файловых групп, если они разделены запятой (,)
    • Символ дефиса (-) используется для исключения файловой группы из выбора
    • Символ процента (%) используется для выбора подстановочного знака

    Принятые значения и примеры:

    Значение Описание
    ALL_FILEGROUPS Выбирает все файловые группы
    База данных1.Filegroup1 Выбирает Filegroup1, принадлежащую Database1
    База данных1.% Файловая группа% Выбирает все файловые группы в Database1, которые содержат строку «Filegroup» в своем имени.
  • Объекты

    Выполняет выбор объекта. Те же правила применяются к дефису, запятой и символу процента. Параметр можно использовать, только если CHECKTABLE указан как значение для параметра CheckCommands.

    Значение Описание
    ВСЕ_ОБЪЕКТЫ Выбирает все объекты
    База данных1.Schema1.Table1 Выбирает Schema1.Table1 в Database1
    База данных1.Schema1.% Выбирает все объекты в схеме1 в базе данных1
  • MaxDOP

    Параметр соответствует параметру MAXDOP SQL Server для команд проверки DBCC.Он определяет количество процессоров, используемых для операции. Если не указано иное, используется максимальная глобальная степень параллелизма.

  • Группы доступности

    Выбирает группы доступности. Применяются те же правила синтаксиса, что и в предыдущих случаях.

    Значение Описание
    ALL_AVAILABILITY_GROUPS Выбирает все группы доступности
    Доступность Группа 1 Выбирает AvailabilityGroup1
    ALL_AVAILABILITY_GROUPS,
    -AvailabilityGroup1
    Выбирает все группы доступности, кроме AvailabilityGroup1
    % AvailabilityGroup% Выбирает все группы доступности, которые содержат строку «AvailabilityGroup» в своем имени.
  • Наличие Группы Реплики

    Задает реплики в группах доступности, которые будут включены в проверку целостности.Если не указан, проверка целостности выполняется для всех реплик. Доступные значения представлены в таблице:

    Значение Описание
    ВСЕ Проверяет все реплики
    НАЧАЛЬНЫЙ Проверяет только первичную реплику
    ВТОРИЧНЫЙ Проверяет все вторичные реплики
  • Возможность обновления

    Выполняет выбор READ_ONLY, READ_WRITE или всех баз данных.

    Значение Описание
    ВСЕ Выбирает все базы данных, независимо от статуса чтения
    READ_ONLY Выбирает базы данных READ_ONLY
    ЧИТАЙ ПИШИ Выбирает базы данных READ_WRITE
  • Таймаут блокировки

    Параметр устанавливает время в секундах, в течение которого команда ожидает снятия потенциальной блокировки.Значение по умолчанию не ограничено, но при необходимости в качестве значения можно использовать любое целое число.

  • LogToTable

    Установите значение «Y», чтобы записывать команды в таблицу dbo.CommandLog. В противном случае указывать этот параметр не нужно, так как «N» (нет) является значением по умолчанию.

  • Выполнить

    Указывает, будут ли все определенные команды выполнены (Y) или просто напечатаны (N). Значение по умолчанию — «Y».

Написание собственного скрипта

Чтобы создать собственный сценарий, используйте параметры, описанные ранее.

Каждый сценарий должен начинаться с EXECUTE dbo.DatabaseIntegrityCheck (вызов процедуры).

Чтобы присвоить значение параметру, используйте знак @ перед именем параметра, знак равенства, чтобы указать равенство, за которым следует значение параметра в одинарных кавычках.

За каждым параметром должна стоять запятая (,).

Например, этот сценарий выбирает 3 базы данных, запускает команду DBCC CHECKDB, проверяет только физическую структуру баз данных и пропускает проверку некластеризованных индексов:

EXECUTE dbo.DatabaseIntegrityCheck

@Databases = ‘AdventureWorks2014, GenerateDB, GenerateDB2’,

@CheckCommands = ‘CHECKDB’,

@PhysicalOnly = ‘Y’,

@NoInde 907

@NoInde

Чтобы убедиться, что сценарий работает, запустите его в базе данных master.

Другой вариант — запустить сценарий с помощью утилиты sqlcmd. Обязательно укажите правильное имя сервера после переключателя S (в данном случае DOMENATOR \ MAIN) и поместите все команды в одну строку:

sqlcmd -S DOMENATOR \ MAIN -E -d master -Q «ВЫПОЛНИТЬ dbo.DatabaseIntegrityCheck @Databases = ‘AdventureWorks2014, GenerateDB, GenerateDB2’, @CheckCommands = ‘CHECKDB’, @PhysicalOnly = ‘Y’ = @Nonly = ‘Y’ = @No» » -b

Скрипт можно запустить прямо из командной строки.

Автоматика

Созданные сценарии могут быть включены в задания агента SQL Server и настроены на выполнение по заданному расписанию. Для этого выполните следующие действия:

  1. Щелкните правой кнопкой мыши папку Jobs узла SQL Server Agent в обозревателе объектов в SSMS и щелкните New Job…

  2. На вкладке Общие формы Новое задание укажите имя задания.При желании укажите владельца, категорию и описание.

  3. На вкладке Steps нажмите кнопку New… .

  4. В форме Шаг нового задания укажите имя шага задания. В зависимости от используемого скрипта выберите один из доступных вариантов:

    — Выберите «Операционная система (CmdExec)» в качестве типа сценария, если вы хотите использовать сценарий cmd, описанный в предыдущей главе.Вставьте сценарий в поле Command .

    — В качестве альтернативы можно использовать сценарий T-SQL из предыдущей главы, указать сценарий Transact-SQL (T-SQL) в качестве типа сценария и установить базу данных master в качестве цели сценария.

    Нажмите кнопку ОК, чтобы сохранить изменения.

  5. В форме Новое задание перейдите на вкладку Расписания .Нажмите кнопку New… , чтобы создать новое расписание, или Pick… , чтобы использовать существующее расписание.

  6. В форме Новое расписание заданий укажите имя и тип расписания, а также установите его периодичность. Проверьте описание, чтобы убедиться, что расписание настроено правильно, и нажмите OK, чтобы сохранить изменения.

  7. В форме Новое задание выберите созданное расписание и нажмите OK, чтобы сохранить все настройки задания.

  8. Чтобы запустить задание, разверните узел SQL Server Agent и Jobs в обозревателе объектов. Щелкните задание правой кнопкой мыши и выберите Начать задание на шаге… из контекстного меню.

  9. Сообщение об успехе генерируется, как только задание завершается.

Другие статьи из этой серии:

Полезные ссылки

Роберт — энтузиаст SQL Server и ИТ с многолетним опытом работы в качестве специалиста по ремонту компьютеров.

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

Роберт в настоящее время работает в ApexSQL LLC инженером по продажам программного обеспечения, где он специализируется на резервном копировании баз данных и индексах.

Посмотреть все сообщения Роберта Селеша

Последние сообщения Роберта Селеша (посмотреть все)

Как проверить целостность базы данных SQL Server?

В MS SQL Server 2000, 2005, 2008, 2008 R2, 2012, 2014 и 2016 часто встречаются ошибки и недоработки.Первым шагом к восстановлению поврежденных файлов базы данных является проверка целостности. Это набор команд, выполняющих проверку файлов MDF и LDF. Он возвращает список ошибок и обеспечивает правильный курс восстановления. В этом посте описаны все способы проверки целостности базы данных. В нем объясняются все шаги, необходимые для восстановления баз данных, в зависимости от их уровня приоритета. В соответствии с этим могут быть предприняты меры для решения проблемы и восстановления файлов базы данных и соответствующих данных.

Причины для проверки целостности базы данных SQL Server

Ниже приведены некоторые из проблем, которые могут побудить администратора проверить целостность и согласованность базы данных SQL Server:

  • Один из серверов имеет проблемы или ошибки в среде с несколькими серверами SQL.
  • Возможные несоответствия между базой данных и первичными файлами сервера и файлами журнала.
  • Запустите DBCC CheckDB в базе данных, чтобы проверить всю логическую и физическую целостность всех объектов в конкретной базе данных.
  • Удалите все повреждения данных, вызывающие всевозможные проблемы в базе данных.
  • Часто сбойные операторы SQL, неверные результаты или неработающий экземпляр SQL.

Недостатки выполнения команды DBCC CheckDB

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

Время: Полная проверка каждой логики MS SQL Server занимает несколько часов.

Целостность данных не гарантируется : Запуск команды DBCC CheckDB может изменить некоторые важные данные, что может вызвать больше проблем, чем обычно.

Неверно определенный способ : Не рекомендуется запускать проверку всей базы данных без надлежащего плана или резервных копий.

Ошибки, которые сложно определить : команда DBCC CheckDB возвращает список из сотен ошибок. Трудно определить точное место ошибки и исправить ее.

Проверка целостности базы данных SQL Server

Вместо применения исправления ко всей базе данных, восстановление SQL Server может быть выполнено путем разбивки баз данных на основе приоритета.Ниже приведены различные уровни приоритета и способы восстановления данных.

Решение №1 Базы данных с высоким приоритетом

Это базы данных, которые содержат важные данные компании, которые могут вызвать проблемы с согласованностью MS SQL Server. Любое повреждение этой базы данных может привести к серьезным потерям доходов и миллионам убытков. В этой среде не может быть единой точки отказа, или это может привести к судебным искам и судебным искам.

Вот основные шаги для проверки целостности базы данных SQL Server в высокоприоритетных базах данных:

  • Используйте среду Active-Active для управления базой данных.
  • Затем отключив один сервер для обслуживания и оставив другой в рабочем состоянии,
  • Проверяйте целостность часто, почти ежедневно.
  • Прежде чем самостоятельно создавать большую среду, рассмотрите все «за» и «против».
  • Будьте внимательны и соблюдайте меры предосторожности при создании новой модели.
  • Проконсультируйтесь со службой поддержки на каждом уровне и выберите соответствующий маршрут.

Решение № 2 Базы данных среднего приоритета

Они содержат информацию, например информацию о ежемесячных платежах.В таком случае вполне допустима некоторая потеря данных. Клиентам могут быть возмещены расходы в случае технических сбоев со стороны компании. Стоимость страховки находится в пределах приемлемых для компании параметров, и групповые иски не принимаются. Итак, выполните следующие действия, чтобы проверить целостность SQL Server с базами данных среднего приоритета:

  • Выполнить проверку целостности перед снятием и резервным копированием
  • Держите базы данных в режиме полного восстановления.
  • Часто создавайте резервные копии полной базы данных и журналов транзакций.
  • Настройте группы доступности, которые являются AlwaysOn.
  • Теперь проверьте целостность базы данных с помощью DBCC CheckDB.
  • Восстановление из самого последнего журнала резервного копирования в случае сбоя команды.
  • Проверьте журнал ошибок, отбросьте соответствующие некластеризованные индексы и создайте их заново.
  • Если ошибка находится в полной таблице, отбросьте таблицу и воссоздайте ее из резервной копии.

Решение № 3 Базы данных с низким приоритетом

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

  • Примените Repair_Allow_Data_Loss как курс действий, предложенный проверкой целостности.
  • Восстановить базу данных из старой резервной копии.
  • Также необходимо согласовать с клиентом и уведомить его об обновлении информации.
  • Храните несколько копий резервных копий в разных местах.
  • Создайте регулярное расписание восстановления для резервных копий.

Решение №4 Используйте экспертное решение

Существует более прямой подход к восстановлению базы данных после проверки согласованности DBCC. Это простой, но эффективный сторонний инструмент, который делает всю задачу более профессиональной и легкой. Это средство SQL Repair, которое может восстановить и восстановить всю базу данных SQL Server без потери данных. Это один из лучших инструментов на рынке для сканирования и восстановления нескольких файлов MDF и LDF за один раз.

Заключение

Ручные решения позволяют легко исправить все проблемы с базой данных. Настоятельно рекомендуется, чтобы все организации, большие или маленькие, регулярно создавали резервные копии и выполняли проверку DBCC. Этот пост помогает пользователю понять, как проверить целостность базы данных SQL Server без потери данных. В конце также описывается полностью эффективное экспертное решение, чтобы сделать задачу более прямой и простой.

Как исправить ошибку согласованности и целостности базы данных, о которой сообщает DBCC CHECKDB

Olivia ❘ 13 сентября, 2018 ❘ 0 комментариев

В этом блоге обобщено решение «Как исправить ошибки согласованности и целостности, о которых сообщает DBCC CHECKDB».

База данных SQL — самая популярная база данных среди других баз данных. Но иногда в базе данных SQL возникают проблемы. Эти проблемы приводят к серьезным условиям, из-за которых возникает множество проблем с доступом к базе данных. Итак, для этого типа условий мы собираемся обсудить ошибку согласованности базы данных, о которой сообщает DBCC CHECKDB.

Введение в ошибку согласованности базы данных

В основном эта ошибка возникает при запуске команды DBCC CHECKDB. Затем команда показывает ошибку согласованности в SQL Server.Тем не менее, команда DBCC CHECKDB используется для обеспечения физической и логической целостности базы данных. Он состоит из строк, взаимосвязей индексов, страниц распределения, ссылочной целостности таблицы и т. Д. Иногда возникает ситуация, когда происходит сбой при проверке согласованности. В результате после выполнения этой команды возникает ошибка.

Причины появления ошибки согласованности базы данных

Есть много причин, которые вызывают ошибку согласованности. Но здесь я упоминаю некоторые из основных причин.Это следующие:

  1. Проблема, связанная с диском или ядром SQL Server.
  2. Возможно, файловая система базы данных повреждена.
  3. Наличие в памяти поврежденных страниц.
  4. Может быть проблема в аппаратной системе.

Чтобы решить эти вышеупомянутые проблемы, давайте найдем решение в следующем разделе.

Ручное исправление ошибки согласованности базы данных, сообщенной DBCC CHECKDB

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

Вот некоторые из ручных методов:

  1. Выполнить команду CHKDSK для проверки целостности файловой системы

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

  1. Проверить журнал системных событий Windows

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

  1. Обеспечение требований ввода-вывода SQL Server

Убедитесь, что все требования ввода-вывода выполнены, как и многие счетчики, связанные с базой данных SQL, которая непосредственно связана с вводом-выводом.

  1. Проверьте инструмент SQLIOSim

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

  1. Выберите вариант минимального ремонта

Выберите минимальный вариант восстановления при запуске DBCC CHECKDB.

Автоматизированный метод

Если вы хотите быстрое восстановление и не хотите тратить свое время на попытки описанных выше методов, есть альтернативное решение. SQL Data Recovery tool. Этот инструмент исправит ошибку согласованности базы данных. Это также легко исправит повреждение в файле базы данных.

Заключение

Я хочу сделать вывод, что вы можете попробовать любой метод исправления ошибки, который вам подходит.

Реализованный столб

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *