web-dev-qa-db-fra.com

Configurer SQL Server Analysis Services (SSAS) pour s'exécuter sur la même IP que l'instance SQL Server

TL; DR

Je voudrais ajouter SQL Server 2014 Analysis Services à une instance spécifique de SQL Server et la configurer de telle manière que Analysis Services (SSAS) et les futurs Reporting Services (SSRS) ne choisissent que des requêtes sur l'IP spécifique à l'instance, afin de permettre au SQL Server Browser Service de rester dans l'état arrêté.


Conditions préalables

J'ai les prérequis suivants concernant un seul serveur Windows exécutant plusieurs instances SQL Server 2014:

Informations de base

 - 2 cartes réseau 
 - 12 adresses IP 
 - 10 instances de service SQL Server Server (en cours d'exécution) 
 - 10 instances de service SQL Server Agent Server ( en cours d'exécution 
 - 1 x service de navigation SQL Server (non en cours d'exécution) 

Configuration de la carte réseau

Les cartes réseau Windows Server sont configurées comme suit:

 - 1 x NIC (réseau de sauvegarde) 
 - 10.2.0.1 
 - 1 x NIC ( LAN) 
 - 10.2.0.2 (Windows Server) 
 - 10.2.1.1 (SQL Server "Instance01"/CNAME: servername-ins01) 
 - 10.2.1.2 (SQL Server " Instance02 "/ CNAME: servername-ins02) 
 - 10.2.1.3 (SQL Server" Instance03 "/ CNAME: servername-ins03) 
 - 10.2.1.4 (SQL Server" Instance04 "/ CNAME: servername -ins04) 
 - 10.2.1.5 (SQL Server "Instance05"/CNAME: servername-ins05) 
 - 10.2.1.6 (SQL Server "Instance06"/CNAME: servername-ins06) 
 - 10.2.1.7 (SQL Server "Instance07"/CNAME: servername-ins07) 
 - 10.2.1.8 (SQL Server "Instance08"/CNAME: servername-ins08) 
 - 10.2.1.9 (SQL Server "Instance09"/CNAME: servername-ins09) 
 - 10.2.1.10 (SQL Server "Instance10"/CNAME: servername-ins10) 

Gestionnaire de configuration SQL Server

Le gestionnaire de configuration SQL Server est configuré comme suit pour chaque "instance nm" de SQL Server:

 - Protocole pour 'Instance01' 
 - Mémoire partagée: activée 
 - Canaux nommés: désactivés 
 - TCP/IP: activés 

Propriétés TCP/IP 'Instance01' - Onglet Protocole

 - Protocole 
 - Activé: Oui 
 - Keep Alive: 30000 
 - Tout écouter: Non 

Avec les paramètres ci-dessus, chaque "Instance nm" devra être configurée individuellement pour répondre aux appels spécifiques à IP sur le port configuré. (Remarque: comme avantage supplémentaire, chaque instance pourra écouter sur le port SQL Server 1433 par défaut, ce qui simplifiera considérablement la configuration du pare-feu, car vous pourrez utiliser la règle de port sql-server. Je dis juste.)

Propriétés TCP/IP 'Instance01' - Onglet Adresses IP

Pour l'entrée IP n qui correspond à l'adresse IP de l'instance spécifique, les paramètres sont les suivants:

 - IPn 
 - Actif: Oui 
 - Activé: Oui 
 - Adresse IP: 10.2.1.1 
 - TCP Ports dynamiques: 
 - TCP Port: 1433 
 - IPAll 
 - TCP Ports dynamiques : 
 - TCP Port: 

Toute autre entrée IP n non liée à l'adresse IP spécifique de l'instance sera configurée comme suit:

 - IPn 
 - Actif: Oui 
 - Activé: Non 
 - Adresse IP: 10.2.1.xx 
 - TCP Ports dynamiques: 
 - TCP Port: 
 

Résumé rapide

Avec les paramètres et la configuration ci-dessus, chaque instance de SQL Server s'exécutera sur/avec une adresse IP dédiée sur le port standard de SQL Server 1433. Chaque instance a son propre CNAME, qui permet aux utilisateurs de se connecter aux serveurs SQL:

  • servername-ins01
  • servername-ins02
  • servername-ins03
  • servername-ins04
  • servername-ins05
  • servername-ins06
  • ...

... sans avoir à spécifier le port ou le nom d'instance. Un autre avantage est que SQL Server Browser Service ne doit pas être en cours d'exécution pour distribuer les appels aux instances SQL Server, car chaque appel est directement acheminé vers l'instance spécifique SQL Server (service).


Ajouter Analysis Services à une instance

Le fournisseur de logiciels souhaite désormais améliorer l'expérience de l'utilisateur et offrir la possibilité d'exécuter des requêtes analytiques sur les données existantes. Le fournisseur de logiciels nous oblige à installer SQL Server Analysis Services. Il s'agit d'une fonctionnalité spécifique à l'instance et pendant le processus d'installation, vous devez sélectionner l'instance à laquelle vous allez ajouter la fonctionnalité.

Configuration du pare-feu

Pour autoriser les connexions à Analysis Services, vous devez configurer la règle suivante dans le pare-feu:

10.2.0.2:2382 (Browser Service)

Si j'aurais utilisé l'instance par défaut (MSSQLSERVER), j'aurais pu configurer la règle suivante dans le pare-feu:

10.2.1.1:2383 (Default Instance)

Ceci est conforme à la documentation suivante:

Propriétés du serveur SQL Server 2005 Analysis Services (SSAS) (SQL Server 2005, mais apparemment toujours valide pour les versions actuelles)

Connexion à Analysis Services spécifiques à l'instance

Une fois l'installation terminée, vous vous connectez à Analysis Services spécifique à l'instance avec la syntaxe suivante:

servername\Instance01

Service de navigateur SQL Server

Après avoir configuré le service d'analyse spécifique à l'instance SQL Server, j'ai remarqué que le service SQL Server Browser était maintenant dans l'état en cours d'exécution.

Oups, cela signifie que les demandes à Analysis Services sont acheminées via l'adresse IP du serveur Windows (10.2.0.2) vers l'instance Analysis Service spécifique à SQL Server.

Si j'arrête le service SQL Server Browser, je ne peux plus me connecter à SQL Server Analysis Services via servername\Instance01.


Considérations de sécurité

Selon la documentation mentionnée ci-dessus:

Le service SQL Server Browser est partagé entre le moteur de base de données SQL Server 2005 et le moteur Analysis Services. Pour le moteur de base de données, pour des raisons de sécurité, il est recommandé de désactiver le service SQL Server Browser. Cela peut créer un dilemme car vous en aurez peut-être besoin pour le moteur Analysis Services. Il est recommandé d'activer le service si vous en avez besoin, mais sinon, laissez-le désactivé.

Sensationnel.


Résultats

L'installation de SQL Server Analysis Services a démarré le service SQL Server Browser, créant une considération de sécurité.


Des questions

  1. Puis-je configurer SQL Server Analysis Services du Instance01 avec le CNAME servername-ins01, pour être lié à l'adresse IP 10.2.1.1?

  2. Puis-je configurer SQL Server Analysis Services de mon instance nommée de cette manière, afin de pouvoir à nouveau arrêter le service SQL Server Browser?

7
John aka hot2use

Introduction

Après avoir lu divers articles en ligne et configuré plusieurs services d'analyse sur un serveur SQL multi-instance, je peux fournir les solutions possibles suivantes aux personnes dans la même situation. Ils impliquent tous plus ou moins de paramétrage et/ou de pare-feu. Ils sont aussi proches que possible d'une instance spécifique [~ # ~] ip [~ # ~] : [~ # ~] port [~ # ~] et/ou [~ # ~] cname [~ # ~] : [~ # ~] configuration du port [~ # ~] .

Matériel de référence

Suite à une liste d'articles que j'ai parcourus en essayant de configurer Analysis Services pour qu'il s'exécute sur une adresse IP spécifique [~ # ~] [~ # ~] : configuration du port :

Désolé, vous ne pouvez pas configurer SQL Server Analysis Service pour qu'il s'exécute sur une adresse IP spécifique et un numéro de port spécifique. Cependant, vous pouvez configurer SQL Server Analysis Service pour s'exécuter sur un port spécifique , mais le service d'analyse écoutera toutes les adresses IP du serveur sur lequel il est installé.
Fonctionnement netstat -a | find ":238" dit tout:

TCP 0.0.0.0:2382 SERVERNAME:0 LISTENING
TCP 0.0.0.0:2383 SERVERNAME:0 LISTENING
TCP [::]:2382 SERVERNAME:0 LISTENING
TCP [::]:2383 SERVERNAME:0 LISTENING


Solution sans navigateur SQL Server en cours d'exécution

Si vous êtes vraiment soucieux de la sécurité et que vous ne voulez pas que les gens "parcourent" votre serveur SQL pour les instances disponibles, alors vous ne voulez pas le service SQL Server Browser dans un état en cours d'exécution. Le point de départ de cette configuration est l'instruction suivante de SQL Server Browser Service (Moteur de base de données et SSAS) :

Si le service SQL Server Browser n'est pas en cours d'exécution, vous pouvez toujours vous connecter à SQL Server si vous fournissez le numéro de port correct ou le canal nommé. Par exemple, vous pouvez vous connecter à l'instance par défaut de SQL Server avec TCP/IP si elle s'exécute sur le port 1433.

Mais vous perdez les capacités suivantes:

( accentuation la mienne; je veux juste je voulais)

  • Tout composant qui tente de se connecter à une instance nommée sans spécifier entièrement tous les paramètres (comme le port TCP/IP ou le canal nommé).
  • Tout composant qui génère ou transmet des informations de serveur\instance qui pourraient ensuite être utilisées par d'autres composants pour se reconnecter.
  • Connexion à une instance nommée sans fournir le numéro de port ou le canal.
  • DAC vers une instance nommée ou l'instance par défaut si vous n'utilisez pas le port TCP/IP 1433.
  • Le service de redirection OLAP.
  • Énumération des serveurs dans SQL Server Management Studio, Enterprise Manager ou Query Analyzer.
    Si vous utilisez SQL Server dans un scénario client-serveur (par exemple, lorsque votre application accède à SQL Server via un réseau), si vous arrêtez ou désactivez le service SQL Server Browser, vous devez attribuer un port spécifique à chaque instance et écrivez le code de votre application cliente pour toujours utiliser ce numéro de port. Cette approche présente les problèmes suivants:

    • Vous devez mettre à jour et maintenir le code de l'application client pour vous assurer qu'il se connecte au port approprié.
    • Le port que vous choisissez pour chaque instance peut être utilisé par un autre service ou application sur le serveur, entraînant l'indisponibilité de l'instance de SQL Server.

Après avoir installé SQL Server Analysis Service, vous devrez apporter les modifications suivantes à la configuration/paramètres SSAS.


Configurer l'instance SSAS pour écouter sur un port spécifique

Modifiez les instances spécifiques (par exemple Instance01) Configuration SSAS pour écouter sur un port spécifique. Chaque instance (par exemple Instance01, Instance02, ...) nécessite son propre port dédié. Vous ne pouvez pas configurer toutes les instances pour utiliser le même port (par exemple 2383)

... avec SSMS

  • Connectez-vous au serveur d'analyse (par exemple servername\instance01)
  • Ouvrez les propriétés du serveur d'analyse.
  • Basculez vers l'onglet Général
  • Faites défiler jusqu'au paramètre Port; ça devrait être 2383 pour l'instance par défaut (MSSQLSERVER) et 0 pour une instance nommée, ce qui signifie que le port est défini dynamiquement.
  • Entrez un port par défaut; n'utilisez pas 2382 car cela peut gâcher le service SQL Server Browser qui écoute toujours sur le port 2382 pour toutes les connexions entrantes aux neuf autres instances SSAS en cours d'exécution. Vous voudrez peut-être envisager d'utiliser un numéro de port dans la région de 49152–65535, qui sont disponibles pour sage privé (Liste de TCP et numéros de port UDP/wikipedia) .
  • Appuyer sur OK.
  • Redémarrez le service SQL Server Analysis Services (Instance01) .

... avec le bloc-notes

  • Localisez le msmdsrv.ini fichier qui se trouve normalement dans le répertoire C:\Program Files\Microsoft SQL Server\MSAS12.INSTANCE01\OLAP\Config répertoire.
  • Ouvrez le fichier dans le bloc-notes.
  • Trouvez le <Port>0</Port> réglage.
  • Entrez un port par défaut; n'utilisez pas 2382 car cela peut gâcher le service SQL Server Browser qui écoute toujours sur le port 2382 pour toutes les connexions entrantes aux neuf autres instances SSAS en cours d'exécution. Vous voudrez peut-être envisager d'utiliser un numéro de port dans la région de 49152–65535, qui sont disponibles pour sage privé (Liste de TCP et numéros de port UDP/wikipedia) .
  • Enregistrez les modifications.
  • Redémarrez le service SQL Server Analysis Services (Instance01) .

Configurer les clients pour se connecter à une instance spécifique

Pour que les clients puissent se connecter au service d'analyse, vous devrez fournir le nom de serveur d'analyse SQL Server (FQSSASN) entièrement qualifié avec un port comme celui-ci:

servername-ins01:52383

Il s'agit du CNAME du servername\instance01 SQL Server, mais comme le service SQL Server Browser sera finalement désactivé, vous ne pouvez pas utiliser servername\instance01:52383 pour se connecter au serveur. Cela n'a pas vraiment d'importance, car l'instance SSAS reprendra sur n'importe quelle IP.

Paramètres du pare-feu

Étant donné que l'instance SSAS s'exécute sur un port dédié, vous pouvez configurer le pare-feu pour laisser passer les connexions au port IP: de l'instance nommée (par exemple 10.2.1.1:52383 selon la question).

Important La procédure ci-dessus doit être répétée pour chaque instance SSAS exécutée sur le serveur dédié, en incrémentant le numéro de port en cours de route. Une fois que toutes les instances Analysis Services ont été reconfigurées pour écouter sur un port dédié, le service SQL Server Browser peut ensuite être désactivé.

Vérification des ports Analysis Services

Cela peut être vérifié en exécutant netstat -abno et à la recherche de l'individu [msmdsrv.exe] entrées:

  TCP    0.0.0.0:52382          0.0.0.0:0              LISTENING         6884
 [msmdsrv.exe]
  TCP    0.0.0.0:52383          0.0.0.0:0              LISTENING         7716
 [msmdsrv.exe]
  TCP    0.0.0.0:52384          0.0.0.0:0              LISTENING         7248
 [msmdsrv.exe]

  TCP    [::]:52382             [::]:0                 LISTENING         6884
 [msmdsrv.exe]
  TCP    [::]:52383             [::]:0                 LISTENING         7716
 [msmdsrv.exe]
  TCP    [::]:52384             [::]:0                 LISTENING         7248
 [msmdsrv.exe]

Le numéro à la fin de la ligne est le numéro de processus du service. Vous pouvez rechercher cela dans le Gestionnaire des tâches Windows (PID) pour vérifier que le service d'analyse pour l'instance spécifique s'exécute sur le port spécifié.

Task Manager - MSMDSRV.exe processes

Service de navigateur SQL Server

Une fois que vous avez configuré toutes vos instances SSAS pour écouter sur des ports individuels et que vos serveurs SQL existants fonctionnent tous sur des IP et des ports dédiés (comme dans la question) , vous pouvez ensuite arrêter le service SQL Server Browser.

Chaque service d'analyse individuel sera accessible via le CNAME:PORT syntaxe:

servername-ins01:52383
servername-ins02:52384
servername-ins03:52385
servername-ins04:52386
2
John aka hot2use

Analysis Services écoute toujours sur toutes les adresses IP, sauf s'il s'agit d'une instance en cluster ou en cours d'exécution dans une machine virtuelle. Vous ne pouvez donc pas désactiver le service de navigateur dans cette configuration.

Si vous pouvez vivre avec IIS et l'accès HTTP, vous pouvez configurer plusieurs sites Web IIS exécutant des instances de la pompe de données Analysis Services).