Как разрешить ошибку: 1418 в sql-сервере при зеркалировании
Я пытаюсь зеркалировать базу данных на сервере sql. Я создал базу данных и взял ее резервную копию и восстановил на другом сервере. Но после выполнения всех операций и щелчка на зеркальном отображении начала, он показывает следующую ошибку. Я поставил "НЕТ" на вариант сервера свидетелей
.
Я выполнил шаги зеркалирования в этой Здесь говорится, создайте пользователя на главном и зеркальном сервере с одинаковыми учетными данными в STEP 3. Нужно ли создавать одного и того же пользователя на обоих серверах? или любое альтернативное решение есть?
Ответы
Ответ 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 на обеих машинах. Мне удалось настроить зеркалирование.
Спасибо за помощь!