Поделиться через


Зеркальное отображение и моментальные снимки баз данных

Преимущество зеркальной базы данных проявляется в возможности использовать ее для разгрузки при формировании отчетов. Чтобы использовать зеркальную базу данных для выполнения отчетов, можно создавать моментальные снимки базы данных и направлять запросы клиентских соединений к самому позднему снимку. Моментальный снимок базы данных представляет собой статичный, доступный только для чтения, согласованный по транзакциям моментальный снимок состояния базы данных-источника на момент создания снимка. Для создания моментального снимка в зеркальной базе данных, база данных должна быть в синхронизированном состоянии зеркального отображения.

В отличие от самой зеркальной базы данных, моментальный снимок базы данных доступен клиентам. Пока зеркальный сервер соединен с основным сервером, можно направлять запрашивающих отчеты клиентов на подключение к моментальному снимку. Имейте в виду, что так как моментальный снимок базы данных является статичным, новые данные недоступны. Чтобы относительно новые данные были доступными для пользователей, необходимо периодически создавать новый моментальный снимок базы данных, а приложения должны устанавливать входящие клиентские соединения с наиболее поздним снимком.

Новый моментальный снимок базы данных почти пустой, но по мере того, как новые страницы базы данных впервые обновляются, снимок растет. Так как каждый моментальный снимок базы данных увеличивается, каждый снимок потребляет столько же ресурсов, как и обычная база данных. В зависимости от конфигураций зеркального и основного сервера, избыточное число моментальных снимков базы данных в зеркальной базе данных может уменьшить производительность основной базы данных. Поэтому, рекомендуется хранить лишь несколько относительно новых моментальных снимков зеркальной базы данных. Обычно после создания замещающего моментального снимка следует перенаправить входящие запросы на новый моментальный снимок, а после завершения текущих запросов удалить предыдущий снимок.

ПримечаниеПримечание

Дополнительные сведения о моментальных снимках базы данных см. в разделе Моментальные снимки базы данных.

Если происходит переключение ролей, то база данных и ее моментальные снимки перезапускаются, при этом пользователи временно отключаются. Впоследствии моментальные снимки базы данных остаются на экземпляре сервера, где они были созданы, который стал новой основной базой данных. Пользователям эти снимки будут доступны и после отработки отказа. Однако при этом появляется дополнительная нагрузка на новый основной сервер. Если в среде важна производительность, рекомендуется создавать моментальный снимок новой зеркальной базы данных, когда она становится доступной, и перенаправлять клиентов на новый снимок, а все моментальные снимки бывшей зеркальной базы данных удалять.

ПримечаниеПримечание

В качестве специального решения для отчетов, обладающих достаточной масштабируемостью, можно рассмотреть репликацию. Дополнительные сведения см. в разделе Хранение данных и подготовка отчетов.

Пример

В этом примере создаются моментальные снимки зеркальной базы данных.

Предполагается, что в сеансе зеркального отображения используется база данных База данных AdventureWorks2008R2. В данном примере создаются три моментальных снимка на зеркальной копии базы данных AdventureWorks2008R2, которая находится на диске F. Моментальные снимки называются AdventureWorks2008R2_0600, AdventureWorks2008R2_1200 и AdventureWorks2008R2_1800; имена обозначают приблизительное время создания снимков.

  1. Создается первый моментальный снимок базы данных на зеркальной копии База данных AdventureWorks2008R2:

    CREATE DATABASE AdventureWorks2008R2_0600
    ON (NAME = 'datafile', FILENAME = 'F:\AdventureWorks2008R2_0600.SNP')
       AS SNAPSHOT OF AdventureWorks2008R2;
    
  2. Создается второй моментальный снимок базы данных на зеркальной копии База данных AdventureWorks2008R2. Пользователи, которые все еще работают с моментальным снимком AdventureWorks2008R2_0600, могут продолжать использовать его.

    CREATE DATABASE AdventureWorks2008R2_1200
    ON (NAME = 'datafile', FILENAME = 'F:\AdventureWork2008R2s_1200.SNP')
       AS SNAPSHOT OF AdventureWorks2008R2;
    

    На этом этапе новые клиентские соединения можно программно направлять на последний моментальный снимок.

  3. Создается третий моментальный снимок на зеркальной копии База данных AdventureWorks2008R2. Пользователи, которые все еще работают с моментальными снимками AdventureWorks2008R2_0600 и AdventureWorks2008R2_1200, могут продолжать их использовать.

    CREATE DATABASE AdventureWorks2008R2_1800
    ON (NAME = 'datafile', FILENAME = 'F:\AdventureWorks2008R2_1800.SNP')
        AS SNAPSHOT OF AdventureWorks2008R2;
    

    На этом этапе новые клиентские соединения можно программно направлять на последний моментальный снимок.

Создание моментального снимка базы данных

Просмотр моментального снимка базы данных

Удаление моментального снимка базы данных