SQL Server 2008 Express Edition SP1 slipstreamen und installieren

2009-08-24 | Toni Pohl

Setup, next, next, finish – Diese Art von Installation ist nicht (mehr) - ich nenne das ganz gern klicki-drucki-Installation. Auch wenn angeblich immer alles “einfacher” wird, ohne Nachlesen und Forschen steht man bald an und eine saubere Installation war mal…

Mein Task war einen Webserver mit dem neuen Windows Server 2008 R2 zu installieren und darin die SQL Server 2008 Express Edition als “kleine“ Datenbank für ein paar Webs einzurichten.

Der Windows Server war rasch eingerichtet, die Role Webserver hinzu, etwas Security und Tools und Updates, dann kam SQL Server 2008 Express Edition.

Also mal die aktuelle Version x86 und x64 runterladen (* siehe auch unten):

Nach dem Download landen die SQL-Setup-Files auf der Festplatte, bei mir in C:\Install.

sql2008expr_1

Erster Stolperstein: Natürlich muss vor dem SQL Server 2008 das .net Framework 3.5 SP1 installiert werden (eigentlich reicht .net 2.0, aber das gibts nicht als eigenen Download, ergo 3.5 und danach dessen SP1).

In Windows Server 2008 R2 also die Role in “Anwendungsserver” hinzufügen, passt.

sql2008expr_3

Tipp: KB955725 - List of known issues when you install SQL Server on Windows 7 or on Windows Server 2008 R2

Bei anderen Betriebssystemen als Windows 7 und Windows Server 2008 R2: How to fix your SQL Server 2008 Setup before you run setup... ansehen, um alle Voraussetzungen vor der SQL Installation vorzubereiten (Microsoft .NET Framework 3.5 Service Pack 1 dotnetfx35setup.exe, Windows Installer 4.5, etc…).

So, die Voraussetzungen sollten passen, jetzt SQL-Setup ausführen und…:

sql2008expr_warning

Die Fehlermeldung ist “nur” eine Warnung und kann eigentlich ignoriert werden – siehe Installing SQL Server Express on Windows 7 Release Candidate. Aber schön ist das nicht…

Eine G´schicht wär, wenn man die SQL-Installation gleich mit dem nötigen Service Pack versehen könnte = slipstream installation – damit ist dieses Problem umgangen und gleich weniger Arbeit, vor allem, wenn ich das öfters brauche…

Netterweise habe ich im msdnblog von Peter Saddow (ein Microsoft-PM in Redmond) eine Anleitung zum slipstreamen von SQL Server 2008 gefunden:

Creating a merged (slipstreamed) drop containing SQL Server 2008 RTM + Service Pack 1 – Dieser Artikel ist eigentlich ident mit KB955392 - How to update or slipstream an installation of SQL Server 2008

Ich habe diese Anleitung verwendet und auf meine Bedürfnisse angepasst:
Ich benötige eine SQL Server 2008 Express Edition with Advanced Services für intel-Basis. Hier nun meine step-by-step Anleitung dafür.

Achja, derzeit ist von Microsoft nicht geplant, eine slipstreamed Version von SQL Server 2008 herauszugeben (slipstream-FAQs): “Question #6: Are there any plans to make the slipstreamed or refreshed versions of SQL Server 2008?
Answer: Not at this time for SQL Server 2008. We are considering refreshing the media in a future release.”

Also selbst Hand anlegen. Nun werden die Pakete entpackt: SQL Server nach C:\SQL und das SP1 nach C:\SQLSP1 - kurze Namen ersparen Tipperei.

C:\Install>SQLEXPR_x86_ENU.exe /x:C:\SQLSP1
C:\Install>SQLEXPR_x64_ENU.exe /x:C:\SQLSP1

Und je nach Version der Express-Edition (SQLEXPRADV_x64_ENU , SQLEXPRWT_x64_ENU, etc.):

C:\Install>SQLEXPRADV_x86_ENU /x:C:\SQL
C:\Install>SQLEXPRADV_x64_ENU /x:C:\SQL

sql2008expr_2

Nach dem Extrahieren (nicht vergessen, jede Fertig-Meldung zu bestätigen) liegen die Setup-Pakete entpackt in C:\SQL und C:\SQLSP1 vor. Nun werden ein paar Files in C:\SQL ersetzt:

C:\>robocopy C:\SQLSP1\pcusource C:\SQL Setup.exe
C:\>robocopy C:\SQLSP1\pcusource C:\SQL Setup.rll

Nicht wundern, die Files sind sehr klein und das Kopieren geht blitzschnell. Jetzt werden alle Files im Verzeichnis x64 außer Microsoft.SQL.Chainer.PackageData.dll kopiert:

C:\>robocopy C:\SQLSP1\pcusource\x86 C:\SQL\x86 /XF Microsoft.SQL.Chainer.PackageData.dll
C:\>robocopy C:\SQLSP1\pcusource\x64 C:\SQL\x64 /XF Microsoft.SQL.Chainer.PackageData.dll

Das geht auch rasch, bei mir wurden pro Copy 72 Files durch neuere Files ersetzt. Nun Suche in C:\SQL\x64 nach defaultsetup.ini und mit dem Editor öffnen (“This file will tell the setup program where to locate the SP1 source media that you extracted in step 1”).

Wenn C:\SQL\x64\defaultsetup.ini nicht vorhanden ist, dann entweder selbst tippen, oder einfacher aus C:\SQLSP1\x64 nach C:\SQL\x64 kopieren und dann wie folgt anpassen:

sql2008expr_4b

Die Anleitung meint, dass hier der absolute Pfad zur setup.exe eingetragen sein muss, wenn jedoch das Setup aus dem aktuellen Verzeichnis aufgerufen wird (was üblicherweise wohl so passiert), dann kanns so bleiben. Also Pfad in der .ini anpassen: “.” (in meinem Fall funktioniert absolut auch “C:\SQL”).

;SQLSERVER2008 Configuration File
[SQLSERVER2008]
PCUSOURCE="."

“Question #11:  Does PCUSource need to be an absolute path?
Answer: No, it can be a relative path, such as ".\PCU". However, when you launch setup.exe your current path needs to point to the setup.exe.” (slipstream-FAQs)

Wenn der Pfad in C:\SQL\x64\defaultsetup.ini nicht korrekt ist, folgt übrigens dieser Fehler:

sql2008expr_5

So, das wars.

* Nun ein kleiner Exkurs zum Thema x86 und x64:

Zuerst habe ich nur die x64 Version runtergeladen und slipstreamed. Das hat anfangs funktioniert, jedoch kam nach den erfüllten Voraussetzungen der Fehler "Object reference not set to an instance of an object.". Nach Analyse und viel bingen ;-) habe ich in einem Logfile der Installation C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap\Log\<date_time>\Detail_ComponentUpdate.txt folgenden Hinweis gefunden:


2009-08-23 22:15:39 Slp: Sco: Unable to write hklm registry key SOFTWARE\Wow6432Node\Microsoft\MSSQLServer to file C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap\Log\20090823_221504\Registry_SOFTWARE_Wow6432Node_Microsoft_MSSQLServer.reg_, Win32 error 2
2009-08-23 22:15:40 Slp: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
2009-08-23 22:15:41 Slp: Watson bucket for exception based failure has been created

Hm, ein Win32 error bei einer x64 Installation… aber “Wow” – schon klar. Also alles zusätzlich mit x86 slipstreamen (wie auch in der Anleitung, IA64 hab ich mir dennoch gespart ;-) – und es funktioniert nun ohne Fehler. Das hat man wieder davon, wenn man glaubt, dass man schneller ist, wenn man sich etwas spart – nicht mit Microsoft x64!

Nun C:\SQL\setup.exe starten und SQL Server 2008 SP1 slipstreamed wie gewohnt installieren!

sql2008expr_6

Uff, geschafft. Und woran erkennt man, dass die SQL-Installation “slipstreamed” ist?

Mein “neues” Setup kommt ohne Kompatibilitätswarnung und es gibt ein paar Erkennungsmerkmale während des Setups (sieh u.a. auch hier).

sql2008expr_8

Die Server-Version SQL Server 2008 ist übrigens 10.00.1600.22, mit SP1 10.00.2531.

Happy setup with SQL Server 2008 slipstream!

Beitrag von Toni Pohl

Categories: Microsoft, General, Developer

Source: https://blog.atwork.at/post/SQL-Server-2008-Express-Edition-SP1-slipstreamen-und-installieren