У меня вопрос относительно размера файла журнала SQL и того, что он должен быть установлен после резервного копирования файла журнала. Я знаю, что это зависит от множества факторов, и что нет правильного или неправильного количества (условно говоря, поскольку я бы не начал журнал с 1 МБ, как по умолчанию), но сколько VLF должно быть в log, если мы выполнили около 200 МБ транзакций (или наш файл .mdf увеличился на это количество), и насколько велики были бы эти VLF или какой размер был бы файл журнала? Я читал блоги Кимберли Трипп и Пола Рэндала, но в лучшем случае все еще туманно.
Начальный размер файла журнала SQL 2005
Ответы (2)
Как вы говорите, это очень простой ответ. Я могу немного упростить ситуацию, но обычно я представляю процесс так:
Перед тем, как «материал» будет записан в файлы данных, каждая транзакция сначала записывается в журнал. Журнал никогда не очищается. Когда файл журнала «переворачивается», указатель записи перемещается обратно в верхнюю часть файла и снова продолжает запись поверх старого.
Таким образом, размер журнала должен быть не меньше самого большого размера журнала транзакций.
Следующее соображение - это количество одновременно работающих пользователей. Когда у вас есть 10 пользователей, выполняющих самую крупную транзакцию одновременно, вы поняли.
Еще одно соображение - интенсивность использования. Сколько данных накапливается до того, как произойдет контрольная точка. Это когда данные журнала записываются в файлы mdf пакетным способом.
И последнее, что нужно учитывать, - это ваш режим восстановления. В режиме полного восстановления часть файла журнала, которая еще не была «защищена» резервной копией журнала транзакций, не может быть пролонгирована и будет продолжать увеличиваться до тех пор, пока не будет создана резервная копия журнала транзакций.
Вам нужен только один физический файл журнала для каждой базы данных. Сервер Sql может записывать только один файл за раз.
Вы хотели бы иметь как можно меньше файлов виртуальных журналов. Предоставление файлу журнала достаточного начального места для начала, а затем минимальное возможное автоматическое увеличение. VLF создаются в процессе автоматического роста.
И когда вы автоматически выращиваете, убедитесь, что он растет приличными порциями. Также помните, что сначала необходимо обнулить каждый vlf. Перед использованием файл должен быть полностью заполнен нулями. Если вы укажете очень большие фрагменты (скажем, 1 ГБ или около того), каждый запрос в этой базе данных будет помещен в очередь до тех пор, пока не будет завершен процесс обнуления.
Когда я не имею представления о потребностях в журналах, я лично начинаю с размера 500 МБ с автоматическим увеличением кусков на 100 МБ. И с этого момента я слежу за событиями автоматического роста и при необходимости корректирую.
История обычно является вашим лучшим предсказателем будущего размера.
Если размер журнала обычно достигает 20 ГБ между резервными копиями, вы можете ожидать, что он достигнет 20 ГБ между резервными копиями.
Если ваш размер составляет 20 ГБ, то вряд ли ему придется расти.
Если журнал должен вырасти в 20 или даже в 100 раз, то это не такая уж большая проблема.
Если журнал должен вырасти в 1000 раз, вы наверняка должны были указать его неверный размер.
Журнал размером 1 МБ, который только растет на 1 МБ за раз и достигает 1000 МБ - это плохо.
100 МБ, увеличивающиеся на 100%, должны вырасти всего в 4 раза, чтобы достичь 1600 МБ.
Также существует максимальный размер.
Модель восстановления оказывает огромное влияние на размер журнала.
Необходимо учитывать гораздо больше, чем исходный размер.
Также посмотрите на размещение журнала на отдельном диске для распространения ввода-вывода.
Посмотрите, как поместить временную память на отдельный диск для распространения ввода-вывода.