Подтвердить что ты не робот

Как разрешить ошибку: 1418 в sql-сервере при зеркалировании

Я пытаюсь зеркалировать базу данных на сервере sql. Я создал базу данных и взял ее резервную копию и восстановил на другом сервере. Но после выполнения всех операций и щелчка на зеркальном отображении начала, он показывает следующую ошибку. Я поставил "НЕТ" на вариант сервера свидетелей enter image description here.

Я выполнил шаги зеркалирования в этой Здесь говорится, создайте пользователя на главном и зеркальном сервере с одинаковыми учетными данными в STEP 3. Нужно ли создавать одного и того же пользователя на обоих серверах? или любое альтернативное решение есть?

4b9b3361

Ответ 1

У меня также была такая же проблема. вам нужно проверить следующие пункты один раз.

  • Откройте services.msc и проверьте, работает ли сервер sql под учетной записью. Убедитесь, что службы сервера SQL Server и SQL Server работают с одинаковыми учетными данными.

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

  • Теперь у вас есть главный сервер и на сервере sql добавьте новый вход в систему Безопасность → Вход. Предоставьте роли сервера как Sysadmin и общедоступные. Добавьте того же пользователя на зеркальный сервер.

  • Теперь сделайте зеркало в основной базе данных. У вас не было никакой ошибки.

Ответ 2

Та же проблема, ошибка 1418. Здесь все предлагалось: ссылка

В ретроспективе это было очевидно. По завершении работы MIRRORING > CONFIGURE SECURITY WIZARD вы получите страницу с объяснением результатов. Глядя на узлы SQL1 и SQL2, эта строка была ключом:

On the principal server instance, SQL1
Listener Port: 5022
Encryption: **Yes**


On the mirror server instance, SQL2
Listener Port: 5022
Encryption: **No**

Решение. После завершения работы мастера на всех узлах SQL выполните:

drop endpoint Mirroring
go


CREATE ENDPOINT Mirroring
STATE = STARTED
AS TCP ( LISTENER_PORT = 5022 )
FOR DATABASE_MIRRORING 
(ENCRYPTION = DISABLED,ROLE=ALL)
GO

Зеркалирование начала удара, проблема решена.

Надеюсь, что это поможет кому-то Скотт

Ответ 3

После исчерпания всех параметров, упомянутых выше, у меня был вариант для среды зеркалирования. У нас был сервер SQL 2008, вносящий вклад в сервер 2014 Server в конфигурации Principal-Mirror. Сервер Sql 2014 также использовался в конфигурации AlwaysOn для HA некоторых других Db. Конечные точки теперь называются по-разному на sql 2008 и sql 2014.

После получения вышеупомянутой ошибки я обнаружил, что Encryption for 2008 - RC4, а для 2014 - AES. В результате это привело к сбою рукопожатия с конечной точкой SQL2014. Я изменил шифрование в соответствии с тем, что было в SQL 2008, используя следующую команду и альта!!

ALTER ENDPOINT [Hadr_endpoint]
    FOR DATA_MIRRORING ( ENCRYPTION  = REQUIRED ALGORITHM RC4 )

Ответ 4

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

Как правило, процедура зеркалирования SQL Server:

1) Резервное копирование исходной базы данных и ее копирование на сервер, предназначенный для зеркалирования.

2) Сделайте резервную копию журнала транзакций и скопируйте его на сервер, предназначенный для зеркалирования.

3) Выбирайте базу данных восстановления из MMC и найдите резервную копию базы данных и восстановите ее с параметрами, установленными для выхода в нерабочее состояние без откат транзакций.

4) Выберите восстановление и выбор файлов, а затем выберите файлы журналов и восстановите резервную копию файла журнала, а также вариант без рулона и неработающий. Это второй переключатель на странице параметров на SQL Server 2008.

5) перейдите на исходный сервер копирования базы данных и включите зеркальное отображение. Вам нужно будет использовать учетную запись с правами sysadmin на обоих серверах для запуска цепочек зеркалирования.

Ответ 5

Я встретил эту проблему раньше, все пропуски проверки. Используйте новую конечную точку, она работает. Коренная причина: 5022 может блокировать другой сеанс.

Ответ 6

Моя ошибка 1418 была решена с использованием той же буквы диска на обоих серверах...

Хотя MS предлагает, чтобы вы могли использовать разные буквы, я решил использовать ту же букву дисков...

От MS:

Кроме того, мы рекомендуем, если это возможно, путь к файлу (включая буква диска) зеркальной базы данных будет идентична пути основная база данных. Если пути к файлам должны отличаться, например, если основная база данных находится на диске "F:", но в зеркальной системе отсутствует F: диск, вы должны включить параметр MOVE в оператор RESTORE.

Ответ 7

Для меня у меня возникла эта проблема и, в конечном итоге, она разрешила удаление и повторное создание конечных точек зеркалирования (SSMS → Объекты сервера → Конечные точки → Зеркалирование базы данных)

Ответ 8

Зеркальное отображение точки останова

Go

CREATE ENDPOINT Mirroring
STATE = STARTED
AS TCP ( LISTENER_PORT = 5022 )
FOR DATABASE_MIRRORING 
(ENCRYPTION = DISABLED,ROLE=ALL)
GO

Зеркалирование начала удара, проблема решена.

Надеюсь, что кто-то поможет Скотту

Это действительно помогло мне благодаря scott

Tnx Ritz

Ответ 9

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

SELECT @@Version

У меня были некоторые обновления на моем основном сервере, которые не были установлены на моем зеркальном сервере.

Кроме того, вы можете увидеть дополнительную информацию в журнале SQL Server, чтобы выяснить, почему зеркалирование не работает. Как я понял, у меня была другая версия на обоих серверах.

Ответ 10

В SQL Server 2016 решение должно иметь вашу [учетную запись домена] как системный администратор как на главном, так и на зеркальном сервере. Затем создайте новую учетную запись со следующим

Основной сервер

use [master]
GO
CREATE LOGIN [domain\mirrorservername$] FROM WINDOWS
GO
GRANT CONNECT ON ENDPOINT::[Mirroring] TO [domain\mirrorservername$]
GO

Зеркальный сервер

use [master]
GO
CREATE LOGIN [domain\principalservername$] FROM WINDOWS
GO
GRANT CONNECT ON ENDPOINT::[Mirroring] TO [domain\principalservername$]
GO

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

Для получения дополнительной информации об ошибке проверьте свои журналы ошибок sql.

Надеюсь, что этот пост помогает кому-то.

Ответ 11

У меня была такая же проблема. Я пытался настроить зеркалирование на Windows 2008 R2 при настройке домена. Как было предложено выше одним из экспертов, я проверил учетные записи SQL Server для SQLSERVER и SQLSERVERAGENT и использовал одну и ту же учетную запись домена для служб SQL Server на обеих машинах. Мне удалось настроить зеркалирование.

Спасибо за помощь!