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

Откуда:
Сообщений: 20
Есть 2 сервера, с зеркальным отображением. Клиент-серверное приложение подключается к серверу. После отказа сервера, приложение переключается на резервный сервер и работает с ним. Время переключения занимает около 30 секунд. Можно ли как-то адекватно сократить это время?
20 ноя 15, 12:01    [18446339]     Ответить | Цитировать Сообщить модератору
 Re: оптимизация зеркального отображения.  [new]
AnyKey45
Member

Откуда: Ekaterinburg-Moscow-EU
Сообщений: 219
NewUser123321,

 SELECT Mirroring_Connection_Timeout
 FROM sys.database_mirroring
 WHERE database_id = db_id('YourDB')

?
20 ноя 15, 12:30    [18446627]     Ответить | Цитировать Сообщить модератору
 Re: оптимизация зеркального отображения.  [new]
NewUser123321
Member

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

10, по умолчанию
20 ноя 15, 12:32    [18446648]     Ответить | Цитировать Сообщить модератору
 Re: оптимизация зеркального отображения.  [new]
komrad
Member

Откуда:
Сообщений: 5261
NewUser123321
После отказа сервера, приложение переключается на резервный сервер и работает с ним. Время переключения занимает около 30 секунд.

какой connection string используется?
20 ноя 15, 13:04    [18446970]     Ответить | Цитировать Сообщить модератору
 Re: оптимизация зеркального отображения.  [new]
komrad
Member

Откуда:
Сообщений: 5261
AnyKey45
NewUser123321,

 SELECT Mirroring_Connection_Timeout
 FROM sys.database_mirroring
 WHERE database_id = db_id('YourDB')

?


это ни при чем
значение влияет на само зеркало, а не на клиента
20 ноя 15, 13:06    [18446982]     Ответить | Цитировать Сообщить модератору
 Re: оптимизация зеркального отображения.  [new]
NewUser123321
Member

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

connect timeout=15. Тоже по умолчанию
20 ноя 15, 13:10    [18447026]     Ответить | Цитировать Сообщить модератору
 Re: оптимизация зеркального отображения.  [new]
NewUser123321
Member

Откуда:
Сообщений: 20
Около 30 секунд, я немного наврал, это примерно +-10 секунд. 20 секунд обычно переключается. Но хочется чтобы быстрее
20 ноя 15, 13:12    [18447053]     Ответить | Цитировать Сообщить модератору
 Re: оптимизация зеркального отображения.  [new]
NewUser123321
Member

Откуда:
Сообщений: 20
я на самом деле не знаю, может быть 20-40 секунд это вполне адекватное переключение. Скажите если так.
20 ноя 15, 13:18    [18447106]     Ответить | Цитировать Сообщить модератору
 Re: оптимизация зеркального отображения.  [new]
komrad
Member

Откуда:
Сообщений: 5261
NewUser123321
komrad,

connect timeout=15. Тоже по умолчанию

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

и сюда гляньте (не совсем в тему, но механизм раскрывает):
http://blogs.msdn.com/b/dipanb/archive/2011/05/14/you-may-see-an-instant-timeout-when-connecting-to-a-mirrored-database-from-a-net-application.aspx
20 ноя 15, 13:42    [18447301]     Ответить | Цитировать Сообщить модератору
 Re: оптимизация зеркального отображения.  [new]
NewUser123321
Member

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

SqlConnectionStringBuilder sql = new SqlConnectionStringBuilder();
sql.DataSource = String.Format("tcp:{0}\\sqlexpress", ip_server.ToString());
sql.InitialCatalog = "Test";
sql.IntegratedSecurity = false;
sql.MultipleActiveResultSets = true;
sql.UserID = login.text;
sql.Password = pass.text;
string providerString = sql.ToString();
20 ноя 15, 13:50    [18447353]     Ответить | Цитировать Сообщить модератору
 Re: оптимизация зеркального отображения.  [new]
komrad
Member

Откуда:
Сообщений: 5261
NewUser123321
komrad,

SqlConnectionStringBuilder sql = new SqlConnectionStringBuilder();
sql.DataSource = String.Format("tcp:{0}\\sqlexpress", ip_server.ToString());
sql.InitialCatalog = "Test";
sql.IntegratedSecurity = false;
sql.MultipleActiveResultSets = true;
sql.UserID = login.text;
sql.Password = pass.text;
string providerString = sql.ToString();


а как у вас failover partner подставляется?
sqlexpress не поддерживает мирроринг... или это witness у вас?
20 ноя 15, 14:25    [18447609]     Ответить | Цитировать Сообщить модератору
 Re: оптимизация зеркального отображения.  [new]
NewUser123321
Member

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

witness
20 ноя 15, 14:28    [18447636]     Ответить | Цитировать Сообщить модератору
 Re: оптимизация зеркального отображения.  [new]
NewUser123321
Member

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

sqlexpress - это просто так экземпляр сервера назван, имя экзмепляра) на самом деле там стоит полноценный MS SQL Server) Чтобы не сбивало с толку
20 ноя 15, 14:31    [18447658]     Ответить | Цитировать Сообщить модератору
 Re: оптимизация зеркального отображения.  [new]
komrad
Member

Откуда:
Сообщений: 5261
NewUser123321
komrad,

witness

а зачем к витнессу коннектиться?

https://msdn.microsoft.com/en-us/library/ms175484(v=sql.110).aspx
20 ноя 15, 14:34    [18447694]     Ответить | Цитировать Сообщить модератору
 Re: оптимизация зеркального отображения.  [new]
komrad
Member

Откуда:
Сообщений: 5261
NewUser123321
komrad,

sqlexpress - это просто так экземпляр сервера назван, имя экзмепляра) на самом деле там стоит полноценный MS SQL Server) Чтобы не сбивало с толку

мда, это определенно шутка дня
20 ноя 15, 14:36    [18447709]     Ответить | Цитировать Сообщить модератору
 Re: оптимизация зеркального отображения.  [new]
NewUser123321
Member

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

ахах, сбило с толку :D В общем стоит MSSQLSERVER с зеркальным отображением и следящим сервером, подключаемся к серверу. Не смотрим на то что экземпляр называется sqlexpress. Witness стоит на отдельной машине.
20 ноя 15, 14:40    [18447742]     Ответить | Цитировать Сообщить модератору
 Re: оптимизация зеркального отображения.  [new]
komrad
Member

Откуда:
Сообщений: 5261
NewUser123321
komrad,

ахах, сбило с толку :D В общем стоит MSSQLSERVER с зеркальным отображением и следящим сервером, подключаемся к серверу. Не смотрим на то что экземпляр называется sqlexpress. Witness стоит на отдельной машине.

по-прежнему непонятно где у вас фигурирует failover partner
20 ноя 15, 16:26    [18448570]     Ответить | Цитировать Сообщить модератору
 Re: оптимизация зеркального отображения.  [new]
andrey odegov
Member

Откуда:
Сообщений: 473
NewUser123321, http://www.connectionstrings.com/sql-server-native-client-11-0-oledb-provider/database-mirroring/
20 ноя 15, 16:42    [18448699]     Ответить | Цитировать Сообщить модератору
 Re: оптимизация зеркального отображения.  [new]
NewUser123321
Member

Откуда:
Сообщений: 20
komrad
по-прежнему непонятно где у вас фигурирует failover partner


при успешном подключении заносится в кэш автоматически. Failover partner указывается если не знать роль сервера.
Вопрос по оптимизации пока открыт...
23 ноя 15, 14:11    [18459575]     Ответить | Цитировать Сообщить модератору
 Re: оптимизация зеркального отображения.  [new]
NewUser123321
Member

Откуда:
Сообщений: 20
andrey odegov
NewUser123321, http://www.connectionstrings.com/sql-server-native-client-11-0-oledb-provider/database-mirroring/


у меня 2008 R2
23 ноя 15, 14:12    [18459584]     Ответить | Цитировать Сообщить модератору
 Re: оптимизация зеркального отображения.  [new]
komrad
Member

Откуда:
Сообщений: 5261
NewUser123321
komrad
по-прежнему непонятно где у вас фигурирует failover partner


при успешном подключении заносится в кэш автоматически. Failover partner указывается если не знать роль сервера.
Вопрос по оптимизации пока открыт...

а если primary сервер полег, то никто никуда не подключится
поэтому лучше указать failover partner в строке подключения

так же проверьте сетевой протокол подключения (Network=dbmssocn) - если используются named pipes, то будет большой таймаут

https://msdn.microsoft.com/en-us/library/ms366348(v=sql.105).aspx
MSDN
"Because named pipes does not use the TCP/IP retry algorithm, in many cases, a named pipes connection attempt may time out before connecting to a mirrored database."


Example Connection String
For example, to explicitly connect using TCP/IP to the AdventureWorks2008R2 database on either Partner_A or Partner_B, a client application that uses the ODBC Driver could supply the following connection string:
"Server=Partner_A; Failover_Partner=Partner_B; Database=AdventureWorks2008R2; Network=dbmssocn"

23 ноя 15, 16:38    [18460638]     Ответить | Цитировать Сообщить модератору
 Re: оптимизация зеркального отображения.  [new]
NewUser123321
Member

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

убрал named pipes, изменений не заметил... :\
24 ноя 15, 08:16    [18462397]     Ответить | Цитировать Сообщить модератору
 Re: оптимизация зеркального отображения.  [new]
aleks2
Guest
NewUser123321
komrad,

убрал named pipes, изменений не заметил... :\

Быстрее - только ручками.
Клиент должен понять, что сервер кирдык.
На это требуется время. Это время определяется не сервером и не клиентом, а протоколом передачи данных.
Протоколов, шоб извещали клиента немедленно: "сервер фсе" ишо не придумали.
24 ноя 15, 08:26    [18462413]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить