À la une de SQLPAC en 2011

Les utilitaires awk, nawk et gawk - Tutoriel

bashLes utilitaires awk, nawk et gawk (GNU Awk) sont des parseurs de fichiers textes très simples à utiliser et permettent de manipuler efficacement des fichiers textes de données délimitées par un caractère. Avec une syntaxe très facile à appréhender, les opérations pour filtrer des lignes, filtrer des colonnes, enrichir le contenu, convertir des formats, calculer des aggrégats (moyennes, sommes par exemple)… deviennent un jeu d’enfants avec ces utilitaires. awk, gawk et nawk ne diffèrent que pour quelques fonctionnalités très avancées qui ne sont pas abordées ici. awk est l’utilitaire qu’il faut utiliser sans hésiter pour parser très efficacement et en quelques secondes des fichiers de logs complexes par exemple. Une prise en main de l’utilitaire nawk à travers l’exemple, et contrairement aux idées reçues il est également disponible sur les plateformes Windows.

Les utilitaires awk, nawk et gawk - Tutoriel

Sybase ASE, sauvegardes et restaurations (dump / load)

sybaseUn retour salvateur sur les sauvegardes et restaurations (dump/load) avec Sybase Adaptive Server Enterprise pour les novices ou ceux qui souhaitent mieux comprendre les mécanismes et les plans de sauvegarde avancés. Au programme :
  • le démon backupserver
  • réaliser une sauvegarde simple
  • réaliser des restaurations en évitant les écueils des différences de structures
  • réaliser des plans avancés de sauvegardes avec les journaux de transactions
  • lire les en-têtes des dumps et lire directement des dumps avec la base de données archive

Sybase ASE, sauvegardes et restaurations (dump / load)

Compilation et installation de SQLite 3 sur Sun Solaris 10 x86

sqliteLes bases de données SQLite 3, mobiles et indépendantes des plateformes, sont embarquées pour le fonctionnement interne de nombreux produits (Google Chrome, Smartphones, Apache Subversion...). Cet article présente la compilation de SQLite 3 sur une plateforme Sun Solaris 10 X86 64 bits avec SunStudio 12.1. 2 particularités lors de la construction : la librairie readline 6.2 64 bits est activée pour bénéficier du rappel des commandes SQL et les extensions optionnelles des indexes R*Tree et FTS (Full Text Search) sont ajoutées. Des tests de créations de bases de données SQLite 3 physiques et en mémoire (In Memory) sont menés à la fin de la compilation. Compilation et installation de SQLite 3 sur Sun Solaris 10 x86

Sybase ASE, sauvegardes et restaurations (dump / load)

Sybase Adaptive Server Enterprise 15.5 et sqsh 2.1.7 sur Sun Solaris 10 X86 64 bits

sybaseSQSH (prononcer skwish) est un remplaçant très pratique de l’utilitaire isql fourni par Sybase. Il permet d’intégrer du shell dans les commandes SQL : historique des commandes, variables, redirections, pipes, fonctions, combinaison avec les utilitaires awk, grep… La compilation de sqsh 2.1.7 avec SunStudio 12.1 sur une plateforme Solaris 10 X86 en 64 bits avec Sybase Adaptive Server Enterprise 15.5 64 bits nécessite quelques adaptations assez importantes. sqsh 2.1.7 est compilé avec la librairie GNU readline 6.2 64 bits, librairie qui permet d’activer l’historique des commandes dans sqsh. Un tour d’horizon de toutes les fonctionnalités de sqsh n’est pas l’objectif ici, la documentation officielle de sqsh est très complète, toutefois 2 fonctionnalités très pratiques sont abordées : les fonctions et la combinaison sqsh avec bcp sur les jeux de résultats.

Sybase Adaptive Server Enterprise 15.5 et sqsh 2.1.7 sur Sun Solaris 10 X86 64 bits

FreeType 2.4.6, compilation sur Sun Solaris 10 X86

sunFreeType est un moteur portable de polices de caractères utilisé dans de nombreux produits graphiques comme libgd, cairo, gnuplot… Particularité de la compilation de FreeType 2.4.6 en 64 bits sur Sun Solaris 10 x86 avec Sun Studio 12.1 : GNU make >=3.80 ou makepp >=1.19.

FreeType 2.4.6, compilation sur Sun Solaris 10 X86

GNU Make 3.82, compilation sur Sun Solaris 10 X86

sunCertains produits, comme FreeType 2.4, imposent GNU make lors de la compilation. La compilation de GNU make 3.82 en 64 bits sur Sun Solaris 10 x86 avec Sun Studio 12.1 est simple.

GNU Make 3.82, compilation sur Sun Solaris 10 X86

La librairie graphique libjpeg 8c (8.3.0), compilation sur Sun Solaris 10 X86 64 bits

sunLa librairie graphique libjpeg est utilisée par de nombreux produits comme gnuplot ou encore PHP et JPgraph pour générer des images au format *.jpg, *.jpeg (Joint Photographic Experts Group). En route pour gnuplot 4.4, la librairie libjpeg 8c est compilée avec Sun Studio 12.1 sur une plateforme Solaris 10 X86 64 bits. La librairie libjpeg 8c n’est pas installée dans son répertoire par défaut /usr/local. Les utilitaires de traitement des images jpg (cjpeg, djpeg et jpegtran) générés à la compilation sont abordés.

La librairie graphique libjpeg 8c (8.3.0), compilation sur Sun Solaris 10 X86 64 bits

La librairie graphique libpng 1.5.4, compilation sur Sun Solaris 10 X86 64 bits

sunLa librairie graphique libpng est utilisée par de nombreux produits comme gnuplot ou encore PHP et JPgraph pour générer des images au format *.png (Portable Network Graphics). En route pour gnuplot 4.4, la librairie libpng 1.5.4 est compilée avec la librairie de compression zlib version 1.2.5 64 bits, version recommandée et optimale pour les performances et la sécurité. Afin de ne pas polluer les répertoires systèmes, la librairie libpng 1.5.4 n’est pas installée dans son répertoire par défaut /usr/local.

La librairie graphique libpng 1.5.4, compilation sur Sun Solaris 10 X86 64 bits

zlib 1.2.5, compilation sur Sun Solaris 10 X86 en 64 bits

sunLa librairie zlib est une librairie de compression multi plateforme bien plus efficace en compression et en mémoire que la méthode LZW, méthode utilisée par exemple par le binaire compress sous Unix. Pour des raisons de performances et de sécurité, la version zlib 1.2.5 est fortement recommandée pour la construction de la librairie libpng, librairie graphique pour le format PNG. La version 1.2.5 de la librairie zlib est compilée en 64 bits avec SunStudio 12.1 sur une plateforme Solaris 10 x86, compilation qui présente des particularités : option pour le mode 64 bits et délocalisation de l’installation en dehors des répertoires systèmes /usr.

zlib 1.2.5, compilation sur Sun Solaris 10 X86 en 64 bits

Compilation et installation d’OpenLDAP 2.4.26 client et serveur sur Sun Solaris 10 x86

openldapUne compilation d’OpenLDAP 2.4.26 client et serveur en 64 bits sur une plateforme Sun Solaris 10 X86 avec Sun Studio 12.1 est réalisée avec les composants ci-dessous :
  • OpenSSL 0.9.8r pour la couche SSL/TLS
  • Oracle Berkeley DB 5.2.28 (11.2.5.2.28) pour le stockage backend
  • unixODBC 2.3.0
L’installation d'OpenLDAP est réalisée dans un répertoire personnalisé afin de ne pas polluer les répertoires systèmes /usr. L’architecture d'OpenLDAP 2.4 est présentée brièvement avec un exemple d’utilisation du binaire ldapsearch pour rechercher un compte dans un annuaire LDAP Microsoft Active Directory (AD). La construction d’un serveur OpenLDAP n’est pas abordée.

Compilation et installation d’OpenLDAP 2.4.26 client et serveur sur Sun Solaris 10 x86

Compilation et installation d’Oracle Berkeley DB 5.2 sur Sun Solaris 10 x86

oraberkeleydbLa base de données Berkeley DB est embarquée dans de multiples produits Open Source comme OpenLDAP (Annuaire LDAP), Apache Tigris Subversion (gestion des sources)… Oracle Berkeley DB a beaucoup évolué depuis la version 4.5, version avant l’acquisition par Oracle de SleepyCat. Des fonctionnalités très riches ont été introduites jusqu’à la version 5.2, parmi les nouvelles fonctionnalités (et il y en a beaucoup d’autres) :
  • Réplication.
  • APIs SQL. Compatibilité avec sqlite 3.v
  • Possibilité de générer du code C à partir d’un code DDL SQL (create table…) avec db_sql_codegen.
  • Compatibilité Androïd.
  • Pilote ADO.NET…
Dans la cadre de la mise en place d’une architecture OpenLDAP et Apache Tigris Subversion, 2 produits qui reposent sur BerkeleyDB, une distribution BerkeleyDB 5.2 est compilée sur Sun Solaris 10 x86 64 bits avec SunStudio 12.1. La création d’un serveur Berkeley DB 5.2 n’est pas abordée ici.

Compilation et installation d’Oracle Berkeley DB 5.2 sur Sun Solaris 10 x86

Oracle 11g R2, utilisation du pilote ODBC avec unixODBC 2.3.0 sous Sun Solaris 10 X86

oracleLa couche unixODBC inclut le binaire iusql afin d’attaquer des bases de données avec la couche ODBC via un DSN (Data Source Name). Cet utilitaire s’avère très pratique en cas de diagnostic. Le pilote ODBC 64 bits Oracle 11g natif est tout d’abord référencé dans la couche unixODBC 2.3.0, un test de connexion ODBC à une instance Oracle avec iusql est ensuite réalisé.

Oracle 11g R2, utilisation du pilote ODBC avec unixODBC 2.3.0 sous Sun Solaris 10 X86

Oracle 11g R2, compilation du pilote ODBC avec unixODBC 2.3.0 sous Sun Solaris 10 X86

oracleLors de la construction de la couche unixODBC 2.3.0 sous Solaris 10 x86 et d’un test de connexion ODBC vers Oracle 11g R2, mauvaise surprise : le pilote natif Oracle libsqora.so.11.1 pour ODBC dans $ORACLE_HOME/lib n’est pas présent. L’option ODBC avait bien été sélectionnée lors de la configuration de l’installation mais la librairie libsqora.so.11.1 n’a pas été construite car la couche unixODBC était manquante lors de l’installation. Pas de panique, il est encore possible de construire cette librairie ODBC avec le compte unix oracle sans devoir exécuter à nouveau l’installeur Oracle Universal Installer ou réinstaller la distribution Oracle. Les étapes sont assez simples.

Oracle 11g R2, compilation du pilote ODBC avec unixODBC 2.3.0 sous Sun Solaris 10 X86

unixODBC 2.3.0, compilation et utilisation sous Sun Solaris 10 X86

sununixODBC est une couche particulièrement intéressante pour accéder par exemple à des bases Microsoft SQL Server avec le pilote ODBC FreeTDS sur des plateformes Unix. Bien d’autres applications de la couche unixODBC sont possibles : interfaçage de moteurs de bases de données (Oracle, Sybase…) avec des langages comme PHP ou encore Python via unixODBC… La compilation d’unixODBC 2.3.0 en 64 bits avec SunStudio 12.1 sur une plateforme Solaris 10 x86 64 bits ne soulève pas de points particuliers. L’architecture et l’utilisation d'unixODBC sur une plateforme Solaris sont présentées en seconde partie, parmi les points abordés :
  • Environnement système unixODBC.
  • Pilotes, DSN - Data Source Name - systèmes et utilisateurs : fichiers odbcinst.ini et odbc.ini, variables $ODBCSYSINI et $ODBCINI.
  • Référencement des pilotes ODBC et création des sources de données.
  • Utilisation du binaire iusql pour tester les connexions ODBC.
  • Debug des appels ODBC.
  • Prédéfinition des attributs ODBC.
Les exemples sont réalisés avec le pilote ODBC Oracle 11g R2 libsqora.so.11.1.

unixODBC 2.3.0, compilation et utilisation sous Sun Solaris 10 X86

Tcl/Tk 8.5.10, compilation et utilisation sur Sun Solaris 10 x86

tcltkTcl/tk est souvent utilisé par les moteurs de bases de données, qu’il s’agisse de clients développés en Tcl/Tk ou du langage Tcl embarqué et utilisé dans des routines (procédures stockées PostgreSQL par exemple…). SunStudio 12.1 est un des outils possibles pour compiler Tcl/Tk 8.5.10 64 bits sur une plateforme Solaris 10 x86 64 bits. Après l’étape de la compilation, une description de l’arborescence Tcl/Tk est proposée pour une première prise en main rapide de Tcl/Tk : binaires tclsh et wish, librairies, scripts tclConfig.sh et tkConfig.sh, exécutions des démos graphiques Tk.

Tcl/Tk 8.5.10, compilation et utilisation sur Sun Solaris 10 x86

OpenSSL 0.9.8r, compilation sur Sun Solaris 10 x86

sunPrésentation de la compilation d’OpenSSL 0.9.8r en 64 bits sur une plateforme Solaris 10 X86 avec les outils de développement SunStudio 12.1. Afin de ne pas polluer les répertoires systèmes, OpenSSL n’est pas installé dans son répertoire par défaut /usr/local/ssl. L’installation de cette couche Open Source pour les protocoles SSL (Secure Socket Layer) et TLS (Transport Layer Socket) est indispensable pour un bon nombre d’outils qui en dépendent (Apache, OpenLDAP, PHP, Python, PostgreSQL…). Une description très sommaire de l’arborescence OpenSSL est également proposée pour une première mise en main rapide (fichier de configuration openssl.cnf, openssl, CA.pl…) sans aller toutefois jusqu’à la création de certificats, ce n’est pas le propos.

OpenSSL 0.9.8r, compilation sur Sun Solaris 10 x86

Addendum. Google Adsense - Ajout dynamique avec Javascript et la méthode createElement

googleComplément important ajouté à l’article qui présente l’insertion dynamique de Google AdSense avec Javascript et la méthode createElement. Chaque solution n’est pas parfaite et a ses inconvénients : dans la solution proposée, des conséquences non négligeables dans Google Analytics sont à prendre en considération. Google Adsense - Ajout dynamique avec Javascript et la méthode createElement

OpenSSL 0.9.8r, compilation sur Sun Solaris 10 x86

Google Adsense - Ajout dynamique avec Javascript et la méthode createElement

googleComment incorporer dynamiquement les annonces Google AdSense avec Javascript grâce à la balise <object> dans une page HTML déjà existante ? La méthode est assez simple : une page statique ads.html contenant le code javascript des annonces Google Adsense est créée, puis le contenu de cette page est incorporé dynamiquement avec les méthodes Javascript createElement et appendChild dans la page principale. La solution proposée est compatible avec Chrome, Firefox 4 et 5, Opera 11.5 et Safari 5. Pour Internet Explorer 8, le navigateur qui donne toujours du fil à retordre, cette méthode fonctionne mais avec des défauts ergonomiques. NB : le site sqlpac.com n’incorpore pas des annonces Google AdSense pour faire fortune mais pour amortir les frais d’hébergement du site et offrir des liens alternatifs pertinents avec le contenu des articles.

Google Adsense - Ajout dynamique avec Javascript et la méthode createElement

Microsoft SQL Server 2008 et la compression de données, benchmarks

mssqlSQL 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).
Dans cette étude qui se concentre sur l’impact des types de compression lors des opérations de sélections et de mises à jour pour des tables classiques et partitionnées, les benchmarks réalisés montrent que cette nouveauté, bien que très séduisante, doit être appliquée à bon escient. En bonus, quelques requêtes et procédures systèmes utiles propres à la compression.

Microsoft SQL Server 2008 et la compression de données, benchmarks

Compilation de GNU Readline sur Sun Solaris 10 X86

sunLes librairies readline sont utilisées par de nombreux produits, qu’il s’agisse de langages ou de bases de données, parmi ces produits : PostgreSQL, Python, sqsh et bien d’autres encore… la liste est longue. Sans readline, pour bon nombre d’entre eux, plus de fonctionnalité de rappel de commandes dans les invites. Sur une plateforme Solaris 10 X86, une compilation des librairies readline 6.2 en 64 bits est réalisée avec les outils de développement SunStudio 12.1. Aucune difficulté particulière.

Compilation de GNU Readline sur Sun Solaris 10 X86

Google Analytics et le mode debug (ga_debug.js)

googleAfin de ne pas travailler en aveugle et ne pas implémenter directement en production des scripts non fonctionnels, Google Analytics propose des modes debug. Pour les concepteurs qui n’ont jamais abordé le débogage avec Google Analytics et qui souhaitent rapidement diagnostiquer un dysfonctionnement avec Google Analytics (événements…) :
  • armé des outils de développement nécessaires (Chrome, Firebug), basculer sur le script de debug de Google Analytics (ga_debug.js). Les informations de debug sont alors retournées dans la console Javascript.
  • la toute nouvelle extension Google Analytics Debugger pour Google Chrome est également disponible pour les débogages en direct.

Google Analytics et le mode debug (ga_debug.js)

Google Analytics - Migration en mode javascript asynchrone

googleUn précédent article paru en novembre 2009 présente comment mesurer son audience Web avec Google Analytics avec les objectifs suivants :
  • être le moins intrusif possible dans le code des pages.
  • mesurer efficacement les téléchargements de documents PDFs, MS Word…
  • tracer les clics des internautes sur les liens externes au sein d’un site.
Depuis la technologie Google Analytics a évolué et propose une nouvelle version stable depuis avril 2010, notamment pour IE 6 et IE 7, de l’outil de mesure d’audience Google analytics ga.js. Cette nouvelle version du code Google Analytics est désormais en mode asynchrone dans le code Javascript et elle est très fortement recommandée et conseillée pour un bon nombre de nouveautés Google. La migration vers la version asynchrone de Google Analytics est assez simple et allège grandement le code par ailleurs.

Google Analytics - Migration en mode javascript asynchrone

Implémentation du bouton +1 Google en asynchrone avec la méthode Javascript createElement

googleUn précédent article paru en juin 2011 présente l’implémentation classique du bouton +1 de Google avec l’objectif de respecter les normes et standards du consortium W3C grâce à l’affichage explicite. Dans ce volet, sont abordés :
  • l’incorporation du script plusone.js du bouton Google +1 en mode asynchrone avec la méthode javascript createElement.
  • l’industrialisation de l’affichage explicite des boutons Google +1 après le chargement d’une page grâce à une fonction générique.

Implémentation du bouton +1 Google en asynchrone avec la méthode Javascript createElement

Solaris 10 ZFS - Résoudre les problèmes de quota dépassé (disc quota exceeded)

sunUne zone de stockage zfs est saturée à 100% sous Solaris 10 et la commande rm pour supprimer un fichier volumineux est refusée avec le message Disc quota exceeded. La méthode Write On Copy de ZFS est la cause de ce symptôme. On peut contourner très rapidement ce problème sans qu’il soit nécessaire de redimensionner les zones ZFS et les quotas.

Solaris 10 ZFS - Résoudre les problèmes de quota dépassé (disc quota exceeded)

Solaris - Retrouver rapidement les process accédant à un fichier avec fuser et ps

sunUn fichier qui grossit à vue d’œil et qui risque de saturer un volume. Vite, il faut retrouver le process qui l’alimente et dans la mesure du possible l’arrêter en fonction des contraintes (production…).
  • Combiner fuser et ps en une seule ligne de commandes afin de lister immédiatement tous les programmes qui accèdent à un répertoire ou à un fichier.
  • Tuer tous les programmes qui accèdent à un répertoire ou à un fichier en une seule passe grâce à l’option -k kill de la commande fuser.
Pour ces 2 astuces, un aide mémoire s’imposait.

Solaris - Retrouver rapidement les process accédant à un fichier avec fuser et ps

Sybase ASE - Impacts sur les performances des coupures de pages (Page splits), paramètre fillfactor

sybaseLes traitements sont catastrophiques le lendemain d’une réorganisation d’une table volumineuse avec un index unique clustered et en mode de verrouillage APL (All Pages Locking). sp_sysmon remonte des compteurs "Page Splits" anormalement élevés. Hélas, bien trop tard, on se rappelle du chapitre sur le phénomène des coupures de pages dans les tables APL avec un index clustered. Après un rappel théorique sur les modes de coupures de pages et la reproduction du cas, quelques paramètres sont ensuite testés pour anéantir ou au moins amoindrir la contention générée par les coupures de pages. Parmi les paramètres testés (fillfactor, dbcc tune ascinserts, user log cache size, taille des I/Os dans le journal, partitionnement, schéma de verrouillage), seul le taux de remplissage des pages gouverné par le paramètre fillfactor anéantit les coupures de pages avec en contrepartie une perte d’espace.

Sybase ASE - Impacts sur les performances des coupures de pages (Page splits), paramètre fillfactor

Ajout dynamique de code Javascript, différences entre les navigateurs (canHaveChildren)

htmlL’ajout dynamique de code javascript est réalisé tout naturellement avec les méthodes createElement, createTextNode et appendChild. Une fois de plus malheureusement Internet Explorer se comporte différemment. Dans le contexte de l’implémentation du bouton +1 de Google, une syntaxe multi navigateurs est développée pour ajouter dynamiquement du code Javascript en testant l’existence de la propriété canHaveChildren spécifique à Microsoft Internet Explorer.

Ajout dynamique de code Javascript, différences entre les navigateurs (canHaveChildren)

Implémentation du nouveau bouton +1 de Google

googleGoogle a lancé le 1er juin 2011 le bouton +1. Ce nouveau bouton +1 (prononcer plus one en anglais) permet aux internautes de recommander des pages dans les résultats de recherche Google, un peu comme le bouton "J’aime" de Facebook. Le bouton +1 influencera fortement le référencement, plus particulièrement sur le positionnement et la mise en valeur des pages dans les moteurs de recherche. En attendant la mise à disposition des données analytiques prévue dans les prochains mois, une présentation de la mise en place technique du bouton +1 de Google. Le surcoût du bouton +1 sur les performances est également abordé ainsi que les écueils rencontrés lors des essais d’ajout dynamique du bouton +1 avec la méthode createElement.

Implémentation du nouveau bouton +1 de Google

Mise à jour manuelle vers Google Android 2.3.4 - Nexus S

google-androidGoogle a mis à disposition la version 2.3.4 d’Android fin avril 2011, le système d’exploitation pour SmartPhone. Cette version est intialement déployée sur les modèles HTC / Google Nexus One et Samsung / Google Nexus S. Le chat audio et la vidéo dans GoogleTalk sont les nouveautés majeures de la version 2.3.4. La vidéo avec GTalk n’est disponible que pour le modèle Nexus S, le modèle Nexus One ne dispose pas en effet de caméra frontale. Une procédure de mise à jour de la version 2.3.3 vers la version 2.3.4 de Google Android pour un modèle Samsung Nexus S existe sans téléchargement direct depuis le téléphone via la 3G ou le WiFi.

Mise à jour manuelle vers Google Android 2.3.4 - Nexus S

GIMP - Création de vignettes homogènes grâce aux calques

gimpL’homogénéité et la cohérence ergonomiques dans un site sont essentielles. SQLPAC associe des vignettes aux parutions d’articles ou de nouvelles, vignettes créées avec l’outil de manipulation d'images GIMP 2.6. Un tutoriel pour les néophytes du graphisme avec GIMP qui souhaitent homogénéiser ergonomiquement leurs sites avec des vignettes. La création du calque d’arrière plan des vignettes est l’étape clé. Le plus gros du travail est fait lorsque ce calque est défini, adopté et réalisé. logo google android

GIMP - Création de vignettes homogènes grâce aux calques

Incorporer un forum PHPBB 3 dans l’architecture et le design d’un site

phpbbLe site SQLPAC (SQL Pour Administrateurs et Concepteurs) expérimente et intègre depuis le début du mois de mai 2011 des forums pour francophones autour de son cœur de métier, à savoir les moteurs de bases de données transactionnels et décisionnels. L’incorporation des forums PHPBB au sein de son propre site ainsi que l’encapsulation de quelques fonctionnalités comme Google Analytics sont loin d'être aussi complexes qu’il n’y paraît car au final il suffit de modifier deux ou trois fichiers modèles (overall_header.html, overall_footer.html, stylesheet.css).

Incorporer un forum PHPBB 3 dans l’architecture et le design d’un site

Migration de Microsoft SQL Server 2008 vers SQL Server 2008 R2 en mode silencieux

mssqlIndustrialiser 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.

Migration de Microsoft SQL Server 2008 vers SQL Server 2008 R2 en mode silencieux

Installation et utilisation à distance en ligne de commandes du conseiller de migration Microsoft SQL 2008 R2 (upgrade advisor)

mssqlLes 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.

Installation et utilisation à distance en ligne de commandes du conseiller de migration Microsoft SQL 2008 R2 (upgrade advisor)

SQLPAC ouvre des forums de discussions

sqlpac-forumsPour offrir plus d’interactivité, un espace de forums de discussions ouvre ses portes sur SQLPAC. Ces forums de discussions sont construits avec la solution mondialement connue phpBB version 3 (phpBB Creating Communities). L’inscription est rapide et simple. Forums de SQLPAC Pour l’heure actuelle, 3 catégories sont proposées dans le sommaire des forums de discussions :
  • Espace interactif.
  • Bases de données | SGBD.
  • Conception, langages et outils.
La catégorie "Bases de données | SGBD" propose des groupes de discussions francophones autour des moteurs Microsoft SQL Server, MySQL, Oracle, PostgreSQL, Sybase Adaptive Server Enterprise, Sybase Replication Server et Sybase IQ. Le forum "Espace interactif" est réservé aux remarques, suggestions et questions ainsi qu’aux propositions d'articles et de sujets pour SQLPAC. La catérogie "Conception, langages et outils" propose dans un premier temps uniquement un forum sur les technologies de Google. PHP, Python, Ruby… viendront très certainement se greffer à cette catégorie dans le futur.

Installation et utilisation à distance en ligne de commandes du conseiller de migration Microsoft SQL 2008 R2 (upgrade advisor)

SQLPAC sur Twitter

twitterLa prochaine version de Sybase Adaptive Server Enterprise sera la version 15.7. Les versions Sybase ASE 15.5 ESD#4 et Replication Server 15.6 ESD#1 à venir supporteront la réplication des bases IMDB (In Memory DataBase). D’où proviennent ces informations ? Des tweets de Rob Verschoor ! https://twitter.com/#!/rob_verschoor En complément du fil d’actualités et pour les inconditionnels des tweets rapides de moins de 140 caractères, l’actualité de SQLPAC est désormais également disponible sur le réseau social Twitter : https://twitter.com/#!/sqlpac Les tweets de SQLPAC sont accessibles aussi sur tous les supports mobiles (iPhone, iPad, BlackBerry, Androïd...) : https://mobile.twitter.com/sqlpac

Installation et utilisation à distance en ligne de commandes du conseiller de migration Microsoft SQL 2008 R2 (upgrade advisor)

Sybase IQ, procédures stockées de contrôle de structure (index, cardinalités...). sp_dba_helpcolumn

sybaseUne procédure stockée pour auditer rapidement la nature du contenu d’une colonne : sp_dba_helpcolumn. Elle intègre également une fonction de génération de commandes pour corriger des structures fragmentées, changer des types d’index FP (FP1, FP2, FP3, Flat…) ou encore de créer des index LF. La procédure sp_dba_helpcolumn est principalement inspirée de la procédure système sp_iqcardinality_analysis, procédure qui retourne des informations et conseils relatifs à la cardinalité ou au typage d’une colonne. Toutefois, sp_dba_helpcolumn va plus loin en reprenant également quelques informations très pertinentes retournées par les procédures systèmes sp_iqrowdensity, sp_iqcolumn, sp_iqindex_alt et sp_iqindexinfo. L’idée n’a pas été de refaire sp_iqcardinality_analysis, mais de la compléter quelque peu en y ajoutant des informations comme le typage, l’indication d’unicité ou encore la possibilité de travailler sur un jeu restreint d'enregistrements.

Sybase IQ, procédures stockées de contrôle de structure (index, cardinalités…). sp_dba_helpcolumn

Miroirs de bases SQL Server 2008 R2 avec témoin, guide pratique

mssqlLe "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)

Miroirs de bases SQL Server 2008 R2 avec témoin, guide pratique

Ajout et référencement du pilote ODBC ASE 12 sur un poste Windows avec un client Sybase ASE 15

sybaseDepuis la version 15 de Sybase Adaptive Server Enterprise, Sybase a repris en main le développement des pilotes ODBC et OLE DB et ne dépend plus de l’éditeur tiers MERANT. Afin de minimiser les impacts sur le(s) connexion(s) ODBC ASE 12 existante(s), la procédure pour faire fonctionner sur un poste de travail Windows le composant ODBC ASE 12 au sein d’un client Sybase ASE 15 se résume à quelques étapes :
  • Installation du répertoire ODBC-3_5 dans le client ASE 15.
  • Référencement du pilote Sybase ASE ODBC Driver dans la base de registres.
  • Copie des librairies Open Client 15 libsyb*.dll sous leur ancien nom Open Client 12 lib*.dll dans le répertoire %SYBASE%\%SYBASE_OCS%dll avec le script copylibs.bat fourni par Sybase.

Ajout et référencement du pilote ODBC ASE 12 sur un poste Windows avec un client Sybase ASE 15

Fin de support d’Internet Explorer 6, Google Analytics un formidable outil d’aide à la décision

sqlpacGoogle a annoncé la fin de support pour Internet Explorer 6 en mars 2010 (Google to send Internet Explorer 6 users packing come March). Un autre géant du Web, YouTube, a annoncé également le même mois la fin de support pour Internet Explorer 6 en mars 2010 (YouTube to kill IE6 support on March 13). Grâce aux données Google Analytics (Mesurer son audience Web et exploiter efficacement Google Analytics - Caractéristiques techniques des visiteurs), une étude a été menée sur l’évolution de la proportion des visites sur le site sqlpac.com avec Internet Explorer 6 par rapport à Internet Explorer 7, 8 et 9. Evolution IE 6 par rapport IE 7,8 et 9 En mars 2011, Internet Explorer 6 ne représente plus que 25% des visites environ et la chute de cette version est bien amorcée depuis avril 2010. Internet Explorer 6 est très coûteux en temps de développement et particulièrement complexe à supporter (transparence des images au format *.png, compatibilités avec les normes Javascript, CSS 2 et 2.1...). C’est aussi avec soulagement que le support de la version 6 d’Internet Explorer sera progressivement retiré dans les prochains mois sur sqlpac.com afin de faciliter les migrations vers HTML 5 et encourager les mises à jour des navigateurs clients. Un bandeau encourageant l’utilisation des navigateurs autonomes Chrome, Firefox, Opera ou Safari est affiché désormais dans sqlpac.com pour les internautes utilisant Internet Explorer 6. Evolution IE 6 par rapport IE 7,8 et 9

Ajout et référencement du pilote ODBC ASE 12 sur un poste Windows avec un client Sybase ASE 15

Sybase ASE - Procédures stockées de monitoring exploitant les tables MDA

sybase7 procédures stockées de surveillance d’instances Sybase Adaptive Server Enterprise à télécharger, procédures qui exploitent les tables MDA, nouveauté apparue avec Sybase 12.5.0.3. Les tables MDA supplanteront à terme les outils de monitoring actuels comme Monitor Server et Historical Server dont la fin de support est déjà annoncée pour le 31/12/2012, information à garder à l’esprit.
  • sp_dba_whodoes : monitoring des processus actifs.
  • sp_dba_whatdoes : monitoring SQL des processus.
  • sp_dba_cache : monitoring de l’efficacité des caches.
  • sp_dba_getobj : monitoring des objets (tables et indexes) en cache.
  • sp_dba_getwe : monitoring des événements d'attente.
  • sp_dba_io : monitoring des entrées / sorties sur les devices (I/Os).
  • sp_dba_spid : monitoring physique, logique et transactionnel d’un processus.
Les procédures sont créées dans la base sybsystemprocs et pour certaines de ces procédures stockées, une historisation dans tempdb est gérée, historique qui est purgé au delà d’une certaine limite. La persistance des tables créées dans tempdb est gérée en créant la structure dans la base système model. Les tables MDA s’enrichissent au fil des versions et patches (nouvelles colonnes), c’est pourquoi plusieurs sources dépendant de la version du serveur ASE sont proposées en téléchargement pour la plupart des procédures stockées.

Sybase ASE - Procédures stockées de monitoring exploitant les tables MDA

Microsoft SQL Server - Export et import de données avec l’utilitaire bcp, guide pratique

mssqlL’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.

Microsoft SQL Server - Export et import de données avec l’utilitaire bcp, guide pratique

Sybase ASE - Export et import de données avec l’utilitaire bcp sous Windows, guide pratique

sybaseL’utilitaire bcp dans le client Sybase Adaptive Server Enterprise permet d’exporter et importer des données en mode natif ou en mode caractères. Les points à aborder pour les néophytes :
  • l’export des données d’une table, d’une vue ou d’un jeu de résultats retourné par une procédure stockée dans un fichier avec bcp out.
  • l’import de données dans une table depuis un fichier avec bcp in avec une attention particulière sur la gestion des erreurs, des colonnes identity et du journal des transactions lors des imports.
  • les performances avec l’utilitaire bcp (fast bcp / slow bcp).

Sybase ASE - Export et import de données avec l’utilitaire bcp sous Windows, guide pratique

Installation silencieuse d’un cluster SQL Server 2008 R2 en mode failover sur Windows 2003 Server

mssqlUn 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.

Installation silencieuse d’un cluster SQL Server 2008 R2 en mode failover sur Windows 2003 Server

Intégration du suivi des recherches sur site dans les statistiques Google Analytics

googleUn précédent article paru au mois de janvier 2011 présentait la création, l’adaptation et l’intégration du moteur de recherche personnalisé Google au sein de SQLPAC : Création et adaptation des moteurs de recherche personnalisés Google (CSE - Custom Search Engine). Analyser les recherches effectuées par les internautes sur le moteur de recherches intégré à son site est très important car cette analyse permet d’appréhender précisément ce que recherchent les internautes lors de leur navigation sur le site, repérer les tendances et répondre aux attentes. 2 méthodes alternatives pour extraire ces informations depuis Google Analytics (hors APIs d’export de données) : l’intégration du suivi de la recherche sur site et l’utilisation de segments personnalisés dans Google Analytics. La méthode de l’intégration de la recherche sur site étant de loin la plus simple et la plus efficace.

Intégration du suivi des recherches sur site dans les statistiques Google Analytics

Oracle 9i et les méthodes d’allocations de blocs : listes des blocs libres (freelists) vs ASSM (Automatic Storage Space Management)

oracleOracle 9i introduit 2 nouvelles méthodes d’allocation des blocs, mais quelle méthode d’allocation choisir ?
  • méthode de la liste des blocs libres (freelists)
  • méthode ASSM (Automatic Storage Space Management)
Pour faire son choix, il faut bien comprendre les mécanismes, avantages et inconvénients de ces 2 méthodes.

Oracle 9i et les méthodes d’allocations de blocs : listes des blocs libres (freelists) vs ASSM (Automatic Storage Space Management)

Glossaire des acronymes, sigles et termes

sqlpacQui ne s’est pas retrouvé dans une réunion durant laquelle un acronyme ou un sigle est utilisé à tout de bout de champ sans oser demander la signification ou la traduction ? Le monde de l’informatique est inondé de termes, d’acronymes et de sigles en langue anglaise ou française (OLAP, OLTP, DSS, LDAP, SSO...), c’est pourquoi SQLPAC propose désormais un glossaire regroupant la signification des termes et acronymes utilisés dans les articles de SQLPAC. Pour accéder au glossaire, repérer dans les pages du site l’icône ci-dessous : Glossaire

Oracle 9i et les méthodes d’allocations de blocs : listes des blocs libres (freelists) vs ASSM (Automatic Storage Space Management)

Microsoft SQL Server 2000 et l’erreur 3628 floating point exception

mssqlDes 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
Cela peut faire sourire en 2011, mais le parc SQL Server 2000 est difficile à migrer (DTS…) et encore très très présent mondialement, la fin de support de cette version a même été repoussée à décembre 2013, donc encore beaucoup de support sur cette version…

Microsoft SQL Server 2000 et l’erreur 3628 floating point exception

Création et adaptation des moteurs de recherche personnalisés Google (CSE - Custom Search Engine)

googleL’indexation des pages d’un site dans l’index global de Google peut prendre du temps, il est en effet impossible de gouverner l’arrivée de GoogleBot sur les nouveaux articles déclarés dans un sitemap par exemple. Aussi Google propose les moteurs de recherche personnalisés ou les moteurs CSE (Custom Search Engine), moteurs qu’il est possible d’encapsuler dans son propre site Web et pour lesquels l’indexation des pages peut être réalisée à la demande. Des adaptations sont nécessaires pour assurer un suivi efficace des mots clés saisis par les internautes dans le moteur personnalisé, mais aussi si des options complémentaires de recherche sont souhaitées.

Création et adaptation des moteurs de recherche personnalisés Google (CSE - Custom Search Engine)