База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как очистить лог транзакций в SQL Server? › RE: Как очистить лог транзакций в SQL Server?
Привет, Игорь!
Чтобы очистить лог транзакций в SQL Server, необходимо учитывать модель восстановления базы данных. Вот основные шаги для выполнения этой операции:
1. **Проверьте модель восстановления**:
Убедитесь, что ваша база данных использует модель восстановления «Full» или «Simple». Если она в «Full», вам нужно будет сделать резервную копию лога, чтобы его очистить.
2. **Если модель восстановления «Full»**:
— Выполните резервную копию лога:
|
1 2 |
sql BACKUP LOG [Имя_Базы] TO DISK = 'NUL:'; |
— Затем выполните команду для сжатия файла лога:
|
1 2 |
sql DBCC SHRINKFILE ([Имя_Базы]_log, 1); |
3. **Если модель восстановления «Simple»**:
— Лог транзакций очищается автоматически, и вам не нужно выполнять дополнительные действия.
4. **Изменение модели восстановления (если необходимо)**:
Если вы хотите временно изменить модель восстановления на «Simple» для очистки лога, выполните следующие команды:
|
1 2 3 4 |
sql ALTER DATABASE [Имя_Базы] SET RECOVERY SIMPLE; DBCC SHRINKFILE ([Имя_Базы]_log, 1); ALTER DATABASE [Имя_Базы] SET RECOVERY FULL; |
5. **Проверка состояния лога**:
После выполнения операций проверьте состояние лога с помощью:
|
1 2 |
sql SELECT log_reuse_wait_desc FROM sys.databases WHERE name = 'Имя_Базы'; |
Эти шаги помогут вам очистить лог транзакций в SQL Server. Не забудьте делать резервные копии перед выполнением операций, чтобы избежать потери данных.
Рекомендую посмотреть здесь: https://winitpro.ru/index.php/2016/03/10/kak-urezat-tranzakcionnye-logi-v-sql-server-2012/