Это дополнительный вопрос к предыдущему вопросу о том, почему я не смог сжать файл журнала в основной базе данных.
Короче говоря, я настроил зеркальное отображение базы данных, но забыл убедиться, что задание, выполняющее резервное копирование журнала транзакций, снова запускается, и журнал транзакций вырос до почти 60 ГБ.
Поскольку зеркалирование было настроено, это увеличение размера дублировалось на зеркальном сервере, и в итоге заняло все дисковое пространство и сделало базу данных зеркала непригодной для использования.
В связи с этим вопросом об обслуживании журнала транзакций в зеркальной базе данных вы не можете создать резервную копию журнала в зеркале, но когда вас спросили конкретно в комментариях о том, как сжать заросший файл журнала в зеркальной базе данных, был оставлен комментарий, что
Один из способов сделать это - переключиться на зеркальную базу данных и выполнить сжатие там. Тщательно проверьте это в непроизводственной среде, чтобы убедиться, что она работает так, как вы хотите / ожидаете.
Похоже, это говорит о том, что могут быть другие способы сжатия файла журнала на зеркале, и этот метод не обязательно безопасен для использования на рабочем сервере.
Есть ли способ безопасно сжать файл журнала транзакций на зеркале базы данных?
Ответы:
Команда
DBCC SHRINKFILE
будет отражена от принципала в зеркальную базу данных. Вот некоторые доказательства.Создайте пример базы данных на основном сервере:
Создайте ту же базу данных из резервной копии с помощью
NORECOVERY
:Настройте сеанс зеркалирования, какой бы вы ни выбрали.
В основной базе данных посмотрите размеры файлов базы данных:
Мой набор результатов выглядит следующим образом:
В зеркальной базе данных создайте снимок и посмотрите на ту же информацию:
Мой набор результатов выглядит следующим образом:
Теперь увеличьте файл журнала транзакций в основной базе данных (я довел его до 1 ГБ):
Глядя на размер журнала транзакций основной базы данных , мы теперь видим скорректированный размер:
Мой набор результатов выглядит следующим образом:
Создайте еще один снимок в зеркальной базе данных и посмотрите на размер файла журнала транзакций:
Мой набор результатов выглядит следующим образом:
Теперь сделайте
DBCC SHRINKFILE
на основном :Мой набор результатов следующий:
Создайте третий и последний снимок в зеркальной базе данных и посмотрите на размер:
И я получаю следующий набор результатов:
Итак, как вы можете видеть здесь,
DBCC SHRINKFILE
команда фактически отражена в зеркальной базе данных.источник
DBCC SHRINKFILE
ее. Что касается того, что вы можете исправить свой зеркальный сеанс, не удаляя зеркальное отображение в этой базе данных, там нужно провести еще немного расследования. Кажется, что это было приостановлено из-за размера файла. Вы пытались возобновить партнер?