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

Откуда:
Сообщений: 8
Добрый день!

ДАНО:

-Сервер с MS SQL 2008 Express, на котором расположена база DB01. Имя сервера: Server01, название именованного инстанса: SQL2008EXPRESS
- Сервер с MS SQL 2008 R2, куда нужно перенести базу. Имя сервера: Server02, название инстанса по умолчанию: MSSQLSERVER
- Клиентские подключения к базе (именованный инстанс):
Имя сервера: Server01\SQL2008EXPRESS
Название БД: DB01
Схема БД: dbo

ЗАДАЧА:
Перенести базу DB01 с Server01 на на уже существующий Server02 с иснансом по умолчанию на полноценный MS SQL да так, чтобы у пользователей конфигурационный файл с настройками подключения к базе не изменился. Подскажите, пожалуйста, варианты, либо идеи, как можно решить данную задачу?

Изменение конфигов на стороне пользователей при помощи GPO и т.д. не рассматриваются.
18 июн 18, 17:02    [21500579]     Ответить | Цитировать Сообщить модератору
 Re: Как перенести базу MS SQL на другой сервер так, чтобы клиентское подключение не изменилось  [new]
vikkiv
Member

Откуда: London
Сообщений: 2702
devil1313,

это разные вопросы, перенести базу это одно (и прикрутить права), настроить переадресацию это другое
1) redirect соединения внутри Server01 (на Server02)
2) NS mapping в сети (та-же переадресация через определение имени на IP)
3) обьеденить сервера (или переименовать)
4) alias (тот-же redirect / port mapping)
18 июн 18, 17:24    [21500664]     Ответить | Цитировать Сообщить модератору
 Re: Как перенести базу MS SQL на другой сервер так, чтобы клиентское подключение не изменилось  [new]
devil1313
Member

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

с правами проблемы нету, есть трудность именно в том, чтобы новый сервер отзывался по такому же имени как и старый

1. Не подойдет, т.к. инстанс на server01 в планах выключать.
2. Как этот вариант подойдет для именнованого экземпляра sql?
3. Переименование тут тоже не поможет, так же как и п2.
4. Как это сделать с именнованным путем к настройках клиента, обращаясь к default instance?
19 июн 18, 09:04    [21501936]     Ответить | Цитировать Сообщить модератору
 Re: Как перенести базу MS SQL на другой сервер так, чтобы клиентское подключение не изменилось  [new]
komrad
Member

Откуда:
Сообщений: 5244
devil1313
4. Как это сделать с именнованным путем к настройках клиента, обращаясь к default instance?


https://www.mssqltips.com/sqlservertip/1620/how-to-setup-and-use-a-sql-server-alias/
19 июн 18, 10:33    [21502238]     Ответить | Цитировать Сообщить модератору
 Re: Как перенести базу MS SQL на другой сервер так, чтобы клиентское подключение не изменилось  [new]
vikkiv
Member

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

если alias прописывать на самом Server01 то:
... Не подойдет, т.к. инстанс на server01 в планах выключать...


devil1313,

ну да, верно, не обратил внимания (на явно выделенное), тогда для instance с другим именем ничего из стандартных сетевых подходов выше наверное не подойдёт без модификаций,
если сеть и сможет переадресовать IP для имени (кстати серверу можно много IP прописать, в настройках сетевой карты) - то проброс instance - по вроде-бы только локальной службой.
пиши/програмируй свою службу на Server02 которая сессию будет держать / отлавливать и переадресовывать.

в общем не в курсе как разрешить твой вопрос.
19 июн 18, 11:02    [21502347]     Ответить | Цитировать Сообщить модератору
 Re: Как перенести базу MS SQL на другой сервер так, чтобы клиентское подключение не изменилось  [new]
Владислав Колосов
Member

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

ничего не сделаете, надо было в приложении подключаться к серверу через DNS имя. Хотя я не знаю, как в этом случае использовать имя экземпляра. Может быть точно так же. Потом на DNS сервере просто IP меняете.
19 июн 18, 11:31    [21502508]     Ответить | Цитировать Сообщить модератору
 Re: Как перенести базу MS SQL на другой сервер так, чтобы клиентское подключение не изменилось  [new]
devil1313
Member

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

пробовал это, не работает.

Если прописать в днс, что server01 = "ip-address server02", то при подключении к mssql по имени server01 подключение (к server02) проходит успешно, здесь проблем нету. Проблема в том, что мне нужно подключаться к server01\SQL2008EXPRESS, а вот тут уже выдает ошибку:
+
Код

ЗАГОЛОВОК: Соединение с сервером
------------------------------

Невозможно подключиться к SERVER01\SQL2008EXPRESS.

------------------------------
ДОПОЛНИТЕЛЬНЫЕ СВЕДЕНИЯ:

При установлении соединения с SQL Server произошла ошибка, связанная с сетью или с определенным экземпляром. Сервер не найден или недоступен. Убедитесь, что имя экземпляра указано правильно и что на SQL Server разрешены удаленные соединения. (provider: SQL Network Interfaces, error: 26 - Ошибка при обнаружении указанного сервера или экземпляра) (Microsoft SQL Server, ошибка: -1)

Чтобы получить справку, щелкните: http://go.microsoft.com/fwlink?ProdName=Microsoft SQL Server&EvtSrc=MSSQLServer&EvtID=-1&LinkId=20476

------------------------------
КНОПКИ:

ОК
------------------------------

Еще раз прошу вас обратить свое внимание на разницу в подключение к дефолтному инстансу(server01) и к именованному(serve01\sql2008express). Вкл\выкл службы SQL Server Browser никак не повлиял.
19 июн 18, 11:58    [21502611]     Ответить | Цитировать Сообщить модератору
 Re: Как перенести базу MS SQL на другой сервер так, чтобы клиентское подключение не изменилось  [new]
komrad
Member

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

если alias прописывать на самом Server01 то:
... Не подойдет, т.к. инстанс на server01 в планах выключать...


это _клиентская_ настройка, а не серверная
то есть, SQL alias надо настраивать на клиентских машинах в свойствах SQL Client
19 июн 18, 13:31    [21503054]     Ответить | Цитировать Сообщить модератору
 Re: Как перенести базу MS SQL на другой сервер так, чтобы клиентское подключение не изменилось  [new]
komrad
Member

Откуда:
Сообщений: 5244
devil1313
Еще раз прошу вас обратить свое внимание на разницу в подключение к дефолтному инстансу(server01) и к именованному(serve01\sql2008express). Вкл\выкл службы SQL Server Browser никак не повлиял.


на клиентской машине надо создать алиас с именем "Server01\SQL2008EXPRESS" и в строках Server name , Port number надо указать Server02 и 1433 соответственно.
19 июн 18, 13:34    [21503072]     Ответить | Цитировать Сообщить модератору
 Re: Как перенести базу MS SQL на другой сервер так, чтобы клиентское подключение не изменилось  [new]
devil1313
Member

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

спасибо за предложенный вариант, но это требует доп. манипуляций на стороне клиента, а этого хочется избежать.
19 июн 18, 13:49    [21503178]     Ответить | Цитировать Сообщить модератору
 Re: Как перенести базу MS SQL на другой сервер так, чтобы клиентское подключение не изменилось  [new]
komrad
Member

Откуда:
Сообщений: 5244
devil1313

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


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

либо, если всё-таки можно, закинуть на клиента ему в registry ветку sql alias с необходимыми значениями
19 июн 18, 14:00    [21503219]     Ответить | Цитировать Сообщить модератору
 Re: Как перенести базу MS SQL на другой сервер так, чтобы клиентское подключение не изменилось  [new]
komrad
Member

Откуда:
Сообщений: 5244
komrad
devil1313
спасибо за предложенный вариант, но это требует доп. манипуляций на стороне клиента, а этого хочется избежать.


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

либо, если всё-таки можно, закинуть на клиента ему в registry ветку sql alias с необходимыми значениями




в качестве прокси могут выступать следующие продукты (подозреваю, что стоят денег)
Citrix Netscaler
https://www.citrix.com/blogs/2011/07/24/mirror-mirror-on-the-wall-whos-the-best-sql-server-of-all/

ScaleArc
http://www.scalearc.com/how-it-works/products/scalearc-for-sql-server


а еще есть бесплатное софтовое
SQLRelay
http://sqlrelay.sourceforge.net/


сразу скажу, что ни с чем из перечисленного сталкиваться не приходилось
19 июн 18, 14:13    [21503265]     Ответить | Цитировать Сообщить модератору
 Re: Как перенести базу MS SQL на другой сервер так, чтобы клиентское подключение не изменилось  [new]
devil1313
Member

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

спасибо за sql-прокси, не знал о таком. А по поводу значения в реестре, я правильно понимаю, что для этого у пользователей должны быть установлены SQL native client-ы? А если приложение подключается не через него, то толку от этой записи не будет?
20 июн 18, 09:27    [21505676]     Ответить | Цитировать Сообщить модератору
 Re: Как перенести базу MS SQL на другой сервер так, чтобы клиентское подключение не изменилось  [new]
komrad
Member

Откуда:
Сообщений: 5244
devil1313
А если приложение подключается не через него, то толку от этой записи не будет?


да, верно

как подключается к базе ваше приложение?
20 июн 18, 10:30    [21505862]     Ответить | Цитировать Сообщить модератору
 Re: Как перенести базу MS SQL на другой сервер так, чтобы клиентское подключение не изменилось  [new]
devil1313
Member

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

приложение досталось, как обычно бывает, по наследству. Устанавливается клиент, в нем прописываются параметры подключения к базе, которые хранятся в шифрованном виде в файле. Клиент сам отрисовывает данные из базы, как такового сервера-приложений нету. Через GPO конфиги не подправить всем пользователям, тут либо на сервере sql что-то придумывать, либо вручную изменять подключение к sql всем пользюкам.
20 июн 18, 12:34    [21506345]     Ответить | Цитировать Сообщить модератору
 Re: Как перенести базу MS SQL на другой сервер так, чтобы клиентское подключение не изменилось  [new]
invm
Member

Откуда: Москва
Сообщений: 9345
devil1313
А по поводу значения в реестре, я правильно понимаю, что для этого у пользователей должны быть установлены SQL native client-ы?
Не обязательно. В Windows, начиная с 2000, штатно есть клиент MSSQL.

Алиасы находятся в реестре
для приложений x86 - HKLM\SOFTWARE\Wow6432Node\Microsoft\MSSQLServer\Client\ConnectTo
для приложений x64 - HKLM\SOFTWARE\Microsoft\MSSQLServer\Client\ConnectTo

Ничего не мешает распространить их через GPO.
20 июн 18, 13:07    [21506493]     Ответить | Цитировать Сообщить модератору
 Re: Как перенести базу MS SQL на другой сервер так, чтобы клиентское подключение не изменилось  [new]
komrad
Member

Откуда:
Сообщений: 5244
invm
devil1313
А по поводу значения в реестре, я правильно понимаю, что для этого у пользователей должны быть установлены SQL native client-ы?
Не обязательно. В Windows, начиная с 2000, штатно есть клиент MSSQL.

Алиасы находятся в реестре
для приложений x86 - HKLM\SOFTWARE\Wow6432Node\Microsoft\MSSQLServer\Client\ConnectTo
для приложений x64 - HKLM\SOFTWARE\Microsoft\MSSQLServer\Client\ConnectTo

Ничего не мешает распространить их через GPO.


devil1313, попробуйте закатить алиасы в реестр на одном из подопытных компов; должно всё получиться, думаю
20 июн 18, 13:13    [21506510]     Ответить | Цитировать Сообщить модератору
 Re: Как перенести базу MS SQL на другой сервер так, чтобы клиентское подключение не изменилось  [new]
devil1313
Member

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

вот это то, что было нужно. Запись в реестр клиентов сработала, для 32-битного приложения:
для xp:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\ConnectTo]
"Server01\\SQL2008EXPRESS"="DBMSSOCN,Server02,1433"

для win7+:
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\MSSQLServer\Client\ConnectTo]
"Server01\\SQL2008EXPRESS"="DBMSSOCN,Server02,1433"


Спасибо большое за идею!
21 июн 18, 15:58    [21510109]     Ответить | Цитировать Сообщить модератору
 Re: Как перенести базу MS SQL на другой сервер так, чтобы клиентское подключение не изменилось  [new]
devil1313
Member

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

спасибо вам за идею, помогли!
21 июн 18, 16:00    [21510114]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить