Копия базы данных SQL Azure с активной репликой - PullRequest
0 голосов
/ 07 декабря 2018

У меня возникла проблема при создании копии нашей базы данных SQL Azure.У базы данных, которую мы копируем, есть онлайн-реплика как часть Geo-Replication, которая доступна и настраивается через портал Azure.

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

Например, я запускаю следующий SQL:

ALTER DATABASE <DatabaseName> SET SINGLE_USER WITH ROLLBACK IMMEDIATE

Ответ, который я получаю:

Операция не может быть выполнена для базы данных "", поскольку она участвует в сеансе зеркального отображения базы данных или в группе доступности.Некоторые операции запрещены для базы данных, которая участвует в сеансе зеркального отображения базы данных или в группе доступности.Сообщение 5069, Уровень 16, Состояние 1, Строка 1. Оператор ALTER DATABASE не выполнен.

Я попытался выполнить:

ALTER DATABASE <DatabaseName> SET PARTNER OFF; 

Это не поддерживается как часть azure-sqlпоэтому я получаю ответ:

Параметр ключевого слова или оператора 'PARTNER' не поддерживается в этой версии SQL Server.

Портал Azure для копия базы данных говорит, что «гео-репликация не настроена»

Может кто-нибудь указать мне правильное направление, как сказать копия базы данных , что она больше не является частью какой-либо репликации?

Ответы [ 4 ]

0 голосов
/ 07 декабря 2018

см. Эту статью: https://docs.microsoft.com/en-us/azure/sql-database/sql-database-copy вы не можете установить базу данных в Azure в однопользовательский режим

0 голосов
/ 07 декабря 2018

Добавляя к ответу Conor, вы также можете попытаться экспортировать базу данных как bacpac, а затем импортировать ее как новую базу данных. Здесь вы найдете, как экспортировать базу данных в учетную запись хранения Azure.

0 голосов
/ 07 декабря 2018

Это

alter database current set single_user with rollback immediate

Всегда происходит сбой в базе данных SQL Azure с:

Сообщение 1468, уровень 16, состояние 1, строка 3 Операция не может быть выполнена для базы данных "xxxx"потому что он участвует в сеансе зеркального отображения базы данных или в группе доступности.

Вы увидите, что single_user не поддерживается синтаксисом для базы данных SQL Azure ALTER DATABASE .Вместо этого вы можете установить RESTRICTED_USER:

<db_update_option> ::=  
  { READ_ONLY | READ_WRITE }  

<db_user_access_option> ::=  
  { RESTRICTED_USER | MULTI_USER }  

RESTRICTED_USER

RESTRICTED_USER позволяет только членам предопределенной роли базы данных db_owner и dbcreator и sysadmin фиксированной роли сервера подключаться к базе данных, ноне ограничивает их количество.Все соединения с базой данных отключаются в сроки, указанные в условии завершения инструкции ALTER DATABASE.После того, как база данных перешла в состояние RESTRICTED_USER, попытки подключения неквалифицированными пользователями отклоняются.RESTRICTED_USER нельзя изменить с помощью экземпляра SQL Database Managed.

Без возможности подключения к Master и просмотра и, возможно, уничтожения сеансов, подключенных к пользовательским базам данных, установка базы данных в SINGLE_USER может быть bad .

0 голосов
/ 07 декабря 2018

Спрошу у команды инженеров.Может случиться так, что во время копирования это концептуально является частью набора реплик, пока копирование не будет завершено.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...