Визначення проблеми
Нашим користувачам потрібна можливість запиту до бази даних, яка в основному є актуальною. Дані можуть бути несвіжими до 24 годин, і це прийнятно. Який підхід з найнижчою вартістю отримати та оновлювати другу базу даних з виробничою копією? Чи є підхід, про який я не думаю?
Навантаження
У нас є стороннє додаток, яке ми використовуємо для моніторингу активів торгівлі акціями. Протягом дня багато невеликих змін відбувається в рамках різних робочих потоків (так, ця торгівля була дійсною. Ні, це підозріло тощо). Вночі ми виконуємо великі операції на основі набору (завантажуємо торги попереднього дня).
Сучасне рішення та проблема
Ми використовуємо знімки бази даних . О 10 годині вечора ми скидаємо і відтворюємо знімок. Потім починається обробка ETL. Це, очевидно, оподаткування нашого диска, але дозволяє нашим користувачам можливість запитувати базу даних, не блокуючи базу даних (вони використовують передню частину доступу). Вони використовують його пізно вночі та рано вранці, щоб вони помітили час простою.
Проблема такого підходу двостороння. Перший полягає в тому, що якщо нічна обробка не вдається, і це не страшно рідко, ми отримуємо відновити базу даних, в результаті чого знімок буде видалений. Інша проблема полягає в тому, що наші часи обробки проходять мимо нашого Угоди про угод. Ми намагаємося вирішити це, працюючи з постачальником, після виявлення погано написаних запитів та відсутності індексації. Знімок з бази даних також є винуватцем цього уповільнення, про що свідчить різниця швидкостей, коли вона присутня, а не --- шокуюча, я знаю.
Розглянуті підходи
Кластеризація
У нас було включено кластеризацію баз даних, але це не відповідало потребам надання даних доступними та просто загалом ускладнило життя адміністратора. З тих пір вимкнено.
Реплікація SQL Server
Ми почали розглядати реплікацію минулого тижня. Наша теорія полягає в тому, що ми можемо отримати другий каталог, який склався і синхронізувався з виробничою базою даних. До початку ETL ми припинимо з'єднання і повторно ввімкнемо його лише після завершення процесу ETL.
Адміністратор почав з реплікації знімка, але він стурбований тим, що для отримання знімка потрібні кілька днів високого використання процесора, а також необхідне споживання диска. Він вказує, що видається, що всі дані надсилаються у фізичні файли перед тим, як коли-небудь відправити передплатнику, тому наша база даних .6TB обійдеться у 1,8 ТБ у витратах на зберігання. Крім того, якщо для отримання оснащення знадобиться кілька днів, то він не впишеться в потрібний угода про угод.
Прочитавши прекрасну статтю, здається, що Знімок може бути способом ініціалізації передплатників, але тоді ми хотіли б перейти до транзакційної реплікації, щоб тримати її синхронізувати після цього. Я припускаю, що включення / вимкнення транзакційної реплікації не призведе до повного реініціалізації? Інакше ми підірвемо своє часове вікно
Дзеркальне відображення бази даних
Наша база даних перебуває у ПОВНОМУ режимі відновлення, тому дзеркальне відображення бази даних є варіантом, але я знаю про неї навіть менше, ніж Реплікація. Я знайшов відповідь ТА, яка вказувала: "Дзеркальне відображення баз даних перешкоджає доступу до даних безпосередньо, до дзеркальних даних доступний лише знімок бази даних".
Доставка журналу
Здається, що доставка журналів також може бути варіантом, але це ще одна з тих речей, про які я нічого не знаю. Це було б рішення з меншими витратами (впровадження та обслуговування), ніж будь-що інше? На підставі коментаря Ремуса "Доставка журналів дозволяє отримати доступ лише для читання до копії репліки, але відключить всіх користувачів при застосуванні наступного отриманого журналу резервного копіювання (наприклад, кожні 15-30 хвилин)." Я не впевнений, як довго цей час простою перетвориться на те, що може викликати у користувачів деякий стурбованість.
MS Sync
Я чув лише про використання Sync минулих вихідних і ще не досліджував її. Мені б не хотілося впроваджувати нову технологію для чогось із високою видимістю, як ця проблема, але якщо це найкращий підхід, так і нехай буде.
SSIS
У нас тут багато SSIS, тому генерування декількох сотень пакетів SSIS для збереження вторинних синхронізованих є для нас варіантом, хоч і некрасивим . Я не прихильник займатися цим, тому що це великі витрати на технічне обслуговування, я вважаю за краще, щоб моя команда не брала на себе участь.
"Чарівний" знімок SAN
Раніше я чула, як наш адміністратор використовував деяку технологію SAN для того, щоб робити миттєві резервні копії цілих дисків. Можливо, є якась магія ЕМС, яка може бути використана для виготовлення копій mdf / ldf уберквік, і ми можемо потім від'єднати / приєднати цільову базу даних.
Резервне копіювання і відновлення
Я думаю, що ми робимо повні резервні копії раз на тиждень, різняки щоночі та тривалість кожні 15 хвилин. Якщо користувачі могли б жити з відключенням на 3-4 години для повного відновлення, я думаю, це може бути підходом.
Обмеження
Windows 2008 R2, SQL Server 2008 R2 (Enterprise Edition), VMWare v5 Enterprise Edition, EMC SAN-накопичувач із накопичувачами, відображеними на файли vmdk, резервне копіювання файлів обмінні файлами та .6TB даних у вихідному каталозі. Це стороннє додаток, яке ми розміщуємо вдома. Зміна їх структури, як правило, нахмуриться. Користувачі не можуть пройти без запитів у базі даних та відмовитись від обмеження, попередньо ідентифікуючи таблиці, які вони контролюють, щоб виконати свою роботу.
Наші DBA на даний момент є суто підрядниками. Штатники відпливли, і ми ще їх не замінили. Адміністратори програми недостатньо розбираються в питаннях SQL Server, і у нас є команда адміністраторів Storage / VM, яка могла б допомогти / перешкодити цьому. Наразі команди розвитку не беруть участь, але можуть бути зараховані на основі підходу. Таким чином, більш простим у виконанні та підтримці рішення було б краще.
Я, я сторонник розвитку, тому я можу лише пропонувати підходи, і мені не довелося мати справу з адміністративною стороною. Тому, не маючи часу на адміністративному сідлі, я не вагаюся сказати, що один підхід був би кращим за інший — це все виглядає чудово згідно з документами. Я повністю готовий керувати будь-яким напрямком, який ви пропонуєте, тому що, як я бачу, це зробить мене ще більш цінним як професіонала БД. У мене тачка, але плащ з холокостом не доступний .
Пов'язані питання
/programming/525637/what-are-the-scenarios-for-using-mirroring-log-shipping-replication-and-cluste
/programming/4303020/sync-databases-mirroring-replication-log-shipping
/programming/4303020/sync-databases-mirroring-replication-log-shipping
http://nilebride.wordpress.com/2011/07/24/log-shipping-vs-mirroring-vs-replication/
Правки
Щоб вирішити питання @ onpnt
Прийняття затримки даних
Наразі користувачі переглядають дані, які відстають на 24 години. Дані поточні лише на 2200 рік
Кількість змін даних за певну хвилину, годину та день Не знаєте, як це визначити. Робочий час, можливо, сотні змін на годину. Нічна обробка, мільйони рядків за робочий день
Підключення до вторинного
Внутрішня мережа, окремий віртуальний хост і виділене сховище
Прочитайте вимоги на другорядній інстанції
Група Windows матиме доступ до читання до другорядних, усіх таблиць
Час роботи вторинної інстанції
Не існує чіткого визначення вимоги до часу. Користувачі хочуть, щоб це завжди було доступне, але чи готові вони платити за це, ймовірно, не так багато. Реально, я б сказав, що 23 годин із дня було б достатньо.
Зміни до існуючої схеми та всіх об'єктів
Нечасті модифікації, можливо, один раз на квартал для об’єктів таблиці. Можливо, один раз на місяць для об'єктів коду.
Безпека
Ніяких особливих потреб у безпеці. Дозволи на виробництво відповідатимуть дозволам на копію. Хоча, як я думаю про це, ми могли б позбавити користувачів читати доступ до prod і лише дозволити їм читати копію ... Хоча це не обов'язково.
@darin протока
Повернення до знімка може бути варіантом, але я думаю, що було певних причин, щоб вони не переслідували його. Я перевірю у адміністратора
@cfradenburg
Моє припущення було, що ми використовуємо лише один із цих підходів, але це хороший момент, коли відновлення порушить "інші" технології синхронізації. Вони досліджують, використовуючи магію знімків ЕМС. Як описав адміністратор, вони зробили знімок о 1900 і перенесуть зображення в зону вторинного. Це має завершитись до 2200, і тоді вони виконають від'єднання та повторне приєднання вторинної бази даних.
Загорнути
2012-10-29 Ми оцінили магію знімків ЕМС та деякі інші варіанти реплікації, але DBA вирішили, що вони можуть найкраще з'ясувати Mirroring. Відповіді схвалили, бо всі вони допомогли і дали мені безліч варіантів, а також "домашніх завдань" для дослідження.