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

Откуда:
Сообщений: 2194
Пусть на сервере есть инстансы:

CORE-TATA\CORETATA
CORE-TATA\CORETATA1

К первому из них можно так же подключиться просто по имени сервера: CORE-TATA.

Соответственно, вопрос - можно ли как-то подключившись к CORE-TATA\CORETATA узнать что доступен и более короткий вариант подключения CORE-TATA?
23 окт 19, 09:13    [22000415]     Ответить | Цитировать Сообщить модератору
 Re: Инстанс  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
AndrF,
дефолтный инстанс называется
SELECT SERVERPROPERTY('InstanceName')

NULL значить можно " более короткий вариант "
23 окт 19, 09:16    [22000418]     Ответить | Цитировать Сообщить модератору
 Re: Инстанс  [new]
AndrF
Member

Откуда:
Сообщений: 2194
TaPaK
AndrF,
NULL значить можно " более короткий вариант "


Увы - не работает. Могу подключиться "по короткому", но SERVERPROPERTY('InstanceName') возвращает не NULL...
23 окт 19, 09:20    [22000426]     Ответить | Цитировать Сообщить модератору
 Re: Инстанс  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
AndrF,

автор
InstanceName Name of the instance to which the user is connected.

Returns NULL if the instance name is the default instance, if the input is not valid, or error.

NULL = Input is not valid, an error, or not applicable.

Base data type: nvarchar(128)
23 окт 19, 09:22    [22000429]     Ответить | Цитировать Сообщить модератору
 Re: Инстанс  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31354
TaPaK
AndrF,
дефолтный инстанс называется
SELECT SERVERPROPERTY('InstanceName')


NULL значить можно " более короткий вариант "
Это же имя инстанса, и NULL будет, когда его нет.
А если имя инстанса есть, но подключиться можно без него, то это значит, что порт 1433
Может, посмотреть в sys.dm_server_registry, параметр TcpPort? Или подобный параметр, относящийся к порту, там их много...
23 окт 19, 09:28    [22000437]     Ответить | Цитировать Сообщить модератору
 Re: Инстанс  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
AndrF
К первому из них можно так же подключиться просто по имени сервера: CORE-TATA.

значит, что он сидит на порту 1433.
проверяйте, на каком порту сидит инстанс, где 1433, там и можно подключиться по имени компа.
например, в первых строках выхлопа xp_readerrorlog
23 окт 19, 09:29    [22000440]     Ответить | Цитировать Сообщить модератору
 Re: Инстанс  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31354
alexeyvg
Может, посмотреть в sys.dm_server_registry, параметр TcpPort? Или подобный параметр, относящийся к порту, там их много...

Yasha123
например, в первых строках выхлопа xp_readerrorlog
А, есть же специальное dmv
sys.dm_tcp_listener_states
23 окт 19, 09:35    [22000447]     Ответить | Цитировать Сообщить модератору
 Re: Инстанс  [new]
AndrF
Member

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

Ну я же на живом сервере проверил...

Сейчас прогнал на всех серверах запрос:

SELECT SERVERPROPERTY('InstanceName'), @@SERVICENAME


Видно что NULL возвращается только на тех серверах где имя инстанса оставлено по умолчанию, а именно - MSSQLSERVER. Но ведь имя инстанса может быть задано и другое и, несмотря на это, он может быть дефолтным.

В общем, вопрос остается - как определить дефолтный ли текущий экземпляр инстанса?
23 окт 19, 09:38    [22000454]     Ответить | Цитировать Сообщить модератору
 Re: Инстанс  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
AndrF,

автор
оставлено по умолчанию, а именно - MSSQLSERVER

это не причём

уже сказали, правильно определять что слушает 1433, но для всех вариантов надо много прав на выполнение(SERVER STATE наверное на всех)
23 окт 19, 09:42    [22000462]     Ответить | Цитировать Сообщить модератору
 Re: Инстанс  [new]
AndrF
Member

Откуда:
Сообщений: 2194
TaPaK
уже сказали, правильно определять что слушает 1433, но для всех вариантов надо много прав на выполнение(SERVER STATE наверное на всех)


Права есть - то что делаю для админа.

Пока не получается определить порт на всех серверах. dm_tcp_listener_states есть только начиная с 2012 версии, и xp_readerrorlog не возвращает строчку с портом на 2008-м SQL-е...
23 окт 19, 09:50    [22000482]     Ответить | Цитировать Сообщить модератору
 Re: Инстанс  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
AndrF
TaPaK
уже сказали, правильно определять что слушает 1433, но для всех вариантов надо много прав на выполнение(SERVER STATE наверное на всех)


Права есть - то что делаю для админа.

Пока не получается определить порт на всех серверах. dm_tcp_listener_states есть только начиная с 2012 версии, и xp_readerrorlog не возвращает строчку с портом на 2008-м SQL-е...

потому что это не вопрос на уровне sql сервера
23 окт 19, 09:53    [22000487]     Ответить | Цитировать Сообщить модератору
 Re: Инстанс  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
AndrF
и xp_readerrorlog не возвращает строчку с портом на 2008-м SQL-е...

это просто кто-то читать не умеет
23 окт 19, 09:59    [22000492]     Ответить | Цитировать Сообщить модератору
 Re: Инстанс  [new]
AndrF
Member

Откуда:
Сообщений: 2194
В общем, нашел на этом же форуме от 12-го года - порт можно выдернуть следующим образом:

SELECT  
    s.session_id   , s.login_name ,
	c.protocol_type, c.auth_scheme, c.net_transport,
	serverproperty('ComputerNamePhysicalNetBIOS') [Server Host],
	c.local_tcp_port, c.client_tcp_port,
	c.connect_time, s.HOST_NAME [Client Host], s.program_name 
FROM sys.dm_exec_sessions s 
  JOIN sys.dm_exec_connections c 
    ON s.session_id = c.session_id
WHERE s.session_id=@@SPID
23 окт 19, 09:59    [22000493]     Ответить | Цитировать Сообщить модератору
 Re: Инстанс  [new]
AndrF
Member

Откуда:
Сообщений: 2194
Yasha123
AndrF
и xp_readerrorlog не возвращает строчку с портом на 2008-м SQL-е...

это просто кто-то читать не умеет


Ну нет такой строки. Фильтр по слову Server я все же ставить умею...
23 окт 19, 10:01    [22000495]     Ответить | Цитировать Сообщить модератору
 Re: Инстанс  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
AndrF,

SELECT local_tcp_port
FROM sys.dm_exec_connections
WHERE session_id = @@SPID
23 окт 19, 10:02    [22000496]     Ответить | Цитировать Сообщить модератору
 Re: Инстанс  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
AndrF
Yasha123
пропущено...

это просто кто-то читать не умеет


Ну нет такой строки. Фильтр по слову Server я все же ставить умею...


EXEC xp_ReadErrorLog 0, 1, N'Server is listening on', N'any', NULL, NULL, 'DESC'
23 окт 19, 10:04    [22000498]     Ответить | Цитировать Сообщить модератору
 Re: Инстанс  [new]
AndrF
Member

Откуда:
Сообщений: 2194
Ну это понятно, я просто на тот момент еще не причесывал...
23 окт 19, 10:04    [22000499]     Ответить | Цитировать Сообщить модератору
 Re: Инстанс  [new]
AndrF
Member

Откуда:
Сообщений: 2194
TaPaK
AndrF
пропущено...


Ну нет такой строки. Фильтр по слову Server я все же ставить умею...


EXEC xp_ReadErrorLog 0, 1, N'Server is listening on', N'any', NULL, NULL, 'DESC'


(0 rows affected)
23 окт 19, 10:05    [22000501]     Ответить | Цитировать Сообщить модератору
 Re: Инстанс  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
AndrF
Yasha123
пропущено...

это просто кто-то читать не умеет


Ну нет такой строки. Фильтр по слову Server я все же ставить умею...

значит, Error log has been reinitialized. See previous log for older entries
у процедуры 3 параметра, вот и шарьтесь по соседним еррорлогам,
когда данный пишет, что has been reinitialized
23 окт 19, 10:07    [22000504]     Ответить | Цитировать Сообщить модератору
 Re: Инстанс  [new]
AndrF
Member

Откуда:
Сообщений: 2194
Yasha123
Ну нет такой строки. Фильтр по слову Server я все же ставить умею...

значит, Error log has been reinitialized. See previous log for older entries
у процедуры 3 параметра, вот и шарьтесь по соседним еррорлогам,
когда данный пишет, что has been reinitialized[/quot]

Слишком заумно. Рабочий вариант с простеньким запросом уже найден...
23 окт 19, 10:12    [22000513]     Ответить | Цитировать Сообщить модератору
 Re: Инстанс  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
AndrF
Слишком заумно. Рабочий вариант с простеньким запросом уже найден...

да ради бога.
это было к тому, что в еррорлоге порт есть всегда.
просто кто-то не умеет найти начало еррорлога
23 окт 19, 10:19    [22000525]     Ответить | Цитировать Сообщить модератору
 Re: Инстанс  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31354
AndrF
Рабочий вариант с простеньким запросом уже найден...
Вы про sys.dm_exec_connections?
Он может NULL вернуть, если текущая сессия не по TCP.
И вообще, может не быть сессий с TCP, так что вариант
SELECT TOP 1 local_tcp_port FROM sys.dm_exec_connections WHERE local_tcp_port is not NULL 
тоже может не сработать.
23 окт 19, 10:19    [22000528]     Ответить | Цитировать Сообщить модератору
 Re: Инстанс  [new]
AndrF
Member

Откуда:
Сообщений: 2194
alexeyvg
Он может NULL вернуть, если текущая сессия не по TCP.
И вообще, может не быть сессий с TCP, так что вариант


Не может. Я не пытаюсь охватить все варианты работы серверов во всем мире. Просто облегчаю отдельные моменты своей работы. Кстати, и IP-шник там же есть:

[src][/SELECT c.local_net_address, c.local_tcp_port FROM sys.dm_exec_connections c WHERE c.session_id=@@SPIDSRC]
23 окт 19, 10:23    [22000533]     Ответить | Цитировать Сообщить модератору
 Re: Инстанс  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
alexeyvg
AndrF
Рабочий вариант с простеньким запросом уже найден...
Вы про sys.dm_exec_connections?
Он может NULL вернуть, если текущая сессия не по TCP.
И вообще, может не быть сессий с TCP, так что вариант
SELECT TOP 1 local_tcp_port FROM sys.dm_exec_connections WHERE local_tcp_port is not NULL 
тоже может не сработать.

так надо самому же и законнектиться принудительно по TCP
23 окт 19, 10:24    [22000535]     Ответить | Цитировать Сообщить модератору
 Re: Инстанс  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31354
AndrF
alexeyvg
Он может NULL вернуть, если текущая сессия не по TCP.
И вообще, может не быть сессий с TCP, так что вариант

Не может. Я не пытаюсь охватить все варианты работы серверов во всем мире. Просто облегчаю отдельные моменты своей работы.
Запустите свой скрипт для облегчения работы в джобе, и будет NULL
23 окт 19, 10:25    [22000537]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить