web-dev-qa-db-fra.com

Moteur de base de données et conseils de l'architecture SSISDB

Je cherche des conseils d'architecture impliquant les composants de moteurs de base de données et de services d'intégration de SQL Server 2017. Nous avons un environnement SQL Server existant, qui est dû pour une mise à niveau et a été utilisé historiquement d'une manière de moins que idéale. Avec une mise à niveau vers un nouvel environnement SQL Server à l'horizon, en tant qu'administrateur de systèmes, je souhaite utiliser cette opportunité pour repenser l'architecture existante pour fournir un environnement flexible plus robuste à l'avenir.

l'environnement actuel

Une instance d'entreprise SQL Server 2012 en cours d'exécution sur un cluster de basculement Windows à 2 nœuds. Le moteur de base de données est clustered et DTS Les packages sont stockés dans un volume en cluster et ces packages sont exécutés comme des travaux via l'agent SQL Server. Ils n'utilisent pas le composant de services d'intégration explicite.

le problème

Personnel qui gère l'entrepôt de données et créer/gérer les packages DTS est traditionnellement insisté sur le fonctionnement directement sur les nœuds de serveur en cluster via RDP. Cela crée des problèmes d'accès aux administrateurs de systèmes qui sont responsables des serveurs. eux-mêmes. Le personnel de données nécessite également une variété d'outils logiciels qui ont conduit à des problèmes d'espace disque persistants au fil du temps. En outre, bon nombre de ces outils logiciels ne sont pas connectés au cluster et ne sont installés que sur un nœud, ce qui nous laissait effectivement un cluster à poil. Dès le début. Le résultat est que tout moment il y a un basculement planifié ou non planifié, il y a une pression pour obtenir le nœud principal d'origine en ligne dès que possible car la plupart des emplois échouent, car ils s'appuient sur des logiciels locaux qui ne sont pas au courant de la grappe.

ne solution proposée

Installez le moteur de base de données seul sur son propre cluster sans accès RDP autorisé par n'importe quel personnel. Ils recevront uniquement l'URL des points d'extrémité de l'instance SQL Server. Installez le composant Services d'intégration sur un serveur distinct et proposez-leur de commencer à utiliser le catalogue SSISDB pour stocker leurs packages au lieu du système de fichiers. Je crois comprendre qu'il existe de nombreux avantages à utiliser le SSISDB.

questions

  1. Cela déclenche uniquement le problème d'accès RDP sur un autre serveur. Étant donné que le personnel de données collabore en temps réel sur des packages et s'appuie sur tous les mêmes outils logiciels, ils soutiennent qu'ils doivent avoir un accès direct au serveur afin de fournir un environnement identique partagé. Ma conviction est qu'il doit y avoir une approche de conception plus moderne où elles peuvent utiliser leurs outils de développement sur leurs postes de travail locaux et se connecter aux SSIS à l'aide du SSMS, où les travaux seront publiés et programmés/exécutés. Tout logiciel que les emballages reposent sur (FTP, SSH, Perl, Python, etc.) seraient installés et gérés par des administrateurs du serveur sur le SSIS. Étant donné que les packages seraient stockés dans la SSISDB, le stockage partagé ne serait plus nécessaire qui a traditionnellement logé les fichiers de colis, ce qui devrait supprimer le besoin de tout accès direct RDP. Est-ce que ma croyance logique ou existe-t-il encore un argument pour les développeurs de données d'avoir accès au serveur direct?
  2. Maintenant, le SSISDB devient un seul point d'échec car les packages ne font plus partie du cluster de basculement, car ils l'ont traditionnellement. Comment devrais-je construire une haute disponibilité dans ce composant? J'ai lu sur les fonctionnalités SSIS Échelle, mais cela semble davantage sur l'équilibrage de la charge plutôt que la tolérance aux pannes. J'ai commencé à lire sur toujours des groupes de disponibilité, pourrait-il être une solution?

Tout conseil de conception est très apprécié. Merci.

3
Ryan DiFrancesco

Il s'agit d'une culture qui change autant que possible un processus de processus, alors avoir une assistance de la direction, vous serez important et vous protégera finalement de certains niveaux de résistance technique et d'aide à la diffusion de la manière dont ce changement stratégique améliorera la vie de tous.

Avant d'entrer dans le cas spécifique du catalogue SSIS, examinons un aperçu de vos options pour mieux vous armer avec les connaissances nécessaires pour communiquer pourquoi les développeurs devraient changer leur système:

  1. Système de fichiers
    • Un package individuel est stocké sur n'importe quel dossier, n'importe quel emplacement.
    • Aucune sécurité, les fichiers ne peuvent être modifiés par un utilisateur ou un processus sans connaissances préalables et aucun processus n'existe de manière native pour empêcher cela.
    • Ne faisant pas partie de l'horaire de sauvegarde régulier. Les instantanés système ne sont pas une sauvegarde viable et n'empêchent pas de modifications accidentelles pouvant causer des dommages irréparables.
    • Doit organiser manuellement des paquets et aucune possibilité de grouper des packages en dehors de l'emplacement physique et/ou de la documentation
    • Forcé d'utiliser des fichiers de configuration pour paramétrer les valeurs
  2. Store de paquet SSIS SSIS Package Store
    • Les paquets par défaut sont enregistrés dossier spécifique "C:\Program Files\Microsoft SQL Server\<SQL Version Compiled>\Dts\packages ". Peut être déplacé.
    • Sécurité limitée; peut être modifié par des autorisations élevées
    • Ne partie d'aucune stratégie de sauvegarde en dehors des instantanés système (à nouveau, pas une solution de sauvegarde valide)
    • Peut organiser des packages sous des dossiers
    • Impossible d'utiliser des rôles pour limiter l'accès aux packages du magasin de packages SSIS
  3. SQL Server (MSDB) IS Package Store (msdb)
    • Les packages sont stockés dans MSDB et peuvent être exportés vers une action de fichier.
    • La sécurité est liée à l'accès à MSDB.
    • System MSDB fait partie d'une solution de sauvegarde valide.
    • Ne peut pas être ajouté à une solution TautLon
    • Les dossiers peuvent être utilisés pour classer
    • Peut utiliser des rôles pour gérer les autorisations en 2016 et évitez d'utiliser Sysadmin. Rôles de services d'intégration (service SSIS) - MS DOCS
  4. Catalogue SSISDB SSIS Catalog
    • Emballés sont stockés exclusivement à l'intérieur de la SSISDB qui est crypté avec un certificat
    • La sécurité est encore renforcée par des autorisations et des rôles distincts (voir le lien ci-dessus).
    • SSISDB fait partie d'une solution de sauvegarde valide
    • SQL Server 2016+ a ajouté Support pour TautMon! SQL Server 2016 HA Series Partie 2 - Groupes SSIS et Disponibilité - Blogs Microsoft
    • Hiérarchie de gestion mature qui inclut des paramètres, des variables d'environnements.
    • Offre une intégration complète avec Visual Studio
    • Les travaux SQL Agent n'utilisent plus directement les références de fichiers de configuration ou les mots de passe réels (espérons que personne ne le fait de toute façon) d'être script de SSMS.

En fin de compte, vous pouvez décider de quel chemin fonctionnera pour votre organisation. Le catalogue SSIS est l'une des méthodes de plusieurs méthodes, alors obtenez votre gestion pour vous soutenir dans cette entreprise contribuera grandement à apporter des modifications. Après avoir décrit un exemple de schéma de déploiement, le reste de cet article mettra en évidence certaines conseils de gestion des SSIS de Studio Visual Studio.

Un exemple de schéma pourrait être le suivant:

Section de bonus:

Conseils de gestion Visual Studio:

  1. Votre colis dépend de la version de déploiement (doit correspondre aux services d'intégration de l'instance SQL Server).

--- (enter image description here

  • Et la configuration 32 bits/64 bits en fonction des composants utilisés. enter image description here

    1. Afin d'utiliser les paramètres, vous devez soit utilisateur un package "paramètre" (non variables) ou paramètre de projet. Vous les utilisez pour contrôler sur l'environnement quelles connexions sont utilisées.

enter image description here

  1. Vous pouvez vous connecter et déployer dans votre lieu de cible (il n'est pas nécessaire d'utiliser la SSISDB)

enter image description hereenter image description here

Conseils de gestion de catalogue SSISDB:

1) Vous pouvez restaurer des versions avec un clic de bouton pour annuler des modifications négatives ou même revenir en avant!

enter image description hereenter image description here

2) Vous pouvez gérer les paramètres du projet, valider, contrôler les versions de SSMS. Non vs requis.

enter image description here

  • Configurez les paramètres de l'environnement d'ici:

enter image description here
[.____] enter image description here

  • Les mots de passe, contrairement aux travaux de l'agent SQL Server, sont sécurisés de manière sécurisée dans la base de données SSISDB.

Exemple:

EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'<name of step>', 
        @step_id=1, 
        @cmdexec_success_code=0, 
        @on_success_action=3, 
        @on_success_step_id=0, 
        @on_fail_action=2, 
        @on_fail_step_id=0, 
        @retry_attempts=0, 
        @retry_interval=0, 
        @os_run_priority=0, @subsystem=N'SSIS', 
        @command=N'/ISSERVER "\"\SSISDB\Replication\SSISDB_Replication\SSISDB_Replication.dtsx\"" /SERVER <ServerName> /ENVREFERENCE 3 /Par "\"$ServerOption::LOGGING_LEVEL(Int16)\"";1 /Par "\"$ServerOption::SYNCHRONIZED(Boolean)\"";True /CALLERINFO SQLAGENT /REPORTING E', 
        @database_name=N'master', 
        @flags=0

3) Chaque travail d'agent SQL Server utilise ensuite ces paramètres après avoir sélectionné l'ensemble des environnements.

  • Choisissez le catalogue SSIS Source de l'emballage.

enter image description here

  • Définissez l'environnement pour vos variables.

enter image description here

  • Dans la plupart des cas, les paramètres seront automatiquement définis.

enter image description here

4) Vérifiez ce qui s'est effectivement passé mal à l'intérieur des SSMS sans recourir à votre serveur.

enter image description here

5) Voir la performance entre les courses qui utilise de vraies statistiques!

enter image description here

Est-ce que je manque quelque chose? N'hésitez pas à faire une réponse communautaire.

3
clifton_h