Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения:SQL Server
Вы можете использовать зеркальную базу данных, которую поддерживаете для обеспечения доступности, чтобы перенести на нее формирование отчетов. Чтобы использовать зеркальную базу данных для формирования отчетов, можно создать моментальный снимок базы данных на зеркальной базе данных и направлять запросы на подключение клиентов к самому последнему снимку. Моментальный снимок базы данных представляет собой статичный, доступный только для чтения, согласованный по транзакциям моментальный снимок состояния базы данных-источника на момент создания снимка. Для создания снимка базы данных в зеркальной базе данных необходимо привести эту базу данных в синхронизированное состояние зеркального отображения.
В отличие от самой зеркальной базы данных, снимок базы данных доступен клиентам. Пока зеркальный сервер соединен с основным сервером, можно направлять запрашивающих отчеты клиентов на подключение к моментальному снимку. Имейте в виду, что так как моментальный снимок базы данных является статичным, новые данные недоступны. Чтобы пользователям были доступны сравнительно свежие данные, необходимо периодически создавать новый снимок базы данных, а приложения должны направлять входящие клиентские подключения на последний снимок.
Новый снимок базы данных почти пуст, но со временем его размер увеличивается по мере того, как все больше и больше страниц базы данных обновляются впервые. Поскольку каждый снимок базы данных таким образом увеличивается инкрементально, каждый снимок базы данных потребляет столько же ресурсов, сколько и обычная база данных. В зависимости от конфигураций зеркального и основного сервера, избыточное число моментальных снимков базы данных в зеркальной базе данных может уменьшить производительность основной базы данных. Поэтому мы рекомендуем вам хранить только несколько относительно недавних снимков на ваших зеркальных базах данных. Обычно после создания замещающего моментального снимка следует перенаправить входящие запросы на новый моментальный снимок, а после завершения текущих запросов удалить предыдущий снимок.
Примечание.
Дополнительные сведения о моментальных снимках базы данных см. в статье Моментальные снимки базы данных (SQL Server).
Если происходит переключение ролей, база данных и ее снимки перезапускаются, что временно отключает пользователей от базы данных. После этого снимки базы данных остаются на том экземпляре сервера, где они были созданы, а эта база данных становится новой основной базой данных. Пользователи смогут продолжать использовать снимки после аварийного переключения. Однако при этом появляется дополнительная нагрузка на новый основной сервер. Если в вашей среде производительность имеет значение, мы рекомендуем создать снимок новой зеркальной базы данных, когда она станет доступной, перенаправить клиентов на новый снимок базы данных, а затем удалить все снимки базы данных прежней зеркальной базы данных.
Примечание.
В качестве специального решения для отчетов, обладающих достаточной масштабируемостью, можно рассмотреть репликацию. Дополнительные сведения см. в статье SQL Server Replication.
Пример
Этот пример создает снимки зеркально отображаемой базы данных.
Предположим, что база данных сеанса зеркального отображения базы данных — AdventureWorks2025. В данном примере создаются три снимка базы данных в зеркальной копии базы данных AdventureWorks, которая находится на диске F. Снимки названы AdventureWorks_0600, AdventureWorks_1200 и AdventureWorks_1800, чтобы указать примерное время их создания.
Создайте первый моментальный снимок базы данных на зеркале
AdventureWorks2025.CREATE DATABASE AdventureWorks_0600 ON (NAME = 'datafile', FILENAME = 'F:\AdventureWorks_0600.SNP') AS SNAPSHOT OF AdventureWorks2022Создайте второй снимок базы данных на зеркале
AdventureWorks2025. Пользователи, которые всё ещё используютAdventureWorks_0600, могут продолжать им пользоваться.CREATE DATABASE AdventureWorks_1200 ON (NAME = 'datafile', FILENAME = 'F:\AdventureWorks_1200.SNP') AS SNAPSHOT OF AdventureWorks2022На этом этапе новые подключения клиентов можно программно перенаправлять на последний снимок.
Создайте третий снимок на зеркале
AdventureWorks2025. Пользователи, которые по-прежнему используютAdventureWorks_0600илиAdventureWorks_1200, могут продолжать их использовать.CREATE DATABASE AdventureWorks_1800 ON (NAME = 'datafile', FILENAME = 'F:\AdventureWorks_1800.SNP') AS SNAPSHOT OF AdventureWorks2022На этом этапе новые клиентские соединения можно программно направлять на последний моментальный снимок.