GERBELOTBARILLON.COM

Parce qu'il faut toujours un commencement...

SQL Serveur

Configurer le Database Mail de SQL Serveur

Configurer la Réplication SQL Serveur

SQL Serveur est l'ensemble logiciel développé par la firme Microsoft afin de produire une solution de gestion de bases de données. C'est un des systèmes les plus utilisés, avec Oracle et les ensembles MySQL/MariaDB/PostgreSQL, pour la gestion des grands volumes de données structurées.

Durant la mise en place d'une instance par SQL Serveur, plusieurs bases de données sont générées :

Le meilleur outil pour gérer les bases SQL Server est le SSMS (SQL Server Management Studio). Il est gratuitement disponible et permet toutes les interactions avec les différents services SQL mis en place durant l'installation du gestionnaire SQL.

En ouvrant SSMS, une fois connecté à l'instance SQL, dépliez Bases de données > Bases de données système

Vous pouvez remarquer que la base Resource n'est pas affichée dans la liste précédente. Et c'est normal car c'est une base système particulière que vous pouvez toutefois manipuler en passant par un DMV nommé sys.sysaltfiles en faisant :

SELECT dbid, db_name(dbid) database_name, fileid, name, filename
FROM sys.sysaltfiles
On peut s'apercevoir que les bases systèmes ont les dbid entre 1 et 4 ainsi que l'identifiant 32767 qui correspond à une base de données de ressources.

Les bases de données système imposent des restrictions spécifiques, puisqu'elles sont importantes dans la gestion de l'instance :

La base MASTER


La base de données master contient l'ensemble des paramètres de l'instance SQL Serveur. Si la base master ne démarre pas, l'instance ne fonctionnera pas non plus. Elle contient entre-autres les login de connexion, les points de terminaison de l'instance, les bases de données utilisateur. Elle va récupérer ses informations dans les paramètres de configuration du service SQL Serveur.

L'accès aux configurations de l'instance passe par l'outil SQL Server Configuration Manager.

On peut s'apercevoir que les services SQL peuvent se gérer depuis cet outil, tout comme cela pourrait l'être depuis l'applet services.msc directement disponible dans le système.

La différence essentielle est que, par l'interface du Gestionnaire de configuration SQL, nous disposons de paramètres supplémentaires qui vont permettre de modifier le comportement des bases et du gestionnaire SQL.

Parmi les onglets, celui qui permet à l'instance de savoir où se trouvent les informations de la base master est Paramètres de démarrage. On y retrouve le chemin physique de la base master, celui du fichier de log des transactions ainsi que l'endroit où se trouvent les erreurs liées au service SQL.

La base MODEL


C'est par l'intermédiaire de cette base que sont mis en place les paramètres de chaque nouvelle base de données créée. Elle contient notamment le chemin physique, la taille initiale, les valeurs relatives à l'augmentation des bases, le modèle de récupération et d'autres encore.

Tout objet tel que base, utilisateur, procédures, créé dans la table model sera automatiquement créé dans les nouvelles tables. La configuration initiale de la base définit la taille des fichiers Data et Log à 8 Mo, avec une extension automatique à 64 Mo pour chacun. Pour modifier ce paramètre, il faut cliquer droit sur INSTANCE > Bases de données > Bases de données système > model et prendre les propriétés. Dans la rubrique Fichiers, vous pouvez alors changer la taille initiale ainsi que la croissance souhaitée.

Pour changer les chemins des bases par défaut, nous devons passer par les options de l'instance en cours en cliquant droit sur INSTANCE > Propriétés. Se rendre ensuite sur la rubrique Paramètres de base de données pour trouver les chemins.

La base MSDB


La base msdb stocke les valeurs critiques impactant les différentes tables :

La base TEMPDB


TempDB est la base de travail utilisée lorsque des opérations sont menées par les utilisateurs, notamment sur les SELECT mais pas seulement :

De par sa conception et son mode de fonctionnement, TempDB e recréée à chaque démarrage du service SQL et se retrouve donc recréée selon les paramètres de la base Model. C'est donc la seule base du système qui ne peut être sauvegardée.

Pratiques recommandées avec TempDB

Puisque cette base de données varie avec le temps et est sans cesse sollicitée, elle peut vite devenir un goulet d'étranglement pour le moteur SQL et créér des problèmes. Les pratiques générales à suivre sont les suivantes :

Backup SQL sur lecteur réseau mappé

Un lecteur réseau mappé sur une lettre de lecteur ne sera pas visible par SQL Serveur car il est lancé comme un service. Le service serveur SQL fonctionne dans l'environnement de la console locale avec les options de sécurité du compte ayant servi à démarrer SQL. Un lecteur mappé est spécifique à une session et non visible par les services démarrés sur la console locale.

Pour sauvegarder sur un lecteur mappé, il faut que cette association UNC <-> lecteur soit réalisée directement dans SQL Serveur.

Depuis une requête SQL

Exec xp_cmdshell 'net use <drivename> <share name> [/user:username password]'
Si jamais la commande xp_cmdshell n'est pas activée, faire la séquence de commandes suivantes :
Exec sp_configure 'show advanced options', 1;
GO
Reconfigure;
Go
Exec sp_configure 'xp_cmdshell', 1;
Go
Reconfigure;
Go

L'inconvénient de cette façon de faire est que le montage du lecteur réseau disparaît si le serveur SQL est redémarré.