<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>SQL Server &#8211; Haikos Blog</title>
	<atom:link href="https://www.hertes.net/tag/sql-server/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.hertes.net</link>
	<description>Blog von Haiko Hertes zu allen Themen rund um Microsoft, Cloud und Datacenter</description>
	<lastBuildDate>Wed, 13 Oct 2021 08:32:43 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>Slides meiner Sessions der sqlDays 2021 in Erding</title>
		<link>https://www.hertes.net/2021/10/slides-meiner-sessions-der-sqldays-2021-in-erding/</link>
					<comments>https://www.hertes.net/2021/10/slides-meiner-sessions-der-sqldays-2021-in-erding/#respond</comments>
		
		<dc:creator><![CDATA[Haiko]]></dc:creator>
		<pubDate>Wed, 13 Oct 2021 08:32:41 +0000</pubDate>
				<category><![CDATA[Arbeit]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[Community]]></category>
		<category><![CDATA[Konferenzen]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Veranstaltungen]]></category>
		<category><![CDATA[Azure SQL]]></category>
		<category><![CDATA[Konferenz]]></category>
		<category><![CDATA[sqlDays]]></category>
		<category><![CDATA[Veranstaltung]]></category>
		<guid isPermaLink="false">https://www.hertes.net/?p=4124</guid>

					<description><![CDATA[In den letzten beiden Tagen war ich als Speaker auf den sqlDays in Erding. Die Sessions hatten die Titel &#8222;Whats new with Databases on Azure?&#8220; und &#8222;Hochverfügbarkeit für Azure SQL Server VMs&#8220; Die Slides dazu findet ihr jetzt auf meinem GitHub Repo: slides/sqlDays2021 at master · HaikoHertes/slides (github.com) Sobald die Aufzeichnungen verfügbar sind, verlinke ich diese dann hier.]]></description>
										<content:encoded><![CDATA[
<p>In den letzten beiden Tagen war ich als Speaker auf den sqlDays in Erding. Die Sessions hatten die Titel</p>



<p>&#8222;Whats new with Databases on Azure?&#8220; und</p>



<p>&#8222;Hochverfügbarkeit für Azure SQL Server VMs&#8220;</p>



<figure class="wp-block-image size-large"><a href="https://www.hertes.net/wp-content/uploads/2021/10/HaikoHertesSession2.png"><img fetchpriority="high" decoding="async" width="1024" height="535" src="https://www.hertes.net/wp-content/uploads/2021/10/HaikoHertesSession2-1024x535.png" alt="" class="wp-image-4125" srcset="https://www.hertes.net/wp-content/uploads/2021/10/HaikoHertesSession2-1024x535.png 1024w, https://www.hertes.net/wp-content/uploads/2021/10/HaikoHertesSession2-300x157.png 300w, https://www.hertes.net/wp-content/uploads/2021/10/HaikoHertesSession2-768x402.png 768w, https://www.hertes.net/wp-content/uploads/2021/10/HaikoHertesSession2.png 1417w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p>Die Slides dazu findet ihr jetzt auf meinem GitHub Repo:</p>



<p><a href="https://github.com/HaikoHertes/slides/tree/master/sqlDays2021">slides/sqlDays2021 at master · HaikoHertes/slides (github.com)</a></p>



<p>Sobald die Aufzeichnungen verfügbar sind, verlinke ich diese dann hier.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.hertes.net/2021/10/slides-meiner-sessions-der-sqldays-2021-in-erding/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Azure / PowerShell – Azure SQL Performance Empfehlungen per PowerShell abholen und verteilen</title>
		<link>https://www.hertes.net/2019/03/azure-powershell-azure-sql-performance-empfehlungen-per-powershell-abholen-und-verteilen/</link>
					<comments>https://www.hertes.net/2019/03/azure-powershell-azure-sql-performance-empfehlungen-per-powershell-abholen-und-verteilen/#respond</comments>
		
		<dc:creator><![CDATA[Haiko]]></dc:creator>
		<pubDate>Wed, 27 Mar 2019 18:10:15 +0000</pubDate>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Automatisierung]]></category>
		<category><![CDATA[Azure SQL]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Tuning]]></category>
		<guid isPermaLink="false">https://www.hertes.net/?p=3755</guid>

					<description><![CDATA[Azure und insbesondere Azure SQL ist klasse &#8211; es nimmt einem viele Dinge der täglichen Verwaltung ab, einiges davon sogar automatisch. Klar, das hat seinen Preis, immerhin ist Azure SQL nicht ganz billig, aber wenn man es schon bezahlt, dann kann man auch seine Fähigkeiten nutzen. Eine davon ist, automatisch anhand der Nutzung einer Datenbank Empfehlungen für die Leistungsoptimierung zu geben. Diese kann man sich im UI bzw. dem Azure Portal anschauen. Dazu öffnet man entweder links im Blade den Punkt &#8222;Recommondations&#8220; unterhalb von &#8222;Intelligent Performance&#8220; oder den Punkt &#8222;Performance&#8220; auf der Main-Page bei den Notifications: Dort sieht man dann&#8230;]]></description>
										<content:encoded><![CDATA[
<p>Azure und insbesondere Azure SQL ist klasse &#8211; es nimmt einem viele Dinge der täglichen Verwaltung ab, einiges davon sogar automatisch. Klar, das hat seinen Preis, immerhin ist Azure SQL nicht ganz billig, aber wenn man es schon bezahlt, dann kann man auch seine Fähigkeiten nutzen. Eine davon ist, automatisch anhand der Nutzung einer Datenbank Empfehlungen für die Leistungsoptimierung zu geben. Diese kann man sich im UI bzw. dem Azure Portal anschauen. Dazu öffnet man entweder links im Blade den Punkt &#8222;Recommondations&#8220; unterhalb von &#8222;Intelligent Performance&#8220; oder den Punkt &#8222;Performance&#8220; auf der Main-Page bei den Notifications:</p>



<figure class="wp-block-image"><img decoding="async" width="1024" height="501" src="https://www.hertes.net/wp-content/uploads/2019/03/image-1024x501.png" alt="" class="wp-image-3756" srcset="https://www.hertes.net/wp-content/uploads/2019/03/image-1024x501.png 1024w, https://www.hertes.net/wp-content/uploads/2019/03/image-300x147.png 300w, https://www.hertes.net/wp-content/uploads/2019/03/image-768x375.png 768w, https://www.hertes.net/wp-content/uploads/2019/03/image.png 1921w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>Dort sieht man dann einige Empfehlungen aufgeführt (vorausgesetzt, Azure hat etwas gefunden, was wiederum eine regelmäßige Nutzung der Datenbank voraussetzt):</p>



<figure class="wp-block-image"><img decoding="async" width="1024" height="482" src="https://www.hertes.net/wp-content/uploads/2019/03/image-2-1024x482.png" alt="" class="wp-image-3758" srcset="https://www.hertes.net/wp-content/uploads/2019/03/image-2-1024x482.png 1024w, https://www.hertes.net/wp-content/uploads/2019/03/image-2-300x141.png 300w, https://www.hertes.net/wp-content/uploads/2019/03/image-2-768x361.png 768w, https://www.hertes.net/wp-content/uploads/2019/03/image-2.png 1721w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>Diese Daten kann man sich auch automatisch abrufen und auf Wunsch dann z.B. an die Entwickler verteilen. Dazu bediene ich mich einfach der PowerShell:</p>



<pre lang="PowerShell" line="1">
$ErrorActionPreference = "Stop"
$SubscriptionId = "YOUR_SUBSCRIPTION_ID"

function Get-SQLServerRecommendations()
{
    # Define the resource types
    $resourceTypes = ("Microsoft.Sql/servers/databases")
    $advisors = ("CreateIndex", "DropIndex","DbParameterization","SchemaIssue");
    $results = @()

    # Loop through all subscriptions
   
    $rgs = Get-AzureRmResourceGroup

    # Loop through all resource groups
    foreach($rg in $rgs) {
        $rgname = $rg.ResourceGroupName;

        # Loop through all resource types
        foreach($resourceType in $resourceTypes) {
            $resources = Get-AzureRmResource -ResourceGroupName $rgname -ResourceType $resourceType

            # Loop through all databases
            # Extract resource groups, servers and databases
            foreach ($resource in $resources) {
                $resourceId = $resource.ResourceId
                if ($resourceId -match ".*RESOURCEGROUPS/(?<content>.*)/PROVIDERS.*") {
                    $ResourceGroupName = $matches['content']
                } else {
                    continue
                }
                if ($resourceId -match ".*SERVERS/(?<content>.*)/DATABASES.*") {
                    $ServerName = $matches['content']
                } else {
                    continue
                }
                if ($resourceId -match ".*/DATABASES/(?<content>.*)") {
                    $DatabaseName = $matches['content']
                } else {
                    continue
                }

                # Skip if master
                if ($DatabaseName -eq "master") {
                    continue
                }

                # Loop through all Automatic tuning recommendation types
                foreach ($advisor in ($advisors -notmatch "SchemaIssue")) {
                    $recs = Get-AzureRmSqlDatabaseRecommendedAction -ResourceGroupName $ResourceGroupName -ServerName $ServerName  -DatabaseName $DatabaseName -AdvisorName $advisor
                    foreach ($r in $recs) {
                        if ($r.State.CurrentValue -eq "Active") {
                            $object = New-Object -TypeName PSObject
                            $object | Add-Member -Name 'SubscriptionId' -MemberType Noteproperty -Value $subscriptionId
                            $object | Add-Member -Name 'ResourceGroupName' -MemberType Noteproperty -Value $r.ResourceGroupName
                            $object | Add-Member -Name 'ServerName' -MemberType Noteproperty -Value $r.ServerName
                            $object | Add-Member -Name 'DatabaseName' -MemberType Noteproperty -Value $r.DatabaseName
                            $object | Add-Member -Name 'Advisor' -MemberType Noteproperty -Value $advisor
                            $object | Add-Member -Name 'Script' -MemberType Noteproperty -Value $r.ImplementationDetails.Script
                            $results += $object
                        }
                    }
                }
            }
        }
    }
    Return $results
}

$AzurePasswordSecure = ConvertTo-SecureString "$($YOUR_AZURE_PASSWORD)" -AsPlainText -Force
$AzureCredentials = New-Object System.Management.Automation.PSCredential ("$YOUR_AZURE_USER", $AzurePasswordSecure)
Connect-AzureRmAccount -Credential $AzureCredentials | Out-Null
Select-AzureRmSubscription -Subscription $SubscriptionId | Out-Null

$Recommendations = Get-SQLServerRecommendations
$table = $Recommendations | Sort-Object DatabaseName,Advisor | Format-Table Databasename,Advisor,Script -AutoSize -Wrap
Write-Output $table

$head = "<style>
td {background-color:lightgrey;}
table {width:100%;}
th {font-size:14pt;background-color:lightblue;}
</style>
<title>SQL Server performance recommendations</title>"

[string]$html = $Recommendations | ConvertTo-Html -Property Databasename,Advisor,Script -Body "<h1>Azure SQL Server automatic tuning recommendations for $stage</h1>Auto-generated by PUT_SOMETHING_HERE<br><br>" -Head $head

Send-MailMessage -Body $html -SmtpServer YOUR.SMTPSERVER.COM -From sender@domain.com -To recipient@domain.com -Subject "MS SQL Recommendations - $(Get-Date -Format "yyyy-dd-MM HH:mm:ss")" -BodyAsHtml
</pre>



<p></p>



<p>Dieses Script wiederum kann man dann z.B. per Jenkins regelmäßig auslösen. Oder alternativ ein Azure Automation Runbook dafür anlegen&#8230; Viel Spaß beim Ausprobieren!</p>



<p>Die Mails sehen dann in etwa so aus:</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="802" height="896" src="https://www.hertes.net/wp-content/uploads/2019/03/image-3.png" alt="" class="wp-image-3760" srcset="https://www.hertes.net/wp-content/uploads/2019/03/image-3.png 802w, https://www.hertes.net/wp-content/uploads/2019/03/image-3-269x300.png 269w, https://www.hertes.net/wp-content/uploads/2019/03/image-3-768x858.png 768w" sizes="auto, (max-width: 802px) 100vw, 802px" /></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://www.hertes.net/2019/03/azure-powershell-azure-sql-performance-empfehlungen-per-powershell-abholen-und-verteilen/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>SCCM 2012 R2: Wie man den Configuration Manager installiert</title>
		<link>https://www.hertes.net/2015/07/sccm-2012-r2-wie-man-den-configuration-manager-installiert/</link>
					<comments>https://www.hertes.net/2015/07/sccm-2012-r2-wie-man-den-configuration-manager-installiert/#comments</comments>
		
		<dc:creator><![CDATA[Haiko]]></dc:creator>
		<pubDate>Fri, 10 Jul 2015 13:56:00 +0000</pubDate>
				<category><![CDATA[System Center]]></category>
		<category><![CDATA[System Center Configuration Manager]]></category>
		<category><![CDATA[Configuration Manager]]></category>
		<category><![CDATA[Installation]]></category>
		<category><![CDATA[SCCM]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Windows ADK]]></category>
		<guid isPermaLink="false">http://www.hertes.net/?p=2944</guid>

					<description><![CDATA[Ich habe euch ein Video erstellt, in dem ihr sehen könnt wie ihr: die Voraussetzungen für eine SCCM-Installation (inklusive SQL-Server) schafft und den System Center Configuration Manager 2012 R2 installiert. Das Ganze zeige ich am Beispiel einer Single-Server-Lösung für eine Stand-alone Primary Site, lässt sich aber auf viele andere Szenarien übertragen. &#160; Viel Spaß mit dem Video!]]></description>
										<content:encoded><![CDATA[<p>Ich habe euch ein Video erstellt, in dem ihr sehen könnt wie ihr:</p>
<ol>
<li>die Voraussetzungen für eine SCCM-Installation (inklusive SQL-Server) schafft und</li>
<li>den System Center Configuration Manager 2012 R2 installiert.</li>
</ol>
<p>Das Ganze zeige ich am Beispiel einer Single-Server-Lösung für eine Stand-alone Primary Site, lässt sich aber auf viele andere Szenarien übertragen.</p>
<div id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:def2e915-9cfc-4a72-9ebe-98c79649bb94" class="wlWriterEditableSmartContent" style="width: 448px; float: none; padding-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px auto; display: block; padding-right: 0px">
<div><object width="448" height="252"><param name="movie" value="http://www.youtube.com/v/d9_PK_cwD_I?hl=en&amp;hd=1"></param><embed src="http://www.youtube.com/v/d9_PK_cwD_I?hl=en&amp;hd=1" type="application/x-shockwave-flash" width="448" height="252"></embed></object></div>
</div>
<p>&#160;</p>
<p>Viel Spaß mit dem Video!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.hertes.net/2015/07/sccm-2012-r2-wie-man-den-configuration-manager-installiert/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>SCDPM meldet &#8220;Der Schutz kann nicht konfiguriert werden&#8221; wenn SQL Server gesichert werden soll</title>
		<link>https://www.hertes.net/2015/06/scdpm-meldet-der-schutz-kann-nicht-konfiguriert-werden-wenn-sql-server-gesichert-werden-soll/</link>
					<comments>https://www.hertes.net/2015/06/scdpm-meldet-der-schutz-kann-nicht-konfiguriert-werden-wenn-sql-server-gesichert-werden-soll/#respond</comments>
		
		<dc:creator><![CDATA[Haiko]]></dc:creator>
		<pubDate>Wed, 10 Jun 2015 19:21:22 +0000</pubDate>
				<category><![CDATA[System Center]]></category>
		<category><![CDATA[System Center Data Protection Manager]]></category>
		<category><![CDATA[Backup]]></category>
		<category><![CDATA[DPM]]></category>
		<category><![CDATA[SCDPM]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[SQL Server]]></category>
		<guid isPermaLink="false">http://www.hertes.net/?p=2862</guid>

					<description><![CDATA[Bei der Version 2012 R2 des System Center Data Protection Managers gibt es ein Problem mit der Sicherung von SQL Servern der Version 2012. Es wird nach Erstellen der Schutzgruppe bzw. beim Versuch der Erstellung eines Replikates die Meldung “Der Schutz kann nicht konfiguriert werden” ausgegeben (Im Englischen: “Unable to configure protection”). (Leider hab ich vom Fehler selbst in der Produktiv-Umgebung keinen Screenshot gemacht und ich wollte ihn nicht nochmal nachträglich provozieren – daher ein Shot aus einer englischen Umgebung) Dieses Problem ist scheinbar bei Microsoft bekannt und auch im TechNet dokumentiert: https://technet.microsoft.com/de-de/library/dn281948.aspx Die Lösung ist auch recht einfach, da&#8230;]]></description>
										<content:encoded><![CDATA[<p>Bei der Version 2012 R2 des System Center Data Protection Managers gibt es ein Problem mit der Sicherung von SQL Servern der Version 2012. Es wird nach Erstellen der Schutzgruppe bzw. beim Versuch der Erstellung eines Replikates die Meldung “<em>Der Schutz kann nicht konfiguriert werden</em>” ausgegeben (Im Englischen: “Unable to configure protection”). </p>
<p><a href="https://www.hertes.net/wp-content/uploads/2015/06/scdpm_sql_00.png"><img loading="lazy" decoding="async" title="scdpm_sql_00" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="scdpm_sql_00" src="https://www.hertes.net/wp-content/uploads/2015/06/scdpm_sql_00_thumb.png" width="644" height="366" /></a></p>
<p><em>(Leider hab ich vom Fehler selbst in der Produktiv-Umgebung keinen Screenshot gemacht und ich wollte ihn nicht nochmal nachträglich provozieren – daher ein Shot aus einer englischen Umgebung)</em></p>
<p>Dieses Problem ist scheinbar bei Microsoft bekannt und auch im TechNet dokumentiert:</p>
<p><a title="https://technet.microsoft.com/de-de/library/dn281948.aspx" href="https://technet.microsoft.com/de-de/library/dn281948.aspx">https://technet.microsoft.com/de-de/library/dn281948.aspx</a></p>
<p>Die Lösung ist auch recht einfach, da der Grund ebenso einfach ist: Der Schutz-Agent hat keine SA-Rechte auf der Datenbank, also müssen diese noch vergeben werden!</p>
<p>Dazu startet man auf dem zu sichernden Zielserver einfach das “SQL Server Management Studio”:</p>
<p><img loading="lazy" decoding="async" title="scdpm_sql_01" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="scdpm_sql_01" src="https://www.hertes.net/wp-content/uploads/2015/06/scdpm_sql_01_thumb.png" width="644" height="343" /></p>
<p>Dort kann man dann in dem Bereich “Sicherheit”, unter “Anmeldungen” das Konto von “NT-AUTORITÄT\SYSTEM” mit einem Rechtklick und der Auswahl von “Eigenschaften” öffnen. Hier muss dann die Rolle “sysadmin” zusätzlich mit ausgewählt werden.</p>
<p><a href="https://www.hertes.net/wp-content/uploads/2015/06/scdpm_sql_03.png"><img loading="lazy" decoding="async" title="scdpm_sql_03" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="scdpm_sql_03" src="https://www.hertes.net/wp-content/uploads/2015/06/scdpm_sql_03_thumb.png" width="528" height="484" /></a></p>
<p>Danach sollte sich die Sicherung via DPM auch problemlos einrichten und durchführen lassen:</p>
<p><a href="https://www.hertes.net/wp-content/uploads/2015/06/scdpm_sql_04.png"><img loading="lazy" decoding="async" title="scdpm_sql_04" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="scdpm_sql_04" src="https://www.hertes.net/wp-content/uploads/2015/06/scdpm_sql_04_thumb.png" width="644" height="266" /></a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.hertes.net/2015/06/scdpm-meldet-der-schutz-kann-nicht-konfiguriert-werden-wenn-sql-server-gesichert-werden-soll/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>SQL-Server auf System Center Configuration Manager 2012 (SCCM) Server startet nach SYSPREP nicht mehr</title>
		<link>https://www.hertes.net/2012/07/sql-server-auf-system-center-configuration-manager-2012-sccm-server-startet-nach-sysprep-nicht-mehr/</link>
					<comments>https://www.hertes.net/2012/07/sql-server-auf-system-center-configuration-manager-2012-sccm-server-startet-nach-sysprep-nicht-mehr/#respond</comments>
		
		<dc:creator><![CDATA[Haiko]]></dc:creator>
		<pubDate>Thu, 12 Jul 2012 10:13:33 +0000</pubDate>
				<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[System Center Configuration Manager]]></category>
		<category><![CDATA[SCCM]]></category>
		<category><![CDATA[System Center]]></category>
		<guid isPermaLink="false">http://www.hertes.net/?p=1477</guid>

					<description><![CDATA[Auf einem Test-Server für eine System Center Configuration Manager 2012 Umgebung lief auch der dazu notwendige SQL-Server. Da die Hardware einen Defekt aufwies, musste ich das System auf eine neue Hardware umziehen. Problematisch: Alte und neue Hardware waren derart verschieden, dass hier Probleme zu erwarten gewesen wären, wenn ich die Platten einfach nur umgesteckt hätte. Also habe ich vorher einen Sysprep inkl. /generalize laufen lassen. Nach dem Umbau der Festplatten in den neuen Server startete dieser Anstandslos. Das Problem: Die SQL-Server-Dienste starteten nicht! Problem: Durch den SYSPREP sind die privaten Schlüssel für die SSL-Kommunikation verloren gegangen, da der alte User-Account&#8230;]]></description>
										<content:encoded><![CDATA[<p>Auf einem Test-Server für eine System Center Configuration Manager 2012 Umgebung lief auch der dazu notwendige SQL-Server. Da die Hardware einen Defekt aufwies, musste ich das System auf eine neue Hardware umziehen. Problematisch: Alte und neue Hardware waren derart verschieden, dass hier Probleme zu erwarten gewesen wären, wenn ich die Platten einfach nur umgesteckt hätte. Also habe ich vorher einen Sysprep inkl. /generalize laufen lassen. Nach dem Umbau der Festplatten in den neuen Server startete dieser Anstandslos. Das Problem: Die SQL-Server-Dienste starteten nicht!</p>
<p><span style="text-decoration: underline;">Problem:</span></p>
<p>Durch den SYSPREP sind die privaten Schlüssel für die SSL-Kommunikation verloren gegangen, da der alte User-Account ja danach nicht mehr vorhanden war. Dies war u.a. im Logfile &#8222;<em>C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Log\ERRORLOG</em>&#8220; nachzulesen:</p>
<pre>"The server could not load the certificate it needs to initiate an SSL connection. It returned the following error: 0x8009030d [...]"</pre>
<p><span style="text-decoration: underline;">Lösung:</span></p>
<p>Im &#8222;SQL Server Configuration Manager&#8220; die Zuordnung zum alten Zertifikat löschen:</p>
<p><a href="https://www.hertes.net/wp-content/uploads/2012/07/SQLConfigMgr_Cert2.png"><img loading="lazy" decoding="async" class="size-medium wp-image-1478 alignleft" title="SQLConfigMgr_Cert2" src="https://www.hertes.net/wp-content/uploads/2012/07/SQLConfigMgr_Cert2-300x228.png" alt="" width="300" height="228" srcset="https://www.hertes.net/wp-content/uploads/2012/07/SQLConfigMgr_Cert2-300x228.png 300w, https://www.hertes.net/wp-content/uploads/2012/07/SQLConfigMgr_Cert2.png 517w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Nach einem Reboot des Servers generiert dieser ein neues Zertifikat und trägt dieses hier entsprechend ein (Es existieren dann 2 Zertifikate mit gleichem Namen, man kann sie aber u.a. am Ausstellungsdatum unterscheiden).</p>
<p>Dieses neue Zertifikat muss nun noch zu den &#8222;Vertrauenswürdigen Stammzertifizierungsstellen&#8220; hinzugefügt werden bzw. evtl. den Clients als vertrauenswürdig bekanntgegeben werden. Danach sollte alles wieder funktionieren, im Logfile steht dann:</p>
<pre>"A self-generaterd certificate was successfully loaded for encryption. [...]"</pre>
]]></content:encoded>
					
					<wfw:commentRss>https://www.hertes.net/2012/07/sql-server-auf-system-center-configuration-manager-2012-sccm-server-startet-nach-sysprep-nicht-mehr/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
