Главная страница
Навигация по странице:

  • Обеспечивающие технологии

  • Лекции по АБД. Лекция 5. Обеспечение требуемого уровня доступности баз данных (высокая доступность, надежность и эффективность) Основные понятия


    Скачать 380.3 Kb.
    НазваниеОбеспечение требуемого уровня доступности баз данных (высокая доступность, надежность и эффективность) Основные понятия
    АнкорЛекции по АБД
    Дата15.09.2021
    Размер380.3 Kb.
    Формат файлаpdf
    Имя файлаЛекция 5.pdf
    ТипДокументы
    #232551

    Обеспечение требуемого уровня доступности баз данных
    (высокая доступность, надежность и эффективность)
    Основные понятия
    Высокую доступность можно определить, как свойство системы быть за- щищённой и легко восстанавливаемой от небольших простоев в короткое время и автоматизированными средствами.
    Высокая доступность
    (high availability) - наиболее распространённый уро- вень, ожидаемый пользователями, при котором система или приложение до- ступны в обозначенные требованиями дни и часы без незапланированных про- стоев, а о запланированных остановках в работе объявлено заранее.
    Непрерывный режим работы (continuous operations) - система доступна 24 часа в сутки 7 дней в неделю без запланированных простоев.
    Постоянная доступность (continuous availability) - сочетание высокой до- ступности с непрерывным режимом работы. Система доступна 24 часа в сутки 7 дней в неделю без запланированных или незапланированных простоев.
    От желаемого уровня доступности зависит стоимость реализации и эксплу- атации системы. Кроме того, так как доступность определяется с точки зрения пользователя, часто субъективной, в требованиях к системе стоит точно опреде- лить, что понимается под высокой доступностью системы.
    Для вычисления достигнутого уровня доступности необходимо знать время простоя (П) и время обещанной доступности (Д), в случае высокой доступ- ности в это время не включается суммарное время запланированных простоев.
    Тогда уровень доступности можно получить по формуле:
    доступность = (Д - П) / Д × 100 %.
    Например, простой системы постоянной доступности в течение 45 минут в январе говорит об уровне доступности 99,9 % («три девятки»).
    Доступность и надежность - похожие, но разные понятия. Надеж- ность - способность системы выполнять требуемые действия, не допуская оши- бок. Доступность - готовность системы к работе при необходимости выполнить
    требуемые действия.
    Система, которая при сложении чисел 2 и 3 получает 6, характеризуется плохой надежностью. Система, которая при сложении 2 и 3 не возвращает от- вета, характеризуется плохой доступностью. Надежность может быть улучшена путем тестирования. Доступность улучшить обычно гораздо сложнее. Если в программе есть ошибка, которая приведет к тому, что 2 + 3 будет равно 6. Такую ошибку легко найти и исправить. Далее, программа надежно выдает результат 2
    + 3 = 5, и она запущена на компьютере с нестабильным сетевым подключением.
    Каков результат? Программа иногда возвращает 5, а иногда не возвращает ни- чего, т.е. программа может быть надежной, но при этом недоступной.
    Что заставляет приложение, которое раньше работало нормально, демон- стрировать низкую доступность? Основные причины перечислены ниже.
    Исчерпание ресурсов. При увеличении количества пользователей или объ- ема данных, требуемых системе, приложение исчерпывает ресурсы (память, про- цессорное время и др.), что ведет к снижению производительности.
    Незапланированные изменения, связанные с увеличением нагрузки. Рост популярности приложения может потребовать внести изменения в код, чтобы обеспечить поддержку более высокой нагрузки. Эти изменения часто реализу- ются на скорую руку, без должного планирования и продумывания, что увели- чивает вероятность появления ошибок.
    Увеличение количества обеспечивающих подсистем. По мере того как при- ложение набирает популярность, часто необходимо подключать к его поддержке все больше и больше разработчиков, проектировщиков, тестировщиков и других специалистов. При этом существенно возрастает вероятность их некорректного взаимодействия.
    Внешние зависимости. Чем сильнее приложение зависит от внешних ре- сурсов, тем больше оно подвержено проблемам, связанным с их доступностью.
    Ожидаемое техническое совершенствование. Усложнение приложений обычно ведет к накоплению желаемых изменений в программном и аппаратном
    обеспечении системы. Это увеличивает вероятность появления эксплуатацион- ных проблем.
    Все быстрорастущие приложения сталкиваются с одной, несколькими или всеми перечисленными выше проблемами. Вследствие этого в приложениях, ра- нее работавших безупречно, могут появиться проблемы с доступностью. Созда- ние масштабируемых приложений означает создание приложений с высоким уровнем доступности.
    Обеспечивающие технологии
    Существует несколько технологий, которые можно использовать для обес- печения высокого уровня доступности. Их можно разделить на две группы: пер- вая, компоненты которой являются частью Database Engine: вторая, компоненты которой не реализованы в СУБД. Следующие две технологии не являются ча- стью Database Engine:
    • использование резервного сервера;
    • использование технологии RAID.
    Следующие четыре технологии принадлежат СУБД:
    • отказоустойчивая кластеризация;
    • зеркальное отображение базы данных;
    • пересылка протокола;
    • репликация.
    Использование резервного сервера. Резервный сервер - другой сервер, ко- торый резервируется на случай, если что-нибудь произойдет с производствен- ным сервером (первичным сервером). Резервный сервер содержит файлы, базы данных (определенные системой и пользователем) и учетные записи пользовате- лей, идентичные тем, что располагаются на производственном сервере.
    Резервный сервер реализован для начального восстановления базы данных с полной резервной копии базы данных и применения резервных копий протоко-
    лов транзакций для поддержания базы данных на резервном сервере в синхрон- ном состоянии по отношению к производственному серверу. Для установки ре- зервного сервера следует установить опцию базы данных read only в значение
    true. Эта опция запрещает пользователям любые операции записи в базу данных.
    Основными шагами по использованию копии производственной базы дан- ных являются следующие:
    ♦ восстановление производственной базы данных при использовании оператора restore database с предложением standby;
    ♦ применение каждого протокола транзакций для резервного сервера при использовании оператора restore log с предложением standby;
    ♦ при применении последней резервной копии протокола транзакции использовать оператор restore log с предложением recovery. Этот финальный оператор восстанавливает базу данных без создания файла с предыдущими об- разами, делая также базу данных доступной для операций записи.
    После того как база данных и резервные копии протоколов транзакции бу- дут восстановлены, пользователи могут работать с точной копией производ- ственной базы данных. Будут навсегда потеряны только лишь неподтвержден- ные транзакции, которые существовали на момент возникновения сбоя.
    Если на производственном сервере происходит сбой, то пользовательские процессы не переходят автоматически на резервный сервер. В этом случае всем пользовательским процессам нужно перезапустить те задачи, которые имели не- подтвержденные транзакции на момент сбоя производственного сервера.
    Использование технологии RAID. RAID ((Redundant Array of Independent
    Disks, избыточный массив независимых жестких дисков)) - избыточный массив из независимых дисков - специальная дисковая конфигурация, в которой множе- ство дисковых накопителей являются единым устройством. Этот дает возмож- ность файлам распределять множество дисковых устройств. Технология RAID предоставляет повышенную надежность при небольшой стоимости. Существует
    шесть уровней RAID, с 0 до 5. Только три из этих уровней 0,1 и 5 являются зна- чимыми для систем баз данных.
    Технология RAID может быть реализована на аппаратном или программ- ном уровнях. Основанная на оборудовании технология RAID является более за- тратной из-за того, что требует приобретения дополнительных дисковых кон- троллеров, но она обычно функционирует быстрее. Основанная на программном обеспечении технология RAID может поддерживаться либо операционной систе- мой, либо самой системой базы данных.
    Каждый уровень RAID отличается набором функций. Операционная си- стема Windows поддерживает уровни RAID 0, 1 и 5. Можно использовать уровень
    RAID 0 для повышения производительности дисков. Уровни RAID 1 и RAID 5 применяются для повышения отказоустойчивости данных. В табл. 1 предостав- лен краткий обзор поддерживаемых уровней RAID. Поддержка осуществляется полностью программно.
    Таблица 1
    Уровни RAID, поддерживаемые Windows
    Уровень
    RAID
    Тип RAID
    Описание
    Основные преимуще- ства
    0
    Чередование
    (расслоение) дисков
    Два или более тома, каждый из ко- торых находится на отдельном диске, настраиваются как чередую- щийся набор. Данные разбиваются на блоки - страйпы, а затем записы- ваются последовательно на все диски в наборе. Отказ одного диска приводит к неработоспособности всего массива
    Скорость и производи- тельность
    1
    Зеркалирова- ние дисков
    Два тома на двух дисках настраива- ются идентично. Данные записыва- ются на оба диска. Если один диск откажет, потерь данных не будет, поскольку другой диск содержит данные (этот уровень не поддержи- вает чередования)
    Отказоустойчивость.
    Лучшая производитель- ность записи по сравне- нию с чередованием с контролем четности
    5
    Чередование диска с кон- тролем четно- сти
    Использует три или более тома, каждый на одном из дисков для со- здания чередования с контролем четности. В случае сбоя данные мо- гут быть восстановлены
    Отказоустойчивость с меньшими издержками, чем зеркалирование.
    Скорость чтения выше чем в зеркалировании

    Технология RAID улучшает устойчивость к ошибкам и производитель- ность. Сравним преимущества и недостатки уровней RAID в отношении этих двух свойств.
    Схема RAID 0 приведена на рис. 1.
    RAID 0(striping - «чередование») - дисковый мас- сив из двух или более жёстких дисков без резервирова- ния. Информация разбивается на блоки данных A{i} фик- сированной длины и записывается на оба (несколько дис- ков поочередно), то есть один блок на первый диск, а вто- рой блок на второй диск соответственно и т.д..
    Основное достоинство - скорость считывания фай- лов увеличивается в n раз, где n - количество дисков. При этом такая оптимальная производительность достигается только для больших за- просов, когда фрагменты файла находятся на каждом из дисков.
    Основной недостаток - увеличивается вероятность потери данных: если ве- роятность отказа каждого из двух дисков равна p, то вероятность выхода из строя массива RAID 0 из этих двух дисков равна 2p-p*p. Таким образом, если вероят- ность отказа одного диска за год равна 1 %, то вероятность отказа массива RAID
    0 из двух дисков составляет 1,99 %, то есть практически в два раза больше. Од- нако, при отказе одного диска теряется только часть информации.
    RAID уровня 0 определяет расслоение дисков без контроля по четности.
    При использовании RAID уровня 0 данные записываются на несколько дисковых устройств в порядке, допускающем наиболее простой доступ к данным, а все операции чтения и записи могут быть выполнены существенно быстрее. По этой причине RAID уровня 0 является самой быстрой конфигурацией RAID. Недостат- ком расслоения дисков является то, что эта конфигурация вообще не обеспечи- вает устойчивости к ошибкам. Это означает, что если на одном диске происходит сбой, то все данные этого массива дисков становятся недоступными.

    Схема RAID 1 приведена на рис. 2. RAID 1(mirroring - «зеркалирова-
    ние») - массив из двух (или более) дисков, являющихся полными копиями друг друга. Не следует путать с массивами RAID 1+0 (RAID 10), RAID 0+1 (RAID 01), в которых используются более сложные механизмы зеркалирования.
    Обеспечивает приемлемую скорость записи (такую же, как и без дублирования) и выигрыш по скорости чте- ния при распараллеливании запросов.
    Имеет высокую надёжность - работает до тех пор, пока функционирует хотя бы один диск в массиве. Веро- ятность выхода из строя сразу двух дисков равна произ- ведению вероятностей отказа каждого диска, то есть зна- чительно ниже вероятности выхода из строя отдельного диска. На практике при выходе из строя одного из дисков следует срочно принимать меры - вновь вос- станавливать избыточность. Для этого с любым уровнем RAID (кроме нулевого) рекомендуют использовать диски горячего резерва.
    Недостаток RAID 1 в том, что по цене двух (и более) жестких дисков поль- зователь фактически получает объём лишь одного.
    Возможность появления ошибок в данных при использовании двух дисков.
    При использовании 3 и более ошибки можно устранить.
    Зеркальное отображение является специальной формой расслоения дис- ков, которое использует пространство на дисковом устройстве для поддержания дубликатов копий некоторых файлов. По этой причине конфигурация RAID уровня 1, которая задает зеркальное отображение дисков, защищает данные от сбоев внешних устройств при помощи создания и поддержания копии базы дан- ных (или ее части) на другом диске. Если устройство, на котором размещается зеркальная копия, разрушается, файлы с такого разрушенного устройства могут быть созданы заново. Конфигурация оборудования для зеркального отображения является более дорогостоящей, однако она обеспечивает высокую скорость. Пре-
    имуществом зеркального отображения Windows (т. е. основанном на программ- ном обеспечении) является то, что оно может быть сконфигурировано как зер- кальное отображение на разделе диска, в то время как зеркальное отображение на основе оборудования обычно реализуется на целом диске.
    В отличие от RAID 0, RAID 1 является более медленным, однако его надеж- ность намного выше. К тому же RAID 1 стоит много больше, чем RAID 0, по- скольку каждый зеркальный диск должен быть дублирован. Эта конфигурация может поддерживать, по меньшей мере, одно поврежденное устройство и выдер- жать разрушение более половины дисковых устройств в множестве зеркалируе- мых дисков без необходимости администратору системы останавливать систему и восстанавливать базу данных с резервных копий. RAID 1 является опцией RAID с наилучшим исполнением, когда требуется устойчивость к ошибкам.
    Зеркальное отображение также сильно влияет на производительность в от- ношении операций чтения и записи. Когда используется зеркальное отображе- ние, операции записи снижают производительность, потому что каждая такая операция требует использования наборов операций ввода/вывода к двум дис- кам - один набор к оригинальному дисковому устройству, другой - к зеркаль- ному. С другой стороны, зеркальное отображение повышает производительность операций чтения, потому что Database Engine имеет возможность читать с лю- бого дискового устройства в зависимости от того, который из них является менее загруженным в данное время.
    Схема RAID 5 приведена на рис. 3.
    Основным недостатком уровней RAID от 2-го до 4-го является невозможность производить па- раллельные операции записи, так как для хранения информации о чётности используется отдельный контрольный диск. RAID 5 не имеет этого недо- статка. Блоки данных и контрольные суммы цикли- чески записываются на все диски массива, нет асимметричности конфигурации
    дисков. Под контрольными суммами подразумевается результат операции XOR
    (исключающее или). XOR обладает особенностью, которая даёт возможность за- менить любой операнд результатом, и, применив алгоритм xor, получить в ре- зультате недостающий операнд. Например: a xor b = c (где a, b, c - три диска рейд-массива), в случае если a откажет, мы можем получить его, поставив на его место c и проведя xor между c и b: c xor b = a. Это применимо вне зависимости от количества операндов: a xor b xor c xor d = e. Если отказывает c, тогда e встаёт на его место и, проведя xor, в результате получаем c: a xor b xor e xor d = c. Этот метод по сути обеспечивает отказоустойчивость 5 версии. Для хранения резуль- тата xor требуется всего 1 диск, размер которого равен размеру любого другого диска в RAID. Минимальное количество используемых дисков равно трём.
    Достоинства. RAID 5 получил широкое распространение, в первую оче- редь благодаря своей экономичности. Объём дискового массива RAID 5 рассчи- тывается по формуле (n-1)*hddsize, где n - число дисков в массиве, а hddsize - раз- мер диска (наименьшего, если диски имеют разный размер). Например, для мас- сива из четырёх дисков по 80 гигабайт общий объём будет (4 − 1) * 80 = 240 гигабайт, то есть «потеряется» всего 25 % против 50 % RAID 10. И с увеличением количества дисков в массиве экономия (по сравнению с другими уровнями RAID, обладающими отказоустойчивостью) продолжает увеличиваться.
    RAID 5 обеспечивает высокую скорость чтения - выигрыш достигается за счёт независимых потоков данных с нескольких дисков массива, которые могут обрабатываться параллельно.
    Недостатки. Производительность RAID 5 заметно ниже на операциях типа Random Write (записи в произвольном порядке), при которых производи- тельность падает на 10-25 % от производительности RAID 0 (или RAID 10), так как требует большего количества операций с дисками (каждая операция записи, за исключением так называемых full-stripe write-ов, заменяется на контроллере
    RAID на четыре - две операции чтения и две операции записи).
    При выходе из строя одного диска надёжность тома сразу снижается до
    уровня RAID 0 с соответствующим количеством дисков n-1 - то есть в n-1 раз ниже надёжности одного диска
    _
    данное состояние называется критическим
    (degrade или critical). Для возвращения массива к нормальной работе требуется длительный процесс восстановления, связанный с ощутимой потерей произво- дительности и повышенным риском.
    В ходе восстановления (rebuild или reconstruction) контроллер осуществ- ляет длительное интенсивное чтение, которое может спровоцировать выход из строя ещё одного или нескольких дисков массива. Кроме того, в ходе чтения мо- гут выявляться ранее не обнаруженные сбои чтения в массивах cold data (дан- ных, к которым не обращаются при обычной работе массива, архивные и мало- активные данные), препятствующие восстановлению. Если до полного восста- новления массива произойдет выход из строя, или возникнет невосстановимая ошибка чтения хотя бы на ещё одном диске, то массив разрушается и данные на нём восстановлению обычными методами не подлежат. Для предотвращения та- ких ситуаций в RAID-контроллерах может применяться анализ атрибутов
    S.M.A.R.T.
    Контроль по четности (RAID уровня 5) реализован при помощи вычисле- ния контрольных сумм для восстановления хранимых на диске данных. Резуль- таты о контроле четности записываются на другие устройства, формирующие массив RAID. Если устройство с данными дает сбой, то новое устройство добав- ляется в массив RAID, и данные с этого сбойного устройства восстанавливаются, получая контрольные суммы с других устройств.
    Преимуществом контроля по четности является то, что нужно одно допол- нительное дисковое устройство для защиты любого количества существующих дисковых устройств. Недостатки контроля по четности связаны с производитель- ностью и устойчивостью к ошибкам. Помимо дополнительных затрат, связанных с вычислением и записью контрольных сумм, требуются дополнительные диско- вые операции ввода/вывода. Стоимость операций ввода/вывода при поиске дан-
    ных является одинаковой для зеркального отображения и для контроля по чет- ности. Также при использовании контроля по четности можно поддерживать только одно отказавшее дисковое устройство до того, как весь массив должен быть переведен в недоступное состояние и будет выполнено восстановление устройства с резервной копии.
    Поскольку расслоение дисков с контролем по четности требует дополни- тельных затрат, связанных с вычислением и записью контрольных значений,
    RAID 5 требует пяти операций ввода/вывода в то время, как RAID 0 требует только одной операции, a RAID 1 — только двух.
    Наиболее часто используемые на Windows-серверах уровни RAID 1 (зерка- лирование) и 5 (чередование с контролем четности). Зеркалирование диска - наименее дорогой способ повысить защиту данных с избыточностью.
    Здесь, для создания избыточного набора данных используются два тома одина- кового размера на двух разных дисках. Если один из дисков откажет, можно вос- становить данные с другого диска.
    С другой стороны, чередование дисков с контролем четности требует боль- шего числа дисков - как минимум три, зато предлагает отказоустойчивость с наименьшим числом издержек, чем зеркалирование дисков. Если произошел сбой диска, можно восстановить данные, комбинируя блоки данных на остав- шихся дисках с записью четности. Четность - метод проверки ошибок, которая использует операцию "исключающее ИЛИ" для создания контрольной суммы для каждого блока данных, записанного на диск. Эта контрольная сумма исполь- зуется для восстановления данных в случае отказа.
    В случае с зеркалированием издержки составляют 50%. Например, если зеркалируются два диска по 750 Гбайт (общее пространство составляет 1500
    Гбайт), то для хранения данных можно использовать только 750 Гбайт. Для че- редования с контролем четности издержки составят примерно 33%. Например, если создается набор RAID 5, использующий три диска по 500 Гбайт (общее про-
    странство - 1500 Гбайт), для хранения данных будет доступно 1000 Гбайт (из- держки - одна треть).
    Отказоустойчивая кластеризация. Отказоустойчивый кластер (High-
    Availability cluster, HA cluster - кластер высокой доступности) - группа серверов, спроектированная в соответствии с методиками обеспечения высокой доступно- сти и гарантирующая минимальное время простоя за счёт аппаратной избыточ- ности. Без кластеризации сбой сервера приводит к тому, что поддерживаемые им приложения или сетевые сервисы оказываются недоступны до восстановления его работоспособности.
    Отказоустойчивая кластеризация исправляет эту ситуацию, перезапуская приложения на других узлах кластера без вмешательства администратора в слу- чае обнаружения аппаратных или программных сбоев. Процесс перезапуска называют аварийным переключением. В рамках этого процесса программное обеспечение кластеризации может дополнительно настроить узел перед запус- ком приложения на нём (например, импортировать и смонтировать соответству- ющие файловые системы, переконфигурировать сетевое оборудование или запу- стить какие-либо служебные приложения).
    Отказоустойчивые кластеры широко используются для поддержки важных баз данных, хранения файлов в сети, бизнес-приложений и систем обслуживания клиентов, таких как сайты электронной коммерции.
    Кластер высокой доступности на Windows включает в себя как минимум два узла с установленными операционными системами и соответствующими ро- лями. Узлы должны быть подключены к внешней сети и внутренней сети, необ- ходимой для обмена служебными сообщениями, к общему хранилищу служеб- ных ресурсов (рис. 1). Кроме того, в систему входят и данные кластеризуемых приложений. В ситуации, когда сервисы исполняются только на одном из узлов, реализуется схема Active-Passive, то есть сервисы выполняются на одном узле, а второй работает в дежурном режиме. Когда оба узла несут полезную нагрузку, реализуется схема Active-Active.

    Рис. 1 Кластер высокой доступности
    Эта технология является наиболее важной, из поддерживаемых Database
    Engine для достижения высокого уровня надежности. Это технология, при кото- рой операционная система и СУБД работают вместе для обеспечения работоспо- собности в случае возникновения сбоя. Отказоустойчивый кластер из группы ре- зервных серверов, называемых узлами, которые совместно используют внеш- нюю дисковую систему. Когда узел в кластере дает сбой, экземпляр Database
    Engine на этой машине прекращает работу. Microsoft Cluster Service автоматиче- ски перемещает ресурсы с отказавшей машины на, таким же образом сконфигу- рированный, другой узел. Перемещение ресурсов с одного узла на другой узел в кластере происходит довольно часто.
    Преимуществом отказоустойчивой кластеризации является то, что она за- щищает систему от аппаратных сбоев, потому что предоставляет механизм авто- матического перезапуска СУБД на другом узле кластера. Это единственная тех- нология высокого уровня надежности в Database Engine, которая поддерживает
    подобную избыточность серверов. Недостатком этой технологии является то, что она не улучшает производительность или масштабируемость. Другими сло- вами, приложение не может осуществлять масштабирование до возможностей кластера, а только в пределах одного узла.
    SQL Server 2008 поддерживает кластерные конфигурации для редакций
    Standard и Enterprise. Для редакции Standard поддерживаются двухузловые кла- стеры, версия Enterprise поддерживает максимальное число узлов кластера, под- держиваемое операционной системой.
    Зеркальное отображение базы данных. Суть зеркального отображения базы данных заключается в следующем: в зеркальной базе данных повторяются все операции обновления, вставки и удаления, которые производятся в основной базе данных. Для этого поток записей активных транзакций с максимально воз- можной скоростью отправляется на зеркальный сервер.
    Зеркальное отображение каждой базы данных осуществляется отдельно и работает только с теми базами данных, которые используют модель полного вос- становления.
    Отказоустойчивая кластеризация предоставляет избыточный сервер, но она не предоставляет избыточности файла данных. Технология Database Engine, называемая зеркальным отображением базы данных, не предоставляет избыточ- ного сервера, но предоставляет и избыточность базы данных, и избыточность файла данных.
    Для установки зеркального отображения базы данных используются два сервера с базой данных, которая будет зеркалироваться с одного сервера на дру- гой. Первый называется главным (основным) сервером, второй – зеркальным сервером. Копия базы данных на зеркальном сервере называется зеркальной ба- зой данных.
    Зеркальное отображение базы данных позволяет выполнять непрерывную передачу протокола транзакций с главного сервера на зеркальный сервер. Копия действий протокола транзакций записывается в протокол зеркалируемой базы
    данных, и в ней выполняются эти транзакции. Если главный сервер становится недоступным, приложения могут соединиться с базой данных на зеркальном сер- вере, не ожидая завершения процесса восстановления. В отличие от отказоустой- чивой кластеризации, зеркальный сервер полностью кэширован и готов выпол- нять задания по причине его синхронизированного состояния. Можно создавать до четырех наборов зеркальных резервных копий. Для реализации зеркального отображения используют опцию mirror то в операторе backup database или в опе- раторе backup log.
    Существует также третий сервер, называемый следящим сервером. Он определяет, какой сервер является главным сервером, а какой - зеркальным. Этот сервер необходим только в том случае, если требуется автоматическая отказо- устойчивость. Чтобы установить режим автоматической отказоустойчивости, необходимо включить синхронный оперативный режим, т. е. в операторе ALTER
    DATABASE установить значение опции SAFETY в FULL.
    SQL Server 2008 содержит ряд улучшений технологии зеркального отобра- жения базы данных, а именно:
    сжатие потока данных;
    ♦ улучшенное использование буферов отправляемых протоколов;
    ♦ опережающее чтение в процессе выполнения фазы отмены;
    ♦ опережающую запись во входной поток зеркального сервера.
    Database Engine сжимает поток данных, если по крайней мере может быть достигнут процент сжатия 12.5. Таким способом система сокращает объем дан- ных протокола, которые пересылаются от главного сервера зеркальному серверу
    (серверам).
    В предыдущих версиях каждая операция пересылки протокола на главном сервере резервировала отправляемый буфер для зеркального протокола для всей базы данных. В SQL Server 2008, если самый последний используемый кэш про- токола содержит достаточно свободной памяти для записей протокола для сле-
    дующей операции пересылки протокола, то эти записи будут добавляться к дан- ному кэшу протокола.
    После перехвата сбоя новый зеркальный сервер должен отменить каждое изменение данных, для которого страница была записана на диск локально, но для которого запись в протокол, возможно, не была сделана на новом главном сервере. Для отмены подобных измененных страниц новый зеркальный сервер должен вначале запросить и получить соответствующие страницы с нового глав- ного сервера. Производительность этой фазы отмены изменении улучшена в SQL
    Server 2008, потому что новый зеркальный сервер отправляет подсказки опере- жающего чтения новому главному серверу для указания того, какие страницы будут запрошены позже.
    При получении записей входного протокола зеркальный сервер записы- вает их на диск асинхронно. В то же самое время зеркальный сервер обрабаты- вает записи протокола, которые уже были записаны на диск. https://www.youtube.com/watch?v=j5Sxy-qe510 (
    ролик по зеркалированию).
    В будущих версиях Microsoft SQL Server этот компонент будет удален. Ре- комендуется использовать вместо него компонент Группы доступности
    AlwaysOn.
    Пересылка протокола. Пересылка протокола позволяет протоколам тран- закций из одной базы данных постоянно пересылаться и использоваться в другой базе данных. Это дает возможность иметь горячий резервный сервер, а также предоставляет способ для загрузки данных с исходной машины на другие ком- пьютеры только для чтения. База данных - получатель является точной копией первичной базы данных, потому что целевая база данных получает все измене- ния от первичной базы данных. Есть возможность сделать целевую базу данных новой первичной базой данных, если первичный сервер, который владеет ориги- нальной базой данных, становится недоступным. Пересылка протокола не под- держивает автоматическую обработку сбоев. Поэтому, если сервер исходной
    базы данных дает сбой, вы должны сами восстановить целевую базу данных либо вручную, либо при помощи пользовательского кода.
    Пересылка протокола похожа на зеркальное отображение базы данных в том, что она дает избыточность базы данных. С другой стороны, зеркальное отображение базы данных значительно расширяет возможности пересылки про- токола, потому что оно позволяет обновлять целевую базу данных через прямое соединение и в реальном времени.
    Примерный механизм доставки журналов представлен на рис. 1
    Рис. 1. Иллюстрация технологии доставки журнала транзакций
    С сервера Источника происходит периодическое резервное копирование журнала транзакций в общий каталог, где эти файлы хранятся указанное время.
    С данного каталога так же по расписанию происходит копирование этих файлов на сервера, где находятся резервные БД, на этих серверах происходит автомати- ческое восстановление БД из журналов транзакций, так же по расписанию.
    Необходимые требования для доставки журналов описаны в первоисточ- нике msdn, отметим лишь некоторые основные.
    1) Версия MS SQL Server 2008 должна быть выше Express редакции.
    2) БД должна иметь модель восстановления Полная; указать в свойствах
    БД или выполнить следующий скрипт:
    USE [Test_bd]
    GO
    ALTER DATABASE [Test_bd] SET RECOVERY FULL WITH NO_WAIT
    GO
    3) Учетные записи MS SQL Агента сервера источника и сервера получа- теля должны иметь права на запись и чтение соответственно на каталоги журна- лов транзакций. В домене это права для учетной записи домена, вне домена учет- ные записи агентов источника и получателя должны иметь одинаковые имена и
    пароли.
    Системный администратор должен периодически выполнять резервное ко- пирование базы данных и ее протокола транзакций для обеспечения возможно- стей восстановления в случае системной ошибки, сбоя оборудования или различ- ных других ситуаций. Database Engine позволяет выполнять два вида резервного копирования базы данных: полное и дифференцированное. Полное резервное ко- пирование использует состояние базы данных на момент времени, когда выда- ется оператор, и выполняет копирование на устройство резервной копии (файл или ленточное устройство). В случае дифференцированного резервного копиро- вания копируются те части базы данных, которые были изменены с момента по- следнего полного резервного копирования базы данных. Преимуществом диф- ференцированного резервного копирования является то, что оно выполняется быстрее, чем полное резервное копирование базы данных для той же базы дан- ных. Существует также резервное копирование протокола транзакций, которое выполняет резервное копирование протоколов транзакций на устройства копии.
    Database Engine выполняет автоматическое восстановление каждый раз, когда происходит системный сбой, который не приводит к сбою любого обору- дования хранения данных. Автоматическое восстановление также выполняется, когда система запускается после каждого останова системы. В процессе автома- тического восстановления каждая подтвержденная транзакция, обнаруженная в протоколе транзакций, записывается в базу данных, а каждая неподтвержденная отменяется. После любого сбоя внешнего устройства может потребоваться руч- ное восстановление базы данных с доступной копии и ее протокола транзакций.
    Для восстановления базы данных должны быть использованы полная резервная копия базы данных и только самая последняя дифференцированная резервная копия. Если для восстановления базы данных используются протоколы транзак- ций, вначале используют полную резервную копию базы данных, а затем приме- няют все существующие протоколы транзакций в порядке их создания для при- ведения базы данных в согласованное состояние, которое она имела на момент,
    когда была создана последняя резервная копия протокола транзакций.
    Database Engine поддерживает несколько собственных технологий, кото- рые служат для повышения доступности систем баз данных и самих баз данных: отказоустойчивая кластеризация; зеркальное отображение базы данных; пере- сылка протокола.
    Отказоустойчивая кластеризация является наиболее важной технологией
    Database Engine в отношении надежности. Только эта технология предоставляет избыточный сервер. Зеркальное отображение базы данных не предоставляет из- быточности сервера, но дает избыточность базы данных. Пересылка протокола похожа на зеркальное отображение базы данных, но поддерживает только под- множество его возможностей. синтаксис: Sqlcmd [-U идентификатор_входа] [-P пароль]
    [-S сервер] [-H имя_узла] [-E доверенное_соединение]


    написать администратору сайта