Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Помогите с настройкой Зеркалирования  [new]
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]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с настройкой Зеркалирования  [new]
Mr. X
Guest
DarkM3,

Так проверьте: создалась ли конечная точка (it does not exist) и имеет ли та УЗ, под которой вы выполняете инструкцию GRANT, необходимые права (you do not have permission).
8 авг 16, 17:48    [19517049]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с настройкой Зеркалирования  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37200
У вас в команде эндпоинт с одним именем, в сообщении об ошибке с другим. Так что я сомневаюсь, что одно к другому относится.

Сообщение было отредактировано: 8 авг 16, 17:49
8 авг 16, 17:49    [19517057]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с настройкой Зеркалирования  [new]
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]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с настройкой Зеркалирования  [new]
Гавриленко Сергей Алексеевич
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 Ответить