Сохранение журналов транзакций SQL Server на сетевом ресурсе

Сохранение журналов транзакций SQL Server на сетевом ресурсе

Мы запускаем наше программное обеспечение ERP на сервере SQL Server 2016 как виртуальную машину на VMware ESXi. В настоящее время у нас есть виртуальная машина, настроенная на 2 диска, с данными на одном, а журналами на другом. У нас возникла проблема, когда виртуальная машина была повреждена, и мы вернулись к резервной копии VEEAM. Восстановление заняло довольно много времени, но прошло успешно. К сожалению, это привело к потере около 4 часов данных. И поскольку журналы транзакций вышли из строя вместе с сервером, мы не смогли восстановить данные из журналов транзакций.

Поэтому мы подумали о записи журналов транзакций в другой сетевой ресурс. Но при попытке настроить его в тестовой базе данных выяснилось, что SQL Server не позволяет этого сделать.

Есть ли способ сделать это? Будет ли существенный удар по производительности? Есть ли лучший подход?

решение1

Есть ли способ это сделать?

Да, но вы, вероятно, не хотите этого делать. Вы можете включитьФлаг следа 1807чтобы заставить SQL Server использовать UNC-путь для своих файлов данных и журналов. Однако из этой документации:

Microsoft обычно рекомендует использовать сеть хранения данных (SAN) или локально подключенный диск для хранения файлов базы данных Microsoft SQL Server, поскольку такая конфигурация оптимизирует производительность и надежность SQL Server.

(Хотя в документации по ссылке указано, что SQL 2016 должен разрешать это по умолчанию, поэтому вам нужно будет пояснить, что «похоже, SQL Server не разрешает этого».)

Есть ли существенное падение производительности?

Это зависитна вашем оборудовании. Это зависит от того, где находится «локальное» хранилище — вращающиеся диски внутри хоста ESXi, или в SAN, или где-то еще. И это зависит от хранилища, которое лежит в основе сетевого ресурса, который вы рассматриваете для использования. Они могут в конечном итоге начать с одного и того же оборудования, и в этом случае различия в производительности могут сводиться к небольшим накладным расходам VMware. Microsoft подробно рассматривает соображения производительности в документе, ссылка на который приведена выше.

Есть ли лучший подход?

Да

Файлы журнала транзакций сами по себе (обычно *.ldf) не являются тем, что вы хотите использовать для восстановления после аварии. Наличие их локально на сервере является целесообразным. И размещение их на отдельном диске от файлов данных (обычно *.mdf), как вы сделали, является хорошей идеей.

Когда у вас происходит катастрофа и вам нужно восстановиться из резервной копии, вы восстанавливаетесь из полной резервной копии, затем, возможно, из некоторых дифференциальных резервных копий, а затем, возможно, из некоторых резервных копий журнала транзакций. Таким образом, вы должны писать свойрезервные копиив место, удаленное от вашего сервера. Или, как минимум, если вам нужно записать их локально, имейте процесс, который немедленно копирует их в другое место. Как вы обнаружили, многие типы сбоев приводят к тому, что все локальные данные становятся непригодными для использования.

Существует множество руководств о том, как создать правильный механизм резервного копирования.Брент Озар Неограниченныйесть несколько хороших.

Связанный контент