Если я перестану работать с одной базой данных, перестанут ли работать и другие, которые используют одну и ту же зеркальную конечную точку?

11

У нас есть две базы данных, настроенные для зеркалирования на одном экземпляре SQL Server: тестовая база данных и производственная база данных. Оба зеркалируются на другой сервер с использованием одинаковых конечных точек.

Если я зайду в Свойства базы данных для тестовой базы данных и нажму кнопку «Отработка отказа», произойдет ли сбой в рабочей базе данных, так как обе базы данных совместно используют конечную точку зеркала и их свойства сетевых адресов сервера совпадают?

введите описание изображения здесь

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

Если я использую кнопку «Отработка отказа» в Свойствах базы данных, это приведет к сбою всех баз данных, использующих эту конечную точку, или только конкретной базы данных, для которой я просматриваю свойства?

Рейчел
источник

Ответы:

19

Ответ @ mrdenny точен: отказ одной базы данных не приведет к отказу всех других баз данных.

Однако просто для того, чтобы дать более подробный обзор того, что такое конечная точка зеркального отображения базы данных :

От BOL ,

Управление соединениями в Microsoft SQL Server 2005 и более поздних версиях основано на конечных точках. Конечная точка - это объект SQL Server, который позволяет SQL Server взаимодействовать по сети. Для зеркального отображения базы данных экземпляру сервера требуется собственная выделенная конечная точка зеркального отображения базы данных. Все зеркальные соединения на экземпляре сервера используют одну конечную точку зеркального отображения базы данных. Эта конечная точка является конечной точкой специального назначения, используемой исключительно для получения подключений зеркального отображения базы данных от других экземпляров сервера.

Чтобы быть более гибким, вы можете использовать T-sql для выполнения аварийного переключения вручную:

Выключите зеркальное отображение ( отключите зеркальное отображение) на зеркале БД.

ALTER DATABASE <<DB NAME>> SET PARTNER OFF

Установите мод восстановления БД на RECOVERY

RESTORE DATABASE <<DB NAME>> WITH RECOVERY

Исправьте и осиротевших пользователей, если вы используете проверку подлинности SQL

EXEC sp_change_users_login Auto_Fix , ‘<<username>>’

РЕДАКТИРОВАТЬ:

Поскольку вы используете режим высокой безопасности (согласно вашему скриншоту), вы можете использовать следующее с основного сервера

ALTER DATABASE <<DB NAME>> SET PARTNER FAILOVER

При этом происходит только смена ролей, а направление зеркального отображения меняется - принципал становится зеркальным, и наоборот. Обратите внимание, что ЗЕРКАЛО не сломано.

Обратите внимание, что в этой статье MSDN

Отработка отказа вручную может быть инициирована только с основного сервера.

Если вы хотите полностью автоматизировать отработку отказа, обратитесь к разделу «Автоматизация зеркального отображения базы данных».

Кин Шах
источник
8

Нет, не будет. Базы данных отказываются независимо друг от друга. Там нет никакого вреда сбоя над тестовой базой данных, производственная база данных останется там, где она есть.

mrdenny
источник