<?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>Mostly Anything &#187; Datenbanken</title>
	<atom:link href="http://blog.devnull.ch/category/it/db/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.devnull.ch</link>
	<description>IT Blog über VMWare, SQL, Storage, Security und mehr.</description>
	<lastBuildDate>Thu, 20 Oct 2011 12:33:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Resolution State in SCOM 2007 R2 automatisch setzen</title>
		<link>http://blog.devnull.ch/2011/10/17/resolution-state-in-scom-2007-r2-automatisch-setzen/</link>
		<comments>http://blog.devnull.ch/2011/10/17/resolution-state-in-scom-2007-r2-automatisch-setzen/#comments</comments>
		<pubDate>Mon, 17 Oct 2011 12:33:23 +0000</pubDate>
		<dc:creator>Marc</dc:creator>
				<category><![CDATA[Microsoft Sql Server]]></category>
		<category><![CDATA[Operations Manager]]></category>
		<category><![CDATA[Powershell]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[OpsMgr]]></category>
		<category><![CDATA[SCOM]]></category>

		<guid isPermaLink="false">http://blog.devnull.ch/?p=269</guid>
		<description><![CDATA[Bei einer SCOM Umgebung eines Kunden setzen wir verschiedene Resolution States für die verschiedenen Gruppen (Operations, Application Support, DBAs etc) ein. Die Alerts, die vom SQL Management Pack generiert werden sollen nun direkt den entsprechenden Resolution State bekommen, damit sie in der View der entsprechenden Gruppe landen. Das ganze können wir folgendermassen lösen. Wir erstellen [...]]]></description>
			<content:encoded><![CDATA[<p>Bei einer SCOM Umgebung eines Kunden setzen wir verschiedene Resolution States für die verschiedenen Gruppen (Operations, Application Support, DBAs etc) ein. Die Alerts, die vom SQL Management Pack generiert werden sollen nun direkt den entsprechenden Resolution State bekommen, damit sie in der View der entsprechenden Gruppe landen.</p>
<p>Das ganze können wir folgendermassen lösen. Wir erstellen einen Notification Command Channel, erstellen einen Subscriber und eine Subscription (nur für neue Alerts) und führen dann ein Powershell Script aus, dass den entsprechenden Resolution Code setzt.</p>
<p>Das Script sieht folgendermassen aus:</p>
<pre class="brush: powershell; title: ; notranslate">
Param (
	[string]$RMS = &quot;RootManagementServer&quot;
)
# Start the OpsMgr PSSnapin
Add-PSSnapin &quot;Microsoft.EnterpriseManagement.OperationsManager.Client&quot; -ErrorVariable errSnapin ;
Set-Location &quot;OperationsManagerMonitoring::&quot; -ErrorVariable errSnapin ;
New-ManagementGroupConnection -ConnectionString:$RMS -ErrorVariable errSnapin ;
set-location $RMS -ErrorVariable errSnapin ;

# Get all new (0) alerts where the MonitoringObjectFullName starts with Microsoft.SQLServer
$alerts = Get-Alert | ?{$_.ResolutionState -eq &quot;0&quot; -and $_.MonitoringObjectFullName -like &quot;Microsoft.SQLServer*&quot;}

foreach($alert in $alerts) {
	#Set the resolution state to DBA Group (15)
	$alert.ResolutionState = &quot;15&quot;
	$alert.Update(&quot;&quot;)
}

# Remove the OpsMgr PSSnapin
Remove-PSSnapin Microsoft.EnterpriseManagement.OperationsManager.Client
</pre>
<p>Wir verbinden uns zuerst mit dem RMS und holen alle Alerts mit Resolutio State von 0 (NEW). Wir können hier auch noch dem MonitoringObjectFullName filtern, der mit Microsoft.SQLServer beginnt (alle Alerts vom SQL Server MP).<br />
Bei diesen Alerts setzen wir den Resolution State dann auf die gewüschte Zahl.</p>
<p>Jetzt müssen wir SCOM noch so konfigurieren, dass dieses Script bei den neuen Alerts ausgeführt wird:</p>
<table border="1">
<tbody>
<tr>
<td>Neuen Notification Channel erstellen:<br />
Administration &#8211; Notifications &#8211; Channels &#8211; New Channel<br />
Namen und Beschreibung ausfüllen. Unter Settings bei Full Path den Pfad zur Powershell angeben. Bei Command Line Parameters das eigentliche Script aufführen</td>
<td><a href="http://blog.devnull.ch/wp-content/uploads/2011/10/Screenshot-2011-10-17_11.38.18.png"><img class="alignnone size-medium wp-image-285" title="Screenshot-2011-10-17_11.38.18" src="http://blog.devnull.ch/wp-content/uploads/2011/10/Screenshot-2011-10-17_11.38.18-300x263.png" alt="Command Notification Channel" width="300" height="263" /></a></td>
</tr>
<tr>
<td>Dann einen Subscriber erstellen mit dem Channel Type &#8220;Command&#8221; und useren Channel, den wir vorher erstellt haben.</td>
<td><a href="http://blog.devnull.ch/wp-content/uploads/2011/10/Subscriber_Address-2011-10-17_13.11.58.png"><img class="alignnone size-medium wp-image-286" title="Subscriber_Address-2011-10-17_13.11.58" src="http://blog.devnull.ch/wp-content/uploads/2011/10/Subscriber_Address-2011-10-17_13.11.58-300x263.png" alt="Subscriber" width="300" height="263" /></a></td>
</tr>
<tr>
<td>Nun mit einer Subscription das ganze zusammenfügen. Wir wählen unter Criteria nur die Alerts mit Resolution State 0 aus. Wir wollen ja, dass nur neue Alerts bearbeitet werden.</td>
<td><a href="http://blog.devnull.ch/wp-content/uploads/2011/10/Notification_Subscription_Wizard-2011-10-17_13.13.00.png"><img class="alignnone size-medium wp-image-287" title="Notification_Subscription_Wizard-2011-10-17_13.13.00" src="http://blog.devnull.ch/wp-content/uploads/2011/10/Notification_Subscription_Wizard-2011-10-17_13.13.00-300x190.png" alt="Subscription" width="300" height="190" /></a></td>
</tr>
<tr>
<td>Als Subscriber und Channel die vorher erstellten auswählen und ohne Alert Aging erstellen</td>
<td><a href="http://blog.devnull.ch/wp-content/uploads/2011/10/Notification_Subscription_Wizard-2011-10-17_13.13.40.png"><img class="alignnone size-medium wp-image-288" title="Notification_Subscription_Wizard-2011-10-17_13.13.40" src="http://blog.devnull.ch/wp-content/uploads/2011/10/Notification_Subscription_Wizard-2011-10-17_13.13.40-300x190.png" alt="Subscription Channel" width="300" height="190" /></a></td>
</tr>
</tbody>
</table>
<p>Nun wird bei jedem neuen Alert das Script ausgeführt und falls es ein Alert vom SQL MP ist der entsprechende Resolution State gesetzt. Natürlich können wir im Script auch noch weitere States für andere MPs setzen.</p>
<p>Die DBAs bekommen dann noch eine neue Alert View, bei der nur die Alerts mit dem State 15 angezeigt werden und sind happy, da sie die restlichen Alerts, die sie nicht interessieren nicht sehen.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.devnull.ch/2011/10/17/resolution-state-in-scom-2007-r2-automatisch-setzen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Microsoft Cluster mit Windows 2003 und HP Network Teaming</title>
		<link>http://blog.devnull.ch/2011/07/25/microsoft-cluster-mit-windows-2003-und-hp-network-teaming/</link>
		<comments>http://blog.devnull.ch/2011/07/25/microsoft-cluster-mit-windows-2003-und-hp-network-teaming/#comments</comments>
		<pubDate>Mon, 25 Jul 2011 11:33:05 +0000</pubDate>
		<dc:creator>Marc</dc:creator>
				<category><![CDATA[Microsoft Sql Server]]></category>
		<category><![CDATA[Netzwerk]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Cluster]]></category>
		<category><![CDATA[HP]]></category>
		<category><![CDATA[Teaming]]></category>

		<guid isPermaLink="false">http://blog.devnull.ch/?p=243</guid>
		<description><![CDATA[Ein Kunde benutzt HP Server und implementierte einen neuen 5 Node SQL Cluster. Die Überwachung zeigt dann immer wieder auftretende Warnungen im Eventlog, dass ein Cluster Node die Verbindung zu einem anderen Node über das Teaming Interface verloren hat. Gleich darauf erscheint dann ein Meldung, dass die Verbindung wieder hergestellt sei. Der erste Event hat [...]]]></description>
			<content:encoded><![CDATA[<p>Ein Kunde benutzt HP Server und implementierte einen neuen 5 Node SQL Cluster. Die Überwachung zeigt dann immer wieder auftretende Warnungen im Eventlog, dass ein Cluster Node die Verbindung zu einem anderen Node über das Teaming Interface verloren hat. Gleich darauf erscheint dann ein Meldung, dass die Verbindung wieder hergestellt sei.</p>
<p>Der erste Event hat die ID 1123:</p>
<blockquote><p>The node lost communication with cluster node &#8216;xxx&#8217; on network &#8216;Teaming&#8217;.</p></blockquote>
<p>Danach der Event mit der ID 1122:</p>
<blockquote><p>The node (re)established communication with cluster node &#8216;xxx&#8217; on network &#8216;Teaming&#8217;.</p></blockquote>
<p>Gemäss Microsoft ist der Heartbeat über ein Teaming Interface nicht supported. Siehe Microsoft <a href="http://support.microsoft.com/kb/254101" title="KB254101" target="_blank">KB254101</a>.</p>
<p>Der Kunde hat ein normales Heartbeat Interface und hat auf dem Teaming auch noch internen Traffic ausgewählt. Aus Redundanzgründen. Das ist jetzt abgestellt. Es wird überlegt, ob ein weiteres Heartbeat Interface installiert wird.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.devnull.ch/2011/07/25/microsoft-cluster-mit-windows-2003-und-hp-network-teaming/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>NetApp Filer via NDMP mit BackupExec 12.5 sichern</title>
		<link>http://blog.devnull.ch/2009/05/27/netapp-via-ndmp-mit-backupexec-125-sichern/</link>
		<comments>http://blog.devnull.ch/2009/05/27/netapp-via-ndmp-mit-backupexec-125-sichern/#comments</comments>
		<pubDate>Wed, 27 May 2009 12:52:03 +0000</pubDate>
		<dc:creator>Marc</dc:creator>
				<category><![CDATA[Backup]]></category>
		<category><![CDATA[Datenbanken]]></category>
		<category><![CDATA[Netapp]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[BackupExec]]></category>
		<category><![CDATA[NDMP]]></category>
		<category><![CDATA[NetApp]]></category>

		<guid isPermaLink="false">http://blog.devnull.ch/?p=69</guid>
		<description><![CDATA[BackupExec kann ja seit einiger Zeit auch NDMP, man braucht dazu nicht mehr das teure NetBackup nur für diese Funktion. Mit 12.x ist auch ein NDMP über Netzwerk möglich. Das heisst das Backup Laufwerk hängt am Mediaserver und muss nicht direkt mit dem NetApp Filer verbunden sein. Das ganze ist auch sehr schnell eingerichtet. Als [...]]]></description>
			<content:encoded><![CDATA[<p>BackupExec kann ja seit einiger Zeit auch NDMP, man braucht dazu nicht mehr das teure NetBackup nur für diese Funktion. Mit 12.x ist auch ein NDMP über Netzwerk möglich. Das heisst das Backup Laufwerk hängt am Mediaserver und muss nicht direkt mit dem NetApp Filer verbunden sein. Das ganze ist auch sehr schnell eingerichtet. Als erstes muss die NDMP Option in BackupExec installiert sein oder muss sonst nachinstalliert werden. Beim Installationsprogram von BackupExec ist die Option mit &#8220;NDMP Option&#8221; gekennzeichnet. Nun muss der NetApp Filer konfiguriert werden.</p>
<p>Zuerst schalten wir NDMP mit ndmpd on ein. Danach können wir mit ndmpd status sehen, dass NDMP auch wirklich läuft:</p>
<p><a href="http://blog.devnull.ch/wp-content/uploads/2009/05/filer011.png"><img class="alignnone size-full wp-image-71" title="filer011" src="http://blog.devnull.ch/wp-content/uploads/2009/05/filer011.png" alt="filer011" width="206" height="86" /></a></p>
<p>Nun stellen wir noch ein, dass wir mittels Username und Passwort auf NDMP zugreifen wollen:</p>
<p><a href="http://blog.devnull.ch/wp-content/uploads/2009/05/filer02.png"><img class="alignnone size-full wp-image-72" title="filer02" src="http://blog.devnull.ch/wp-content/uploads/2009/05/filer02.png" alt="filer02" width="343" height="35" /></a></p>
<p>Wir müssen sicherstellen, dass NDMP Version 4 verwendet wird:</p>
<p><a href="http://blog.devnull.ch/wp-content/uploads/2009/05/filer03.png"><img class="alignnone size-full wp-image-73" title="filer03" src="http://blog.devnull.ch/wp-content/uploads/2009/05/filer03.png" alt="filer03" width="259" height="34" /></a></p>
<p>Falls dies noch nicht der Fall ist können wir dies explizit setzen:</p>
<p><a href="http://blog.devnull.ch/wp-content/uploads/2009/05/filer04.png"><img class="alignnone size-full wp-image-74" title="filer04" src="http://blog.devnull.ch/wp-content/uploads/2009/05/filer04.png" alt="filer04" width="209" height="30" /></a></p>
<p>Nun können wir den Filer als NDMP Host hinzufügen. Dazu gehen wir in der BackupExec Konsole auf <em>Tools -&gt; Device and Media Operations -&gt; Add NDMP Server</em></p>
<p><a href="http://blog.devnull.ch/wp-content/uploads/2009/05/backupexec01.png"><img class="alignnone size-thumbnail wp-image-76" title="backupexec01" src="http://blog.devnull.ch/wp-content/uploads/2009/05/backupexec01-150x150.png" alt="backupexec01" width="150" height="150" /></a></p>
<p>Im neu erscheinenden Fenster geben wir den Hostname oder IP des NetApp Filers an und den Account mit dem BackupExec sich verbinden soll:</p>
<p><a href="http://blog.devnull.ch/wp-content/uploads/2009/05/backupexec02.png"><img class="alignnone size-full wp-image-79" title="backupexec02" src="http://blog.devnull.ch/wp-content/uploads/2009/05/backupexec02.png" alt="backupexec02" width="394" height="179" /></a></p>
<p>Das war&#8217;s auch schon. Nun können wir bei Backups oder Backup Selection Lists den NetApp Filer auswählen und Volumes, Qtrees oder einzelne Files sichern:</p>
<p><a href="http://blog.devnull.ch/wp-content/uploads/2009/05/backupexec03.png"><img class="alignnone size-full wp-image-81" title="backupexec03" src="http://blog.devnull.ch/wp-content/uploads/2009/05/backupexec03.png" alt="backupexec03" width="299" height="303" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.devnull.ch/2009/05/27/netapp-via-ndmp-mit-backupexec-125-sichern/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Oracle SQL Queries case insensitive</title>
		<link>http://blog.devnull.ch/2009/01/14/oracle-sql-queries-case-insensitive/</link>
		<comments>http://blog.devnull.ch/2009/01/14/oracle-sql-queries-case-insensitive/#comments</comments>
		<pubDate>Wed, 14 Jan 2009 12:32:13 +0000</pubDate>
		<dc:creator>Marc</dc:creator>
				<category><![CDATA[Datenbanken]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Case Insensitive]]></category>

		<guid isPermaLink="false">http://blog.devnull.ch/?p=35</guid>
		<description><![CDATA[Bei einem Projekt wird neu Oracle 11g als Datenbank verwendet. Bisher kam ausschliesslich Microsoft SQL Server (2000 &#38; 2005) zum Einsatz. Dabei gibt es natürlich ein paar Punkte, die anders sind und für Verwirrung sorgen. Ein Punkt ist, dass die Standard MS SQL Server Collation caseinsensitive, d.h. Gross- und Kleinschreibweise ist dasselbe, ist. Bei der [...]]]></description>
			<content:encoded><![CDATA[<p>Bei einem Projekt wird neu Oracle 11g als Datenbank verwendet. Bisher kam ausschliesslich Microsoft SQL Server (2000 &amp; 2005) zum Einsatz. Dabei gibt es natürlich ein paar Punkte, die anders sind und für Verwirrung sorgen. Ein Punkt ist, dass die Standard MS SQL Server Collation caseinsensitive, d.h. Gross- und Kleinschreibweise ist dasselbe, ist. Bei der Standard Oracle Installation ist das natürlich anders.</p>
<p>Bisher gab es mehrere Ansätze.</p>
<p><strong>1. UPPER verwenden</strong><br />
Es wird bei der WHERE Klausel ein UPPER() verwendet. Das wurde früher oft gemacht und funktioniert auch bei (allen) älteren Versionen.</p>
<blockquote><p>SELECT<br />
*<br />
FROM<br />
SCOTT.EMP<br />
WHERE UPPER(ENAME) = UPPER(&amp;1);</p></blockquote>
<p>Das Problem hierbei ist aber, dass ein normaler Index nicht verwendet wird. Seit 8i gibt es aber einen sogenannten &#8220;function-based index&#8221;. Damit diese verwendet werden können muss folgendes erfüllt sein:</p>
<ul>
<li>Das System Privileg &#8220;query rewrite&#8221; auf dem eigenen Schema</li>
<li>Das System Privileg &#8220;global query&#8221; auf Tabellen in anderen Schemas</li>
<li>Damit der Optimizer function based indexes erkennt mü¨ssen folgende Session oder System Variablen gesetzt sein:<br />
QUERY_REWRITE_ENABLED=TRUE<br />
QUERY_REWRITE_INTEGRITY=TRUSTED</li>
<li>Der Cost Based Optimizer muss verwendet werden</li>
</ul>
<p>Der Index wird dann folgendermassen erstellt:</p>
<blockquote><p>CREATE INDEX UPPER_ENAME_IX on ENAME ( UPPER(ENAME) ) ;</p></blockquote>
<p>Dieser Index wird dann aber nur für CASE INSENSITIVE Suchen verwendet, nicht für CASE SENSITIVE. Dazu müssten noch ein Index erstellt werden.</p>
<p><strong>2. REGEXP_LIKE</strong></p>
<p>Seit Version 10g gibt es regular expressions mit denen das Problem auch gelöst werden kanne.</p>
<p>SELECT *</p>
<p>FROM EMP</p>
<p>WHERE REGEXP_LIKE(ename,&#8217;James&#8217;,'i&#8217;);</p>
<p><strong>3. NLS_SORT &amp; NLS_COMP</strong></p>
<blockquote><p>ALTER SESSION SET NLS_COMP=ANSI;</p>
<p>ALTER SESSION SET NLS_SORT=BINARY_CI;</p>
<p>SELECT ENAME FROM EMP WHERE ENAME = &#8216;James&#8217;;</p></blockquote>
<p>Diese hat den Vorteil, dass existierende Indices verwendet werden und keine zusätliche Entwicklung notwendig wird.</p>
<p>ABER, &#8230;..</p>
<p>Dies funktioniert nicht mit LIKE. Bei LIKE kann ab 10gR2</p>
<blockquote><p>NLS_COMP=LINGUISTIC;</p></blockquote>
<p>verwendet werden. Dann klappts auch mit dem LIKE.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.devnull.ch/2009/01/14/oracle-sql-queries-case-insensitive/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQL Datenbank über 1TB gewachsen</title>
		<link>http://blog.devnull.ch/2008/12/15/sql-datenbank-uber-1tb-gewachsen/</link>
		<comments>http://blog.devnull.ch/2008/12/15/sql-datenbank-uber-1tb-gewachsen/#comments</comments>
		<pubDate>Mon, 15 Dec 2008 14:31:11 +0000</pubDate>
		<dc:creator>Marc</dc:creator>
				<category><![CDATA[Microsoft Sql Server]]></category>
		<category><![CDATA[LargeDB]]></category>
		<category><![CDATA[MSSQL]]></category>

		<guid isPermaLink="false">http://blog.devnull.ch/?p=28</guid>
		<description><![CDATA[Seit letzter Woche haben wir eine Datenbank auf Microsoft SQL Server 2005 die über 1TB gross ist. 1.15 um genau zu sein. Das ist meine erste DB auf MSSQL mit über 1TB. Hatte schon welche auf Oracle, aber bisher noch nicht auf MSSQL. Das System ist ein SAP R/3 System und die Umstellung von USGA [...]]]></description>
			<content:encoded><![CDATA[<p>Seit letzter Woche haben wir eine Datenbank auf Microsoft SQL Server 2005 die über 1TB gross ist. 1.15 um genau zu sein. Das ist meine erste DB auf MSSQL mit über 1TB. Hatte schon welche auf Oracle, aber bisher noch nicht auf MSSQL.<br />
Das System ist ein SAP R/3 System und die Umstellung von USGA auf IFRS hat die Daten fast verdoppelt. Nun wird diskutiert, ob das System auf Unicode umgestellt werden soll. Noch mehr Daten <img src='http://blog.devnull.ch/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.devnull.ch/2008/12/15/sql-datenbank-uber-1tb-gewachsen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

