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

Introduction

Les distributions de Microsoft SQL Server 2005 et 2008/2008 R2 proposent un conseiller de migration ou "Upgrade Advisor" qui permet de diagnostiquer au préalable les éventuels problèmes et incompatibilités pour une migration d'une instance Microsoft SQL Server depuis des versions antérieures.

Cet article présente l'installation et l'utilisation à distance en lignes de commande du conseiller de migration Microsoft SQL Server 2008 R2 en vue de préparer la migration d'une instance Microsoft SQL Server 2008 vers Microsoft SQL Server 2008 R2. Un autre exemple est donné pour préparer la migration d'une instance nommée SQL Server 2005 vers SQL Server 2008 R2. L'Upgrade Advisor MS SQL Server 2008 R2 est installé sur la machine SRVWINFR39.

Le conseiller de migration SQL 2008 R2 analyse la migration des composants moteur bases de données, Analysis Services, Reporting Services, Integration Services et Data Transformation Services (DTS) : ici seul le composant moteur base de données est évoqué.

L'Upgrade Advisor supporte l'analyse à distance de tous les composants supportés à l'exception de MS Reporting Services. L'Upgrade Advisor n'analyse pas les procédures stockées encryptées ainsi que les procédures développées par exemple en .Net (fonctionnalité CLR - Common Language RunTime).

Dans la suite de cet article, %SETUPDIR% correspond au répertoire ou au partage réseau contenant la distribution d'installation de Microsoft SQL Server 2008 R2.

Installation de l'Upgrade Advisor MS SQL Server 2008 R2

Pré-requis

Les pré-requis pour installer et utiliser l'Upgrade Advisor MS SQL Server 2008 R2 sont les suivants :

  • Windows XP SP2 minimum, Windows Vista, Windows Server 2003 SP2, Windows Server 2008 SP2, Windows 7 et Windows Server 2008 R2.
  • Windows Installer 4.5.
  • .NET Framework 2 minimum.

Installation

En fonction de l'architecture 32 bits/64bits du serveur sur lequel va être installé l'Upgrade Advisor MS SQL Server 2008 R2, l'installation est réalisée avec l'installateur sqlua.msi.

Plateforme Répertoire de sqlua.msi
Windows 32 bits %SETUPDIR%\1033_ENU_LP\x86\sqlua.msi
Windows 64 bits x64 %SETUPDIR%\1033_ENU_LP\x64\sqlua.msi
Windows 64 bits IA64 %SETUPDIR%\1033_ENU_LP\ia64\sqlua.msi

Ces packages sont également disponibles unitairement en ligne : Microsoft SQL Server 2008 Upgrade Advisor download

Sur une architecture Windows 64 bits x64, le programme Upgrade Advisor MS SQL Server 2008 R2 est installé par défaut dans le répertoire C:\Program Files (x86)\Microsoft SQL Server 2008 R2 Upgrade Advisor.

Utilisation de l'Upgrade Advisor MS SQL Server 2008 R2 en lignes de commandes

Le binaire UpgradeAdvisorWizardCmd.exe dans le répertoire d'installation de l'Upgrade Advisor MS SQL Server 2008 R2 permet de lancer le conseiller de migration en lignes de commandes et sur des moteurs SQL Server éventuellement distants, comme c'est le cas ici.

Syntaxe et usage

DOS> UpgradeAdvisorWizardCmd.exe -?

usage: UpgradeAdvisorWizardCmd.exe [ -? ]  |
        [ -ConfigFile filename | <server_info> ]
        [ -SqlUser login_id  -SqlPassword password ]
        [ -NsSqlUser login_id  -NsSqlPassword password ]
        [ -CSV ]

       where <server_info> is any combination of the following:
        -Server server_name
        -Instance instance_name
        -NsInstance NS_instance_name
        -AsInstance AS_instance_name
        -RsInstance RS_instance_name
  • Les options -SqlUser et -SqlPassword spécifient respectivement le compte SQL et son mot de passe pour se connecter à l'instance SQL Server distante à analyser. Ce compte doit avoir le rôle sysadmin. Par défaut, l'utilitaire UpgradeAdvisorWizardCmd tente de se connecter en authentification intégrée dans le serveur de destination.
  • L'option -CSV produit un fichier au format CSV (Comma Separated Value) en plus du rapport produit au format XML.
  • Les options -NsInstance, -AsInstance et -RsInstance indiquent respectivement les composants Notification Services, Analysis Services et Reporting Services. Ces options ne sont pas abordées dans cet article.

Voici quelques exemples d'usage.

1. Analyse de l'instance distante par défaut sur SRVWINFR24 en authentification intégrée

UpgradeAdvisorWizardCmd.exe -Server SRVWINFR24 -Instance MSSQLSERVER

2. Analyse de l'instance distante par défaut sur SRVWINFR24 avec le compte SQL sa :

UpgradeAdvisorWizardCmd.exe -Server SRVWINFR24 -Instance MSSQLSERVER -Sqluser sa -SqlPassword *******

3. Analyse de l'instance distante par défaut sur SRVWINFR24 en authentification intégrée en forçant la production du rapport supplémentaire au format CSV :

UpgradeAdvisorWizardCmd.exe -Server SRVWINFR24 -Instance MSSQLSERVER -CSV

4. Analyse de l'instance nommée distante MOSS_SYS sur FRDMOS306 en authentification intégrée :

UpgradeAdvisorWizardCmd.exe -Server FRDMOS306 -Instance MOSS_SYS

5. Analyse d'une instance distante en authentification intégrée avec un fichier de configuration :

UpgradeAdvisorWizardCmd.exe -ConfigFile config.xml

Les fichiers de configuration sont au format XML. Deux exemples sont donnés ci-dessous :

Instance par défaut | Serveur SRVWINFR24 Instance nommée MOSS_SYS | Serveur FRDMOS306
<Configuration>
 <Server>SRVWINFR24</Server>
 <Instance>MSSQLSERVER</Instance>
   <Components>
    <SQLServer>
      <Databases>
        <Database>*</Database>
       </Databases>
    </SQLServer>
  </Components>
</Configuration>
<Configuration>
 <Server>FRDMOS306</Server>
  <Instance>MOSS_SYS</Instance>
   <Components>
    <SQLServer>
      <Databases>
        <Database>*</Database>
       </Databases>
    </SQLServer>
  </Components>
</Configuration>

Grâce aux fichiers de configuration, l'utilitaire UpgradeAdvisorWizardCmd.exe s'avère donc très pratique pour industrialiser des analyses en masse de pré-migration vers SQL Server 2008 R2 pour un parc de serveurs.

DOS> UpgradeAdvisorWizardCmd.exe -ConfigFile serveur1.xml
DOS> UpgradeAdvisorWizardCmd.exe -ConfigFile serveur2.xml
DOS> UpgradeAdvisorWizardCmd.exe -ConfigFile serveur3.xml
 ...

Et voici un exemple de lancement :

UpgradeAdvisorWizardCmd.exe -Server FRDMOS306 -Instance MOSS_SYS -CSV
Analyze SQL Server
Checking for SQL Connectivity...
Starting analysis...
Analyzing 0%
Analyzing 0%
 ...
Analyzing 97%
Analyzing 99%
Creating report
Creating report
Analysis completed. Issues may be viewed using 
the SQL Server 2008 R2 Upgrade Advisor Report Viewer.

Rapports produits

Si l'Upgrade Advisor est lancé avec le compte <mon-domain>\<user>, les rapports du conseiller sont produits dans le répertoire C:\Documents and Settings\<user>\My Documents\SQL Server 2008 R2 Upgrade Advisor Reports. Ce répertoire est appelé %REPORTDIR% dans la suite.

La localisation des rapports diffère quelque peu entre une instance par défaut et une instance nommée :



Instance par défaut sur le serveur SERVER %REPORTDIR%\SERVER
Instance nommée INSTANCE sur le serveur SERVER %REPORTDIR%\SERVER\INSTANCE

Le rapport s'appelle DE.xml pour la version XML. Lorsque l'option -CSV est spécifiée lors de l'analyse avec UpgradeAdvisorWizardCmd, le rapport supplémentaire au format csv s'appelle DE.xml.csv.

Voici quelques exemples obtenus dans les rapports au format csv pour les 2 instances SRVWINFR24 et FRDMOS306\MOSS_SYS. À exploiter pour notre plus grand bonheur !

"Database Server","PreOrPostUpgrade","Remove references to deprecated system stored procedures",
   "Upgrade Advisor detected statements that reference undocumented system stored procedures 
   and extended stored procedures that are not available in SQL Server 2005 or later.
   Statements that reference these objects will fail. Do not use undocumented system objects 
   or APIs as the functionality might change or be removed without notification 
   in a future release.",
   "Source Type: database","Database: master",
   "Object Name: sp_configure ''awe enabled''",
   "Procedure type: Deprecated",
   "Procedure name: sp_configure ''awe enabled''",

 ...

"Database Server","PreOrPostMigration","Column aliases in ORDER BY clause cannot be prefixed
   by table alias",
   "In SQL Server 2005 or later, column aliases in the ORDER BY clause cannot be prefixed 
   by the table alias.","Type: Database",
   "Database name: WSS_Content_Facilities",
   "Object name: proc_GetTpPageMetaData","Object type: P ",