Размер файла журнала транзакций переносится при выполнении резервного копирования на другой SQL Server - PullRequest
0 голосов
/ 21 февраля 2019

Наш производственный сервер имеет большой файл .ldf (300 ГБ), связанный с файлом .mdf.На нашем сервере DEV мы время от времени восстанавливаем базу данных DEV, используя производственную резервную копию.Поскольку наш сервер DEV не должен иметь много транзакций, связанных с ним, но файл .ldf также имеет размер 300 ГБ.Я сжал файл .ldf до 50 гигов.Будет ли файл DEV .ldf снова расти после восстановления из производственной резервной копии?

Ответы [ 3 ]

0 голосов
/ 21 февраля 2019

При восстановлении резервной копии базы данных размер базы данных и файлов журнала будет таким же, как и в исходной базе данных.Таким образом, если размер файла в prod был 300 ГБ, он будет 300 ГБ при восстановлении его на другую базу данных / сервер.После восстановления резервной копии базы данных prod в среду разработки обычно делают две вещи: уменьшите размер файла журнала и установите для модели восстановления значение ПРОСТОЙ (зависит от того, будете ли вы делать это, зависит от ваших потребностей / требований).

ПосколькуВы уменьшили размер файла до 50 ГБ, он может вырасти до 50 ГБ по многим причинам, но наиболее заметно:

  • Вы создаете транзакцию, которая генерирует огромное количество журнала
  • У вас есть модель полного восстановления, вы создаете много журналов и никогда не делаете резервных копий журналов
  • Вы включаете какую-либо функцию репликации (репликация, CDC и т. Д.) И никогда не запускаете агент чтения журналов.
0 голосов
/ 22 февраля 2019

Будет ли файл DEV .ldf снова расти после восстановления из производственной резервной копии?

Да, если размер файла журнала рабочей базы данных по-прежнему имеет такой размер - 300 ГБ базы данныхУ dev снова будет такой файл журнала.

Мы не знаем, каков базовый уровень вашей действующей базы данных.

Однако, если ваша производственная база данных не имеет регулярных тяжелых операций DML, которые приводят к длительнымДля выполнения транзакций рассмотрите возможность уменьшения размера файла журнала на производстве до меньшего размера, например до 50 ГБ.

Кроме того, это сокращение значительно сократит время восстановления, поскольку LDF-файлы должны быть обнулены внутри перед RESTORE.начинает писать фактические данные.Это означает, что SQL Server сначала должен создать файл размером 300 ГБ и записать в него нули.В отличие от файлов журналов, файлы данных могут выиграть от «мгновенной инициализации файла», и такое обнуление может быть пропущено, если учетная запись службы экземпляра SQL Server правильно настроена на наличие достаточных разрешений.

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

USE yourDev
ALTER DATABASE yourDev SET RECOVERY SIMPLE
-- assumption: only one ldf in db
DBCC SHRINKFILE(2, 1024)
0 голосов
/ 21 февраля 2019

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

...