Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Вопрос по зеркалированию mssql 2005  [new]
DmitriiBond
Member

Откуда:
Сообщений: 22
Здраствуйте. Я не сисадмин, а программист. Но пока вынужден рассматривать и решать эти вопросы. Необходим совет специалистов.

Собственно, необходимо повысить отказоустойчивость 1 бд на сервере.

Я рассмотрел следующие варианты:

А. Кластер (вариант отпал пока что, т.к. врятле кто-то захочет менять часть инфраструктуры, но это почти идеальный вариант, я знаю)
Б. Зеркалирование БД (вот его я и выбрал, точнее выбрали за меня)

1. Я создал зеркала (без следящего и автоматической отработки отказа) на двух разных машинах (без домена), с использованием сертификатов.

2. Рассмотрел и создал зеркала со следящим сервером и автоматической отработкой отказа. Для этого мне пришлось поднять домен, АД, и три вирт. машины - http://dl.dropbox.com/u/22639368/work/work_3.jpg
Все работает и переключает автоматом в случае падения. Я даже сегодня настроил проброс днс, что бы на поддоменых машинах был интернет.

Сейчас от меня хотят увидеть зеркало со следящим сервером, но что бы машины находились _вне_ домена. Я ничего по этому поводу не нашел внятного, по всей видимости никому это не нужно.

Почему без домена - я затрудняюсь ответить на этот вопрос, т.к. работаю 1th неделю, а завод вообще находится в другом городе.

Возможно это будет вариант с сертификами или еще что - подскажите пожалуйста).
25 авг 11, 12:07    [11176788]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по зеркалированию mssql 2005  [new]
BVB_berserk
Member

Откуда:
Сообщений: 35
DmitriiBond,

Как-то сумбурно написано :)

Зеркалирование даже со следящим сервером можно настроить с помощью сертификатов, даже когда все три сервера находятся не в домене.
25 авг 11, 12:51    [11177233]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по зеркалированию mssql 2005  [new]
DmitriiBond
Member

Откуда:
Сообщений: 22
BVB_berserk,

благодарю, а как? Точнее, как именно настроить следящий сервер на использование серта? К кому он должен подключатся? К Principial? Вы не подскажете, где про такой вариант прочитать можно?
25 авг 11, 12:56    [11177309]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по зеркалированию mssql 2005  [new]
BVB_berserk
Member

Откуда:
Сообщений: 35
DmitriiBond,

Используется схема с несколькими сертификатами.
25 авг 11, 13:19    [11177576]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по зеркалированию mssql 2005  [new]
BVB_berserk
Member

Откуда:
Сообщений: 35
Блин, рано отправил.
http://msdn.microsoft.com/en-us/library/ms191140.aspx

Вот как тут описано, только делаете аналогичные действия ещё и с третьим сервером :)
25 авг 11, 13:20    [11177583]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по зеркалированию mssql 2005  [new]
DmitriiBond
Member

Откуда:
Сообщений: 22
BVB_berserk
Блин, рано отправил.
http://msdn.microsoft.com/en-us/library/ms191140.aspx

Вот как тут описано, только делаете аналогичные действия ещё и с третьим сервером :)


не совсем понятно как именно делать.

Суть в чем - для хостов А и Б (principial & mirror db) я прописываю точку подключения, и в этой точке подключения указываю сертификат с противоположного сервера, т.е. что бы А мог подключится к Б, я использую серт хоста Б. И аналогично наоборот на хосте Б.

Тут же есть еще Witness хост, который должен уметь подключатся к А и Б.

т.е. как в точке подключения указать два сертификата? (для хостов А и Б)
25 авг 11, 14:37    [11178390]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по зеркалированию mssql 2005  [new]
Kirillich
Member

Откуда:
Сообщений: 581
DmitriiBond,

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

добавляете нового пользователя для принципала и зеркала.
содаете новый сертификат, привязываете его к пользователю (слядящему).
разрешаете на принципале и зеркале подключение в ендпоинту
25 авг 11, 14:45    [11178483]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по зеркалированию mssql 2005  [new]
DmitriiBond
Member

Откуда:
Сообщений: 22
Kirillich
DmitriiBond,

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

добавляете нового пользователя для принципала и зеркала.
содаете новый сертификат, привязываете его к пользователю (слядящему).
разрешаете на принципале и зеркале подключение в ендпоинту

мммм.

цитата с мсдн:

CREATE ENDPOINT Endpoint_Mirroring
   STATE = STARTED
   AS TCP (
      LISTENER_PORT=7024
      , LISTENER_IP = ALL
   ) 
   FOR DATABASE_MIRRORING ( 
      AUTHENTICATION = CERTIFICATE HOST_A_cert
      , ENCRYPTION = REQUIRED ALGORITHM AES
      , ROLE = ALL
   );
GO
CERTIFICATE HOST_A_cert
мммм. А что тогда указывать в строке аутентицикации вместо сертификата?
25 авг 11, 16:09    [11179466]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по зеркалированию mssql 2005  [new]
DmitriiBond
Member

Откуда:
Сообщений: 22
можно чуточку подробнее, я второй день все это наблюдаю с такого расстояния =).
Немного профиль другой =(. Сижу, ломаю голову.
25 авг 11, 16:15    [11179550]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по зеркалированию mssql 2005  [new]
DmitriiBond
Member

Откуда:
Сообщений: 22
ммм.

хосты A, B, C

создаю на каждом хосте серты, создаю соответвенно юзеров.

Далее, на каждом хосте создаю пользователей для других хостов и ассоциирую их с ихними сертами.

т.е.
Хост А = создаем логины В, С и ассоциируем с сертами
В = А, С
С = А, В

далее, дла каждого юзера делаю гранд коннект для точки подключения.

Это понятно, если это верно.

А вот теперь загвоздка с самой точкой подключения:
исходя из этой ссылки http://msdn.microsoft.com/en-us/library/ms186384.aspx, в точке подключения прописан сертификат другова хоста...
Вот тут то я и не понимаю как дальше.
25 авг 11, 16:25    [11179632]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по зеркалированию mssql 2005  [new]
DmitriiBond
Member

Откуда:
Сообщений: 22
или мне просто нужно связать юзеров с точкой подключения, а в самой точке подключения указать:

OLE = WITNESS, AUTHENTICATION = WINDOWS NEGOTIATE
25 авг 11, 16:28    [11179668]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по зеркалированию mssql 2005  [new]
Kirillich
Member

Откуда:
Сообщений: 581
DmitriiBond,

CREATE ENDPOINT endpoint_mirroring
    STATE = STARTED
    AS TCP ( LISTENER_PORT = 5022 )
    FOR DATABASE_MIRRORING (ROLE=PARTNER);

GRANT CONNECT ON ENDPOINT::[endpoint_mirroring] TO [пользователь]

у вас же доменная авторизация?
25 авг 11, 16:36    [11179749]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по зеркалированию mssql 2005  [new]
Kirillich
Member

Откуда:
Сообщений: 581
Kirillich,

вернее речь шла наоборот, о НЕ доменной авторизации
25 авг 11, 16:37    [11179759]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по зеркалированию mssql 2005  [new]
DmitriiBond
Member

Откуда:
Сообщений: 22
Kirillich
DmitriiBond,

CREATE ENDPOINT endpoint_mirroring
    STATE = STARTED
    AS TCP ( LISTENER_PORT = 5022 )
    FOR DATABASE_MIRRORING (ROLE=PARTNER);

GRANT CONNECT ON ENDPOINT::[endpoint_mirroring] TO [пользователь]

у вас же доменная авторизация?

нет, доменная авторизация делает целиком через гуй за 5 кликов мышкой =(.
От меня хотят НЕ доменную авторизацию (просто разрозненные сервера соединенные сетью). Через T-SQL я настроил без witness сервера, сейчас нужно с ним настроить.
25 авг 11, 16:54    [11179937]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по зеркалированию mssql 2005  [new]
Kirillich
Member

Откуда:
Сообщений: 581
DmitriiBond,


mportant:



If you intend to run in high-safety mode with automatic failover, you must repeat the same setup steps to configure the witness for outbound and inbound connections. Setting up the inbound connections when a witness is involved requires that you set up logins and users for the witness on both of the partners and for both partners on the witness.



ажно!



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

Сообщение было отредактировано: 25 авг 11, 17:11
25 авг 11, 17:10    [11180101]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по зеркалированию mssql 2005  [new]
Kirillich
Member

Откуда:
Сообщений: 581
извиняюсь, что-то напуталс форматированием.


вроде как не двусмысленно написано что нужно сделать?
25 авг 11, 17:13    [11180131]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по зеркалированию mssql 2005  [new]
DmitriiBond
Member

Откуда:
Сообщений: 22
Kirillich,

да это я читал. Сейчас попробую без авторизиции через сертификаты сделать, а просто создать пользователей и сертификаты к ним привязать. Как выше писал.
Только пока не придумал как сделать точку подключения без сертификатов. Собственно, в ней и проблема.
25 авг 11, 17:16    [11180172]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по зеркалированию mssql 2005  [new]
Kirillich
Member

Откуда:
Сообщений: 581
DmitriiBond,

так и делайте с сертификатами. настройте третий сервер по аналогии, поменяйтесь сертифкатами и в путь
25 авг 11, 17:35    [11180339]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по зеркалированию mssql 2005  [new]
DmitriiBond
Member

Откуда:
Сообщений: 22
создал точки, пытаюсь подключится -

USE master;
GO
ALTER DATABASE m3testing_mirror
SET PARTNER = 'TCP://db_mirror:5022'
GO

Сообщение 1418, уровень 16, состояние 1, строка 1
Не удалось подключиться к сетевому адресу "TCP://db_mirror:5022" сервера, или адрес не существует. Проверьте имя сетевого адреса и убедитесь, что порты для локальной и удаленной конечных точек в рабочем состоянии.


Доступ есть, телнетом открывает.

код точки подключения:

=================
for DB_MAIN
=================
CREATE ENDPOINT endpoint_mirroring
STATE = STARTED
AS TCP ( LISTENER_PORT = 5022 )
FOR DATABASE_MIRRORING (ROLE=PARTNER);

=================
for DB_MIRROR
=================
CREATE ENDPOINT endpoint_mirroring
STATE = STARTED
AS TCP ( LISTENER_PORT = 5022 )
FOR DATABASE_MIRRORING (ROLE=PARTNER);

=================
for DB_WITNESS
=================
CREATE ENDPOINT endpoint_mirroring
STATE = STARTED
AS TCP ( LISTENER_PORT = 5022 )
FOR DATABASE_MIRRORING (ROLE=WITNESS);

Эти же точки, но уже после выполнения команды "сгенерировать запрос":

CREATE ENDPOINT [DbMirrorEndPoint]
AUTHORIZATION [sa]
STATE=STARTED
AS TCP (LISTENER_PORT = 5022, LISTENER_IP = ALL)
FOR DATA_MIRRORING (ROLE = WITNESS, AUTHENTICATION = WINDOWS NEGOTIATE, ENCRYPTION = REQUIRED ALGORITHM RC4)
GO

Не пойму в чем дело =( На завтра оставлю.
25 авг 11, 19:07    [11180985]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по зеркалированию mssql 2005  [new]
DmitriiBond
Member

Откуда:
Сообщений: 22
запрос в бд к точке доступа, к которой подключаюсь:
endpoint_mirroring 65538 1 2 TCP 4 DATABASE_MIRRORING 0 STARTED 0 1 PARTNER 1 3 NEGOTIATE 0 1 RC4
25 авг 11, 19:09    [11180992]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по зеркалированию mssql 2005  [new]
DmitriiBond
Member

Откуда:
Сообщений: 22
всем пасибки )).
Заработало. Почему то при создании зеркала черз гуй оно создается, а через TSQL - нифига))...

Осталось написать клиентский гуй для переключения ролей серверов и отображения их работы, но это уже позже.
26 авг 11, 10:37    [11183002]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по зеркалированию mssql 2005  [new]
Kirillich
Member

Откуда:
Сообщений: 581
DmitriiBond,

и станндартного гуй хватает чтобы переключить роли.
да и переключить их одни запросом, не шибко сложная задача.
да и не упускайте из внимания возможны эффекты при работе со следящим сервером, которые расписаны в документации
26 авг 11, 12:06    [11183931]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по зеркалированию mssql 2005  [new]
DmitriiBond
Member

Откуда:
Сообщений: 22
Kirillich
DmitriiBond,

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

Да, читал про возможную потерю информации при переключении ролей, а так же про особенности работы серверов в комплекте со следящим.

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

все машины идентичные - после уставноки БД я сделал копию виртуалки, и оставил ее на будущее.
потом сделал еще три копии - и уже с этими копиями игрался в домене =).
Сегодня хотел попробовать на реальном железе - не заработало. Скопировал еще одну виртуалку - с ней тоже не хочет работать =)... Совсем запутался я с этим зеркалированием =(...

Сейчас попробую еще один вариант - с использованием сертификата в точке подключения, но что бы работал еще и следящий сервер).


Вот кстати, цитата из книги:
Картинка с другого сайта.
Что интересно, автор имел ввиду "если не желаете давать права подключения виндовс пользователям"?...
29 авг 11, 15:33    [11195662]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по зеркалированию mssql 2005  [new]
DmitriiBond
Member

Откуда:
Сообщений: 22
ура. все таки уломал подключить сервера к домену. фух).
30 авг 11, 10:00    [11199035]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить