Accueil
Rechercher:
sur developpez.com sur les forums
Forums | Tutoriels | F.A.Q's | Participez | Hébergement | Contacts
Accueil Conception Java DotNET Visual Basic  C  C++ Delphi MS-Office SQL & SGBD Oracle  4D  Business Intelligence
Club Emploi Blogs   TV   Dév. Web PHP XML Python Autres 2D-3D-Jeux Sécurité Windows Linux PC Mac
ACCUEIL SQL-SERVER FORUM SQL-SERVER F.A.Q  SQL-SERVER TUTORIELS SQL-SERVER SOURCES SQL-SERVER LIVRES SQL-SERVER

Renommer une instance Micrososft SQL Server 2005

Débutant

Date de publication : 26.5.2007 , Date de mise à jour : 30.5.2007

Par fadace (Fabien Celaia)
 

Comment renommer une instance Microsoft SQL Server 2005



I. Introduction

Commençons par le début ! Est-il possible de renommer une instance SQL Server sans passer par une désinstallation / réinstallation ? Comme souvent, la réponse technique ("Oui") et la réponse officielle (soit celle de l'éditeur : "Non") s'opposent. La procédure suivante tente à le prouver.

L'installation par défaut d'une instance Microsoft SQL Server se fait de manière non nommées. En fait, il s'agit plutôt d'un nommage par défaut : le service se nommera SQLSERVER et l'instance sera accessible via le nom de la machine hôte.

Ce nommage par défaut est aussi ce qui se passe lors de l'installation d'une instance MSDE.

Soulignons donc bien que cette procédure n'est en aucun cas le feu vert donné à un renommage, mais la preuve technique que le renommage est possible... ce qui nous permettra de mieux comprendre comment se comporte SQL Server et ses services.


II. Procédure

Nous allons commencer par le plus facile, c'est à dire modifier la seule trace du nom de l'instance dans Microsoft SQL Server.

Détecter le nom actuel de l'instance. En cas de retour de plusieurs lignes (notamment si vous avez déjà configuré des serveurs distants), choisissez la ligne qui est en local

select @@servername
Supprimez-le ensuite et recréez-le
exec sp_dropserver AncienneInstance
exec sp_addserver 'MaMachine\NouvelleInstance', local 
Arrêtez l'instance (et ses éventuelles dépendances) car nous allons devoir attaquer maintenant la base de registre
shutdown 
Renommez les clés de registres en créant le script suivant MonSQL.REG puis en l'exécutant

------------------------------------------------------------------------------------------- 
Windows Registry Editor Version 5.00 

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSSQL$NouvelleInstance] 
"Type"=dword:00000010 
"Start"=dword:00000002 
"ErrorControl"=dword:00000001 
"ImagePath"=hex(2):22,00,43,00,3a,00,5c,00,50,00,72,00,6f,00,67,00,72,00,61,00,\ 
  6d,00,20,00,46,00,69,00,6c,00,65,00,73,00,5c,00,4d,00,69,00,63,00,72,00,6f,\ 
  00,73,00,6f,00,66,00,74,00,20,00,53,00,51,00,4c,00,20,00,53,00,65,00,72,00,\ 
  76,00,65,00,72,00,5c,00,4d,00,53,00,53,00,51,00,4c,00,2e,00,31,00,5c,00,4d,\ 
  00,53,00,53,00,51,00,4c,00,5c,00,42,00,69,00,6e,00,6e,00,5c,00,73,00,71,00,\ 
  6c,00,73,00,65,00,72,00,76,00,72,00,2e,00,65,00,78,00,65,00,22,00,20,00,2d,\ 
  00,73,00,42,00,45,00,53,00,32,00,50,00,00,00 
"DisplayName"="SQL Server (NouvelleInstance)" 
"ObjectName"="LocalSystem" 
"Description"="Provides storage, processing and controlled access of data and rapid transaction processing." 

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSSQL$NouvelleInstance\Linkage] 
"Export"=hex(7):42,00,45,00,53,00,32,00,50,00,00,00,00,00 

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSSQL$NouvelleInstance\Performance] 
"Library"="sqlctr90..dll" 
"Open"="OpenSQLPerformanceData1" 
"Collect"="CollectSQLPerformanceData1" 
"Close"="CloseSQLPerformanceData1" 
"PerfIniFile"="perf-NouvelleInstancesqlctr.ini" 
"WbemAdapFileSignature"=hex:35,09,79,97,c3,49,fc,89,5f,7b,37,66,3d,e5,da,de 
"WbemAdapFileTime"=hex:00,87,23,bb,61,d0,c5,01 
"WbemAdapFileSize"=dword:000102d8 
"WbemAdapStatus"=dword:00000000 
"Last Counter"=dword:0000195e 
"Last Help"=dword:0000195f 
"First Counter"=dword:000016ea 
"First Help"=dword:000016eb 
"Library Validation Code"=hex:00,b8,a0,b9,c3,4c,c7,01,70,09,01,00,00,00,00,00 

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSSQL$NouvelleInstance\Security] 
"Security"=hex:01,00,14,80,b8,00,00,00,c4,00,00,00,14,00,00,00,30,00,00,00,02,\ 
  00,1c,00,01,00,00,00,02,80,14,00,ff,01,0f,00,01,01,00,00,00,00,00,01,00,00,\ 
  00,00,02,00,88,00,06,00,00,00,00,00,14,00,fd,01,02,00,01,01,00,00,00,00,00,\ 
  05,12,00,00,00,00,00,18,00,ff,01,0f,00,01,02,00,00,00,00,00,05,20,00,00,00,\ 
  20,02,00,00,00,00,14,00,8d,01,02,00,01,01,00,00,00,00,00,05,04,00,00,00,00,\ 
  00,14,00,8d,01,02,00,01,01,00,00,00,00,00,05,06,00,00,00,00,00,14,00,00,01,\ 
  00,00,01,01,00,00,00,00,00,05,0b,00,00,00,00,00,18,00,fd,01,02,00,01,02,00,\ 
  00,00,00,00,05,20,00,00,00,23,02,00,00,01,01,00,00,00,00,00,05,12,00,00,00,\ 
  01,01,00,00,00,00,00,05,12,00,00,00 

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSSQL$NouvelleInstance\Enum] 
"0"="Root\\LEGACY_MSSQL$NouvelleInstance\\0000" 
"Count"=dword:00000001 
"NextInstance"=dword:00000001 
Supprimez la clé HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSSQLSERVER

Modifiez, dans HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server, la clé InstalledInstances de MSSQLSERVER à NouvelleInstance

Créez la nouvelle clé de registre via l'exécution du fichier suivant
Windows Registry Editor Version 5.00 

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\NouvelleInstance] 

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\NouvelleInstance\MSSQLServer] 

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\NouvelleInstance\MSSQLServer\CurrentVersion] 
"CurrentVersion"="9..00.3042.00" 

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\NouvelleInstance\MSSQLServer\SuperSocketNetLib] 
"ProtocolList"=hex(7):74,00,63,00,70,00,00,00,6e,00,70,00,00,00,00,00 

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\NouvelleInstance\MSSQLServer\SuperSocketNetLib\Np] 
"PipeName"="\\\\.\\pipe\\MSSQL$NouvelleInstance\\sql\\query" 

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\NouvelleInstance\MSSQLServer\SuperSocketNetLib\Tcp] 
"TcpPort"="1446" 

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\NouvelleInstance\Setup] 
"SQLPath"="C:\\Program Files\\Microsoft SQL Server\\MSSQL.1\\MSSQL" 
Rebaptisez HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL\MSSQLSERVER en ...\NouvelleInstance

Rebaptisez HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.1\(Default)\MSSQLSERVER en ...\NouvelleInstance

Rebaptisez HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSFTESQLInstMap\1\FriendlyName\MSSQLSERVER en ...\NouvelleInstance


III. Finale

Il ne nous reste plus qu'à redémarrer l'instance

  • soit via la commande NET START MSSQL$NouvelleInstance
  • soit via les outils graphiques
  • soit encore via les services Windows.
Je ne traite pas ici le renommage des services associés de l'agent, du reporting server... Leur traitement est quasi similaire et... il est souvent bien plus aisé d'opérer une désinstallation/réinstallation de ces modules pour s'éviter bien des soucis...



Valid XHTML 1.1!Valid CSS!

Copyright © 2007 fadace. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Cette page est déposée à la SACD.

Responsable bénévole de la rubrique SQL-Server : Fabien Celaia - Contacter par EMail :
Vos questions techniques : forum d'entraide SQL-Server - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Copyright © 2000-2008 www.developpez.com - Legal informations.