База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как протестировать и исправить базу данных SQL Server с помощью DBCC CHECKDB? › RE: Как протестировать и исправить базу данных SQL Server с помощью DBCC CHECKDB?
Для тестирования и исправления поврежденной базы данных SQL Server используйте встроенную команду DBCC CHECKDB. Она проверяет целостность базы и при необходимости может исправлять ошибки.
**Пошаговая инструкция:**
1. **Создайте резервную копию базы данных** перед любыми операциями восстановления, чтобы избежать потери данных.
2. **Переведите базу в однопользовательский режим**, чтобы исключить доступ других пользователей во время исправления:
|
1 2 |
sql ALTER DATABASE [ИмяБазы] SET SINGLE_USER WITH ROLLBACK IMMEDIATE; |
3. **Выполните проверку базы без исправления**, чтобы оценить состояние:
|
1 2 |
sql DBCC CHECKDB ('ИмяБазы'); |
4. **Если ошибки есть, попробуйте исправить их без потери данных:**
— Быстрое исправление:
|
1 2 |
sql DBCC CHECKDB ('ИмяБазы', REPAIR_FAST); |
— Восстановление с перестроением индексов:
|
1 2 |
sql DBCC CHECKDB ('ИмяБазы', REPAIR_REBUILD); |
5. **Если предыдущие методы не помогли, примените исправление с возможной потерей данных (только в крайнем случае):**
|
1 2 |
sql DBCC CHECKDB ('ИмяБазы', REPAIR_ALLOW_DATA_LOSS); |
6. **Верните базу в многопользовательский режим:**
|
1 2 |
sql ALTER DATABASE [ИмяБазы] SET MULTI_USER; |
—
**Особые случаи:**
— Если база в режиме SUSPECT, сначала переведите её в режим EMERGENCY:
|
1 2 3 |
sql EXEC sp_resetstatus 'ИмяБазы'; ALTER DATABASE [ИмяБазы] SET EMERGENCY; |
Затем повторите проверку и исправление.
—
**Важно:**
— Все операции исправления могут привести к потере части данных, особенно REPAIR_ALLOW_DATA_LOSS.
— Всегда сначала делайте резервную копию.
— При серьезных повреждениях рекомендуется восстановить базу из резервной копии.
— Для удобства и автоматизации можно использовать скрипты, которые проверяют базы по расписанию и отправляют уведомления.
—
Рекомендую посмотреть здесь:
https://infostart.ru/1c/articles/59390/
https://infostart.ru/1c/articles/59520/
https://infostart.ru/1c/articles/61123/