<?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>faq-o-matic.net &#187; SQL Server</title>
	<atom:link href="http://www.faq-o-matic.net/kategorien/sql/sql-server/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.faq-o-matic.net</link>
	<description>Das Autoren-Blog der IT-Community</description>
	<lastBuildDate>Wed, 08 Feb 2012 05:07:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>SQL Server: Sortierung als Stolperfalle</title>
		<link>http://www.faq-o-matic.net/2011/09/26/sql-server-sortierung-als-stolperfalle/</link>
		<comments>http://www.faq-o-matic.net/2011/09/26/sql-server-sortierung-als-stolperfalle/#comments</comments>
		<pubDate>Mon, 26 Sep 2011 04:10:00 +0000</pubDate>
		<dc:creator>Nils Kaczenski</dc:creator>
				<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://www.faq-o-matic.net/2011/09/12/sql-server-sortierung-als-stolperfalle/</guid>
		<description><![CDATA[Eine Eigenschaft des SQL Server ist weitgehend unbekannt, kann aber in speziellen Situationen zu unerwarteten Ergebnissen f&#252;hren: Die Sortierreihenfolge (“Collation”) von Tabellendaten. Anders als der Name erwarten l&#228;sst, beeinflusst diese Einstellung nicht nur die Abfolge, in der angefragte Daten vom Server zur&#252;ckgegeben werden, sondern auch, welche Werte SQL Server &#252;berhaupt ausgibt. Hierunter f&#228;llt z.B. die [...]<h3>Verwandte Beiträge:</h3><ol>
<li><a href='http://www.faq-o-matic.net/2010/03/25/sharepoint-neuinstallation-suchdatenbank-neu-erzeugen/' rel='bookmark' title='Sharepoint-Neuinstallation: Suchdatenbank neu erzeugen'>Sharepoint-Neuinstallation: Suchdatenbank neu erzeugen</a> <small>Bei der Neuinstallation eines Sharepoint-Servers kann es erforderlich sein, eine...</small></li>
<li><a href='http://www.faq-o-matic.net/2009/09/03/exchange-server-verweigert-deinstallation/' rel='bookmark' title='Exchange-Server verweigert Deinstallation'>Exchange-Server verweigert Deinstallation</a> <small>Beim Versuch, einen Exchange-Server (ab 2000) zu deinstallieren, kann es...</small></li>
<li><a href='http://www.faq-o-matic.net/2008/11/10/hyper-v-mit-windows-server-core-2008/' rel='bookmark' title='Hyper-V mit Windows Server Core 2008'>Hyper-V mit Windows Server Core 2008</a> <small>Am Donnerstag, 26. Juni 2008, hat Microsoft Hyper-V als RTM-Version...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img src="http://vg06.met.vgwort.de/na/ce8a54776233482a91ca3be6395e2de6" width="1" height="1" alt="" align="left" />Eine Eigenschaft des SQL Server ist weitgehend unbekannt, kann aber in speziellen Situationen zu unerwarteten Ergebnissen f&uuml;hren: Die Sortierreihenfolge (“Collation”) von Tabellendaten. Anders als der Name erwarten l&auml;sst, beeinflusst diese Einstellung nicht nur die Abfolge, in der angefragte Daten vom Server zur&uuml;ckgegeben werden, sondern auch, welche Werte SQL Server &uuml;berhaupt ausgibt. Hierunter f&auml;llt z.B. die Frage, ob SQL Server die Gro&szlig;- und Kleinschreibung von Textdaten unterscheidet oder nicht.</p>
<p><span id="more-3391"></span>
<p>In fr&uuml;heren Versionen der Software konnte man die Sortierreihenfolge nur auf der Serverebene festlegen – sie galt damit f&uuml;r alle Datenbanken und alle Tabellen einheitlich, die auf dem Server abgelegt waren. Zus&auml;tzlich entschied diese Einstellung dar&uuml;ber, welche Datenbanken man &uuml;berhaupt auf dem Server betreiben konnte: Hatte man eine Datenbank auf einem Server mit Sortierung A eingerichtet, konnte es passieren, dass man diese auf einem anderen Server mit Sortierung B nicht einsetzen konnte.</p>
<p>In aktuellen Versionen unterst&uuml;tzt SQL Server unterschiedliche Sortierreihenfolgen auf verschiedenen Ebenen. Die Einstellung auf Serverebene (die man direkt bei der Installation festlegt!) gibt f&uuml;r die Systemdatenbanken (insbesondere “master” und “msdb”) sowie als Vorgabe f&uuml;r alle neuen Datenbanken. Legt man Datenbanken an, kann man dort eine eigene (auch abweichende) Sortierreihenfolge definieren. Und schlie&szlig;lich darf man mittlerweile auch f&uuml;r einzelne Tabellenspalten die Sortierreihenfolge ausw&auml;hlen.</p>
<p><a href="http://www.faq-o-matic.net/wp-content/uploads/2011/09/image.png"><img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.faq-o-matic.net/wp-content/uploads/2011/09/image_thumb.png" width="244" height="219" /></a></p>
<p><em>Auswahl der Sortierreihenfolge f&uuml;r eine neue Datenbank. Diese Festlegung kann man sp&auml;ter nicht &auml;ndern!</em></p>
<p>Im Installationsumfang von SQL Server finden sich hunderte Sortierreihenfolgen f&uuml;r verschiedene Sprachen. Sie unterscheiden sich nach dem Grundprinzip, ob sie Zeichen bin&auml;r (nach ihrem Zeichencode) oder lexikalisch (also in alphabetisch korrekter Folge) interpretieren, daneben aber vor allem in der Unterscheidung von Gro&szlig;- und Kleinschreibung, von Akzenten oder weiteren sprachlichen Eigenschaften. Eine Idee davon vermittelt das folgende Dialogfeld, das die Auswahl erm&ouml;glicht:</p>
<p><a href="http://www.faq-o-matic.net/wp-content/uploads/2011/09/image1.png"><img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.faq-o-matic.net/wp-content/uploads/2011/09/image_thumb1.png" width="244" height="178" /></a></p>
<p><em>Sortieroptionen f&uuml;r eine einzelne Spalte</em></p>
<p>Ein Beispiel soll die Auswirkungen verschiedener Sortierreihenfolge auf die Daten verdeutlichen, die SQL Server auf eine Abfrage zur&uuml;ckgibt. Betrachten wir eine simple Tabelle mit zwei Textspalten. F&uuml;r die erste Spalte “WertCS” gibt eine Sortierung mit Unterscheidung nach Gro&szlig;-/Kleinschreibung (“Case Sensitive”) sowie nach Akzent (“Accent Sensitive”). In der zweiten Spalte “WertCI” gilt keine Unterscheidung dieser beiden Kriterien. (Anmerkung: Dies weicht von der Standardeinstellung ab, die SQL Server von sich aus vorschl&auml;gt: Dort gilt keine Unterscheidung nach Gro&szlig;-/Kleinschreibung (“Case Insensitive”), Akzente werden aber unterschieden (“Accent Sensitive”).</p>
<p>In beide Spalten tragen wir nun Werte ein. Damit man die Auswirkungen sieht, stehen in jeder Spalte Wertpaare: Derselbe Wert einmal mit und ohne Gro&szlig;buchstaben sowie derselbe Eintrag mit und ohne Akzent.</p>
<p><a href="http://www.faq-o-matic.net/wp-content/uploads/2011/09/image2.png"><img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.faq-o-matic.net/wp-content/uploads/2011/09/image_thumb2.png" width="244" height="156" /></a></p>
<p><em>Daten in der Testtabelle</em></p>
<p>Nun folgen ein paar Abfragen. Die Komplettabfrage gibt nat&uuml;rlich die ganze Tabelle aus:</p>
<pre>SELECT * FROM WerteCSCI</pre>
<p><a href="http://www.faq-o-matic.net/wp-content/uploads/2011/09/image3.png"><img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.faq-o-matic.net/wp-content/uploads/2011/09/image_thumb3.png" width="244" height="218" /></a></p>
<p><em>Abfrage der ganzen Tabelle</em></p>
<p>Die zweite Abfrage sucht einen Wert und gibt diesen nur mit Kleinbuchstaben an. Das Ergebnis der ersten Spalte (“Case Sensitive”):</p>
<pre>SELECT WertCS FROM WerteCSCI WHERE WertCS = 'hurz'</pre>
<p><a href="http://www.faq-o-matic.net/wp-content/uploads/2011/09/image4.png"><img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.faq-o-matic.net/wp-content/uploads/2011/09/image_thumb4.png" width="244" height="126" /></a></p>
<p><em>Abfrage der Case-Sensitive-Spalte</em></p>
<p>Und das Ergebnis f&uuml;r die zweite Spalte (“Case Insensitive”):</p>
<pre>SELECT WertCI FROM WerteCSCI WHERE WertCI = 'hurz'</pre>
<p><a href="http://www.faq-o-matic.net/wp-content/uploads/2011/09/image5.png"><img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.faq-o-matic.net/wp-content/uploads/2011/09/image_thumb5.png" width="244" height="127" /></a></p>
<p><em>Abfrage der Case-Insensitive-Spalte</em></p>
<p>Der Unterschied ist deutlich sichtbar. Bei einer Sortierreihenfolge ohne Unterscheidung nach Gro&szlig;- und Kleinschreibung (dies ist der Standard, wenn man die Definition nicht ausdr&uuml;cklich &auml;ndert) gibt SQL Server die Daten unabh&auml;ngig von der Schreibung zur&uuml;ck. Das ist in den meisten Situationen das erwartete Verhalten.</p>
<p>Dasselbe Ph&auml;nomen zeigt sich auch bei den Akzenten. Hier allerdings ist die Installationsvorgabe anders: Standardm&auml;&szlig;ig unterscheidet SQL Server nach der Akzentuierung. In diesem Fall entspricht also das erste Beispiel dem “normalen” Verhalten.</p>
<pre>SELECT WertCS FROM WerteCSCI WHERE WertCS = 'baba'</pre>
<p><a href="http://www.faq-o-matic.net/wp-content/uploads/2011/09/image6.png"><img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.faq-o-matic.net/wp-content/uploads/2011/09/image_thumb6.png" width="244" height="120" /></a></p>
<p><em>Abfrage der Accent-Sensitive-Spalte</em></p>
<p>Und das Ergebnis f&uuml;r die zweite Spalte (“Case Insensitive”):</p>
<pre>SELECT WertCI FROM WerteCSCI WHERE WertCI = 'baba'</pre>
<p><a href="http://www.faq-o-matic.net/wp-content/uploads/2011/09/image7.png"><img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.faq-o-matic.net/wp-content/uploads/2011/09/image_thumb7.png" width="244" height="141" /></a></p>
<p><em>Abfrage der Accent-Insensitive-Spalte</em></p>
<h3>Verwandte Beiträge:</h3><ol>
<li><a href='http://www.faq-o-matic.net/2010/03/25/sharepoint-neuinstallation-suchdatenbank-neu-erzeugen/' rel='bookmark' title='Sharepoint-Neuinstallation: Suchdatenbank neu erzeugen'>Sharepoint-Neuinstallation: Suchdatenbank neu erzeugen</a> <br /><small>Bei der Neuinstallation eines Sharepoint-Servers kann es erforderlich sein, eine...</small></li>
<li><a href='http://www.faq-o-matic.net/2009/09/03/exchange-server-verweigert-deinstallation/' rel='bookmark' title='Exchange-Server verweigert Deinstallation'>Exchange-Server verweigert Deinstallation</a> <br /><small>Beim Versuch, einen Exchange-Server (ab 2000) zu deinstallieren, kann es...</small></li>
<li><a href='http://www.faq-o-matic.net/2008/11/10/hyper-v-mit-windows-server-core-2008/' rel='bookmark' title='Hyper-V mit Windows Server Core 2008'>Hyper-V mit Windows Server Core 2008</a> <br /><small>Am Donnerstag, 26. Juni 2008, hat Microsoft Hyper-V als RTM-Version...</small></li>
</ol>]]></content:encoded>
			<wfw:commentRss>http://www.faq-o-matic.net/2011/09/26/sql-server-sortierung-als-stolperfalle/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hyper-V 2.0 SP1: Dynamic Memory und Server-Applikationen</title>
		<link>http://www.faq-o-matic.net/2011/03/16/hyper-v-2-0-sp1-dynamic-memory-und-server-applikationen/</link>
		<comments>http://www.faq-o-matic.net/2011/03/16/hyper-v-2-0-sp1-dynamic-memory-und-server-applikationen/#comments</comments>
		<pubDate>Wed, 16 Mar 2011 08:25:54 +0000</pubDate>
		<dc:creator>Nils Kaczenski</dc:creator>
				<category><![CDATA[Exchange]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Virtualisierung]]></category>
		<category><![CDATA[Windows Server 2008 R2]]></category>

		<guid isPermaLink="false">http://www.faq-o-matic.net/2011/03/16/hyper-v-2-0-sp1-dynamic-memory-und-server-applikationen/</guid>
		<description><![CDATA[Das wichtigste Feature des Service Pack 1 f&#252;r Windows Server 2008 R2 ist “Dynamic Memory” – zumindest wenn es um Virtualisierung geht. Diese Funktion erlaubt es dem Hypervisor, den virtuellen Maschinen Arbeitsspeicher dynamisch zuzuteilen oder zu entziehen, und zwar angepasst an den tats&#228;chlichen Bedarf, den eine VM hat. Das erlaubt wesentlich h&#246;here Freiheitsgrade im Sizing [...]<h3>Verwandte Beiträge:</h3><ol>
<li><a href='http://www.faq-o-matic.net/2010/09/22/hyper-v-dynamic-memory-reservierung-fr-den-parent/' rel='bookmark' title='Hyper-V Dynamic Memory: Reservierung f&uuml;r den Parent'>Hyper-V Dynamic Memory: Reservierung f&uuml;r den Parent</a> <small>Toni Pohl vom &ouml;sterreichischen TechNet-Team weist auf einen Umstand hin,...</small></li>
<li><a href='http://www.faq-o-matic.net/2010/07/22/hyper-v-das-sp1-und-dynamic-memory/' rel='bookmark' title='Hyper-V, das SP1 und Dynamic Memory'>Hyper-V, das SP1 und Dynamic Memory</a> <small>Das Service Pack 1 f&uuml;r Windows Server 2008 R2 ist...</small></li>
<li><a href='http://www.faq-o-matic.net/2010/09/10/whitepaper-dynamic-memory-in-hyper-v-2-0-sp1/' rel='bookmark' title='Whitepaper: Dynamic Memory in Hyper-V 2.0 SP1'>Whitepaper: Dynamic Memory in Hyper-V 2.0 SP1</a> <small>Microsoft hat vor einigen Wochen ein Whitepaper ver&ouml;ffentlicht, das das...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img src="http://vg02.met.vgwort.de/na/460ded20cf7448569d5f8398af437953" width="1" height="1" alt="" align="left" />Das wichtigste Feature des Service Pack 1 f&uuml;r Windows Server 2008 R2 ist “Dynamic Memory” – zumindest wenn es um Virtualisierung geht. Diese Funktion erlaubt es dem Hypervisor, den virtuellen Maschinen Arbeitsspeicher dynamisch zuzuteilen oder zu entziehen, und zwar angepasst an den tats&auml;chlichen Bedarf, den eine VM hat. Das erlaubt wesentlich h&ouml;here Freiheitsgrade im Sizing virtueller Umgebungen.</p>
<p>Aber Vorsicht: Anders als die meisten Mitbewerber erlaubt Hyper-V auch weiterhin kein “Overcommit” des Arbeitsspeichers. Mehr als physisch im Host steckt, l&auml;sst sich nicht an die VMs verteilen, auch nicht mit Dynamic Memory. Das hat auch seinen guten Grund, denn bei allen Mitbewerbern leidet die Performance aller VMs dramatisch, wenn die virtuellen Maschinen tats&auml;chlich mehr RAM brauchen als vorhanden ist.</p>
<p>Bei leistungshungrigen Server-Applikationen sollte man zudem abw&auml;gen, ob man Dynamic Memory wirklich nutzen m&ouml;chte. Nicht jede Anwendung ist in jeder Situation dazu geeignet. In den kommenden Wochen und Monaten werden wir sicher Erfahrungen und Best Practice dazu von den Herstellern finden. Zwei Beispiele gibt es schon jetzt: Exchange Server 2010 und SQL Server. </p>
<p>W&auml;hrend Microsoft f&uuml;r Exchange Server 2010 komplett vom Einsatz von Dynamic Memory (und allen “Overcommit”-Funktionen anderer Virtualisierer) abr&auml;t, ist die Lage beim SQL Server differenzierter. Hier zwei einschl&auml;gige Links:</p>
<p>[Exchange 2010 System Requirements: Exchange 2010 SP1 Help]   <br /><a href="http://technet.microsoft.com/en-us/library/aa996719.aspx?wt.svl=overview">http://technet.microsoft.com/en-us/library/aa996719.aspx?wt.svl=overview</a> </p>
<ul>
<li>dort ganz unten schauen: Exchange Server Memory Requirements and Recommendations </li>
</ul>
<p>[SQL Server Hyper-V Dynamic Memory - SQLOS Team Blog - Site Home - MSDN Blogs]   <br /><a href="http://blogs.msdn.com/b/sqlosteam/archive/tags/hyper_2d00_v+dynamic+memory/">http://blogs.msdn.com/b/sqlosteam/archive/tags/hyper_2d00_v+dynamic+memory/</a></p>
<h3>Verwandte Beiträge:</h3><ol>
<li><a href='http://www.faq-o-matic.net/2010/09/22/hyper-v-dynamic-memory-reservierung-fr-den-parent/' rel='bookmark' title='Hyper-V Dynamic Memory: Reservierung f&uuml;r den Parent'>Hyper-V Dynamic Memory: Reservierung f&uuml;r den Parent</a> <br /><small>Toni Pohl vom &ouml;sterreichischen TechNet-Team weist auf einen Umstand hin,...</small></li>
<li><a href='http://www.faq-o-matic.net/2010/07/22/hyper-v-das-sp1-und-dynamic-memory/' rel='bookmark' title='Hyper-V, das SP1 und Dynamic Memory'>Hyper-V, das SP1 und Dynamic Memory</a> <br /><small>Das Service Pack 1 f&uuml;r Windows Server 2008 R2 ist...</small></li>
<li><a href='http://www.faq-o-matic.net/2010/09/10/whitepaper-dynamic-memory-in-hyper-v-2-0-sp1/' rel='bookmark' title='Whitepaper: Dynamic Memory in Hyper-V 2.0 SP1'>Whitepaper: Dynamic Memory in Hyper-V 2.0 SP1</a> <br /><small>Microsoft hat vor einigen Wochen ein Whitepaper ver&ouml;ffentlicht, das das...</small></li>
</ol>]]></content:encoded>
			<wfw:commentRss>http://www.faq-o-matic.net/2011/03/16/hyper-v-2-0-sp1-dynamic-memory-und-server-applikationen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQL Server: Wie Datenablage, Backup und Recovery funktionieren</title>
		<link>http://www.faq-o-matic.net/2011/01/03/sql-server-wie-datenablage-backup-und-recovery-funktionieren/</link>
		<comments>http://www.faq-o-matic.net/2011/01/03/sql-server-wie-datenablage-backup-und-recovery-funktionieren/#comments</comments>
		<pubDate>Mon, 03 Jan 2011 06:34:00 +0000</pubDate>
		<dc:creator>Nils Kaczenski</dc:creator>
				<category><![CDATA[Datensicherung]]></category>
		<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://www.faq-o-matic.net/2011/01/03/sql-server-wie-datenablage-backup-und-recovery-funktionieren/</guid>
		<description><![CDATA[oder: Warum l&#228;uft die Log-Datei voll? Die Datenablage ist eine der wichtigsten Funktionen eines Datenbankservers: Nicht nur sollen die Daten zuverl&#228;ssig auf der Festplatte landen, sondern das soll auch noch m&#246;glichst schnell geschehen. Und schlie&#223;lich sollen die Daten meist nicht nur auf der Platte stehen, sondern in regelm&#228;&#223;igen Abst&#228;nden zur Datensicherung auch auf ein Band [...]<h3>Verwandte Beiträge:</h3><ol>
<li><a href='http://www.faq-o-matic.net/2008/11/19/exchange-server-2007-sp1-und-remote-streaming-backup/' rel='bookmark' title='Exchange Server 2007 SP1 und Remote Streaming Backup'>Exchange Server 2007 SP1 und Remote Streaming Backup</a> <small>Um eine Exchange Server Datenbank zu sichern, wird in den...</small></li>
<li><a href='http://www.faq-o-matic.net/2010/06/04/windows-server-backup-verstehen-und-nutzen/' rel='bookmark' title='Windows Server Backup verstehen und nutzen'>Windows Server Backup verstehen und nutzen</a> <small>Windows Server Backup ist das Werkzeug, das seit Windows Server...</small></li>
<li><a href='http://www.faq-o-matic.net/2008/04/20/automatische-backups-fr-sql-server-express/' rel='bookmark' title='Automatische Backups f&uuml;r SQL Server Express'>Automatische Backups f&uuml;r SQL Server Express</a> <small>Die Express-Edition des SQL Server 2005 erfreut sich &auml;hnlich gro&szlig;er...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<h3>oder: Warum l&auml;uft die Log-Datei voll?</h3>
<p><img src="http://vg03.met.vgwort.de/na/33027c6ebc61436194dd193e52651458" alt="" width="1" height="1" align="left" />Die Datenablage ist eine der wichtigsten Funktionen eines Datenbankservers: Nicht nur sollen die Daten zuverl&auml;ssig auf der Festplatte landen, sondern das soll auch noch m&ouml;glichst schnell geschehen. Und schlie&szlig;lich sollen die Daten meist nicht nur auf der Platte stehen, sondern in regelm&auml;&szlig;igen Abst&auml;nden zur Datensicherung auch auf ein Band oder ein anderes externes Medium kopiert werden.</p>
<p>Microsofts SQL Server setzt hierf&uuml;r einige Mechanismen ein, die sich schon seit mehr als einem Dutzend Jahren nicht prinzipiell ver&auml;ndert haben. Trotzdem sind diese Grundlagen den meisten Admins weitgehend unbekannt. Dieser Artikel gibt ein wenig &Uuml;berblick.</p>
<p><span id="more-2898"></span></p>
<h4>Das Protokoll-Prinzip</h4>
<p>Mit vielen anderen Datenbanksystemen teilt sich SQL Server das Prinzip des<strong> “</strong><a href="http://en.wikipedia.org/wiki/Write_ahead_logging"><strong>Write-ahead logging</strong></a><strong>”</strong>, um die Konsistenz seiner Transaktionen auch &uuml;ber m&ouml;gliche Systemausf&auml;lle hinweg zu gew&auml;hrleisten. Hinter diesem hochtrabenden Namen verbirgt sich eine recht einfache Idee: SQL Server best&auml;tigt die Annahme von Daten von einem Client erst dann, wenn er sie sicher auf die Festplatte geschrieben hat. Dabei bedient er sich allerdings noch eines – ebenfalls weit verbreiteten – Tricks: Der Server schreibt die Daten nicht sofort in die Datenbank-Datei. Solche Dateien k&ouml;nnen n&auml;mlich sehr gro&szlig; werden, und sie sind intern in einer Weise organisiert, die insbesondere effiziente Lese- und Suchvorg&auml;nge unterst&uuml;tzt. Im Effekt muss der Datenbankserver daher die Daten innerhalb einer m&ouml;glicherweise riesigen Datei an einer ganz bestimmten Stelle speichern, die er zun&auml;chst identifizieren muss, und gleich darauf muss er an eine ganz andere Stelle schreiben, um das n&auml;chste Datenpaket loszuwerden. Und das alles nur, um Daten zu speichern, die im n&auml;chsten Moment vielleicht schon wieder ge&auml;ndert sind.</p>
<p>Aus diesem Grund versuchen die meisten Datenbanksysteme, den Schreibzugriff auf die Datenbank-Datei so selten wie m&ouml;glich auszuf&uuml;hren. Sie fassen mehrere einzelne Schreibvorg&auml;nge zu einem gr&ouml;&szlig;eren zusammen, wobei sich oft auch der Effekt ergibt, dass Daten, die bereits von anderen Daten ersetzt sind, nur einmal und nicht mehrfach geschrieben werden m&uuml;ssen. Dieses Prinzip nennt man auch <strong>“Lazy Writer”</strong>.</p>
<p>Damit die Daten nun also einerseits sofort nicht-fl&uuml;chtig auf der Platte stehen, andererseits aber der Zugriff auf die komplexe Datenbankdatei so selten wie m&ouml;glich erfolgt, haben Datenbanken dieser Art eine zweite Datei, n&auml;mlich die <strong>Log-Datei </strong>(auch: Transaktionsprotokoll-Datei). Dort protokolliert der Server jede einzelne Transaktion ohne weitere R&uuml;cksicht auf sp&auml;tere Lesevorg&auml;nge. Diese Log-Datei l&auml;sst sich also einfach sequenziell beschreiben: Alle Transaktionen protokolliert das System vollst&auml;ndig, indem es sie – vereinfacht gesagt – am Ende der Log-Datei anf&uuml;gt.</p>
<p>Tats&auml;chlich sind es also zwei Dateien bzw. zwei S&auml;tze von Dateien, die eine derartige Datenbank zur Speicherung ben&ouml;tigt. Dabei wird deutlich, dass die Log-Datei ganz entscheidend &uuml;ber die Geschwindigkeit der Transaktionsverarbeitung (also aller &Auml;nderungen an der Datenbank) entscheidet, denn jede &Auml;nderung wird <em>erst</em> in der Datei protokolliert und <em>dann</em> best&auml;tigt. Hochdynamische Datenbanken brauchen daher f&uuml;r die Log-Dateien ein Plattensystem, das eine hohe Verarbeitungsgeschwindigkeit f&uuml;r sequenzielle Schreibvorg&auml;nge erm&ouml;glicht. Es ist durchaus keine Seltenheit, dass man daf&uuml;r Stripe-Sets aus kleinen, schnellen Platten einsetzt (gern gespiegelt – also z.B. RAID 10). Das ist allerdings l&auml;ngst nicht f&uuml;r jede Datenbank n&ouml;tig, sondern nur f&uuml;r solche, die richtig hohe Schreibleistung brauchen. Die meisten Datenbanken f&uuml;r “&uuml;bliche” Anwendungen (auch ERP-Systeme im Mittelstand) werden mit weniger I/O-Leistung auskommen und daher auf “normalen” Plattensystemen zufriedenstellend arbeiten.</p>
<p>Wenn man das Logging richtig behandelt (mehr dazu siehe unten), werden die Log-Dateien f&uuml;r die meisten Datenbanken im Vergleich zur vollst&auml;ndigen Datenbankgr&ouml;&szlig;e eher &uuml;berschaubar sein. Es kann aber durchaus vorkommen, dass die Protokolldateien pl&ouml;tzlich stark anwachsen, und zwar dann, wenn es viele oder sehr gro&szlig;e Transaktionen in kurzer Zeit gibt. Eine typische Situation dieser Art sind umfangreiche Import-Vorg&auml;nge in die Datenbank – jeder importierte Datensatz wird nat&uuml;rlich einzeln protokolliert.</p>
<p>Auf jeden Fall aber sind die Transaktionsprotokolle produktionskritisch: <strong>Ohne Protokoll keine Ver&auml;nderung in der Datenbank.</strong> Als Hintergrund halte man sich den Sinn des Transaktionsprotokolls vor Augen: Es ist der ausschlaggebende Mechanismus, der gew&auml;hrleistet, dass man sich auf die Datenbank verlassen kann. In einer komplexen Transaktion, die aus vielen einzelnen, aber zusammenh&auml;ngenden &Auml;nderungen besteht, muss die Applikation gew&auml;hrleisten, dass der Vorgang entweder vollst&auml;ndig oder aber gar nicht stattfindet. Man stelle sich vor, bei einer Bank-&Uuml;berweisung, die aus den beiden Schritten “Abbuchen von 100.000 Euro von Konto X und Gutschreiben derselben Summe auf Konto Y” besteht, findet nur der erste Schritt statt, der zweite aber nicht. Die Bank freut sich – aber gleich zwei Kunden haben Grund zur Klage. Das Datenbanksystem muss also sicherstellen, dass eine unterbrochene Transaktion vollst&auml;ndig widerrufen wird, damit sie sauber neu ausgef&uuml;hrt werden kann. Umgekehrt muss eine Transaktion, die das System best&auml;tigt hat, auch zuverl&auml;ssig in der Datenbank vermerkt sein.</p>
<p>Daher kann bei einem transaktionsgesch&uuml;tzten System kein Vorgang ohne Protokoll stattfinden. Steht das Protokoll nicht zur Verf&uuml;gung, ist der Server also gezwungen, die ganze Datenbank offline zu nehmen. Der korrekte Umgang mit den Log-Dateien ist also eine Kernaufgabe des Datenbank-Operating.</p>
<h4>Wie SQL Server &Auml;nderungen verarbeitet</h4>
<p>Hier noch einmal eine kurze (und vereinfachte) Zusammenfassung, wie SQL Server &Auml;nderungen an einer Datenbank verarbeitet.</p>
<ol>
<li>Ein Client fordert eine bestimmte &Auml;nderung von Daten an.</li>
<li>SQL Server pr&uuml;ft, ob sich die betroffenen Daten (genauer: Die Speicherbereiche der Datenbank, auf denen sich die Daten befinden – auch als “Datenbank-Seiten” bezeichnet) bereits im Arbeitsspeicher befinden. Falls nicht, l&auml;dt er die Seiten ins RAM.</li>
<li>SQL Server protokolliert die &Auml;nderungen im Transaktionsprotokoll.</li>
<li>SQL &auml;ndert die Datenbank-Seiten im Arbeitsspeicher.</li>
<li>SQL Server gibt dem Client die Best&auml;tigung &uuml;ber die Transaktion.</li>
<li>Beim n&auml;chsten sog. Checkpoint-Vorgang schreibt SQL Server die ge&auml;nderten Datenbank-Seiten aus dem Arbeitsspeicher in die Datenbankdatei auf der Festplatte. Den Checkpoint vermerkt das System im Transaktionsprotokoll: Alle Transaktionen vor dem Checkpoint sind in der Datenbank fixiert, die betreffenden Transaktionen sind im Protokoll also nicht mehr aktiv.</li>
</ol>
<p>Was SQL Server nun als n&auml;chstes mit dem Transaktionsprotokoll tut, h&auml;ngt davon ab, wie die Datenbank konfiguriert ist. Entscheidend ist dabei das<strong> “Recovery Model”</strong> (Wiederherstellungsmodell), das als Datenbankoption durch den Administrator konfigurierbar ist. Steht es auf “Vollst&auml;ndig” (Full), so l&auml;sst SQL Server alle inaktiven Transaktionen im Transaktionsprotokoll stehen und schreibt neue Transaktionen ans Ende der Protokolldatei. Erst wenn der Admin eine Protokollsicherung (Log Backup) ausf&uuml;hrt, gibt SQL Server die “alten”, inaktiven Transaktionen frei, und das System kann den Platz innerhalb der Datei wieder nutzen. Der Vorteil: Auf diese Weise lassen sich die Transaktionsprotokolle auch zur Wiederherstellung nach einem Datenverlust einsetzen, denn sie enthalten ja s&auml;mtliche &Auml;nderungen am Datenbestand (siehe unten). Der Nachteil: Sorgt man nicht f&uuml;r ein regelm&auml;&szlig;iges Backup der Logs, so wachsen diese endlos an, bis die Platte voll ist. Als Folge bleibt dann die ganze Datenbank stehen – denn ohne Protokoll kein Zugriff.</p>
<p>Im Modell “Einfach” (Simple) hingegen gibt SQL Server den Platz innerhalb der Datei bei jedem Checkpoint wieder frei. Dadurch kann die Datei nicht unkontrolliert anwachsen und stellt im Normalfall kein Risiko f&uuml;r die Plattenbelegung und den Online-Status der Datenbank dar. Allerdings lassen sich die Transaktionsprotokolle in diesem Fall auch nicht f&uuml;r das Restore von Daten einsetzen, weil sie ja nicht l&uuml;ckenlos vorliegen.</p>
<h4>“Recovery” und “Restore” – hier nicht dasselbe!</h4>
<p>Eine Besonderheit bringt der SQL Server mit: <strong>Die Begriffe “Recovery” und “Restore”, die man sonst oft synonym verwendet, bezeichnen hier v&ouml;llig unterschiedliche Dinge.</strong> Man sollte sie auseinanderhalten, wenn man verstehen m&ouml;chte, was SQL Server in welcher Situation tut. Ung&uuml;nstigerweise &uuml;bersetzt die meiste deutschsprachige Dokumentation beide Begriffe mit demselben Wort “Wiederherstellung” …</p>
<p><a name="recovery"><strong>Recovery: Automatisch beim Systemstart</strong></a></p>
<p>Der “Recovery”-Vorgang l&auml;uft immer automatisch beim Systemstart ab bzw. wenn SQL Server eine Datenbank online stellen soll. In diesem Moment muss das System sicherstellen, dass die Datenbank sich in einem konsistenten Zustand befindet. Dazu &uuml;berpr&uuml;ft der Server das Transaktionsprotokoll der Datenbank, ob sich dort nach dem letzten Checkpoint noch Transaktionen befinden. Falls ja, schreibt das System die abgeschlossenen Vorg&auml;nge (“committed transactions”) in die Datenbank. Dies nennt sich “rollforward”. Die nicht abgeschlossenen Vorg&auml;nge, die also z.B. durch einen Ausfall des Servers unterbrochen wurden (“uncommitted transactions”) entfernt der Server aus dem Protokoll. Dies nennt man “rollback”.</p>
<p>Erst nach dem Abschluss dieses Prozesses kann SQL Server die Datenbank online schalten und f&uuml;r lesende oder schreibende Zugriffe freigeben. Da der Recovery-Prozess bei gro&szlig;en und sehr aktiven Datenbanken durchaus eine l&auml;ngere Weile dauern kann, gibt es in j&uuml;ngeren Programmversionen des SQL Server einige Optimierungen dazu. Das Recovery erfolgt beispielsweise auch beim Failover eines SQL-Clusterservers, wodurch die Umschaltzeit auf den Failover-Knoten manchmal unerwartet lang dauern kann.</p>
<p><strong>Restore: Manuell nach Datenverlust</strong></p>
<p>Der “Restore”-Prozess bezeichnet die manuelle Wiederherstellung einer SQL-Server-Datenbank nach einem Datenverlust, also das Gegenst&uuml;ck zum Backup. Hierzu gibt es eine Reihe von Methoden, aus denen der Admin je nach Situation die geeignete ausw&auml;hlen muss.</p>
<h4>Daten sichern und wiederherstellen</h4>
<p>F&uuml;r Datensicherung und -wiederherstellung bietet SQL Server mehrere Methoden, die teilweise auf dem Transaktionsprotokoll beruhen. Alle Methoden eignen sich f&uuml;r das Online-Backup, ohne dass SQL Server angehalten werden muss.</p>
<p><strong>Vollst&auml;ndiges Backup</strong></p>
<p>Das vollst&auml;ndige Backup sichert alle Seiten (Pages) der Datenbank auf das Sicherungsmedium und liest diese dazu direkt von der Festplatte. Durch eine leistungsf&auml;hige Priorisierung sorgt der Prozess daf&uuml;r, dass &Auml;nderungen an Datenbankseiten erst dann erfolgen k&ouml;nnen, wenn die Seiten bereits gesichert wurden. Das f&uuml;hrt nat&uuml;rlich dazu, dass w&auml;hrend des Sicherungsvorgangs nicht die gesamte Performance des Datenbankservers zur Verf&uuml;gung steht. Trotzdem bildet die vollst&auml;ndige Datensicherung die Grundlage f&uuml;r alle Sicherungsverfahren und sollte daher regelm&auml;&szlig;ig ausgef&uuml;hrt werden.</p>
<p>Dieser Sicherungstyp l&auml;sst sich &uuml;ber die grafischen Verwaltungstools oder per SQL-Kommando ausf&uuml;hren. Die Grundsyntax zur Ad-hoc-Sicherung in eine Datei lautet:</p>
<pre>BACKUP DATABASE NameDerDatenbank TO DISK = 'C:\Pfad\Dateiname.bak'</pre>
<p><strong>Differenzielles Backup</strong></p>
<p>Das differenzielle Backup sichert alle Seiten der Datenbank, die sich seit dem letzten vollst&auml;ndigen Backup ge&auml;ndert haben. Der eigentliche Sicherungsprozess entspricht dem der vollst&auml;ndigen Sicherung. Aufgrund des Prinzips wird der Umfang der Datensicherung tendenziell um so gr&ouml;&szlig;er, je l&auml;nger das Full Backup zur&uuml;ckliegt.</p>
<p>Auch dieser Sicherungstyp l&auml;sst sich grafisch oder per Code ausf&uuml;hren. Die Grundsyntax ist in diesem Fall:</p>
<pre>BACKUP DATABASE NameDerDatenbank TO DISK = 'C:\Pfad\Dateiname.bak'
WITH DIFFERENTIAL</pre>
<p><strong>Transaktionsprotokoll-Backup</strong></p>
<p>Die Datensicherung der Transaktionsprotokolle erfolgt auf g&auml;nzlich andere Weise. Hier sichert der Server nicht die eigentlichen Datenbank-Seiten, sondern den Inhalt des Transaktionsprotokolls. Daf&uuml;r gibt es drei zwingende Voraussetzungen:</p>
<ol>
<li>Das Wiederherstellungsmodell der Datenbank ist “Vollst&auml;ndig” (oder “Massenprotokolliert”, was aber noch einige Besonderheiten nach sich zieht)</li>
<li>Es hat mindestens eine vollst&auml;ndige Datenbank-Sicherung stattgefunden, seit der Modus “Vollst&auml;ndig” aktiviert wurde</li>
<li>Die Transaktionsprotokoll-Sicherungen erfolgen in einer Reihe ohne Unterbrechung. (Sollte einmal eine Unterbrechung n&ouml;tig sein – etwa weil das Log vollgelaufen war und manuell gek&uuml;rzt werden musste –, so ist zun&auml;chst wieder eine vollst&auml;ndige Datenbank-Sicherung n&ouml;tig.)</li>
</ol>
<p>Die Transaktionsprotokoll-Sicherung entspricht dem “inkrementellen Backup” in klassischen Umgebungen, denn sie bezieht sich immer auf die vorangegangene Protokollsicherung. Je h&auml;ufiger man einen solchen Sicherungsprozess ausf&uuml;hrt, desto geringer ist tendenziell der Umfang der einzelnen Sicherung. Damit eignet sich das Verfahren auch f&uuml;r Strategien mit sehr hoher Frequenz, beispielsweise alle 15 Minuten.</p>
<p>Nat&uuml;rlich l&auml;sst sich auch dieses Verfahren grafisch oder per Kommando ausf&uuml;hren. Die Syntax ist etwas anders als bei den anderen Varianten:</p>
<pre>BACKUP LOG NameDerDatenbank TO DISK = 'C:\Pfad\Dateiname.bak'</pre>
<h4>Wiederherstellung</h4>
<p>Die Wiederherstellung einer Datenbank h&auml;ngt bez&uuml;glich des einzusetzenden Verfahrens von zahlreichen Faktoren ab – dazu geh&ouml;ren nat&uuml;rlich die Methoden, die f&uuml;r das Backup genutzt wurden. Da aber auch viele andere Besonderheiten zu ber&uuml;cksichtigen sind, beschr&auml;nken wir uns hier absichtlich auf einige grundlegende Hinweise.</p>
<p><strong>Wiederherstellung eines “Full Backup”</strong></p>
<p>Der einfachste Restore-Vorgang ist die Wiederherstellung von einer vollst&auml;ndigen Datensicherung. Dadurch setzt man die Datenbank auf den Stand zur&uuml;ck, den sie beim Backup hatte. Alle Daten also, die zwischen dem Backup und dem Eintritt des Schadens ge&auml;ndert wurden, sind damit verloren.</p>
<p><strong>“Maximale” Wiederherstellung</strong></p>
<p>Um mehr als nur das letzte “Full Backup” wiederherzustellen, ben&ouml;tigt man als Datenbasis ein differenziertes Sicherungssystem, idealerweise kombiniert aus vollst&auml;ndigen und protokollbasierten Sicherungen; je nach Gr&ouml;&szlig;e der Datenbank ggf. erg&auml;nzt um differenzielle Sicherungen. Im Fall des Falles verl&auml;uft der prinzipielle Restore-Vorgang so:</p>
<ol>
<li>Wiederherstellen des letzten Full Backup</li>
<li>Falls vorhanden, wiederherstellen des letzten Differenziellen Backup</li>
<li>Wiederherstellen aller Transaktionsprotokolle, die nach dem Differenziellen Backup gesichert wurden</li>
</ol>
<p>Wichtig dabei: Schritt 3 muss l&uuml;ckenlos erfolgen. Wichtig ebenso: In diesem Prozess darf der sog. “<a href="#recovery">Recovery-Prozess</a>” (siehe oben) erst nach dem letzten wiederhergestellten Transaktionsprotokoll erfolgen, er muss also vorher unterdr&uuml;ckt werden.</p>
<p>Weitere Details finden sich in der Online-Hilfe des SQL Server. Die n&ouml;tigen Schritte des Restore-Prozesses sollte man regelm&auml;&szlig;ig und ausf&uuml;hrlich &uuml;ben!</p>
<h4>Ein bisschen Best Practice</h4>
<p>Die folgenden Hinweise verstehen sich ausdr&uuml;cklich nicht als feste Empfehlungen f&uuml;r jede Situation, sondern nur als Faustregeln f&uuml;r typische, &uuml;berschaubare Anforderungen.</p>
<ul>
<li>F&uuml;r eher “einfache” Datenbanken ist es durchaus sinnvoll, das Wiederherstellungsmodell auf “Einfach” zu stellen (Recovery Model “Simple”). Auf diese Weise ist sichergestellt, dass die Log-Dateien nicht &uuml;berlaufen. Die nachteilige Folge ist, dass man von solchen Datenbanken nur vollst&auml;ndige Backups (sowie differenzielle Backups) erzeugen kann, die Transaktionsprotokolle lassen sich in diesem Zustand nicht sichern und damit auch nicht f&uuml;r die Wiederherstellung einsetzen. F&uuml;r viele Datenbanken ist das aber auch gar nicht n&ouml;tig: Rein administrative Datenbanken etwa enthalten oft nur Konfigurationsinformationen oder statistische Daten. Im Fall eines Falles w&auml;re es hier durchaus denkbar, nur auf den Stand des letzten Full Backup zur&uuml;ckkehren zu k&ouml;nnen.</li>
<li>F&uuml;r wirklich kritische Datenbanken hingegen ist das Wiederherstellungsmodell “Vollst&auml;ndig” besser geeignet – allerdings auch nur dann, wenn man einen dazu passenden Backup- und Restore-Plan implementiert (siehe oben). Ein typisches Beispiel sind hochdynamische ERP-Datenbanken, f&uuml;r die ein Unternehmen den Datenverlust so gering wie m&ouml;glich halten muss.</li>
<li>Vorsicht: Sobald das Wiederherstellungsmodell auf “Vollst&auml;ndig” steht, ist man verpflichtet, f&uuml;r ein regelm&auml;&szlig;iges Log-Backup zu sorgen, weil sonst die Log-Dateien unweigerlich voll laufen werden. Hierzu also:
<ul>
<li>Direkt im Anschluss an das Umschalten auf das “vollst&auml;ndige Wiederherstellungsmodell” eine Komplettsicherung (Full Backup) der Datenbank erzeugen</li>
<li>Direkt danach einen regelm&auml;&szlig;igen Log-Backup-Plan einrichten (min. einmal t&auml;glich, vielleicht &ouml;fter) – hierzu eignet sich der SQL Server Agent</li>
<li>Den entsprechenden Recovery-Plan daf&uuml;r entwerfen und dokumentieren</li>
<li>Das Log Volume st&auml;ndig &uuml;berwachen, ob es nicht trotzdem volll&auml;uft (je nach Transaktionsart kann es durchaus auch mal zu einem pl&ouml;tzlichen deutlichen Anwachsen der Logs kommen, z.B. bei Daten-Imports in eine Datenbank)</li>
</ul>
</li>
</ul>
<h3>Verwandte Beiträge:</h3><ol>
<li><a href='http://www.faq-o-matic.net/2008/11/19/exchange-server-2007-sp1-und-remote-streaming-backup/' rel='bookmark' title='Exchange Server 2007 SP1 und Remote Streaming Backup'>Exchange Server 2007 SP1 und Remote Streaming Backup</a> <br /><small>Um eine Exchange Server Datenbank zu sichern, wird in den...</small></li>
<li><a href='http://www.faq-o-matic.net/2010/06/04/windows-server-backup-verstehen-und-nutzen/' rel='bookmark' title='Windows Server Backup verstehen und nutzen'>Windows Server Backup verstehen und nutzen</a> <br /><small>Windows Server Backup ist das Werkzeug, das seit Windows Server...</small></li>
<li><a href='http://www.faq-o-matic.net/2008/04/20/automatische-backups-fr-sql-server-express/' rel='bookmark' title='Automatische Backups f&uuml;r SQL Server Express'>Automatische Backups f&uuml;r SQL Server Express</a> <br /><small>Die Express-Edition des SQL Server 2005 erfreut sich &auml;hnlich gro&szlig;er...</small></li>
</ol>]]></content:encoded>
			<wfw:commentRss>http://www.faq-o-matic.net/2011/01/03/sql-server-wie-datenablage-backup-und-recovery-funktionieren/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQL Server 2008: Admins haben keine sysadmin-Rechte</title>
		<link>http://www.faq-o-matic.net/2010/05/21/sql-server-2008-admins-haben-keine-sysadmin-rechte/</link>
		<comments>http://www.faq-o-matic.net/2010/05/21/sql-server-2008-admins-haben-keine-sysadmin-rechte/#comments</comments>
		<pubDate>Fri, 21 May 2010 12:05:25 +0000</pubDate>
		<dc:creator>Nils Kaczenski</dc:creator>
				<category><![CDATA[Sicherheit]]></category>
		<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://www.faq-o-matic.net/2010/05/21/sql-server-2008-admins-haben-keine-sysadmin-rechte/</guid>
		<description><![CDATA[Mit SQL Server 2008 hat Microsoft das Sicherheitsmodell seines Datenbankservers ge&#228;ndert. Anders als zuvor, sind lokale Administratoren des Servers nun nicht mehr automatisch Mitglieder der Rolle “sysadmin”. Stattdessen muss man nun beim Setup des Servers einen SQL-Admin definieren. Das Problem dabei: Man kann diesen Punkt auch &#252;bergehen – und hat im Effekt keinen SQL-Admin … [...]<h3>Verwandte Beiträge:</h3><ol>
<li><a href='http://www.faq-o-matic.net/2009/09/10/sql-server-express-authentisierungsmodus-umschalten/' rel='bookmark' title='SQL Server Express: Authentisierungsmodus umschalten'>SQL Server Express: Authentisierungsmodus umschalten</a> <small>SQL Server kennt seit jeher zwei Authentisierungsmodi: “Windows-Authentifizierungsmodus” und “SQL...</small></li>
<li><a href='http://www.faq-o-matic.net/2010/04/07/windows-server-2008-r2-keine-vertrauensstellung-zu-nt4-mglich/' rel='bookmark' title='Windows Server 2008 R2: Keine Vertrauensstellung zu NT4 m&ouml;glich'>Windows Server 2008 R2: Keine Vertrauensstellung zu NT4 m&ouml;glich</a> <small>In Dom&auml;nen, die unter Windows Server 2008 R2 laufen, ist...</small></li>
<li><a href='http://www.faq-o-matic.net/2005/01/03/warum-kann-ein-benutzer-dateien-aendern-fuer-die-er-keine-rechte-hat/' rel='bookmark' title='Warum kann ein Benutzer Dateien &#228;ndern, f&#252;r die er keine Rechte hat?'>Warum kann ein Benutzer Dateien &#228;ndern, f&#252;r die er keine Rechte hat?</a> <small>Benutzer k&ouml;nnen Dateien l&ouml;schen, auf die sie keinen Zugriff haben....</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img src="http://vg06.met.vgwort.de/na/8706680e3eb9479182c5a0f4084ca05c" alt="" width="1" height="1" align="left" />Mit SQL Server 2008 hat Microsoft das Sicherheitsmodell seines Datenbankservers ge&auml;ndert. Anders als zuvor, sind lokale Administratoren des Servers nun nicht mehr automatisch Mitglieder der Rolle “sysadmin”. Stattdessen muss man nun beim Setup des Servers einen SQL-Admin definieren. Das Problem dabei: Man kann diesen Punkt auch &uuml;bergehen – und hat im Effekt keinen SQL-Admin …</p>
<p><span id="more-2356"></span></p>
<p>Es gibt aber eine L&ouml;sung daf&uuml;r, die ich hier gefunden habe:</p>
<p>[SQL Server 2008: Forgot to add an administrator account? - Chris Randall's SQL Blog - AmeriTeach Instructor Blogs]<br />
<a href="http://blogs.ameriteach.com/chris-randall/2009/12/11/sql-server-2008-forgot-to-add-an-administrator-account.html?lastPage=true&amp;postSubmitted=true">http://blogs.ameriteach.com/chris-randall/2009/12/11/sql-server-2008-forgot-to-add-an-administrator-account.html?lastPage=true&amp;postSubmitted=true</a></p>
<p>Weiteres Problem: Das Ganze funktionierte nicht mit einer Installation von SQL Server Express. Ich habe aber rausgefunden, warum, daher hier noch einmal die wesentlichen Schritte.</p>
<ul>
<li>Anmelden am Server mit einem lokalen Administrator.</li>
<li>Aufrufen eines CMD-Fensters als Administrator (!).</li>
<li>Beenden des SQL-Server-Dienstes:<br />
<em>net stop MSSQLServer</em><br />
F&uuml;r SQL Express: <em>net stop MSSQL$SQLEXPRESS</em></li>
<li>Wechseln in das BINN-Verzeichnis der Installation<br />
z.B.:<em> cd C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\Binn</em></li>
<li>Starten des SQL-Server-Binary mit der Option -m f&uuml;r den Einzelbenutzermodus – dort hat der lokale Admin dann Adminrechte …
<ul>
<li>Wichtig: In fr&uuml;heren Versionen konnte man auch den Dienst mit dem Schalter -m starten – das geht nun nicht mehr!</li>
<li><em>sqlserv.exe -m</em></li>
<li>F&uuml;r SQL Express muss man die Instanz angeben, also: <em>sqlserv.exe -m -sSQLEXPRESS</em></li>
<li>Nun gibt der SQL Server viele, viele Zeilen aus. Das ist okay.</li>
<li>Wichtig: Dieses CMD-Fenster nicht schlie&szlig;en! Stattdessen ein neues &ouml;ffnen!</li>
</ul>
</li>
<li>In dem neuen CMD-Fenster (als Administrator gestartet!) eingeben (nur den fetten Text):
<ul>
<li><em>osql -E -s SERVERNAME (mit Leerzeichen nach dem s!)</em>, also:<br />
<strong>osql -E -s MeinServer</strong><br />
F&uuml;r SQL Express: <strong>osql -E -s MeinServer\SQLEXPRESS</strong></li>
<li>1&gt; <strong>CREATE LOGIN [DOM\Username] FROM WINDOWS</strong></li>
<li>2&gt; <strong>go</strong></li>
<li>1&gt; <strong>exec sp_addsrvrolemember &#039;DOM\Username&#039;, &#039;sysadmin&#039;</strong></li>
<li>2&gt; <strong>go</strong></li>
<li>1&gt; <strong>exec sp_helpsrvrolemember &#039;sysadmin&#039;</strong></li>
<li>2&gt; <strong>go</strong></li>
<li>(nun sollte in der Ausgabe der eben zugewiesene Windows-Account erscheinen)</li>
<li>1&gt; <strong>quit</strong></li>
</ul>
</li>
<li>Nun in dem anderen CMD-Fenster Strg-C dr&uuml;cken und die Nachfrage mit “y” beantworten.</li>
<li>Den SQL Server neu starten:<br />
<em>net start MSSQLServer</em><br />
bzw. <em>net start MSSQL$SQLEXPRESS</em></li>
<li>Fertig. Nun sollte ein Login mit diesem Account gl&uuml;cken und &uuml;ber SQL-Adminrechte verf&uuml;gen.</li>
</ul>
<h3>Verwandte Beiträge:</h3><ol>
<li><a href='http://www.faq-o-matic.net/2009/09/10/sql-server-express-authentisierungsmodus-umschalten/' rel='bookmark' title='SQL Server Express: Authentisierungsmodus umschalten'>SQL Server Express: Authentisierungsmodus umschalten</a> <br /><small>SQL Server kennt seit jeher zwei Authentisierungsmodi: “Windows-Authentifizierungsmodus” und “SQL...</small></li>
<li><a href='http://www.faq-o-matic.net/2010/04/07/windows-server-2008-r2-keine-vertrauensstellung-zu-nt4-mglich/' rel='bookmark' title='Windows Server 2008 R2: Keine Vertrauensstellung zu NT4 m&ouml;glich'>Windows Server 2008 R2: Keine Vertrauensstellung zu NT4 m&ouml;glich</a> <br /><small>In Dom&auml;nen, die unter Windows Server 2008 R2 laufen, ist...</small></li>
<li><a href='http://www.faq-o-matic.net/2005/01/03/warum-kann-ein-benutzer-dateien-aendern-fuer-die-er-keine-rechte-hat/' rel='bookmark' title='Warum kann ein Benutzer Dateien &#228;ndern, f&#252;r die er keine Rechte hat?'>Warum kann ein Benutzer Dateien &#228;ndern, f&#252;r die er keine Rechte hat?</a> <br /><small>Benutzer k&ouml;nnen Dateien l&ouml;schen, auf die sie keinen Zugriff haben....</small></li>
</ol>]]></content:encoded>
			<wfw:commentRss>http://www.faq-o-matic.net/2010/05/21/sql-server-2008-admins-haben-keine-sysadmin-rechte/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sharepoint-Neuinstallation: Suchdatenbank neu erzeugen</title>
		<link>http://www.faq-o-matic.net/2010/03/25/sharepoint-neuinstallation-suchdatenbank-neu-erzeugen/</link>
		<comments>http://www.faq-o-matic.net/2010/03/25/sharepoint-neuinstallation-suchdatenbank-neu-erzeugen/#comments</comments>
		<pubDate>Thu, 25 Mar 2010 13:22:00 +0000</pubDate>
		<dc:creator>Nils Kaczenski</dc:creator>
				<category><![CDATA[Sharepoint]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Troubleshooting]]></category>

		<guid isPermaLink="false">http://www.faq-o-matic.net/2010/03/25/sharepoint-neuinstallation-suchdatenbank-neu-erzeugen/</guid>
		<description><![CDATA[Bei der Neuinstallation eines Sharepoint-Servers kann es erforderlich sein, eine neue Datenbank f&#252;r den Suchdienst zu erzeugen. Das ist z.B. dann der Fall, wenn in der vorherigen Installation die Standard-Datenbank (Name: WSS_Search_[Servername]) bereits angelegt worden war. Da diese bereits Tabellen enth&#228;lt, kann sie von der neuen Installation nicht verwendet werden. Leider ist der Weg dahin [...]<h3>Verwandte Beiträge:</h3><ol>
<li><a href='http://www.faq-o-matic.net/2010/03/25/sharepoint-2007-unter-2008-r2-bei-neuinstallation-wird-erweitert-nicht-angeboten/' rel='bookmark' title='Sharepoint 2007 unter 2008 R2: Bei Neuinstallation wird &ldquo;Erweitert&rdquo; nicht angeboten'>Sharepoint 2007 unter 2008 R2: Bei Neuinstallation wird &ldquo;Erweitert&rdquo; nicht angeboten</a> <small>Muss man Sharepoint 2007 aus irgendeinem Grund v&ouml;llig neu installieren,...</small></li>
<li><a href='http://www.faq-o-matic.net/2010/03/24/sharepoint-dclauncher-und-dcloadbalancer-starten-nicht/' rel='bookmark' title='Sharepoint: DCLauncher und DCLoadBalancer starten nicht'>Sharepoint: DCLauncher und DCLoadBalancer starten nicht</a> <small>In einer Sharepoint-Installation (MOSS 2007) wollte der Dienst DCLoadBalancer (Document...</small></li>
<li><a href='http://www.faq-o-matic.net/2004/02/03/warum-kann-ich-einen-user-nicht-mit-memberof-einer-gruppe-hinzufuegen/' rel='bookmark' title='Warum kann ich einen User nicht mit dem &quot;memberOf&quot;-Attribut einer Gruppe hinzuf&#252;gen?'>Warum kann ich einen User nicht mit dem &quot;memberOf&quot;-Attribut einer Gruppe hinzuf&#252;gen?</a> <small>Das Feld &quot;memberOf&quot; ist ein sog. &quot;Backlink&quot;-Feld, das zur Abfragezeit...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Bei der Neuinstallation eines Sharepoint-Servers kann es erforderlich sein, eine neue Datenbank f&uuml;r den Suchdienst zu erzeugen. Das ist z.B. dann der Fall, wenn in der vorherigen Installation die Standard-Datenbank (Name: WSS_Search_[Servername]) bereits angelegt worden war. Da diese bereits Tabellen enth&auml;lt, kann sie von der neuen Installation nicht verwendet werden.</p>
<p><span id="more-2202"></span>Leider ist der Weg dahin etwas steinig. Hier die wichtigen Dinge:</p>
<ul>
<li>Der Name der Datenbank ist technisch nicht wichtig, man sollte ihn aber wiedererkennen k&ouml;nnen. Darauf achten, dass die Datenbank und die Logs an der richtigen Stelle (Platten, die daf&uuml;r vorgesehen sind) gespeichert werden.</li>
<li>Wichtig ist die Sortierreihenfolge (Collation). Sie muss auf “Latin1_General_CI_AS_KS_WS” stehen.<br />
Sollte man das beim Anlegen &uuml;bersehen, so kann man es nachtr&auml;glich &auml;ndern. Im SQL Server Management Studio in einer neuen Abfrage auf Ebene der master-Datenbank eingeben:<br />
alter database <em>&lt;Datenbankname&gt;</em> collate Latin1_General_CI_AS_KS_WS</li>
<li>Der Owner der Datenbank muss das SQL-Zugrifsskonto des Sharepoint-Servers sein.<br />
Um dies ggf. zu &auml;ndern: Neue Abfrage auf Ebene der neuen Search-Datenbank, dort:<br />
exec sp_changedbowner <em>&#039;DOM&Auml;NE\Loginname</em>&#039;</li>
<li>Drei Konten ben&ouml;tigen dbo-Rechte in der Datenbank. Hierzu in der Datenbank unter “Sicherheit/Benutzer” die Logins als Benutzer hinzuf&uuml;gen und in die Rolle “db_owner” aufnehmen.
<ul>
<li>Das Konto f&uuml;r den Applikationspool</li>
<li>Das Konto f&uuml;r die Inhaltsindizierung</li>
<li>Das Konto f&uuml;r den Suchdienst</li>
</ul>
</li>
</ul>
<h3>Verwandte Beiträge:</h3><ol>
<li><a href='http://www.faq-o-matic.net/2010/03/25/sharepoint-2007-unter-2008-r2-bei-neuinstallation-wird-erweitert-nicht-angeboten/' rel='bookmark' title='Sharepoint 2007 unter 2008 R2: Bei Neuinstallation wird &ldquo;Erweitert&rdquo; nicht angeboten'>Sharepoint 2007 unter 2008 R2: Bei Neuinstallation wird &ldquo;Erweitert&rdquo; nicht angeboten</a> <br /><small>Muss man Sharepoint 2007 aus irgendeinem Grund v&ouml;llig neu installieren,...</small></li>
<li><a href='http://www.faq-o-matic.net/2010/03/24/sharepoint-dclauncher-und-dcloadbalancer-starten-nicht/' rel='bookmark' title='Sharepoint: DCLauncher und DCLoadBalancer starten nicht'>Sharepoint: DCLauncher und DCLoadBalancer starten nicht</a> <br /><small>In einer Sharepoint-Installation (MOSS 2007) wollte der Dienst DCLoadBalancer (Document...</small></li>
<li><a href='http://www.faq-o-matic.net/2004/02/03/warum-kann-ich-einen-user-nicht-mit-memberof-einer-gruppe-hinzufuegen/' rel='bookmark' title='Warum kann ich einen User nicht mit dem &quot;memberOf&quot;-Attribut einer Gruppe hinzuf&#252;gen?'>Warum kann ich einen User nicht mit dem &quot;memberOf&quot;-Attribut einer Gruppe hinzuf&#252;gen?</a> <br /><small>Das Feld &quot;memberOf&quot; ist ein sog. &quot;Backlink&quot;-Feld, das zur Abfragezeit...</small></li>
</ol>]]></content:encoded>
			<wfw:commentRss>http://www.faq-o-matic.net/2010/03/25/sharepoint-neuinstallation-suchdatenbank-neu-erzeugen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQL Server Express: Authentisierungsmodus umschalten</title>
		<link>http://www.faq-o-matic.net/2009/09/10/sql-server-express-authentisierungsmodus-umschalten/</link>
		<comments>http://www.faq-o-matic.net/2009/09/10/sql-server-express-authentisierungsmodus-umschalten/#comments</comments>
		<pubDate>Thu, 10 Sep 2009 08:24:02 +0000</pubDate>
		<dc:creator>Nils Kaczenski</dc:creator>
				<category><![CDATA[Sicherheit]]></category>
		<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://www.faq-o-matic.net/2009/09/10/sql-server-express-authentisierungsmodus-umschalten/</guid>
		<description><![CDATA[SQL Server kennt seit jeher zwei Authentisierungsmodi: “Windows-Authentifizierungsmodus” und “SQL Server- und Windows-Authentifizierungsmodus”. W&#228;hrend der erste nur Verbindungen mit bestehenden Windows-Logins zul&#228;sst (also nur Windows-Dom&#228;nenkonten oder lokale Windows-Benutzer des Servers selbst), ist es im anderen Modus zus&#228;tzlich m&#246;glich, sich mit Konten anzumelden, die nur innerhalb des SQL Server existieren. Da SQL-interne Konten weniger gut gesch&#252;tzt [...]<h3>Verwandte Beiträge:</h3><ol>
<li><a href='http://www.faq-o-matic.net/2008/04/20/automatische-backups-fr-sql-server-express/' rel='bookmark' title='Automatische Backups f&uuml;r SQL Server Express'>Automatische Backups f&uuml;r SQL Server Express</a> <small>Die Express-Edition des SQL Server 2005 erfreut sich &auml;hnlich gro&szlig;er...</small></li>
<li><a href='http://www.faq-o-matic.net/2010/05/21/sql-server-2008-admins-haben-keine-sysadmin-rechte/' rel='bookmark' title='SQL Server 2008: Admins haben keine sysadmin-Rechte'>SQL Server 2008: Admins haben keine sysadmin-Rechte</a> <small>Mit SQL Server 2008 hat Microsoft das Sicherheitsmodell seines Datenbankservers...</small></li>
<li><a href='http://www.faq-o-matic.net/2002/02/12/sa-konto-absichern/' rel='bookmark' title='sa-Konto absichern'>sa-Konto absichern</a> <small>Eigentlich ist es seit Jahren bekannt &#8230;&#8230; aber immer wieder...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>SQL Server kennt seit jeher zwei Authentisierungsmodi: “Windows-Authentifizierungsmodus” und “SQL Server- und Windows-Authentifizierungsmodus”. W&auml;hrend der erste nur Verbindungen mit bestehenden Windows-Logins zul&auml;sst (also nur Windows-Dom&auml;nenkonten oder lokale Windows-Benutzer des Servers selbst), ist es im anderen Modus zus&auml;tzlich m&ouml;glich, sich mit Konten anzumelden, die nur innerhalb des SQL Server existieren.</p>
<p>Da SQL-interne Konten weniger gut gesch&uuml;tzt sind als Windows-Konten, richtet das Setup-Programm des SQL Server (auch SQL Server Express) den Authentisierungsmodus standardm&auml;&szlig;ig nur f&uuml;r Windows-Konten ein. Leider ist es aber so, dass viele Applikationen partout nur mit der SQL-Authentisierung arbeiten wollen (auch wenn es meist technisch keinen Grund daf&uuml;r gibt). Hat man hier bei der Installation nicht aufgepasst (oder ist die SQL-Installation automatisiert durchgelaufen), so muss man den Modus nachtr&auml;glich umstellen.</p>
<p> <span id="more-1771"></span><br />
<h3>Die grafische Methode</h3>
<p>Am einfachsten geht das nat&uuml;rlich per GUI. Je nach Situation ist das grafische Verwaltungsprogramm allerdings gar nicht installiert. Wer den SQL Server Express intensiver nutzen m&ouml;chte, sollte sich daher durchaus das Express-GUI installieren.</p>
<p>[SQL 2005: Microsoft SQL Server Management Studio Express]    <br /><a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=c243a5ae-4bd1-4e3d-94b8-5a0f62bf7796">http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=c243a5ae-4bd1-4e3d-94b8-5a0f62bf7796</a></p>
<p>[Microsoft SQL Server 2008 Management Studio Express]    <br /><a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=08e52ac2-1d62-45f6-9a4a-4b76a8564a2b">http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=08e52ac2-1d62-45f6-9a4a-4b76a8564a2b</a></p>
<p>Dort ruft man per Rechtsklick auf den Server dessen Eigenschaften auf.Sodann befindet sich die gesuchte Einstellung unter “Sicherheit”.</p>
<p><a href="http://www.faq-o-matic.net/wp-content/uploads/2009/09/image.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.faq-o-matic.net/wp-content/uploads/2009/09/image_thumb.png" width="164" height="147" /></a> </p>
<p>Wichtig: Nach dem Umstellen muss man den Dienst “SQL Server” neu starten! </p>
<p>Au&szlig;erdem ist es n&ouml;tig, das sa-Konto zu aktivieren und mit einem Kennwort zu versehen. Alternativ kann man auch ein neues Konto erzeugen. </p>
<h4>sa-Konto aktivieren</h4>
<p>Das geht im GUI &uuml;ber den Eintrag “Sicherheit/Anmeldungen”:</p>
<p><a href="http://www.faq-o-matic.net/wp-content/uploads/2009/09/image1.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.faq-o-matic.net/wp-content/uploads/2009/09/image_thumb1.png" width="164" height="117" /></a> </p>
<p>sa-Konto mit neuem Kennwort versehen …</p>
<p><a href="http://www.faq-o-matic.net/wp-content/uploads/2009/09/image2.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.faq-o-matic.net/wp-content/uploads/2009/09/image_thumb2.png" width="124" height="111" /></a> </p>
<p>… und aktivieren.</p>
<h4>Neues SQL-Adminkonto einrichten</h4>
<p>Auch hierzu im GUI nach “Sicherheit/Anmeldungen” navigieren und per Rechtsklick eine “Neue Anmeldung” erzeugen. Dort zun&auml;chst Name, SQL-Anmeldemodus und Kennwort w&auml;hlen …</p>
<p><a href="http://www.faq-o-matic.net/wp-content/uploads/2009/09/image3.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.faq-o-matic.net/wp-content/uploads/2009/09/image_thumb3.png" width="124" height="112" /></a> </p>
<p>… und dann unter “Serverrollen” die Rolle “sysadmin” zuweisen.</p>
<p><a href="http://www.faq-o-matic.net/wp-content/uploads/2009/09/image4.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.faq-o-matic.net/wp-content/uploads/2009/09/image_thumb4.png" width="124" height="112" /></a> </p>
<h3>Die nichtgrafische Methode</h3>
<p>Wer sich die Installation des Management Studio f&uuml;r diesen Zweck ersparen will, hat aber auch eine M&ouml;glichkeit. Die Anleitung gilt f&uuml;r SQL 2005 und SQL 2008 Express.</p>
<ul>
<li>Registry-Editor starten. </li>
<li>Navigieren zu: <em>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server</em> </li>
<li>Dort den Unterschl&uuml;ssel f&uuml;r die gew&uuml;nschte Instanz heraussuchen (in meinem Fall: <em>MSSQL10.SQLEXPRESS</em>). </li>
<li>darunter in den Schl&uuml;ssel <em>MSSQLServer</em> wechseln. In den Details steht der Eintrag <em>“LoginMode”.</em> </li>
<li>Der Modus steht standardm&auml;&szlig;ig auf <em>1</em> (Windows-Authentisierung). Diesen &auml;ndern auf <em>2</em> (SQL- und Windows-Authrntisierung). </li>
<li>Registry-Editor beenden. </li>
<li>Dienst<em> SQL Server</em> neu starten. </li>
</ul>
<p>Damit ist man aber leider noch nicht fertig. Nun muss das <em>sa</em>-Konto noch aktiviert und mit einem Kennwort versehen werden. Je nach Applikation kann man das sa-Konto ggf. auch inaktiv lassen und stattdessen ein neues Konto erzeugen.</p>
<h4>sa-Konto aktivieren</h4>
<p>Das <em>sa</em>-Konto kann man in SQL 2005 und SQL 2008 mit dem Kommandozeilenprogramm <em>osql</em> bearbeiten. Vorsicht, das ist etwas eigen.</p>
<p>Lautet der Name der SQL-Server-Instanz “SQLEXPRESS” (das ist Standard), so startet man osql mit folgender Kommandozeile:</p>
<p><font face="Courier New">osql –E –S .\SQLEXPRESS</font></p>
<p>Dann f&uuml;hrt man dort folgende Kommandofolge aus (nur die roten Teile eintippen!):</p>
<p><font face="Courier New">1&gt; <font color="#ff0000"><strong>ALTER LOGIN sa ENABLE</strong></font>       <br />2&gt; <font color="#ff0000"><strong>GO</strong></font>       <br />1&gt; </font><font face="Courier New"><font color="#ff0000"><strong>ALTER LOGIN sa WITH PASSWORD = &#039;Mein geheimes Kennwort!&#039;          <br /></strong></font>2&gt; <font color="#ff0000"><strong>GO</strong></font>       <br />1&gt; <font color="#ff0000"><strong>quit</strong></font></font></p>
<p>Nun sollte der Login als sa mit dem vergebenen Kennwort (bitte ein starkes Kennwort w&auml;hlen!) m&ouml;glich sein.</p>
<h4>Neues SQL-Adminkonto einrichten</h4>
<p>Statt den sa-Account zu nutzen, kann man auch ein neues Adminkonto erzeugen. Das geht so:</p>
<p>Lautet der Name der SQL-Server-Instanz “SQLEXPRESS” (das ist Standard), so startet man osql mit folgender Kommandozeile:</p>
<p><font face="Courier New">osql –E –S .\SQLEXPRESS</font></p>
<p>Dann f&uuml;hrt man dort folgende Kommandofolge aus (nur die roten Teile eintippen!):</p>
<p><font face="Courier New">1&gt; </font><font face="Courier New"><font color="#ff0000"><strong>EXEC sp_addlogin &#039;MeinAdmin&#039;, &#039;Mein supergeheimes Kennwort!&#039;          <br /></strong></font>2&gt; <font color="#ff0000"><strong>GO</strong></font>       <br />1&gt; </font><font face="Courier New"><font color="#ff0000"><strong>EXEC sp_addsrvrolemember &#039;MeinAdmin&#039;, &#039;sysadmin&#039;          <br /></strong></font>2&gt; <font color="#ff0000"><strong>GO</strong></font>       <br />1&gt; <font color="#ff0000"><strong>quit</strong></font></font></p>
<p>Jetzt sollte man sich mit diesem neuen Konto auf SQL-Ebene anmelden k&ouml;nnen.</p>
<h3>Referenz</h3>
<p>[HOWTO: Configure Microsoft SQL Server for Mixed Mode Authentication - Eduzine©]    <br /><a href="http://eduzine.edujini-labs.com/archives/24-HOWTO-Configure-Microsoft-SQL-Server-for-Mixed-Mode-Authentication.html">http://eduzine.edujini-labs.com/archives/24-HOWTO-Configure-Microsoft-SQL-Server-for-Mixed-Mode-Authentication.html</a></p>
<h3>Verwandte Beiträge:</h3><ol>
<li><a href='http://www.faq-o-matic.net/2008/04/20/automatische-backups-fr-sql-server-express/' rel='bookmark' title='Automatische Backups f&uuml;r SQL Server Express'>Automatische Backups f&uuml;r SQL Server Express</a> <br /><small>Die Express-Edition des SQL Server 2005 erfreut sich &auml;hnlich gro&szlig;er...</small></li>
<li><a href='http://www.faq-o-matic.net/2010/05/21/sql-server-2008-admins-haben-keine-sysadmin-rechte/' rel='bookmark' title='SQL Server 2008: Admins haben keine sysadmin-Rechte'>SQL Server 2008: Admins haben keine sysadmin-Rechte</a> <br /><small>Mit SQL Server 2008 hat Microsoft das Sicherheitsmodell seines Datenbankservers...</small></li>
<li><a href='http://www.faq-o-matic.net/2002/02/12/sa-konto-absichern/' rel='bookmark' title='sa-Konto absichern'>sa-Konto absichern</a> <br /><small>Eigentlich ist es seit Jahren bekannt &#8230;&#8230; aber immer wieder...</small></li>
</ol>]]></content:encoded>
			<wfw:commentRss>http://www.faq-o-matic.net/2009/09/10/sql-server-express-authentisierungsmodus-umschalten/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Warum muss eine Datenbank zum Backup konsistent sein?</title>
		<link>http://www.faq-o-matic.net/2009/03/20/warum-muss-eine-datenbank-zum-backup-konsistent-sein/</link>
		<comments>http://www.faq-o-matic.net/2009/03/20/warum-muss-eine-datenbank-zum-backup-konsistent-sein/#comments</comments>
		<pubDate>Fri, 20 Mar 2009 18:58:00 +0000</pubDate>
		<dc:creator>Nils Kaczenski</dc:creator>
				<category><![CDATA[Datensicherung]]></category>
		<category><![CDATA[Exchange]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Wiederherstellung]]></category>

		<guid isPermaLink="false">http://www.faq-o-matic.net/2009/03/20/warum-muss-eine-datenbank-zum-backup-konsistent-sein/</guid>
		<description><![CDATA[Aus einer Diskussion: Ein Berater ist der Ansicht, ein sog. “Hot Backup” einer relationalen Datenbank wie SQL Server, Oracle oder Exchange sei kein Problem, wenn man sie mit einem SAN-Snapshot herstellt. Die Gefahr einer Inkonsistenz der Datenbank sei zu vernachl&#228;ssigen, weil sehr unwahrscheinlich. Das Argument, dass “Hot Backups” vom Datenbankhersteller nicht supportet seien, ziehe nicht, [...]<h3>Verwandte Beiträge:</h3><ol>
<li><a href='http://www.faq-o-matic.net/2008/07/19/ms-sql-2005-transaction-log-von-der-datenbank-trennen/' rel='bookmark' title='MS SQL 2005: Transaction Log von der Datenbank trennen'>MS SQL 2005: Transaction Log von der Datenbank trennen</a> <small>Mit dem &#034;MS SQL Server Management Studio&#034; ist es nicht...</small></li>
<li><a href='http://www.faq-o-matic.net/2010/08/12/scvmm-vm-aus-der-datenbank-entfernen/' rel='bookmark' title='SCVMM: VM aus der Datenbank entfernen'>SCVMM: VM aus der Datenbank entfernen</a> <small>In einer speziellen Situation ergab sich die Anforderung, eine virtuelle...</small></li>
<li><a href='http://www.faq-o-matic.net/2006/08/04/warum-images-nicht-als-datensicherung-taugen/' rel='bookmark' title='Warum Images nicht als Datensicherung taugen'>Warum Images nicht als Datensicherung taugen</a> <small>Images sind sehr beliebt. Die Technik, eine ganze Festplatte oder...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Aus einer Diskussion: Ein Berater ist der Ansicht, ein sog. “Hot Backup” einer relationalen Datenbank wie SQL Server, Oracle oder Exchange sei kein Problem, wenn man sie mit einem SAN-Snapshot herstellt. Die Gefahr einer Inkonsistenz der Datenbank sei zu vernachl&auml;ssigen, weil sehr unwahrscheinlich. Das Argument, dass “Hot Backups” vom Datenbankhersteller nicht supportet seien, ziehe nicht, denn es gehe um die Praxis.</p>
<p>Warum irrt er?</p>
<p> <span id="more-1214"></span>
<p>Zum einen: f&uuml;r mich ist &quot;kein Herstellersupport&quot; ein schlagendes Sachargument, denn ich habe schon zahlreiche Situationen erlebt, in denen man ohne den Hersteller das jeweilige System h&auml;tte einstampfen k&ouml;nnen. </p>
<p>Zum anderen aber – technisch argumentiert: Eine Datenbank wie SQL Server (aber auch alle anderen) arbeitet nach dem &quot;Lazy Writer&quot;-Prinzip. Das bedeutet folgenden Ablauf (schematisch vereinfacht): </p>
<ol>
<li>Eine Applikation fordert eine &Auml;nderung von Daten an (UPDATE oder INSERT usw.).</li>
<li>SQL Server l&auml;dt die betreffenden Datenbankseiten in den Cache (=RAM) bzw. lokalisiert sie dort.</li>
<li>SQL Server schreibt die &Auml;nderung ins Transaktionsprotokoll.</li>
<li>SQL Server &auml;ndert die Seiten im Cache (=RAM).</li>
<li>SQL Server sendet der Applikation ein Acknowledge &uuml;ber die &Auml;nderung.</li>
<li>Erst beim n&auml;chsten Intervall schreibt SQL Server die Daten in die Datenbankdatei, aber im Regelfall nicht sofort. (Steigert Performance, weil es Random Writes einspart.) </li>
</ol>
<p>Wenn nun nach Schritt 5 der Strom weg ist &#8211; oder man eben einen Snapshot macht -, entsprechen die Daten auf der Platte nicht dem Stand, der an die Applikation berichtet wurde. Nun k&ouml;nnte man argumentieren: Kein Problem, daf&uuml;r hat man ja das Transaktionsprotokoll. Richtig, hat man auch, und genau daf&uuml;r ist es da. Das setzt aber voraus, dass das Protokoll auch nutzbar ist &#8211; und sich auf exakt demselben Stand (hier also Schritt 3) befindet. Nun liegt das Log aber i.d.R. auf einer anderen LUN als die Datenbank. Ist es also im Falle des &quot;Hot Backups&quot; per Snapshot (oder wie immer) auf demselben Stand? Das wage ich energisch zu bezweifeln. </p>
<p>Selbst in einem normalen Strom-weg-Szenario ohne Snapshot bleibt hier ein Risiko, denn es kann ja sein, dass das Transaktionsprotokoll besch&auml;digt ist. Wenn man hier noch ein Risiko in seinem Backup hat, macht das aus meiner Sicht ein bisschen viel Risiko f&uuml;r einen sensiblen Bereich. </p>
<p>Man kann das auch variieren: Eine Datenbank kann ja auch selbst auf mehrere LUNs verteilt sein &#8211; gerade bei gro&szlig;en Datenbanken gibt es mehrere Gr&uuml;nde daf&uuml;r. Nun betrifft ein Update beispielsweise mehrere Tabellen, die in Datenbankdateien auf mehreren LUNs liegen. Es muss hierbei schon mit schwarzer Magie zugehen, wenn man erwartet, dieses Szenario in einem &quot;Hot Backup&quot; konsistent hinzubekommen. Wir reden ja u.U. von High-Performance-Datenbanken, in der tausende Transaktionen in einer Sekunde verarbeitet werden. </p>
<p>Das muss man aber gar nicht so weit f&uuml;hren. Auch eine Transaktion in einer “ganz normalen” Datenbank, die nicht &uuml;ber mehrere LUNs verteilt ist, kann Datenbankseiten auf ganz unterschiedlichen Plattenbereichen betreffen. Nat&uuml;rlich m&uuml;ssen diese &Auml;nderungen alle gemeinsam geschrieben werden (oder eben gar nicht). Ein “Hot Backup” wie ein Snapshot kann aber nicht wissen, wann eine Transaktion abgeschlossen ist und “fotografiert” einfach mitten rein. Hier kann ein weiteres Problem auftreten: Eine Datenbankseite wird gar nicht vollst&auml;ndig geschrieben (“Torn Page”). Ein solches Problem wird u.U. nicht beim anschlie&szlig;enden Durchlauf der Transaktionsprotokolle beim Neustart der Datenbank behoben und bleibt unentdeckt. Je nach Konfiguration der Datenbank hat man also das Risiko unbrauchbarer Daten – oder die Datenbank h&auml;lt an, weil sie das Problem bemerkt hat (“Torn Page Detection”) und fordert zum Restore aus einem Backup auf. Dumm, wenn das Restore gerade der Grund f&uuml;r das Problem war.</p>
<p>Auch der manchmal vorgeschlagene “Ausweg”, Datenbank- und Transaktionsprotokolldateien auf dieselbe LUN zu legen, um mit einem einzigen Snapshot arbeiten zu k&ouml;nnen, ist also kein echter Ausweg. Zumal man dies bei belasteten Datenbanken schon deshalb nicht machen wird, weil ein Transaktionsprotokoll auch mal pl&ouml;tzlich sehr stark anwachsen kann und auf einer separaten LUN besser aufgehoben ist.</p>
<p>Und das Argument mit &quot;unwahrscheinlich&quot; wird schon von der Praxis widerlegt, denn im Support gibt es st&auml;ndig Anwenderprobleme, die auf Inkonsistenzen durch falsche Datenbanksicherungen zur&uuml;ckzuf&uuml;hren sind. Das hat z.B. &uuml;berhaupt nichts mit der Dauer zu tun, die ein Snapshot zum Erzeugen braucht, sondern liegt einfach in der Art, wie relationale Datenbanken ihre Daten ablegen. </p>
<p>Schlie&szlig;lich bleibt das Nutzenargument: SQL Server hat etwa mit der VSS-Schnittstelle eine eingebaute (und supportete) M&ouml;glichkeit, f&uuml;r Backupzwecke eine Konsistenz zu erzeugen. Warum darauf verzichten und ein noch so kleines Risiko eingehen?</p>
<h3>Verwandte Beiträge:</h3><ol>
<li><a href='http://www.faq-o-matic.net/2008/07/19/ms-sql-2005-transaction-log-von-der-datenbank-trennen/' rel='bookmark' title='MS SQL 2005: Transaction Log von der Datenbank trennen'>MS SQL 2005: Transaction Log von der Datenbank trennen</a> <br /><small>Mit dem &#034;MS SQL Server Management Studio&#034; ist es nicht...</small></li>
<li><a href='http://www.faq-o-matic.net/2010/08/12/scvmm-vm-aus-der-datenbank-entfernen/' rel='bookmark' title='SCVMM: VM aus der Datenbank entfernen'>SCVMM: VM aus der Datenbank entfernen</a> <br /><small>In einer speziellen Situation ergab sich die Anforderung, eine virtuelle...</small></li>
<li><a href='http://www.faq-o-matic.net/2006/08/04/warum-images-nicht-als-datensicherung-taugen/' rel='bookmark' title='Warum Images nicht als Datensicherung taugen'>Warum Images nicht als Datensicherung taugen</a> <br /><small>Images sind sehr beliebt. Die Technik, eine ganze Festplatte oder...</small></li>
</ol>]]></content:encoded>
			<wfw:commentRss>http://www.faq-o-matic.net/2009/03/20/warum-muss-eine-datenbank-zum-backup-konsistent-sein/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MS SQL 2005: Transaction Log von der Datenbank trennen</title>
		<link>http://www.faq-o-matic.net/2008/07/19/ms-sql-2005-transaction-log-von-der-datenbank-trennen/</link>
		<comments>http://www.faq-o-matic.net/2008/07/19/ms-sql-2005-transaction-log-von-der-datenbank-trennen/#comments</comments>
		<pubDate>Sat, 19 Jul 2008 20:55:10 +0000</pubDate>
		<dc:creator>Rüdiger Tonn</dc:creator>
				<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://www.faq-o-matic.net/?p=849</guid>
		<description><![CDATA[Mit dem &#034;MS SQL Server Management Studio&#034; ist es nicht m&#246;glich, das Transactionsprotokoll auf eine andere Platte als die Datenbankdatei zu verschieben, sofern man nicht von Anfang an die Datenbank so konzipiert, dass beide Files auf unterschiedlichen Laufwerken liegen. Sollte man eines Tages in die Verlegenheit kommen, beide Files nachtr&#228;glich voneinander trennen zu m&#252;ssen, dann [...]<h3>Verwandte Beiträge:</h3><ol>
<li><a href='http://www.faq-o-matic.net/2009/03/20/warum-muss-eine-datenbank-zum-backup-konsistent-sein/' rel='bookmark' title='Warum muss eine Datenbank zum Backup konsistent sein?'>Warum muss eine Datenbank zum Backup konsistent sein?</a> <small>Aus einer Diskussion: Ein Berater ist der Ansicht, ein sog....</small></li>
<li><a href='http://www.faq-o-matic.net/2010/08/12/scvmm-vm-aus-der-datenbank-entfernen/' rel='bookmark' title='SCVMM: VM aus der Datenbank entfernen'>SCVMM: VM aus der Datenbank entfernen</a> <small>In einer speziellen Situation ergab sich die Anforderung, eine virtuelle...</small></li>
<li><a href='http://www.faq-o-matic.net/2005/09/10/grosse-datenbank/' rel='bookmark' title='Gro&#223;e Datenbank'>Gro&#223;e Datenbank</a> <small>Wir hatten mal einen Kunden, der sich (wie auch immer)...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Mit dem &#034;MS SQL Server Management Studio&#034; ist es nicht m&ouml;glich, das Transactionsprotokoll auf eine andere Platte als die Datenbankdatei zu verschieben, sofern man nicht von Anfang an die Datenbank so konzipiert, dass beide Files auf unterschiedlichen Laufwerken liegen. Sollte man eines Tages in die Verlegenheit kommen, beide Files nachtr&auml;glich voneinander trennen zu m&uuml;ssen, dann geht man wie folgt vor:</p>
<ol>
<li> &#034;MS SQL Server Management Studio&#034; mit einer Verbindung zur Datenbank &ouml;ffnen.</li>
<li>Falls nicht schon vorhanden, ein &#034;Query with Current Connection&#034; &ouml;ffnen (STRG+N).</li>
<li>Folgendes Script einf&uuml;gen und den Datenbanknamen anpassen:<br />
use master<br />
go<br />
sp_detach_db &#039;Datenbank_Name&#039;<br />
go</li>
<li>Jetzt k&ouml;nnen die beiden Datenankdateien (*.mdf &amp; *_log.ldf) verschoben werden.</li>
<li>Folgendes Script einf&uuml;gen, Datenbankname und Verzeichnispfade anpassen:<br />
use master<br />
go<br />
sp_attach_db &#039;Datenbank_Name&#039;,'D:\Verzeichnis\Datenbank_Name.mdf&#039;,'E:\Verzeichnis\Datenbank_Name_log.ldf&#039;<br />
go</li>
</ol>
<p><strong>Erkl&auml;rung:</strong></p>
<p>Im dritten Schritt wirde die Datenbank vom MS SQL Server abgetrennt. Sobald die Datenbank abgetrennt wurde, kann man die eigentlichen Datenbankdateien verschieben und die Transactionsprotokolldatei (*_log.ldf) z.B. auf eine andere Partition verschieben.</p>
<p>Im f&uuml;nften Schritt wird die Datenbank wieder angef&uuml;gt, jedoch wird beim Anf&uuml;gen dem MS SQL Server mitgeteilt, wo die entsprechenden Datenbankdateien sich befinden.</p>
<p> </p>
<h3>Verwandte Beiträge:</h3><ol>
<li><a href='http://www.faq-o-matic.net/2009/03/20/warum-muss-eine-datenbank-zum-backup-konsistent-sein/' rel='bookmark' title='Warum muss eine Datenbank zum Backup konsistent sein?'>Warum muss eine Datenbank zum Backup konsistent sein?</a> <br /><small>Aus einer Diskussion: Ein Berater ist der Ansicht, ein sog....</small></li>
<li><a href='http://www.faq-o-matic.net/2010/08/12/scvmm-vm-aus-der-datenbank-entfernen/' rel='bookmark' title='SCVMM: VM aus der Datenbank entfernen'>SCVMM: VM aus der Datenbank entfernen</a> <br /><small>In einer speziellen Situation ergab sich die Anforderung, eine virtuelle...</small></li>
<li><a href='http://www.faq-o-matic.net/2005/09/10/grosse-datenbank/' rel='bookmark' title='Gro&#223;e Datenbank'>Gro&#223;e Datenbank</a> <br /><small>Wir hatten mal einen Kunden, der sich (wie auch immer)...</small></li>
</ol>]]></content:encoded>
			<wfw:commentRss>http://www.faq-o-matic.net/2008/07/19/ms-sql-2005-transaction-log-von-der-datenbank-trennen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Launch 2008: Die Session-Videos sind online</title>
		<link>http://www.faq-o-matic.net/2008/04/24/launch-2008-die-session-videos-sind-online/</link>
		<comments>http://www.faq-o-matic.net/2008/04/24/launch-2008-die-session-videos-sind-online/#comments</comments>
		<pubDate>Thu, 24 Apr 2008 09:29:15 +0000</pubDate>
		<dc:creator>Nils Kaczenski</dc:creator>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[Events]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Windows Server 2008]]></category>

		<guid isPermaLink="false">http://www.faq-o-matic.net/2008/04/24/launch-2008-die-session-videos-sind-online/</guid>
		<description><![CDATA[Microsoft hat die Video-Aufzeichnungen aller Vortr&#228;ge des gro&#223;en Server-Launch vom Februar 2008 ver&#246;ffentlicht. Damit k&#246;nnen alle Interessierten sich die Sessions noch einmal ansehen &#8211; egal, ob sie live dabei waren oder nicht. Die Teilnehmer, die vor Ort waren, d&#252;rften jetzt in K&#252;rze ihre DVD mit allen Vortr&#228;gen nach Hause geschickt bekommen. Die Vortr&#228;ge sind in [...]<h3>Verwandte Beiträge:</h3><ol>
<li><a href='http://www.faq-o-matic.net/2008/03/15/so-war-der-launch-exklusive-session-videos/' rel='bookmark' title='So war der Launch: Exklusive Session-Videos'>So war der Launch: Exklusive Session-Videos</a> <small>Vor wenigen Wochen hat Microsoft in Deutschland seine neuen Produkte...</small></li>
<li><a href='http://www.faq-o-matic.net/2011/09/19/tu-mir-das-nicht-an-sagte-der-dc-das-video/' rel='bookmark' title='ice:2011: Die Videos sind online'>ice:2011: Die Videos sind online</a> <small>Ein Teil der diesj&auml;hrigen ice:2011 in Lingen wurde von Microsoft...</small></li>
<li><a href='http://www.faq-o-matic.net/2008/02/05/windows-server-2008-und-vista-sp1-sind-fertig/' rel='bookmark' title='Windows Server 2008 und Vista SP1 sind fertig!'>Windows Server 2008 und Vista SP1 sind fertig!</a> <small>Mittlerweile pfeifen es schon viele Spatzen von den D&auml;chern: Seit...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.faq-o-matic.net/wp-content/uploads/2008/04/image2.png"><img style="border-right: 0px; border-top: 0px; margin: 0px 10px 10px 0px; border-left: 0px; border-bottom: 0px" src="http://www.faq-o-matic.net/wp-content/uploads/2008/04/image-thumb2.png" border="0" alt="image" width="154" height="132" align="left" /></a> Microsoft hat die Video-Aufzeichnungen aller Vortr&auml;ge des gro&szlig;en Server-Launch vom Februar 2008 ver&ouml;ffentlicht. Damit k&ouml;nnen alle Interessierten sich die Sessions noch einmal ansehen &#8211; egal, ob sie live dabei waren oder nicht. Die Teilnehmer, die vor Ort waren, d&uuml;rften jetzt in K&uuml;rze ihre DVD mit allen Vortr&auml;gen nach Hause geschickt bekommen.</p>
<p>Die Vortr&auml;ge sind in guter Qualit&auml;t im Split-Screen-Verfahren aufgenommen worden: Links ein kleines Video des Redners, rechts gro&szlig; der Bildschirminhalt (wichtig bei Demos). Da der Ton nat&uuml;rlich direkt vom Sprechermikro aufgenommen wurde, d&uuml;rfte in manchen F&auml;llen der Sprecher sogar besser verst&auml;ndlich sein als vor Ort, denn in den Messehallen war die Akustik teils nicht ganz so toll.</p>
<p>Hier der Link:</p>
<p>[Microsoft Launch 2008 – Home]<br />
<a href="http://www.microsoft.com/germany/msdn/launch2008/default.mspx">http://www.microsoft.com/germany/msdn/launch2008/default.mspx</a></p>
<p>Viel Spa&szlig;!</p>
<p><em>(Interessant f&uuml;r mich &uuml;brigens, mal selbst zu sehen, wie sehr ich den Kameramann auf Trab gehalten habe &#8230;)</em></p>
<h3>Verwandte Beiträge:</h3><ol>
<li><a href='http://www.faq-o-matic.net/2008/03/15/so-war-der-launch-exklusive-session-videos/' rel='bookmark' title='So war der Launch: Exklusive Session-Videos'>So war der Launch: Exklusive Session-Videos</a> <br /><small>Vor wenigen Wochen hat Microsoft in Deutschland seine neuen Produkte...</small></li>
<li><a href='http://www.faq-o-matic.net/2011/09/19/tu-mir-das-nicht-an-sagte-der-dc-das-video/' rel='bookmark' title='ice:2011: Die Videos sind online'>ice:2011: Die Videos sind online</a> <br /><small>Ein Teil der diesj&auml;hrigen ice:2011 in Lingen wurde von Microsoft...</small></li>
<li><a href='http://www.faq-o-matic.net/2008/02/05/windows-server-2008-und-vista-sp1-sind-fertig/' rel='bookmark' title='Windows Server 2008 und Vista SP1 sind fertig!'>Windows Server 2008 und Vista SP1 sind fertig!</a> <br /><small>Mittlerweile pfeifen es schon viele Spatzen von den D&auml;chern: Seit...</small></li>
</ol>]]></content:encoded>
			<wfw:commentRss>http://www.faq-o-matic.net/2008/04/24/launch-2008-die-session-videos-sind-online/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Automatische Backups f&#252;r SQL Server Express</title>
		<link>http://www.faq-o-matic.net/2008/04/20/automatische-backups-fr-sql-server-express/</link>
		<comments>http://www.faq-o-matic.net/2008/04/20/automatische-backups-fr-sql-server-express/#comments</comments>
		<pubDate>Sun, 20 Apr 2008 18:22:23 +0000</pubDate>
		<dc:creator>Nils Kaczenski</dc:creator>
				<category><![CDATA[Administration]]></category>
		<category><![CDATA[Datensicherung]]></category>
		<category><![CDATA[Scripting]]></category>
		<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://www.faq-o-matic.net/2008/04/20/automatische-backups-fr-sql-server-express/</guid>
		<description><![CDATA[Die Express-Edition des SQL Server 2005 erfreut sich &#228;hnlich gro&#223;er Beliebtheit wie ihre Vorg&#228;ngerin MSDE. Der Grund liegt auf der Hand: Nicht nur ist diese Datenbank kostenlos, sondern sie ist (fast) genauso leistungsf&#228;hig wie der &#034;gro&#223;e&#034; SQL Server aus dem Hause Microsoft. Ganz nebenbei spricht SQL Server 2005 Express aber auch dieselbe Sprache wie der [...]<h3>Verwandte Beiträge:</h3><ol>
<li><a href='http://www.faq-o-matic.net/2009/09/10/sql-server-express-authentisierungsmodus-umschalten/' rel='bookmark' title='SQL Server Express: Authentisierungsmodus umschalten'>SQL Server Express: Authentisierungsmodus umschalten</a> <small>SQL Server kennt seit jeher zwei Authentisierungsmodi: “Windows-Authentifizierungsmodus” und “SQL...</small></li>
<li><a href='http://www.faq-o-matic.net/2008/11/19/exchange-server-2007-sp1-und-remote-streaming-backup/' rel='bookmark' title='Exchange Server 2007 SP1 und Remote Streaming Backup'>Exchange Server 2007 SP1 und Remote Streaming Backup</a> <small>Um eine Exchange Server Datenbank zu sichern, wird in den...</small></li>
<li><a href='http://www.faq-o-matic.net/2006/04/19/automatische-systemwiederherstellung-asr/' rel='bookmark' title='Automatische Systemwiederherstellung (ASR)'>Automatische Systemwiederherstellung (ASR)</a> <small>Die automatische Systemwiederherstellung (ASR = Automated System Recovery) sollte die...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Die Express-Edition des SQL Server 2005 erfreut sich &auml;hnlich gro&szlig;er Beliebtheit wie ihre Vorg&auml;ngerin MSDE. Der Grund liegt auf der Hand: Nicht nur ist diese Datenbank kostenlos, sondern sie ist (fast) genauso leistungsf&auml;hig wie der &#034;gro&szlig;e&#034; SQL Server aus dem Hause Microsoft. Ganz nebenbei spricht SQL Server 2005 Express aber auch dieselbe Sprache wie der ausgewachsene Datenbankserver, und das macht es einfach, bei Bedarf auf die Vollversion umzusteigen: In der Applikation muss nur der Servername angepasst und dann die Datenbank verschoben werden, und alles l&auml;uft wie vorher.</p>
<p>Neben den funktionalen Einschr&auml;nkungen &#8211; die Gr&ouml;&szlig;e der verwaltbaren Datenbanken ist begrenzt, und es k&ouml;nnen nur wenige Benutzer gleichzeitig performant arbeiten &#8211; gibt es aber auch in der Verwaltung der Datenbanken einige Hindernisse. Das Verwaltungswerkzeug SQL Server Management Studio fehlt, und auch die Automatisierungskomponente SQL Server Agent ist bei der Express Edition nicht ohne Weiteres nutzbar. Wenn man wei&szlig;, was zu tun ist, l&auml;sst sich diese L&uuml;cke aber f&uuml;r viele F&auml;lle mit dem Windows-eigenen Taskplaner und ein paar Skripts &uuml;berbr&uuml;cken.</p>
<p>Ein gro&szlig;es Problem in der Praxis ist, dass viele Express-Datenbanken faktisch nie richtig gesichert werden. Ein Serverausfall hat so unter Umst&auml;nden kritische Auswirkungen, denn die Daten sind weg. Dabei bringt SQL Server selbst schon alles mit, was man f&uuml;r eine ordentliche Datensicherung braucht &#8211; auch die Express Edition kann das. Man muss nur wissen, wie.</p>
<p><span id="more-802"></span></p>
<h3>SQL-Sicherung mit Bordmitteln</h3>
<p>Das folgende Skript sichert sowohl die Datenbank selbst als auch die Transaktionsprotokolle in jeweils eine Datei. Letzteres ist wichtig, falls das &#034;Wiederherstellungsmodell&#034; der Datenbank auf &#034;Vollst&auml;ndig&#034; steht. Wird in diesem Fall keine regelm&auml;&szlig;ige Transaktionsprotokollsicherung durchgef&uuml;hrt, kann die Serverfestplatte volllaufen. Im Beispiel hei&szlig;t die Datenbank &#034;MeineDB&#034;.</p>
<pre>BACKUP DATABASE [MeineDB] TO DISK='C:\Backup\MeineDB_sich.bak'
WITH  INIT, NAME = N'MeineDB_Sicherung'

BACKUP LOG [MeineDB] TO DISK='C:\Backup\MeineDB_Log_sich.bak'
WITH INIT, NAME = N'MeineDB_Log_Sicherung'</pre>
<p>Die Option &#034;with init&#034; sorgt daf&uuml;r, dass die Sicherungsdatei bei jedem Backup &uuml;berschrieben wird. In der Datei ist so nur die letzte Sicherung enthalten. Diese Datei wird gespeichert als &#034;MeineDB-Fullbackup.sql&#034;. Wer in einem separaten Job nur die Transaktionprotokolle sichern m&ouml;chte, teilt die Datei in zwei und setzt jeweils nur das &#034;backup database&#034;- bzw. das &#034;backup log&#034;-Kommando in eine Datei. Der folgende Code bildet die Batchdatei, die z.B. t&auml;glich mit dem Windows-Taskplaner aufgerufen wird:</p>
<pre>@echo off
rem Ausf&uuml;hren eines Full Backup der MeineDB-Datenbank
rem !! das Folgende ist eine einzige Zeile!
"C:\Programme\Microsoft SQL Server\90\Tools\binn\SQLCMD.EXE" -S DBSERVER
   -E -i C:\Backup\MeineDB-FullBackup.sql -o C:\Backup\BackupLog.txt
rem !! ab hier wieder normal

rem Zeitstempel erzeugen
for /f "tokens=1-4 delims=. " %%i in ("%date%") do (
  set day=%%i
  set month=%%j
  set year=%%k
)

for /f "tokens=1-4 delims=.:, " %%i in ("%time%") do (
 set hour=%%i
 set minute=%%j
 set second=%%k
 set hundredth=%%l
)

rem Log-Datei mit Zeitstempel umbenennen
ren C:\Backup\BackupLog.txt FullBackup-%year%-%month%-%day%-%hour%-%minute%.txt</pre>
<p>Diese Batchdatei ruft das SQL-Sicherungsskript mit dem Hilfsprogramm sqlcmd.exe auf, das den SQL Server auf der Kommandozeile ansteuern kann. Der Datenbankserver tr&auml;gt hier den Namen &#034;DBSERVER&#034;. Zur besseren Nachverfolgung schreibt die Batchdatei die Ausgaben des sqlcmd-Kommandos in eine Logdatei, die dann mit dem aktuellen Zeitstempel umbenannt wird.</p>
<p>Dieses Verfahren funktioniert (voraussichtlich) auch mit SQL Server 2008 Express Edition. Nat&uuml;rlich kann man so auch Datenbanken eines &#034;echten&#034; SQL Server sichern, nur ist es in dem Fall sinnvoller, das SQL-Backupskript gleich &uuml;ber den mitgelieferten SQL Server Agent auszuf&uuml;hren, der sich zur SQL-Automatisierung noch besser eignet.</p>
<h3>Verwandte Beiträge:</h3><ol>
<li><a href='http://www.faq-o-matic.net/2009/09/10/sql-server-express-authentisierungsmodus-umschalten/' rel='bookmark' title='SQL Server Express: Authentisierungsmodus umschalten'>SQL Server Express: Authentisierungsmodus umschalten</a> <br /><small>SQL Server kennt seit jeher zwei Authentisierungsmodi: “Windows-Authentifizierungsmodus” und “SQL...</small></li>
<li><a href='http://www.faq-o-matic.net/2008/11/19/exchange-server-2007-sp1-und-remote-streaming-backup/' rel='bookmark' title='Exchange Server 2007 SP1 und Remote Streaming Backup'>Exchange Server 2007 SP1 und Remote Streaming Backup</a> <br /><small>Um eine Exchange Server Datenbank zu sichern, wird in den...</small></li>
<li><a href='http://www.faq-o-matic.net/2006/04/19/automatische-systemwiederherstellung-asr/' rel='bookmark' title='Automatische Systemwiederherstellung (ASR)'>Automatische Systemwiederherstellung (ASR)</a> <br /><small>Die automatische Systemwiederherstellung (ASR = Automated System Recovery) sollte die...</small></li>
</ol>]]></content:encoded>
			<wfw:commentRss>http://www.faq-o-matic.net/2008/04/20/automatische-backups-fr-sql-server-express/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

