При работе с базами данных 1С в клиент-серверном варианте с применением СУБД Microsoft SQL 20хх версий, складываются ситуации при которых внедрив план обслуживания базы 1С (MS SQL) пользователи вдруг замечают, что в базе есть ошибки.
И происходит это, как правило, на этапе проверки целостности базы данных.
И так быстрый ремонт базы на сервере MS SQL по шагам:
Шаг №0
Обязательно делаем «Бэкап» перед выполнением любых действий над базой данных.
Шаг №1 (Переводим базу данных в режим “single user”).
И так чтоб перевести базу данных в однопользовательский режим “single user”. Нужно выполнить следующий скрипт на MS SQL.
1 2 3 |
ALTER DATABASE MY_BASE SET SINGLE_USER WITH ROLLBACK IMMEDIATE; |
Шаг №2 (Проверка и ремонт базы).
Проверять физическую целостность БД мы будем, конечно, средствами MS SQL. Для проверки нужно выполнить следующую команду: Transact-SQL
1 |
DBCC CHECKDB ("имя_базы", REPAIR_REBUILD) |
В процессе работы этой команды: DBCC CHECKDB могут быть обнаружены ошибки, но часть их может быть сразу же исправлена. Ведь мы используем параметр «REPAIR_REBUILD».
Если ошибки останутся и после этого, то это будет означать что их нельзя восстановить без потери некоторых данных. В этом случае нужно запустить команду DBCC CHECKDB с параметром REPAIR_ALLOW_DATA_LOSS . То есть так: Transact-SQL
1 |
DBCC CHECKDB ("имя базы", REPAIR_ALLOW_DATA_LOSS) |
После выполнения команды, обратно возвращаемся в нормальный режим «MULTI_USER» (выходим из режима “single user”): Вот скрипт, который выполняем на сервере.
Шаг №3 (MULTI_USER).
Transact-SQL
1 2 |
ALTER DATABASE MY_BASE SET MULTI_USER; |