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


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

Изменения: 14 апреля 2006 г.

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

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

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

ms175511.note(ru-ru,SQL.90).gifПримечание.
Дополнительные сведения о моментальных снимках базы данных см. в разделе Моментальные снимки базы данных.

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

ms175511.note(ru-ru,SQL.90).gifПримечание.
В качестве специального решения для отчетов, обладающих достаточной масштабируемостью, можно рассмотреть репликацию. Дополнительные сведения см. в разделе Хранение данных и подготовка отчетов.

Пример

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

Предполагается, что в сеансе зеркального отображения используется база данных AdventureWorks. В данном примере создаются три моментальных снимка на зеркальной копии базы данных AdventureWorks, которая находится на диске F. Моментальные снимки называются AdventureWorks_0600, AdventureWorks_1200 и AdventureWorks_1800, имена означают приблизительное время создания снимков.

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

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

    CREATE DATABASE AdventureWorks_1200
    ON (NAME = 'datafile', FILENAME = 'F:\AdventureWorks_1200.SNP')
       AS SNAPSHOT OF AdventureWorks
    

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

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

    CREATE DATABASE AdventureWorks_1800
    ON (NAME = 'datafile', FILENAME = 'F:\AdventureWorks_1800.SNP')
        AS SNAPSHOT OF AdventureWorks
    

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

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

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

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

См. также

Основные понятия

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

Другие ресурсы

Клиентские соединения с зеркальной базой данных

Справка и поддержка

Получение помощи по SQL Server 2005

Журнал изменений

Версия Журнал

14 апреля 2006 г.

Новое содержимое:
  • Добавлено указание, что база данных должна находиться в синхронизированном состоянии зеркального отображения.
  • Добавлены сведения об использовании ресурсов.

5 декабря 2005 г.

Измененное содержимое:
  • Расширено объяснение влияния переключения ролей на моментальные снимки базы данных.