none
Sql server 2008 Browser RRS feed

  • Domanda

  • Ciao a tutti,

    ho installato Sql Server 2008 su un pc con windows 7 64bit dove era precedentemente installato Sql Server 2005 (che ho provveduto a disinstallare prima).

    Funziona tutto a parte il fatto che Sql Server Browser non visualizza l'elenco dei server a cui collegarsi.

    Ho provato a vedere se erano presenti con il comando "osql -L" e si vedono, digitando il nome ci si riesce a collegare, quindi, funziona tutto tranne appunto il fatto che non sono accessibili tramite Sql Browser.

    Ho fatto varie prove (ricercando la problematica su internet) tra cui: abilitare l'accesso di Sql Browser nel firewall di Windows (ho provato anche a disabilitare il firewall stesso), abilitare tramite il configuration manager i protocolli "Named Pipes" e "TCP/IP" ma non ho ottenuto risultati.

    Qualcuno ha qualche consiglio da darmi per risolvere il problema?

    Grazie a tutti in anticipo.

    domenica 23 gennaio 2011 13:09

Risposte

  • salve,

    cosa intendi con "Funziona tutto a parte il fatto che Sql Server Browser non visualizza l'elenco dei server a cui collegarsi"?

    In parole molto povere, SQL Browser e' il successore di SQL Server Resolution Service, un servizio apposito in ascolto sulla porta UDP 1434 al fine di, appunto, risolvere il reindirizzamento di porta su quella correntemente utilizzata dall'istanza di SQL Server ricercata. Per rispondere a renarig, "in origine" SQL Server prevedeva la possibilità di installare una singola istanza per macchina. In questo senso ha ottenuto da IANA la porta TCP/IP 1433 come porta "predefinita" e riconosciuta per questo servizio. Con l'introduzione di SQL Server 2000, Microsoft ha reso possibile installare piu' di una singola istanza per ogni singola macchina. Una ed una sola istanza puo' essere l'istanza predefinita (default instance), conosciuta esternamente (da tutti i client remoti o locali) con il "nome" della macchina che la esegue, mentre tutte le istanze aggiuntive possono solo essere "istanze nominate" (named instances), che saranno esternamente riconosciute come "nomeComputer\NomeIstanza". Avendo ottenuto una singola porta riconosciuta internazionalmente, e non volendo/potendo ovviamente gestire la staticita' di assegnazione per un'insieme anche se teoricamente modesto di porte, Microsoft ha implementato una diversa modalita' di esecuzione. De default, mentre l'istanza predefinita utilizza la porta "predefinita" TCP/IP 1433 (la "well known" port), tutte le istanze nominate utilizzano una metodologia di assegnazione dinamica. Ad ogni startup della relativa istanza, il servizio ricerca una porta libera, preferendo se disponibile l'ultima in precedenza utilizzata, restando in ascolto su tale porta. Di converso, al fine di garantire il traffico, un addizionale servizio, prima (appunto) il SQL Server Resolution Service, ora SQL Browser, deve essere in esecuzione ed in ascolto sulla porta UDP 1434. Tale servizio si occupa di "intercettare" ogni singola richiesta di connessione alle instanze in esecuzione, provvedendo ad una lookup nel registry interno al fine di risolvere la porta correntemente utilizzata, per poi reindirizzare il traffico sulla porta di ascolto reale dell'istanza in questione. A questo punto avviene il cosideto hand shake di connessione, ed il traffico viene mantenuto "stabile" a questo livello. Ogni qual volta si tenti un collegamento il servizio di supporto provvede in maniera trasparente al reindirizzamento corretto. A suo tempo, cio' rese necessaria la modifica dello stack MDAC, che solo dalla versione 2.6 consentiva lato client questo tipo di reindirizzamento. Detto cio', è altresì possibile assegnare lato server una porta statica diversa (questo anche per l'istanza predefinita), ma questo richiede la definizione (via SQL Server Configuration Manager) di un ALIAS che imposti correttamente sia la macchina+istanza di connessione, che la porta di utilizzo, oppure la specifica a livello di stringa di connessione della porta stessa. In questo senso, puo' essere (e solitamente si procede in tal senso) anche disabilitato il servizio SQL Browser..

    La ricerca di istanze in esecuzione sulla rete locale avviene via TCP/IP sockets  con ub broadcast in TCP UDP. La logica di inlistamento e' approssimativamente:
    - le istanze SQL Server devono essere fisicamente (via rete) raggiungibili ed in esecuzione,
    - esse devono essere in ascolto sul protocollo TCP/IP,
    - eventuali routers devono essere configurati in modo da consentire traffico e chiamate in broadcast UDP,
    - solo macchine nel medesimo sub-net di chiamata rispondono; ovviamente, nel caso di istanze con allocazione dinamica di porta, anche il servizio intecessore (SQL Browser) deve essere in esecuzione..
    tale meccanismo ovviamente non e' garantito sia consistene ne' conclusivo, in quanto la risposta in broadcast call delle macchine puo' sicuramente essere influenzata dal traffico di rete, dallo stato dei servizi, tempi di downtime di rete stessa e quant'altro..

    tornando al problema, visto che la chiamata in broadcast UDP eseguita ad esempio eseguendo "oSql -L" ti da esiti soddisfacenti, cosa intendi per "problema" stesso?

    saluti


    http://www.asql.biz - DbaMgr2k - DbaMgr and further SQL Tools http://www.hotelsole.com/ - http://www.hotelsolericcione.de
    martedì 25 gennaio 2011 00:16
    Moderatore

Tutte le risposte

  • Ho installato SQL 2008 pochi giorni fa.
    Premesso che non ho ancora ben capito a cosa serve SQL Browser  ho notato che durante la procedura di installazione
    era disabilitato di default.

    Lo hai abilitato o ti è sfugito?

    domenica 23 gennaio 2011 13:27
  • salve,

    cosa intendi con "Funziona tutto a parte il fatto che Sql Server Browser non visualizza l'elenco dei server a cui collegarsi"?

    In parole molto povere, SQL Browser e' il successore di SQL Server Resolution Service, un servizio apposito in ascolto sulla porta UDP 1434 al fine di, appunto, risolvere il reindirizzamento di porta su quella correntemente utilizzata dall'istanza di SQL Server ricercata. Per rispondere a renarig, "in origine" SQL Server prevedeva la possibilità di installare una singola istanza per macchina. In questo senso ha ottenuto da IANA la porta TCP/IP 1433 come porta "predefinita" e riconosciuta per questo servizio. Con l'introduzione di SQL Server 2000, Microsoft ha reso possibile installare piu' di una singola istanza per ogni singola macchina. Una ed una sola istanza puo' essere l'istanza predefinita (default instance), conosciuta esternamente (da tutti i client remoti o locali) con il "nome" della macchina che la esegue, mentre tutte le istanze aggiuntive possono solo essere "istanze nominate" (named instances), che saranno esternamente riconosciute come "nomeComputer\NomeIstanza". Avendo ottenuto una singola porta riconosciuta internazionalmente, e non volendo/potendo ovviamente gestire la staticita' di assegnazione per un'insieme anche se teoricamente modesto di porte, Microsoft ha implementato una diversa modalita' di esecuzione. De default, mentre l'istanza predefinita utilizza la porta "predefinita" TCP/IP 1433 (la "well known" port), tutte le istanze nominate utilizzano una metodologia di assegnazione dinamica. Ad ogni startup della relativa istanza, il servizio ricerca una porta libera, preferendo se disponibile l'ultima in precedenza utilizzata, restando in ascolto su tale porta. Di converso, al fine di garantire il traffico, un addizionale servizio, prima (appunto) il SQL Server Resolution Service, ora SQL Browser, deve essere in esecuzione ed in ascolto sulla porta UDP 1434. Tale servizio si occupa di "intercettare" ogni singola richiesta di connessione alle instanze in esecuzione, provvedendo ad una lookup nel registry interno al fine di risolvere la porta correntemente utilizzata, per poi reindirizzare il traffico sulla porta di ascolto reale dell'istanza in questione. A questo punto avviene il cosideto hand shake di connessione, ed il traffico viene mantenuto "stabile" a questo livello. Ogni qual volta si tenti un collegamento il servizio di supporto provvede in maniera trasparente al reindirizzamento corretto. A suo tempo, cio' rese necessaria la modifica dello stack MDAC, che solo dalla versione 2.6 consentiva lato client questo tipo di reindirizzamento. Detto cio', è altresì possibile assegnare lato server una porta statica diversa (questo anche per l'istanza predefinita), ma questo richiede la definizione (via SQL Server Configuration Manager) di un ALIAS che imposti correttamente sia la macchina+istanza di connessione, che la porta di utilizzo, oppure la specifica a livello di stringa di connessione della porta stessa. In questo senso, puo' essere (e solitamente si procede in tal senso) anche disabilitato il servizio SQL Browser..

    La ricerca di istanze in esecuzione sulla rete locale avviene via TCP/IP sockets  con ub broadcast in TCP UDP. La logica di inlistamento e' approssimativamente:
    - le istanze SQL Server devono essere fisicamente (via rete) raggiungibili ed in esecuzione,
    - esse devono essere in ascolto sul protocollo TCP/IP,
    - eventuali routers devono essere configurati in modo da consentire traffico e chiamate in broadcast UDP,
    - solo macchine nel medesimo sub-net di chiamata rispondono; ovviamente, nel caso di istanze con allocazione dinamica di porta, anche il servizio intecessore (SQL Browser) deve essere in esecuzione..
    tale meccanismo ovviamente non e' garantito sia consistene ne' conclusivo, in quanto la risposta in broadcast call delle macchine puo' sicuramente essere influenzata dal traffico di rete, dallo stato dei servizi, tempi di downtime di rete stessa e quant'altro..

    tornando al problema, visto che la chiamata in broadcast UDP eseguita ad esempio eseguendo "oSql -L" ti da esiti soddisfacenti, cosa intendi per "problema" stesso?

    saluti


    http://www.asql.biz - DbaMgr2k - DbaMgr and further SQL Tools http://www.hotelsole.com/ - http://www.hotelsolericcione.de
    martedì 25 gennaio 2011 00:16
    Moderatore