Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
DarkM3 Member Откуда: Сообщений: 7 |
Имеем: два сервера, на которых стои SQL 2008 R2. инструкцию по настройки: При попытке добавить Гранты на основном сервере: GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_B_login]; GO Вылезает ошибка: Msg 15151, Level 16, State 1, Line 2 Cannot find the endpoint 'DBMirrorEndPoint', because it does not exist or you do not have permission. Оба SQL Сервера работаю под одинаковой доменной учетной записью... |
8 авг 16, 17:35 [19516996] Ответить | Цитировать Сообщить модератору |
Mr. X
Guest |
DarkM3, Так проверьте: создалась ли конечная точка (it does not exist) и имеет ли та УЗ, под которой вы выполняете инструкцию GRANT, необходимые права (you do not have permission). |
8 авг 16, 17:48 [19517049] Ответить | Цитировать Сообщить модератору |
Гавриленко Сергей Алексеевич Member Откуда: Moscow Сообщений: 37200 |
У вас в команде эндпоинт с одним именем, в сообщении об ошибке с другим. Так что я сомневаюсь, что одно к другому относится.
Сообщение было отредактировано: 8 авг 16, 17:49 |
8 авг 16, 17:49 [19517057] Ответить | Цитировать Сообщить модератору |
DarkM3 Member Откуда: Сообщений: 7 |
Кратко описал что делал.... Часть 1. Настраиваем подключение через сертификаты: 1. На Главном Сервере в SQL management studio (Предварительно создав папку на Диске D:\): USE MASTER GO IF NOT EXISTS(SELECT 1 FROM sys.symmetric_keys where name = '##MS_DatabaseMasterKey##') CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'Vxb15351' GO IF NOT EXISTS (select 1 from sys.databases where [is_master_key_encrypted_by_server] = 1) ALTER MASTER KEY ADD ENCRYPTION BY SERVICE MASTER KEY GO IF NOT EXISTS (SELECT 1 FROM sys.certificates WHERE name = 'PrincipalServerCert') CREATE CERTIFICATE PrincipalServerCert WITH SUBJECT = 'Principal Server Certificate', START_DATE = '08/08/2016', EXPIRY_DATE = '08/08/2036'; GO BACKUP CERTIFICATE PrincipalServerCert TO FILE = 'D:\Certs\PrincipalServerCert.cer' GO IF NOT EXISTS(SELECT * FROM sys.endpoints WHERE type = 4) CREATE ENDPOINT Mirroring_Point STATE = STARTED AS TCP (LISTENER_PORT = 5022) FOR DATABASE_MIRRORING ( AUTHENTICATION = CERTIFICATE PrincipalServerCert, ENCRYPTION = REQUIRED ,ROLE = ALL ) 2. НА зеркальном Сервере (Предварительно создав папку на Диске D:\): USE MASTER GO IF NOT EXISTS(SELECT 1 FROM sys.symmetric_keys where name = '##MS_DatabaseMasterKey##') CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'Vxb15351' GO IF NOT EXISTS (select 1 from sys.databases where [is_master_key_encrypted_by_server] = 1) ALTER MASTER KEY ADD ENCRYPTION BY SERVICE MASTER KEY GO IF NOT EXISTS (SELECT 1 FROM sys.certificates WHERE name = 'MirrorServerCert') CREATE CERTIFICATE MirrorServerCert WITH SUBJECT = 'Mirror Server Certificate', START_DATE = '08/08/2016', EXPIRY_DATE = '08/08/2036'; GO BACKUP CERTIFICATE MirrorServerCert TO FILE = 'D:\Certs\MirrorServerCert.cer' GO IF NOT EXISTS(SELECT * FROM sys.endpoints WHERE type = 4) CREATE ENDPOINT Mirroring_principal_point STATE=STARTED AS TCP (LISTENER_PORT = 5023) FOR DATABASE_MIRRORING ( AUTHENTICATION = CERTIFICATE MirrorServerCert, ENCRYPTION = REQUIRED ,ROLE = ALL ) 3. Копируем сертификаты с одного на другой сервак, чтобы в папке D:\Certs лежало по 2 сертификата: MirrorServerCert PrincipalServerCert 4. Создадим на главном сервере пользователя MirrorServerUser, этого пользователь привязываем к сгенерированному и скопированному с зеркального сервера сертификату MirrorDBCertPub USE MASTER GO IF NOT EXISTS(SELECT 1 FROM sys.syslogins WHERE name = 'MirrorServerUser') CREATE LOGIN MirrorServerUser WITH PASSWORD = 'Vxb15351!' IF NOT EXISTS(SELECT 1 FROM sys.sysusers WHERE name = 'MirrorServerUser') CREATE USER MirrorServerUser; IF NOT EXISTS(SELECT 1 FROM sys.certificates WHERE name = 'MirrorDBCertPub') CREATE CERTIFICATE MirrorDBCertPub AUTHORIZATION MirrorServerUser FROM FILE = 'D:\Certs\MirrorServerCert.cer' GRANT CONNECT ON ENDPOINT::Mirroring_Point TO MirrorServerUser GO 5. Создадим на резервном сервере пользователя PrincipalServerUser, этого пользователь привязываем к сгенерированному и скопированному с главного сервера сертификату PrincipalDBCertPub USE MASTER GO IF NOT EXISTS(SELECT 1 FROM sys.syslogins WHERE name = 'PrincipalServerUser') CREATE LOGIN PrincipalServerUser WITH PASSWORD = 'Vxb15351!' IF NOT EXISTS(SELECT 1 FROM sys.sysusers WHERE name = 'PrincipalServerUser') CREATE USER PrincipalServerUser; IF NOT EXISTS(SELECT 1 FROM sys.certificates WHERE name = 'PrincipalDBCertPub') CREATE CERTIFICATE PrincipalDBCertPub AUTHORIZATION PrincipalServerUser FROM FILE = 'D:\Certs\PrincipalServerCert.cer' GRANT CONNECT ON ENDPOINT::Mirroring_principal_point TO PrincipalServerUser GO Связи настроенны ! Часть 2. Настройка зеркалирования Баз данных: Здесь нам надо будет снять бэкап с рабочей базы, поднять его на зеркальном сервере в режиме NORECOVERY и включить режим зеркалирования. Зеркалируемая база данных должна иметь модель восстановления FULL. 1. Снимаем бэкап рабочей БД: BACKUP DATABASE [ITSM] TO DISK = N'\\s-rcm-file01\backup\EveryHour\ITSM.bak' WITH FORMAT, INIT, NAME = N'ITSM-Full Database Backup',STATS = 10 2. Поднимаем его на зеркальном (скрипт подразумевает, что файл бэкапа перенесён на зеркальный сервак на диск D) !!! Внимание !!! На зеркальном сервере такой базы существовать не должно!!!!! RESTORE DATABASE [ITSM] FROM DISK = '\\s-rcm-file01\backup\EveryHour\ITSM.bak' WITH NORECOVERY ,MOVE N'ITSM' TO N'D:\DataBases\ITSM.mdf' ,MOVE N'ITSM_Log' TO N'D:\Logs\ITSM.ldf' 3. Для запуска зеркалирования на зеркальном сервере выполняем: ALTER DATABASE ITSM SET PARTNER = 'TCP://MSSQLMAINSERV:5022' 4. Затем на главном (ошибка как раз при выполнении данного пункта): ALTER DATABASE ITSM SET PARTNER = 'TCP://MSSQLMIRRORSERV:5023' Продвинулся дальше... помогите со следующей ошибкой: Msg 1418, Level 16, State 1, Line 1 The server network address "TCP://MSSQLMIRRORSERV:5023" can not be reached or does not exist. Check the network address name and that the ports for the local and remote endpoints are operational. Firefall на обоих серверах потушен.... Сообщение было отредактировано: 9 авг 16, 12:37 |
9 авг 16, 11:26 [19519337] Ответить | Цитировать Сообщить модератору |
Гавриленко Сергей Алексеевич Member Откуда: Moscow Сообщений: 37200 |
Основная статья вот такая: https://msdn.microsoft.com/en-us/library/ms189127.aspx По вашей ошибке: https://msdn.microsoft.com/en-us/library/aa337361.aspx (или вот: http://blog.sqlauthority.com/2010/01/11/the-server-network-address-tcpsqlserver5023-can-not-be-reached-or-does-not-exist-check-the-network-address-name-and-that-the-ports-for-the-local-and-remote-endpoints-are-operational-microso/ ) З.Ы. Это гуглится за 30 секунд. Сообщение было отредактировано: 9 авг 16, 12:42 |
9 авг 16, 12:40 [19519687] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |