Installer et configurer SQL Server 2025 sur Windows Server
Categories:
30 minutes à lire
Ce guide couvre l’intégralité du processus d’installation de SQL Server 2025 sur Windows Server (2019 / 2022 / 2025), puis la configuration post‑installation via les Propriétés du serveur (SSMS) et le Gestionnaire de configuration SQL Server (SQL Server Configuration Manager).
Prérequis
Configuration matérielle minimale et recommandée
| Composant | Minimum | Recommandé |
|---|---|---|
| Processeur | x64, 1,4 GHz | 2,0 GHz ou plus |
| Mémoire (RAM) | 1 Go (512 Mo pour Express) | ≥ 4 Go, à augmenter avec la taille des bases |
| Espace disque | 6 Go libres sur le lecteur système, même si les binaires vont sur un autre volume (fichiers temporaires du setup) | ≥ 50 Go pour un environnement de production (hors données) |
| Écran | Super‑VGA 800 × 600 | 1920 × 1080 |
| Réseau | Logiciel réseau fourni par Windows | Accès Internet pour les mises à jour |
Configuration logicielle
| Composant | Version requise |
|---|---|
| Système d’exploitation | Windows Server 2019 / 2022 / 2025 (y compris Server Core) |
| .NET Framework | 4.7.2 (sur Server Core, le setup installe le profil Server Core s’il manque, puis demande un redémarrage) |
| Protocoles réseau | TCP/IP, Named Pipes, Shared Memory (intégrés à l’OS) |
Remarque : SQL Server 2025 ne s’installe que sur des processeurs x64. Les installations 32 bits ne sont plus supportées depuis SQL Server 2016.
SQL Server supporte au plus 64 cœurs logiques par nœud NUMA. Depuis la CU11 de SQL Server 2022, le moteur refuse de démarrer au-delà : sur les très gros serveurs, la répartition des cœurs se règle dans le BIOS avant l’installation.
Bonnes pratiques de stockage avant installation
Séparez physiquement vos fichiers pour optimiser les performances I/O :
| Lettre de lecteur (exemple) | Contenu | Type de RAID recommandé |
|---|---|---|
C:\ | Système d’exploitation | RAID 1 |
D:\ | Binaires SQL Server | RAID 1 |
E:\ | Fichiers de données (.mdf / .ndf) | RAID 10 |
F:\ | Journaux de transactions (.ldf) | RAID 10 |
G:\ | TempDB (data + log) | RAID 10 / NVMe |
H:\ | Sauvegardes (.bak) | RAID 5 / RAID 6 |
Les fichiers Data sont accédés de manière aléatoire, tandis que le journal de transactions est écrit de manière séquentielle, et chaque validation attend que son enregistrement soit écrit. Placer le journal sur un volume distinct l’isole des I/O aléatoires des fichiers de données, et évite de perdre données et journal avec le même volume.
Éditions disponibles dans SQL Server 2025
SQL Server 2025 remplace l’édition Developer par deux éditions : Enterprise Developer et Standard Developer.
| Édition | Usage | Points clés |
|---|---|---|
| Enterprise | Production haute performance | Toutes les fonctionnalités, RAM et CPU limités par l’OS seulement (20 cœurs par instance en licence Serveur + CAL) |
| Standard | Production PME | 256 Go de buffer pool, 4 sockets ou 32 cœurs (128 Go et 24 cœurs en SQL Server 2022) |
| Enterprise Developer | Dev / Test uniquement | Identique à Enterprise, gratuit hors production |
| Standard Developer (nouveau) | Dev / Test uniquement | Identique à Standard, gratuit hors production |
| Express | Petites applications | Gratuit, buffer pool limité à 1 410 Mo, 1 socket ou 4 cœurs, 50 Go par base (10 Go jusqu’à SQL Server 2022) |
| Evaluation | Essai 180 jours | Identique à Enterprise |
L’édition Web n’existe plus dans SQL Server 2025. L’édition Express with Advanced Services disparaît aussi : ses fonctionnalités sont reprises dans Express.
Pourquoi le Standard Developer est important : Auparavant, les équipes utilisaient l’édition Developer (= Enterprise) en dev/test, puis Standard en production. Cela provoquait des écarts de comportement (ex. : Batch Mode on Rowstore, Online Index Rebuild absents en Standard). Le Standard Developer supprime cet écart : il offre exactement les fonctionnalités de Standard.
Nouveautés majeures de SQL Server 2025
Avant de lancer l’installation, voici les fonctionnalités qui justifient la mise à niveau :
- Type de données
VECTORet fonctionVECTOR_DISTANCEpour la recherche sémantique (cosine, euclidienne, dot‑product) - Index vectoriels DiskANN (
CREATE VECTOR INDEX) pour la recherche ANN à grande échelle (preview) - Intégration IA : modèles externes (
CREATE EXTERNAL MODEL), appel d’Azure OpenAI depuis T-SQL, prise en charge du typeVECTORpar LangChain, Semantic Kernel et Entity Framework Core 10 - Type de données
jsonnatif, et index JSON (preview) - Change Event Streaming (preview), et appel d’API REST externes depuis T-SQL avec
sp_invoke_external_rest_endpoint - Optimized Locking, jusque-là réservé à Azure SQL, pour réduire la consommation de verrous et le blocage
- Intelligent Query Processing étendu
- Intégration Microsoft Fabric pour l’analytique hybride
Téléchargement du média d’installation
Les éditions Standard et Enterprise sous licence ne passent pas par cette page : leur média (ISO) vient du revendeur ou du Microsoft 365 admin center pour les contrats de licence en volume, avec la clé de produit intégrée. La procédure ci-dessous concerne les éditions gratuites et l’évaluation.
- Rendez‑vous sur la page officielle : https://www.microsoft.com/sql-server/sql-server-downloads
- Cliquez sur le lien de téléchargement de l’édition souhaitée (Standard Developer, Enterprise Developer, Express). L’évaluation se télécharge depuis le Centre d’évaluation, via le lien « Try SQL Server 2025 ».
- Le fichier téléchargé s’appelle
SQL2025-SSEI-Eval.exe,SQL2025-SSEI-StdDev.exe,SQL2025-SSEI-EntDev.exeouSQL2025-SSEI-Expr.exeselon l’édition, et pèse environ 5 Mo - Exécutez ce lanceur et choisissez parmi trois options :
| Option | Description | Quand l’utiliser |
|---|---|---|
| Basic | Installation rapide du moteur de base de données avec la configuration par défaut | Environnement de test rapide |
| Custom | Lance l’assistant complet avec sélection de toutes les options | Installation dont on veut contrôler chaque option |
| Download Media | Télécharge le média complet, au format ISO ou CAB | Installation hors‑ligne, déploiement sur plusieurs serveurs |
- Choisissez Download Media, sélectionnez le format ISO, puis un dossier de destination
- Une fois le téléchargement terminé, montez l’ISO sur le serveur cible et exécutez
setup.exe
Installation pas à pas (Assistant graphique)
Étape 1 : SQL Server Installation Center
Au lancement de setup.exe, le Centre d’installation SQL Server s’affiche. Dans le volet gauche :
- Planning : vérifie les prérequis (System Configuration Checker)
- Installation : lance les différents scénarios d’installation
Cliquez sur Installation → New SQL Server stand‑alone installation or add features to an existing installation.
Étape 2 : Edition
| Champ | Description |
|---|---|
| Specify a free edition | Sélectionnez Evaluation ou une édition Developer |
| Use pay-as-you-go billing through Microsoft Azure | Active une édition Standard ou Enterprise de production sans clé de produit, facturée à l’usage. Exige un abonnement Azure actif |
| Enter the product key | Saisissez la clé de licence pour Standard / Enterprise |
Astuce : Vous pouvez installer en mode Evaluation (180 jours) puis convertir en édition licenciée ultérieurement via la clé de produit sans réinstallation. Le changement d’édition redémarre les services SQL Server : prévoyez l’interruption.
Cliquez sur Next.
Étape 3 : License Terms
Lisez et acceptez les termes du contrat de licence Microsoft. Cochez la case I accept the license terms and Privacy Statement.
Cette page inclut aussi un lien vers la déclaration de confidentialité Microsoft. En environnement d’entreprise, vérifiez la conformité avec votre politique RGPD.
Cliquez sur Next.
Étape 4 : Global Rules, Microsoft Update et Product Updates
La page Global Rules passe seule si aucune règle n’échoue.
La page Microsoft Update n’apparaît que si Microsoft Update n’est pas déjà activé dans les paramètres de Windows Update. Cocher la case inscrit le serveur à Microsoft Update : Windows Update proposera ensuite les mises à jour de tous les produits Microsoft, SQL Server compris. Elle ne décide pas des correctifs intégrés à l’installation.
Ces correctifs apparaissent sur la page suivante, Product Updates, qui liste les mises à jour critiques disponibles pour SQL Server. Si aucune n’est trouvée, la page ne s’affiche pas. En production, les inclure permet de démarrer avec un serveur à jour.
Cliquez sur Next. La page Install Setup Files installe ensuite les fichiers du setup, et passe seule.
Étape 5 : Install Rules
Le programme vérifie automatiquement les règles d’installation :
- Présence du .NET Framework
- Redémarrage en attente
- Accès au registre
- Pare‑feu Windows (avertissement possible quand le pare-feu est actif)
Si tous les voyants sont au vert (✅ Passed), cliquez sur Next. En cas de ⚠️ Warning sur le pare‑feu, vous pourrez configurer les règles après l’installation.
Étape 6 : Azure Extension for SQL Server
Cette page, présente dans l’assistant depuis SQL Server 2022, relie l’instance à Azure Arc pour utiliser des services comme Microsoft Defender for Cloud, Microsoft Purview ou l’authentification Microsoft Entra. L’option est cochée par défaut.
- Pour une instance qui ne doit pas être reliée à Azure, décochez-la.
- Pour la garder, il faut un abonnement Azure actif, un compte Azure ou un principal de service, un groupe de ressources et une région.
La page n’apparaît pas sur une VM Azure, ni sur un hôte VMware ESX ou Azure VMware Solution.
Cliquez sur Next.
Étape 7 : Feature Selection
C’est l’une des pages les plus importantes. Voici le détail de chaque composant :
Fonctionnalités d’instance
| Composant | Description | Recommandation production |
|---|---|---|
| Database Engine Services | Le moteur relationnel principal : stockage, requêtes, transactions, sécurité | ✅ Toujours cocher |
| ↳ SQL Server Replication | Réplication transactionnelle, merge, snapshot | Selon besoin |
| ↳ Full‑Text and Semantic Extractions for Search | Recherche plein texte dans les colonnes textuelles | Selon besoin |
| ↳ PolyBase Query Service for External Data | Interrogation par T‑SQL de sources externes comme Oracle, Teradata, MongoDB, SQL Server ou ODBC. Depuis SQL Server 2025, la lecture de fichiers Parquet, Delta ou CSV ne demande plus ce service | Si besoin d’accès multi‑sources |
| ↳ Machine Learning Services and Language Extensions | Exécution de scripts externes dans le moteur. Depuis SQL Server 2022, les runtimes R, Python et Java ne sont plus livrés : ils s’installent à part | Si besoin de ML in‑database |
| Analysis Services | OLAP, modèles tabulaires et multidimensionnels | Serveur dédié recommandé |
Data Quality Services et Master Data Services ne font plus partie de SQL Server 2025. Reporting Services n’est plus dans l’assistant d’installation depuis SQL Server 2017, et à partir de SQL Server 2025, le reporting sur site passe par Power BI Report Server, installé séparément.
Fonctionnalités partagées
| Composant | Description |
|---|---|
| Integration Services | ETL (packages SSIS). Serveur dédié recommandé |
| Client Tools Connectivity | Bibliothèques de connexion (OLEDB, ODBC) |
| Client Tools SDK | API de développement, dont les assemblies de programmation SSIS |
Répertoires d’installation
- Instance root directory :
D:\Program Files\Microsoft SQL Server\(évitezC:\) - Shared feature directory et Shared feature directory (x86) : pour les composants partagés entre instances. Les deux chemins doivent être différents
Bonne pratique : Placez les binaires SQL Server sur un volume dédié plutôt que sur le disque système
C:\. Le setup a quand même besoin de 6 Go libres surC:\pour ses fichiers temporaires.
Cliquez sur Next. La page Feature Rules passe seule si toutes les règles sont satisfaites.
Étape 8 : Instance Configuration
| Option | Description |
|---|---|
| Default instance | Le serveur sera accessible via le nom machine seul : SERVERNAME |
| Named instance | Le serveur sera accessible via SERVERNAME\NOM_INSTANCE |
- Instance ID : identifiant interne utilisé pour les répertoires et clés de registre
- Instance root directory : confirmez le chemin défini à l’étape précédente
Quand utiliser une instance nommée ? Lorsque vous devez héberger plusieurs instances SQL Server sur le même serveur (ex. : une instance de production + une instance de pré‑production). Chaque instance nommée a ses propres services, sa propre mémoire et ses propres ports.
Note : SQL Server Browser doit être actif pour que les clients puissent découvrir les instances nommées.
Cliquez sur Next.
Étape 9 : Server Configuration
Cette page comporte deux onglets essentiels :
Onglet « Service Accounts »
Chaque service SQL Server tourne sous un compte Windows. Par défaut, le setup propose un compte virtuel (NT Service\MSSQLSERVER pour le moteur d’une instance par défaut). Voici les services configurables :
| Service | Compte recommandé en production | Pourquoi |
|---|---|---|
| SQL Server Database Engine | gMSA (ex. DOMAINE\gmsa-sqlengine$), à défaut compte virtuel sur une instance autonome, ou compte de domaine dédié peu privilégié | Isolation de sécurité, mot de passe géré par AD, accès réseau sous une identité maîtrisée |
| SQL Server Agent | gMSA, compte virtuel ou compte de domaine dédié, selon les mêmes règles | Exécution des jobs, maintenance, sauvegardes |
| SQL Server Browser | NT AUTHORITY\LOCAL SERVICE | Découverte d’instances nommées |
gMSA (Group Managed Service Accounts) : c’est la meilleure pratique en environnement Active Directory. Le mot de passe est géré automatiquement par AD, sans intervention humaine. Le gMSA doit être créé au préalable par un administrateur du domaine.
Un compte virtuel accède au réseau sous le compte machine (DOMAINE\SERVEUR$) : il suffit pour une instance autonome qui écrit ses sauvegardes sur un partage autorisé pour ce compte. Les comptes virtuels ne sont pas pris en charge sur une instance en cluster de basculement : il faut alors un gMSA ou un compte de domaine.
Options de démarrage :
| Option | Description |
|---|---|
| Automatic | Le service démarre avec Windows |
| Manual | Démarrage à la demande |
| Disabled | Service désactivé |
Mettez le Database Engine et l’Agent en Automatic. Le Browser en Automatic uniquement si vous avez des instances nommées.
Cochez Grant Perform Volume Maintenance Task privilege to SQL Server Database Engine Service. Cela active l’Instant File Initialization (IFI) pour les fichiers de données : leur création, leur croissance, l’ajout de fichiers et les restaurations ne passent plus par l’initialisation à zéro de l’espace disque. IFI ne s’applique pas aux fichiers de données d’une base chiffrée par TDE. Pour le journal, depuis SQL Server 2022, les croissances jusqu’à 64 Mo en profitent sans ce privilège.
Onglet « Collation »
La collation (classement) détermine les règles de tri et de comparaison des chaînes de caractères. La collation choisie ici est celle des bases système, et la valeur par défaut des nouvelles bases ; chaque base et chaque colonne peut ensuite avoir la sienne.
Le setup propose une collation dérivée des paramètres régionaux de Windows, choisie parmi les plus anciennes versions pour des raisons de compatibilité. Ce n’est donc pas toujours la meilleure. La documentation Microsoft conseille de lui préférer la collation Windows la plus proche.
| Paramètre | Valeur recommandée | Explication |
|---|---|---|
| Collation du Database Engine | Celle qu’attendent vos applications ; à défaut une collation Windows récente, comme French_100_CI_AS_SC ou Latin1_General_100_CI_AS_SC | 100 = version des règles de tri, CI = Case Insensitive, AS = Accent Sensitive, SC = Supplementary Characters |
Les collations suffixées _UTF8 (par exemple Latin1_General_100_CI_AS_SC_UTF8) font stocker de l’Unicode encodé en UTF-8 dans les types char et varchar. Les types nchar et nvarchar restent en UTF-16 quelle que soit la collation. Réservez UTF-8 aux bases ou aux colonnes qui en ont besoin. Au niveau serveur, elle s’appliquerait aussi à tempdb, où une table temporaire en varchar(n) compte alors sa longueur en octets : un caractère accentué en occupe deux, et une valeur qui tenait en varchar(8) peut être tronquée.
Pourquoi c’est critique : La collation serveur s’applique aux bases système (
master,model,msdb,tempdb) et devient la collation par défaut de toute nouvelle base. Elle ne peut pas être changée après installation sans reconstruire les bases système, ce qui oblige à exporter les données, supprimer puis recréer toutes les bases utilisateur. Prenez le temps de choisir correctement.
Attention : Si vous devez interagir avec des bases existantes, alignez la collation pour éviter les erreurs
Cannot resolve the collation conflict.
Cliquez sur Next.
Étape 10 : Database Engine Configuration
C’est la page la plus riche de l’assistant. Elle comporte six onglets : Server Configuration, Data Directories, TempDB, MaxDOP, Memory et FILESTREAM. Les cinq premiers sont détaillés ci-dessous ; FILESTREAM ne sert que si vous stockez des BLOB dans le système de fichiers.
Onglet « Server Configuration »
Mode d’authentification :
| Mode | Description | Recommandation |
|---|---|---|
| Windows Authentication Mode | Seuls les comptes Windows/AD peuvent se connecter | ✅ Le plus sécurisé : privilégiez ce mode |
| Mixed Mode | Authentification Windows + comptes SQL (login/password) | Nécessaire si des applications se connectent avec des logins SQL |
Si vous choisissez Mixed Mode :
- Définissez un mot de passe fort pour le compte
sa(≥ 12 caractères, majuscules, minuscules, chiffres, caractères spéciaux) - Le compte
saest la cible n°1 des attaques. En production, désactivez‑le après l’installation et utilisez des comptes nominatifs
Specify SQL Server administrators :
Cliquez sur Add Current User pour ajouter votre compte Windows comme administrateur de l’instance. Ajoutez aussi un groupe AD de DBA (ex. DOMAINE\GRP-SQLAdmins).
Le setup exige au moins un administrateur. Ne vous contentez pas de votre compte personnel : un groupe AD évite que l’accès administrateur à l’instance dépende d’une seule personne.
Onglet « Data Directories »
C’est ici que vous configurez les chemins par défaut pour les fichiers :
| Répertoire | Chemin recommandé | Rôle |
|---|---|---|
| Data root directory | E:\MSSQL\ | Racine des données |
| User database directory | E:\MSSQL\Data\ | Fichiers .mdf / .ndf |
| User database log directory | F:\MSSQL\Log\ | Fichiers .ldf |
| Backup directory | H:\MSSQL\Backup\ | Sauvegardes .bak |
Règle d’or : Séparez toujours les fichiers de données et les journaux de transactions sur des volumes distincts. Les journaux de transactions utilisent des écritures séquentielles et ne doivent pas partager un volume avec les I/O aléatoires des fichiers de données.
Onglet « TempDB »
Depuis SQL Server 2016, l’assistant configure TempDB dès l’installation :
| Paramètre | Recommandation | Explication |
|---|---|---|
| Nombre de fichiers | 1 fichier par cœur logique, jusqu’à 8 fichiers (valeur proposée par défaut) | Réduit la contention sur les pages d’allocation (PFS, GAM, SGAM) |
| Taille initiale par fichier | Proche de la taille nécessaire en fonctionnement normal (8 Mo par défaut, souvent 1 Go ou plus en production) | TempDB repart de cette taille à chaque redémarrage : une taille trop petite se paie en croissances automatiques pendant la charge |
| Croissance automatique | 64 Mo par fichier (valeur par défaut, exprimée en Mo dans l’assistant) | Croissance prévisible et uniforme |
| Répertoire des données TempDB | G:\MSSQL\TempDB\ | Volume dédié, idéalement NVMe |
| Répertoire du log TempDB | G:\MSSQL\TempDBLog\ | Peut être sur le même volume que les données TempDB |
Pourquoi 8 fichiers ? TempDB est un point chaud de contention. Multiplier les fichiers de données répartit les demandes d’allocation sur plusieurs fichiers, ce qui réduit l’attente de latch sur les pages d’allocation. On commence à 8 ; si la contention persiste, Microsoft recommande d’ajouter des fichiers par multiples de 4, sans dépasser le nombre de cœurs logiques.
Tous les fichiers TempDB doivent avoir la même taille et les mêmes paramètres de croissance. SQL Server utilise un algorithme proportionnel (proportional fill) qui oriente les allocations vers les fichiers ayant le plus d’espace libre. Des fichiers de tailles différentes concentrent l’activité sur le plus grand.
Onglet « MaxDOP »
Depuis SQL Server 2019, l’assistant propose une valeur recommandée de MAXDOP basée sur la topologie CPU détectée.
| Scénario | Valeur MAXDOP recommandée |
|---|---|
| Serveur avec 1 nœud NUMA, ≤ 8 processeurs logiques | au plus le nombre de processeurs logiques |
| Serveur avec 1 nœud NUMA, > 8 processeurs logiques | 8 |
| Serveur multi‑NUMA, ≤ 16 processeurs logiques par nœud | au plus le nombre de processeurs logiques par nœud |
| Serveur multi‑NUMA, > 16 processeurs logiques par nœud | la moitié des processeurs logiques par nœud, sans dépasser 16 |
Les nœuds NUMA de ce tableau sont les nœuds soft-NUMA. Depuis SQL Server 2016, le moteur les crée automatiquement dès qu’un nœud NUMA ou un socket compte plus de huit cœurs physiques. Un serveur à un seul socket de 12 cœurs a donc plusieurs nœuds soft-NUMA.
MAXDOP = 0 est déconseillé. Cela autorise une seule requête parallèle à utiliser tous les processeurs disponibles, jusqu’à 64, ce qui peut saturer le serveur au détriment des autres requêtes.
Acceptez la valeur proposée ou ajustez‑la selon vos besoins. Vous pourrez la modifier ultérieurement.
Onglet « Memory »
Depuis SQL Server 2019, l’assistant propose aussi la configuration mémoire. L’option cochée par défaut, Default, laisse max server memory à 2 147 483 647 Mo, c’est-à-dire sans limite : pour appliquer une valeur, choisissez Recommended, ajustez-la si besoin, et cochez la case qui accepte les valeurs.
| Paramètre | Recommandation |
|---|---|
| Min Server Memory | Laissez à 0, sauf plusieurs instances sur le même serveur ou machine virtuelle |
| Max Server Memory | RAM totale, moins la réserve de l’OS, moins la mémoire des autres services |
Formule de calcul :
Max Server Memory = RAM_totale - réserve_OS - RAM_autres_services
La réserve de l’OS dépend de la RAM, comme expliqué dans l’article SQL Server et la RAM : 1 à 2 Go jusqu’à 16 Go, 4 Go de 16 à 64 Go, 10 % au-delà.
Exemples :
| RAM totale | OS réservé | Max Server Memory |
|---|---|---|
| 32 Go | 4 Go | 28 Go (28 672 Mo) |
| 64 Go | 4 Go | 60 Go (61 440 Mo) |
| 128 Go | 13 Go (10 %) | 115 Go (117 760 Mo) |
La documentation Microsoft donne un autre point de départ, plus prudent : retirer de la RAM totale la mémoire des piles de threads (2 Mo par worker thread), puis 25 % du reste. C’est une valeur initiale, à ajuster après observation de la consommation réelle.
Pourquoi limiter la mémoire ? Par défaut, SQL Server prend la mémoire dont sa charge a besoin, sans plafond. Il n’en rend à Windows que lorsque l’OS signale un manque de mémoire libre. Sans limite, le système d’exploitation et les autres processus peuvent manquer de mémoire, provoquant des lenteurs. Le paramètre
max server memoryest le premier réglage à effectuer sur toute instance de production.
Cliquez sur Next.
Étape 11 : Ready to Install
La page récapitulative affiche toutes vos sélections :
- Édition et clé de produit
- Fonctionnalités sélectionnées
- Chemins des répertoires
- Comptes de service
- Mode d’authentification
- Configuration TempDB, MAXDOP, mémoire
Relisez attentivement cette page. C’est votre dernière chance de corriger une erreur avant l’installation.
Astuce : Le chemin du fichier de configuration (
ConfigurationFile.ini) est affiché sur cette page. Copiez ce fichier et conservez‑le. Il pourra être réutilisé pour des installations identiques sur d’autres serveurs. Le fichier ne contient ni les mots de passe ni l’acceptation de la licence : ils se passent sur la ligne de commande. En mode silencieux (/Qou/QS),/IACCEPTSQLSERVERLICENSETERMSet/SUPPRESSPRIVACYSTATEMENTNOTICEsont obligatoires :setup.exe /Q /IACCEPTSQLSERVERLICENSETERMS /SUPPRESSPRIVACYSTATEMENTNOTICE ` /ConfigurationFile="C:\SQLConfig\ConfigurationFile.ini" ` /SQLSVCPASSWORD="********" /AGTSVCPASSWORD="********"Les mots de passe des services sont inutiles avec un compte virtuel ou un gMSA. Ajoutez
/SAPWDen mode mixte, et/PIDpour une édition payante. Retirez du fichier la ligneUIMODE, incompatible avec/Qet/QS.
Cliquez sur Install.
Étape 12 : Installation Progress & Complete
L’installation prend généralement entre 10 et 30 minutes selon le matériel et les fonctionnalités sélectionnées. Une barre de progression indique l’avancement de chaque composant.
À la fin, la page Complete affiche le statut de chaque fonctionnalité :
- ✅ Succeeded : installation réussie
- ❌ Failed : consultez les journaux d’installation dans
C:\Program Files\Microsoft SQL Server\170\Setup Bootstrap\Log\
Si l’installation échoue, le fichier
Summary.txtet le dossier de logs associé contiennent les détails de l’erreur.
Cliquez sur Close.
Installation de SSMS (SQL Server Management Studio)
SQL Server 2025 est compatible avec SSMS 21 et SSMS 22. L’outil ne fait plus partie du média d’installation depuis SQL Server 2016 : il se télécharge à part.
- Téléchargez SSMS depuis : https://aka.ms/ssms/22/release/vs_SSMS.exe
- Exécutez l’installeur et suivez les instructions
- Redémarrez si demandé
Configuration post‑installation via SSMS
Connexion à l’instance
- Lancez SSMS
- Dans la fenêtre Connect to Server :
- Server type : Database Engine
- Server name :
SERVERNAME(instance par défaut) ouSERVERNAME\INSTANCE - Authentication : Windows Authentication
- Encryption : Mandatory, la valeur par défaut depuis SSMS 20. Tant qu’aucun certificat signé par une autorité de confiance n’est installé sur l’instance, la connexion échoue sur une erreur de certificat : cochez Trust server certificate, qui garde le chiffrement mais ne vérifie pas l’identité du serveur
- Cliquez sur Connect
Propriétés du serveur
Clic droit sur le serveur dans l’Object Explorer → Properties. Voici le détail de chaque page :
Page « General »
Informations en lecture seule : nom du serveur, version, édition, OS, collation, mémoire, nombre de processeurs, répertoire racine. Utile pour vérifier rapidement la configuration.
Page « Memory »
| Paramètre | Description | Valeur recommandée |
|---|---|---|
| Minimum server memory (in MB) | Seuil en dessous duquel SQL Server ne rend plus de mémoire à l’OS | 0 (sauf multi‑instances ou machine virtuelle) |
| Maximum server memory (in MB) | Plafond de la mémoire du buffer pool et des autres caches du moteur | RAM - réserve OS - autres services |
Équivalent T‑SQL :
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
EXEC sp_configure 'max server memory (MB)', 28672; -- 28 Go
RECONFIGURE;
EXEC sp_configure 'min server memory (MB)', 0;
RECONFIGURE;
Parallélisme (page « Advanced », section « Parallelism »)
La page « Processors » ne porte que l’affinité processeur et le nombre maximal de worker threads, à laisser par défaut. Les deux réglages de parallélisme sont sur la page « Advanced ».
| Paramètre | Description |
|---|---|
| Max Degree of Parallelism | Nombre maximal de processeurs pour une requête parallèle |
| Cost Threshold for Parallelism | Coût estimé à partir duquel le moteur envisage un plan parallèle (défaut : 5) |
Équivalent T‑SQL (ces deux options sont avancées : sans show advanced options à 1, sp_configure renvoie l’erreur 15123) :
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
EXEC sp_configure 'max degree of parallelism', 8;
RECONFIGURE;
EXEC sp_configure 'cost threshold for parallelism', 50;
RECONFIGURE;
Cost threshold for parallelism : La valeur par défaut (5) est beaucoup trop basse pour la plupart des charges de production. Une valeur entre 25 et 50 est un bon point de départ. Cela évite que de petites requêtes ne déclenchent inutilement un plan parallèle, ce qui consomme des ressources et des threads.
Page « Security »
| Paramètre | Options |
|---|---|
| Server authentication | Windows Authentication mode / SQL Server and Windows Authentication mode |
| Login auditing | None / Failed logins only / Successful logins only / Both failed and successful logins |
| Enable Common Criteria compliance | Pour les environnements certifiés CC |
Changer le mode d’authentification ou le niveau d’audit demande un redémarrage du service. Passer en mode mixte n’active pas le compte sa : il reste désactivé tant qu’un ALTER LOGIN sa ENABLE n’est pas exécuté.
Recommandation : Activez au minimum l’audit des connexions échouées (Failed logins only). Cela permet de détecter les tentatives d’intrusion.
Page « Database Settings »
| Paramètre | Description | Recommandation |
|---|---|---|
| Database default locations : Data | Chemin par défaut pour les fichiers .mdf | E:\MSSQL\Data\ |
| Database default locations : Log | Chemin par défaut pour les fichiers .ldf | F:\MSSQL\Log\ |
| Database default locations : Backup | Chemin par défaut pour les .bak | H:\MSSQL\Backup\ |
| Compress backup | Active la compression par défaut | ✅ Activer : les sauvegardes sont plus petites et souvent plus rapides, au prix de CPU pendant la sauvegarde. Le gain dépend des données |
| Recovery interval (minutes) | Temps cible de récupération en cas de crash | Laissez à 0 (auto). Ce réglage ne concerne que les bases dont le temps de récupération cible vaut 0 : les bases créées depuis SQL Server 2016, model comprise, utilisent le checkpoint indirect et ne le suivent pas |
Un nouveau chemin par défaut n’est pris en compte qu’au redémarrage du moteur.
SQL Server 2025 ajoute l’algorithme de compression ZSTD, plus rapide et plus efficace que MS_XPRESS. Il se choisit par sauvegarde avec WITH COMPRESSION (ALGORITHM = ZSTD), ou par défaut pour l’instance avec l’option backup compression algorithm (valeur 3). Microsoft signale un problème connu sur ce réglage d’instance : consultez la page des known issues de SQL Server 2025 avant de l’activer.
Équivalent T‑SQL pour la compression des sauvegardes :
EXEC sp_configure 'backup compression default', 1;
RECONFIGURE;
Page « Advanced »
Paramètres importants :
| Paramètre | Valeur par défaut | Recommandation | Explication |
|---|---|---|---|
| Optimize for Ad hoc Workloads | False | ✅ True | Évite de polluer le plan cache avec des plans à usage unique. Au premier appel, seul un stub est mis en cache ; le plan complet est mis en cache au deuxième appel |
| Remote Login Timeout | 10 | 10‑20 | Délai en secondes avant l’échec d’une connexion distante vers un fournisseur OLE DB (serveurs liés) |
| Allow Triggers to Fire Others | True | True | Permet l’exécution en cascade de triggers |
| Blocked Process Threshold | 0 | 5‑10 | Si > 0, le moteur émet l’événement blocked_process_report pour chaque tâche bloquée depuis N secondes. Rien n’est enregistré par défaut : il faut une session Extended Events, une trace ou une alerte pour recueillir ces rapports |
| Boost SQL Server Priority | False | False | Élève la priorité Windows du processus sqlservr.exe. Option dépréciée, à ne pas activer |
Le délai des requêtes distantes (Remote query timeout, 600 secondes par défaut) n’est pas sur cette page, mais sur la page « Connections », section « Remote server connections ».
Équivalent T‑SQL (options avancées, d’où la première instruction) :
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
EXEC sp_configure 'optimize for ad hoc workloads', 1;
RECONFIGURE;
EXEC sp_configure 'blocked process threshold (s)', 5;
RECONFIGURE;
Configuration de la base model
La base model sert de template pour toute nouvelle base créée. Configurez‑la correctement :
-- Taille initiale et croissance raisonnables
ALTER DATABASE model MODIFY FILE
(NAME = modeldev, SIZE = 256MB, FILEGROWTH = 64MB);
ALTER DATABASE model MODIFY FILE
(NAME = modellog, SIZE = 128MB, FILEGROWTH = 64MB);
Pourquoi ? Par défaut, les fichiers de
modelfont 8 Mo et croissent par pas de 64 Mo. LeFILEGROWTH = 64MBci-dessus reprend donc la valeur par défaut, et seule la taille initiale change. Une base créée à 8 Mo enchaîne les croissances dès qu’elle se remplit. Côté journal, chaque croissance ajoute des VLF (Virtual Log Files), et un grand nombre de VLF ralentit la récupération. Dimensionnermodelévite ces croissances en série.
Gestionnaire de configuration SQL Server
Le SQL Server Configuration Manager (SQLServerManager17.msc pour SQL Server 2025) est l’outil système pour gérer les services, les protocoles réseau et les alias client.
Accès : Le Gestionnaire de configuration est un composant logiciel enfichable de la console MMC, et n’apparaît pas toujours comme application dans les versions récentes de Windows. Tapez
SQLServerManager17.mscdans le menu Démarrer, ou ouvrezcompmgmt.msc(Gestion de l’ordinateur) où il apparaît comme snap‑in.
Architecture du Gestionnaire de configuration
SQL Server Configuration Manager
├── SQL Server Services
│ ├── SQL Server (MSSQLSERVER) -- Moteur de base de données
│ ├── SQL Server Agent (MSSQLSERVER) -- Planificateur de tâches
│ ├── SQL Server Browser -- Découverte d'instances
│ ├── SQL Full-text Filter Daemon Launcher (MSSQLSERVER) -- Recherche plein texte
│ └── SQL Server Integration Services -- SSIS (si installé)
├── SQL Server Network Configuration
│ └── Protocols for MSSQLSERVER
│ ├── Shared Memory
│ ├── Named Pipes
│ └── TCP/IP
└── SQL Server Native Client Configuration
├── Client Protocols
└── Aliases
SQL Server Native Client (SNAC) n’est plus livré depuis SQL Server 2022, ni avec SSMS depuis la version 19. Pour de nouveaux développements, Microsoft recommande les pilotes Microsoft ODBC Driver ou Microsoft OLE DB Driver pour SQL Server.
SQL Server Services
Clic droit sur un service → Properties :
Onglet « Log On »
| Option | Description |
|---|---|
| Built‑in account | Local System, Local Service, Network Service |
| This account | Compte de domaine ou gMSA |
En production, utilisez toujours un compte de domaine dédié ou un gMSA. N’utilisez jamais
Local Systemcar il dispose de droits excessifs sur la machine.
Onglet « Service »
| Propriété | Description |
|---|---|
| Start Mode | Automatic / Manual / Disabled |
| Process ID | PID du processus en cours |
| Binary Path | Chemin de l’exécutable sqlservr.exe |
Onglet « Startup Parameters »
Paramètres de démarrage du moteur :
| Paramètre | Signification |
|---|---|
-d | Chemin du fichier master.mdf |
-l | Chemin du fichier mastlog.ldf |
-e | Chemin du fichier journal d’erreurs (ERRORLOG) |
Vous pouvez ajouter des paramètres supplémentaires :
| Flag | Effet | Quand l’utiliser |
|---|---|---|
-T3226 | Supprime les messages de sauvegarde et de restauration réussies du journal d’erreurs et du journal système | Réduit le bruit dans l’ERRORLOG si sauvegardes fréquentes |
Le trace flag 1118, longtemps ajouté ici pour tempdb, n’a plus aucun effet depuis SQL Server 2016 : tempdb alloue toujours des extensions uniformes, et l’option MIXED_PAGE_ALLOCATION de ALTER DATABASE règle le comportement des autres bases.
SQL Server Network Configuration — Protocoles
Shared Memory
- Usage : connexions locales uniquement (client et serveur sur la même machine)
- Configuration : aucune option. Activé par défaut
- Production : laissez activé pour les connexions locales SSMS / scripts de maintenance
Named Pipes
- Usage : connexions intra‑réseau LAN, surtout dans des environnements legacy
- Configuration : nom du pipe (défaut :
\\.\pipe\sql\query) - Production : laissez-le désactivé sauf besoin spécifique. Sur une nouvelle installation, Named Pipes est déjà désactivé pour les connexions réseau, quelle que soit l’édition. TCP/IP est préférable
TCP/IP
C’est le protocole principal pour les connexions réseau. Sur une nouvelle installation, il est activé en Enterprise, Standard et Evaluation, mais désactivé en Developer et Express : sur ces éditions, activez-le avant de chercher un problème de pare-feu. Clic droit → Properties :
Onglet « Protocol » :
| Paramètre | Description | Recommandation |
|---|---|---|
| Enabled | Active/désactive TCP/IP | ✅ Yes |
| Keep Alive | Intervalle (ms) pour les paquets keep‑alive | 30000 (défaut) |
| Listen All | Écouter sur toutes les adresses IP | Yes pour la plupart des cas |
Onglet « IP Addresses » :
Chaque interface réseau est listée (IP1, IP2, etc.) plus une section IPAll :
| Paramètre | Description | Recommandation |
|---|---|---|
| TCP Dynamic Ports | Port attribué dynamiquement au démarrage | Laissez ce champ vide pour un port fixe. Une instance nommée y porte 0 par défaut (ports dynamiques) : effacez ce 0 avant de saisir un port fixe |
| TCP Port | Port statique | 1433 pour l’instance par défaut |
Bonne pratique en production :
- Instance par défaut : port 1433 (fixe)
- Instance nommée : attribuez un port statique personnalisé (ex. : 14330) au lieu de laisser un port dynamique
- Créez une règle de pare‑feu Windows pour autoriser le port choisi
Configuration du pare‑feu via PowerShell :
New-NetFirewallRule -DisplayName "SQL Server 2025" `
-Direction Inbound -Protocol TCP -LocalPort 1433 `
-Action Allow -Profile Domain
# Pour SQL Server Browser (UDP 1434) — instances nommées uniquement
New-NetFirewallRule -DisplayName "SQL Server Browser" `
-Direction Inbound -Protocol UDP -LocalPort 1434 `
-Action Allow -Profile Domain
Important : Après toute modification des protocoles réseau, vous devez redémarrer le service SQL Server pour que les changements prennent effet.
SQL Native Client Configuration
Client Protocols
Ordre de tentative des protocoles côté client :
- Shared Memory (si connexion locale)
- TCP/IP
- Named Pipes
Vous pouvez modifier l’ordre ou désactiver un protocole via clic droit → Properties dans le nœud Client Protocols.
Ce réglage n’est pas lu par .NET SqlClient, qui tente toujours TCP puis Named Pipes, sans possibilité de changer cet ordre.
Aliases
Depuis SQL Server 2022, le Gestionnaire de configuration ne permet plus de créer des alias. Microsoft renvoie vers l’utilitaire SQL Server Client Network Utility (cliconfg.exe). Un alias reste une configuration côté client : chaque poste qui l’utilise doit porter la même définition.
Les alias permettent de créer des noms de connexion alternatifs pointant vers un serveur et un port spécifiques. Utile pour :
- Changer de serveur sans modifier les chaînes de connexion des applications
- Utiliser un nom logique (
SQL-PROD) au lieu d’un nom technique (SRV-SQL-PRD-01\INST01,14330)
| Champ | Exemple |
|---|---|
| Alias Name | SQL-PROD |
| Protocol | TCP/IP |
| Server | SRV-SQL-PRD-01 |
| Port No | 14330 |
Vérifications post‑installation
Exécutez ces requêtes T‑SQL pour valider la configuration :
-- 1. Version et édition
SELECT @@VERSION;
SELECT SERVERPROPERTY('ProductVersion') AS Version,
SERVERPROPERTY('Edition') AS Edition,
SERVERPROPERTY('ProductUpdateLevel') AS CU, -- plus de service packs : niveau de CU
SERVERPROPERTY('Collation') AS Collation;
-- 2. Configuration mémoire
SELECT name, value_in_use
FROM sys.configurations
WHERE name IN ('max server memory (MB)', 'min server memory (MB)');
-- 3. MAXDOP et Cost Threshold
SELECT name, value_in_use
FROM sys.configurations
WHERE name IN ('max degree of parallelism', 'cost threshold for parallelism');
-- 4. Optimize for Ad hoc Workloads
SELECT name, value_in_use
FROM sys.configurations
WHERE name = 'optimize for ad hoc workloads';
-- 5. TempDB : nombre de fichiers, tailles au démarrage et croissance
-- (sys.master_files donne la taille de départ ; tempdb.sys.database_files la taille courante)
SELECT name, physical_name, size * 8 / 1024 AS [Size_MB],
CASE WHEN is_percent_growth = 1
THEN CAST(growth AS varchar(10)) + ' %'
ELSE CAST(growth * 8 / 1024 AS varchar(10)) + ' Mo'
END AS Croissance
FROM sys.master_files
WHERE database_id = DB_ID('tempdb');
-- 6. Backup compression
SELECT name, value_in_use
FROM sys.configurations
WHERE name = 'backup compression default';
Diagramme récapitulatif de l’architecture post‑installation
graph LR
subgraph "Windows Server"
OS["OS + 4 Go RAM réservés"]
FW["Pare-feu Windows<br/>Port 1433 TCP"]
end
subgraph "SQL Server 2025"
ENG["Database Engine<br/>(sqlservr.exe)"]
AGT["SQL Server Agent<br/>(sqlagent.exe)"]
BRW["SQL Server Browser<br/>(sqlbrowser.exe)"]
end
subgraph "Stockage"
D["D:\ Binaires"]
E["E:\ Data (.mdf/.ndf)"]
F["F:\ Logs (.ldf)"]
G["G:\ TempDB"]
H["H:\ Backups (.bak)"]
end
subgraph "Protocoles"
SM["Shared Memory"]
TCP["TCP/IP :1433"]
NP["Named Pipes"]
end
ENG --> D
ENG --> E
ENG --> F
ENG --> G
ENG --> H
ENG --> SM
ENG --> TCP
ENG --> NP
TCP --> FW
AGT --> ENG
BRW --> |UDP 1434| FWChecklist de configuration production
graph TD
A[Installation terminée] --> B{Max Server Memory configuré ?}
B -->|Non| B1[Configurer immédiatement]
B -->|Oui| C{MAXDOP configuré ?}
C -->|Non| C1[Configurer selon NUMA]
C -->|Oui| D{Cost Threshold ≥ 25 ?}
D -->|Non| D1[Augmenter à 25-50]
D -->|Oui| E{TempDB : 1 fichier par cœur logique, 8 au plus ?}
E -->|Non| E1[Ajouter des fichiers]
E -->|Oui| F{Instant File Init activé ?}
F -->|Non| F1[Accorder Perform volume maintenance tasks via secpol.msc]
F -->|Oui| G{Sauvegardes configurées ?}
G -->|Non| G1[Configurer maintenance plan]
G -->|Oui| H[✅ Prêt pour la production]Résumé des commandes sp_configure essentielles
-- Activer les options avancées
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
-- Mémoire
EXEC sp_configure 'max server memory (MB)', 28672;
RECONFIGURE;
-- Parallélisme
EXEC sp_configure 'max degree of parallelism', 8;
RECONFIGURE;
EXEC sp_configure 'cost threshold for parallelism', 50;
RECONFIGURE;
-- Optimisation cache de plans
EXEC sp_configure 'optimize for ad hoc workloads', 1;
RECONFIGURE;
-- Compression des sauvegardes
EXEC sp_configure 'backup compression default', 1;
RECONFIGURE;
-- Seuil de processus bloqué (monitoring)
EXEC sp_configure 'blocked process threshold (s)', 5;
RECONFIGURE;
-- Vérification finale
SELECT name, value_in_use
FROM sys.configurations
WHERE name IN (
'max server memory (MB)',
'min server memory (MB)',
'max degree of parallelism',
'cost threshold for parallelism',
'optimize for ad hoc workloads',
'backup compression default',
'blocked process threshold (s)'
)
ORDER BY name;
-- Masquer à nouveau les options avancées (le réglage vaut pour tous les utilisateurs)
EXEC sp_configure 'show advanced options', 0;
RECONFIGURE;