Мені потрібно створити резервну копію 10-20 баз даних SQL Server 2008 R2 розмірами від 10-50 ГБ, при цьому вони є в Інтернеті та використовуються одночасно одним корпоративним додатком. Мені також потрібно відновити їх до стану, який значною мірою синхронізується у всіх базах даних (я можу дозволити до декількох секунд десинхронізації між базами даних). Метою є збирання виробничих даних для середовищ QA / DEV.
Я настійно хотів би не вимагати, щоб бази даних запускалися з повним відновленням, а також придумати метод резервного копіювання, який присвячений захопленню даних для середовищ QA і залишається незалежним від основного процесу резервного копіювання, який не знаходиться під моїм контролем.
Для моїх клієнтів знадобиться 1-2 години, щоб отримати 20 повних резервних копій на ~ 30 ГБ кожен. Це робить послідовне завантаження резервних копій неприйнятним, оскільки бази даних будуть занадто десинхронізовані при запуску у простому відновленні.
Я шукаю ідею краще за ці:
IDEA 1: Знімок на рівні SAN на VM дисках. xcopy MDFs / LDFs зі знімка.
Після того, як скопійовані файли приєднані до іншого екземпляра сервера, процес його відновлення повинен створити послідовні бази даних, які майже одночасно знімаються.
Гуглінг навколо мене переконав, що це погана ідея, принаймні тому, що я можу отримати десинк проти master / msdb / тощо.
IDEA 2: Оркеструйте складне резервне копіювання та відновлення синхронізації у всіх базах даних
Це вимагає від мене вимогливих баз даних у повному відновленні, чого я не хочу. Почніть паралельні резервні копії для всіх баз даних задовго до граничного терміну (T0). Як тільки буде досягнуто T0, створіть резервну копію всіх журналів (має тривати не більше кількох хвилин). Візьміть в результаті безліч резервних копій і спробуйте відновити їх і скрутіть журнали вперед / назад, щоб отримати дещо послідовний стан у базі даних, відносно T0.
Для її надійного використання потрібно багато планування та сценаріїв, тому я б дуже намагався уникати цього.
Я пропускаю якесь інше рішення?
PS1: Мені б хотілося використовувати знімки db . Ідея полягала в тому, щоб ініціювати знімок на кожен db (який повинен закінчитися за секунди), а потім повністю зробити резервне копіювання кожного послідовно протягом наступних хвилин / годин. Потім відновіть їх на іншому сервері та поверніть кожен на знімок. AFAIK такий сценарій неможливий, оскільки знімки неможливо створити резервну копію разом із базою даних. Їх можна повернути лише на місці, на сервері, де вони були створені. Крім того, вони вимагають Enterprise Edition, якого у мене немає для всіх клієнтів.
PS2: Якщо ви знаєте рішення сторонніх розробників, здатне створювати резервні копії синхронізованих копій db, будь ласка, згадайте про це.