Microsoft SQL Server
SQL Server Enterprise est la base de données SQL commercialisée par Microsoft. Depuis 2017, SQL Server est devenu multi-plateformes avec le support de Linux.
La robustesse de SQL Server n’est plus à démontrer et la panoplie des fonctionnalités avancées très riche : réplication, haute disponibilité et clustering (AlwaysOn), stockage colonnes…
Microsoft SQL Server 2016, usages de dbcc clonedatabase 1er juin 2019
Une nouvelle fonctionnalité a été introduite avec SQL Server 2012 : dbcc clonedatabase. Cette nouveauté a été améliorée depuis SQL Server 2016 (objets supportés).
Comment cela fonctionne et quel est le but de cette nouvelle fonctionnalité ?
dbcc clonedatabase est très utile pour diagnostiquer l’impact du niveau de compatibilité (compatibility level) sur les requêtes dans un environnement de production avec des statistiques temps réel sans modifier directement et immédiatement le niveau de compatibilité de la base de données source, modification qui peut générer des effets de bord et qui doit être menée prudemment.
Cette commande s’avère bien pratique aussi pour dupliquer une base de données avec uniquement les objets.
Configuration SSL des connexions avec SQL Server 2019 sur Linux 1er juin 2019
Modifier le port de SQL Server installé dans une zone WAN/DMZ n’est pas suffisant d’un point de vue sécurité, cela diminue les attaques potentielles mais n’empêche pas des outils de "snif" de lire les paquets TCP.
Comment encrypter les paquets avec SSL / TLS 1.2 pour SQL Server sous Linux ? Les étapes sont faciles avec openssl et l’utilitaire mssql-conf.
L’encryption est initiée et forcée par le serveur SQL Server avec un certificat auto-signé (self-signed certificate).
Modification du port de SQL Server 2019 sur Linux et utilisation des alias SQL Server sur les machines clientes 1er juin 2019
Microsoft SQL Server installé dans une zone WAN/DMZ et utilisant son port par défaut 1433 est vulnérable aux attaques.
Le port d’un serveur SQL Server 2019 installé sur Linux est modifiable avec l’utilitaire mssql-conf.
Le déploiement (automatisé) d’alias SQL Server sur les machines clientes lors du changement du port d’un serveur réduit considérablement les impacts négatifs.
Dépanner un problème de démarrage de SQL Server 2019 sur Ubuntu lié à une erreur d’action avec root 31 mai 2019
TOUJOURS démarrer le moteur SQL Server sur Linux avec le compte mssql. NE JAMAIS EXÉCUTER directement le binaire sqlservr en tant que root.
En effet, le moteur ne peut pas alors être ensuite redémarré normalement avec le compte mssql.
Le diagnostic n’est pas aussi simple qu’à l’accoutumée dans ce genre de problème, des permissions sont altérées pour des fichiers systèmes binaires cachés de SQL Server (security.hiv…).
Gestion du service SQL Server 2019 sur Ubuntu avec systemctl 31 mai 2019
Dans l’architecture par défaut, SQL Server 2019 s’exécute avec le compte mssql.
Lors de l’arrêt/démarrage/redémarrage du service mssql-server avec systemctl, le mot de passe est demandé. On souhaite autoriser mssql à gérer son propre service sans invites de saisie du mot de passe.
2 solutions sont possibles : définir mssql-server en tant que service utilisateur du compte mssql ou donner les droits avec aucun mot de passe sur le service système mssql-server au user mssql via sudo.
Microsoft SQL Server 2019 sur Ubuntu - Agent SQL Server 31 mai 2019
Et l’agent SQL Server sur Linux ? Oui il est présent, MAIS…
Si la configuration et l’activation de l’agent SQL Server sont très simples avec mssql-conf, contrôler celui-ci l’est en revanche beaucoup moins. Sur Linux, l’agent SQL Server n’est pas associé à un service dédié comme sur Windows avec des conséquences non négligeables.
Installation et configuration de Microsoft SQL Server 2019 sur Linux Ubuntu 18.04 29 mai 2019
Qui l’eût cru en 2009, 10 ans plus tôt, Microsoft SQL Server 2019 sur les plateformes Linux !
Sur Ubuntu 18.04, une instance SQL Server 2019 est installée et configurée avec mssql-conf. Comme la majorité des entreprises implémentent des parefeux pour empêcher les serveurs de communiquer avec l’extérieur, les installations sont faites en mode hors ligne (offline) avec les packages *.deb fournis par Microsoft.
Les fichiers de bases de données ne sont pas créés dans le répertoire par défaut.
Après l’installation, 2 premiers tests sont réalisés : restauration sur SQL Server 2019 / Linux d’une base de données à partir de sa sauvegarde SQL Server 2016 / Windows et export/import d’une table avec bcp en mode natif de SQL Server 2016 / Windows vers SQL Server 2019 / Linux.
Ces 2 tests montreront s’il est facile ou non, dans ce contexte cross-plateformes, de migrer des bases de données de SQL Server 2016 sous Windows vers SQL Server 2019 sous Linux.
Déplacer la base tempdb avec SQL Server 2008 R2 27 juillet 2014
La base tempdb d’un serveur SQL Server 2008 R2 est déplacée vers un autre disque en 4 étapes grâce à la vue sys.master_files et aux commandes ALTER DATABASE.
Extraire la liste des membres d’un groupe AD Microsoft Active Directory défini dans un serveur Microsoft SQL Server 20 juillet 2014
Très souvent, les responsables de projet, ne disposant pas des outils nécessaires et/ou par méconnaissance, demandent directement aux DBA la liste des comptes appartenant à un groupe Microsoft Active Directory défini dans un serveur Microsoft SQL Server.
Des commandes simples (net group, net user) listent les membres sans devoir déranger les administrateurs du contrôleur de domaine Active Directory (AD).
Microsoft SQL Server 2008 et la compression de données, benchmarks 7 août 2011
SQL Server 2008 introduit la compression de données pour les tables, indexes et partitions.
Diverses stratégies de compression possibles :
- compression de lignes (ROW).
- compression de pages par préfixes (prefix compression).
- compression de pages avec dictionnaire (Dictionary compression).
Migration de Microsoft SQL Server 2008 vers SQL Server 2008 R2 en mode silencieux 9 mai 2011
Industrialiser les installations de Microsoft SQL Server avec le mode silencieux est de plus en plus courant, en revanche les migrations en mode silencieux le sont beaucoup moins, les migrations avec l’interface graphique sont encore préférées actuellement.
Et pourtant la migration en mode silencieux d’une instance "standalone" SQL Server 2008 vers SQL Server 2008 R2 diffère très peu de l’installation dans ce même mode.
Installation et utilisation à distance en ligne de commandes du conseiller de migration Microsoft SQL 2008 R2 (upgrade advisor) 3 mai 2011
Les distributions de Microsoft SQL Server 2005 et 2008/2008 R2 proposent un conseiller de migration ou "Upgrade Advisor" qui diagnostique au préalable les éventuels problèmes et incompatibilités pour une migration d’une instance Microsoft SQL Server.
Le conseiller de migration est exploitable en lignes de commandes et à distance pour préparer la migration d’une instance.
L’analyse d’un parc de serveurs à migrer est tout à fait possible grâce aux fichiers de configuration donnés à l'utilitaire UpgradeAdvisorWizardCmd.
Miroirs de bases SQL Server 2008 R2 avec témoin, guide pratique 18 avril 2011
Le "mirroring" (ou miroir) est une fonctionnalité qui, depuis SQL Server 2005, maintient une base de données "standby" inactive à des fins de DR (Disaster/Recovery) et/ou de bascule automatique en cas d’échec (automatic failover).
Dans ce guide pratique : une solution de miroir SQL Server 2008 R2 avec bascule automatique grâce à une instance témoin (witness). Son implémentation est réalisée et industrialisée en utilisant les variables de scripts, fonctionnalité de l’utilitaire SQLCMD introduite avec SQL Server 2005. De chaleureux remerciements sont d’ailleurs adressés à Richard PRADE pour cette version industrialisée.
Au delà de l’industrialisation de l’installation du miroir, sont également abordés :
- des exemples de bascules automatiques et manuelles
- la prise en charge du mirroring par les couches clientes ODBC, OLE DB, ADO.NET et JDBC avec la propriété Failover Partner
- les aspects performances et la mesure de la latence vers le miroir (sp_dbmmonitorchangealert et sp_dbmmonitorresults)
Microsoft SQL Server - Export et import de données avec l’utilitaire bcp, guide pratique 7 mars 2011
L’utilitaire bcp dans le client Microsoft SQL Server permet d’exporter et importer des données en mode natif ou en mode caractères.
Voici un guide pratique qui s’adresse aux administrateurs et concepteurs qui prennent en main pour la première fois cet outil natif d’export/import de données. Parmi les points abordés :
- l’export des données d’une table et d’une vue avec bcp out ainsi que l’export de requêtes ou d’un jeu de résultats retourné par une procédure stockée avec bcp queryout.
- l’import de données dans une table depuis un fichier avec bcp in. La gestion des erreurs, des colonnes identity et du journal des transactions lors des imports est soulignée.
Installation silencieuse d’un cluster SQL Server 2008 R2 en mode failover sur Windows 2003 Server 21 février 2011
Un précédent article paru au mois de novembre 2010 présente l’installation silencieuse d’une instance SQL Server 2008 R2 : Microsoft SQL Server 2008 R2 - Installation silencieuse.
Attardons nous à présent sur les paramètres spécifiques aux installations silencieuses d’un cluster SQL Server 2008 R2 en mode failover sur Windows 2003 SP2 64 bits.
En préambule, l’utilitaire cluster pour naviguer dans un cluster et la terminologie propre aux clusters Microsoft (groupes, groupes de ressources…) sont présentés puis l’installation des nœuds MS SQL Server en mode silencieux est réalisée (InstallFailoverCluster, AddNode).
La bascule d’un groupe de ressources MS SQL Server avec l’option moveTo de l’utilitaire cluster et la suppression d’un nœud (RemoveNode) sont également abordées.
Microsoft SQL Server 2000 et l’erreur 3628 floating point exception 17 janvier 2011
Des traitements avec SQL Server 2000 peuvent remonter des erreurs avec le message 3628 (a floating point exception occurred), message caractéristique de l’injection d’une donnée incohérente (Not A Number) dans une colonne de type float.
3 méthodes pour détecter les lignes et colonnes contenant ces incohérences :
- backup/restore vers SQL Server 2005 pour utiliser l’option with data_purity de la commande dbcc checktable
- interrogations dynamiques des colonnes de type float grâce aux tables systèmes syscolumns et systypes
- utilisation du binaire bcp d’export des données
Installation silencieuse de Microsoft SQL Server 2008 R2 29 novembre 2010
Principale évolution avec SQL Server 2008 R2 lors des installations silencieuses : la surcharge de toutes les valeurs stockées dans le fichier de configuration est désormais possible par passage de paramètres à setup.exe.
Chaque déploiement peut dès lors être personnalisé et d’un point de vue sécurité, cette nouveauté évite de stocker des mots de passe sensibles dans le fichier de configuration.
Un script modèle DOS est une très bonne option pour l’automatisation et la personnalisation des installations silcencieuses.
Activation et influence sur les performances des files d’audit SQL Server 2008 - Audit trail 28 septembre 2010
Microsoft SQL Server 2008 introduit un nouvel outil souple permettant d’auditer les opérations en base en complément du Profiler : SQL Server Audit Trail 2008.
Voici quelques clés pour mettre en place l’audit trail SQL Server 2008 et l’exploiter avec fn_get_audit_file.
L’audit SQL Server 2008 doit être utilisé avec précaution et dûment justifiée pour les applications stratégiques : 25 à 30% de pertes de performances sont constatées lors de benchmarks réalisés, les applications travaillant en ligne à ligne et non en mode ensembliste étant les plus impactées.
Benchmark de la compression des sauvegardes avec SQL Server 2008 6 septembre 2010
MS SQL Server 2008 introduit la compression des sauvegardes.
Des benchmarks ont été réalisés pour observer les gains en espace, les performances en temps d’exécution et la surconsommation CPU engendrée par la compression des sauvegardes.
Le cas des bases encryptées avec l’option TDE (Transparent Data Encryption) et l’influence de la compression lors des opérations de restauration sont inclus dans le périmètre de ces benchmarks.
MS SQL Server 2005 et l’option WITH DATA_PURITY des commandes DBCC CHECKDB et DBCC CHECKTABLE 8 mars 2010
SQL Server 2005 n’est plus permissif sur le stockage de données hors intervalle dans les colonnes de type float : NaN (Not a Number), INF (Infinity).
SQL Server 2005 introduit donc la nouvelle option WITH DATA_PURITY dans les commandes de vérification d’intégrité DBCC CHECKDB et DBCC CHECKTABLE. L’option WITH DATA_PURITY vérifie la pureté des données et s’avère particulièrement utile pour corriger les données dans des bases créées avec les versions antérieures à SQL Server 2005 (SQL Server 2000 - 7.0).
Déplacer les bases systèmes SQL Server 2005 26 novembre 2009
Guide pratique pour déplacer les bases systèmes SQL Server 2005 avec les commandes ALTER DATABASE MODIFY FILE.
Miroirs de bases SQL Server 2005 (mirroring), guide pratique 24 septembre 2009
Un guide pratique sur la mise en miroir (mirroring) de bases de données SQL Server, nouveauté SQL Server 2005.
Les principes généraux du miroir SQL Server 2005 sont rapidement présentés (prérequis, mode de recovery, safety…), puis les commandes utiles sont proposées à travers un cas pratique de création d’un miroir en mode safety off.
La bascule manuelle (failover), la suspension/reprise (suspend/resume), la suppression d’un miroir et les vues systèmes de monitoring d’un miroir sont abordés.
SQL Server 2005 - Reconstruction d’une base à partir d’un simple fichier mdf (rebuild log) 4 juin 2009
De plus en plus souvent autour de MS SQL Server, les éditeurs de progiciels fournissent uniquement le fichier de données mdf et non plus des sauvegardes. Lorsque le journal des transactions est omis dans la livraison, la commande sp_attach_db devient dès lors inutilisable.
Malgré tout, la commande ALTER DATABASE REBUILD LOG de SQL Server 2005 permet de reconstruire une base de données uniquement à partir de son fichier de données mdf.
La reconstruction d'un journal de transactions d'une base de données SQL Server 2005 est présentée dans cet article.
MS SQL Server et les serveur liés, performances entre ODBC et OLEDB 8 juin 2006
MS SQL Server peut accèder à des serveurs distants hétérogènes (Sybase, Oracle…) via ODBC, OLEDB. Ce document étudie l'accès aux données distantes Sybase depuis un serveur MS SQL 2000, en particulier d'une point de vue des performances. La couche d'accès ODBC ou OLE-DB est étudiée ainsi que les méthodes d'interrogation (select from openquery…).
osql et la gestion des codes retour avec la commande RAISERROR 1er septembre 2005
Fiche pratique sur la gestion des codes retour du binaire osql avec la commande T-SQL RAISERROR.
Afin de pouvoir tester correctement les codes retour d'un traitement batch avec SQL Server dans une commande DOS ou bien au travers d'un ordonnanceur comme ControlM, le cas pratique s'attarde sur comment bien combiner les paramètres de la commande T-SQL RAISERROR (severity, state) avec l'utilisation du binaire osql.
Triggers Instead Of avec MS SQL Server pour les vues en mise à jour 22 juin 2005
Article sur les triggers "Instead of Update / insert" utilisés comme alternative aux vues en mise à jour reposant sur plusieurs tables et présentant des problèmes de comportement lors de la mise à jour. Cet article présente également le principe d'utilisation de la fonction columns_updated( ) dans les triggers.
Groupes de fichiers SQL Server - Localisation des objets (sysindexes) 12 novembre 2004
Actuellement, la localisation des objets sur les groupes de fichiers SQL Server n'est pas aisée, aussi cet article présente les requêtes permettant en interrogeant sysindexes et sysfilegroups de localiser les tables avec ou sans indexes clusterisés, les indexes non clusterisés et les champs textes.
Marquer une procédure stockée en mode système (sp_MS_MarkSystemObject) 9 novembre 2004
Article sur la méthode permettant de marquer une procédure stockée comme étant une procédure stockée système (sp_MS_MarkSystemObject), ce qui permet d'exécuter la procédure stockée depuis n'importe quelle base en conservant la base de données courante.
Logins sous SQL Server - Reverse 29 octobre 2004
Article sur les logins sous SQL Server avec quelques informations pratiques sur la table sysxlogins. Cet article propose par ailleurs un script de génération automatique des logins avec conservation des bases de données et des langages par défaut, des SIDs et des mots de passe.
Reconstruction d’un serveur SQL Server 2000 (rebuild master) 29 octobre 2004
Reconstruction d'un serveur SQL Server 2000 : utilisation des exécutables rebuildm.exe, sqlservr.exe, mode single user -m pour reconstruire un serveur SQL Server à la suite d'une corruption de la base master ou bien pour changer les collations settings / sort order (jeux de caractères / ordre de tri).
Resynchronisation des users SQL Server 2000 et sp_change_users_login 28 octobre 2004
Article sur la resynchronisation des users SQL Server 2000 et l'utilisation de la procédure stockée système sp_change_users_login (option Report, Auto_Fix, Update_One).
Création d’instances nommées SQL Server 2000 19 juillet 2004
Documentation technique sur la création et la désinstallation d'instances nommées avec SQL Server 2000 en mode silencieux avec des fichiers d'initialisation (unattended installations).
Commandes DBCC SQL Server pour le tuning 2 juillet 2003
Toutes les commandes DBCC de MS SQL Server documentées et non documentées pour le tuning (dbcc cachestats, dbcc sqlperf, dbcc opentran, dbcc pintable, dbcc unpintable…).
La fragmentation dans MS SQL Server 7.0 - dbcc showcontig 1er juillet 2003
Après quelques généralités en introduction sur le stockage des données et indexes dans MS SQL Server 7.0 et 2000 (pages, extents…), l'article présente la commande DBCC SHOWCONTIG, commande qui apporte une aide précieuse pour comprendre et analyser des éventuels problèmes de performances liés à la fragmentation des données dans une table.
Quelques pistes sont donnés pour réduire la fragmentation (paramètre fillfactor, dbcc dbreindex) après l'interprétation détaillée des résultats de la commande dbcc showcontig.