<?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>Rollback &#187; errorlog</title>
	<atom:link href="http://blog.rollback.hu/tag/errorlog/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.rollback.hu</link>
	<description>SQL, üzemeltetés kicsiknek és nagyoknak.</description>
	<lastBuildDate>Thu, 17 Nov 2011 16:38:59 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Error 18456, Level 14, state &#8211; SQL Server login errors</title>
		<link>http://blog.rollback.hu/2009/12/error-18456-level-14-state-sql-server-login-errors/</link>
		<comments>http://blog.rollback.hu/2009/12/error-18456-level-14-state-sql-server-login-errors/#comments</comments>
		<pubDate>Sun, 27 Dec 2009 23:08:09 +0000</pubDate>
		<dc:creator>Erik</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[errorlog]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://blog.rollback.hu/?p=131</guid>
		<description><![CDATA[(Magyarul itt)
Occasionally it happens that someone is unable to log in to SQL Server because they mistyped the password, have no permission, etc. This is not a problem &#8211; as long as we know what is the blocking issue. But how about someone being cocksure they&#8217;re trying the correct user, password ,server, etc and still [...]]]></description>
			<content:encoded><![CDATA[<p>(<a href="http://blog.rollback.hu/2009/07/sql-server-login-hibak-error-18456-level-14-state/">Magyarul itt</a>)<br />
Occasionally it happens that someone is unable to log in to SQL Server because they mistyped the password, have no permission, etc. This is not a problem &#8211; as long as we know what is the blocking issue. But how about someone being cocksure they&#8217;re trying the correct user, password ,server, etc and still failing? The most straightforward solution is my favorite, reading the SQL errorlog, once again. If the server is set to audit failed logins (and this is the default), you can find the error in the errorlog as well, not on the client side only:</p>
<blockquote><p>
Msg 18456, Level 14, State 1, Server DEMOSQL1, Line 1<br />
Login failed for user &#8216;tygger&#8217;
</p></blockquote>
<p>Actually, something better gets in to the log, but first, let&#8217;s analyze the first line, that is ,the first three numbers of the error. the first one is the error number, the identifier of the error; the second is the severity, that is, how bad it is. The bigger the number the worse it is. If you see something above 19, you might be in real trouble. The third number is the state, which is an interesting species. This can be used to provide diagnostic information, like throwing an error with state 1 from an SP and with state 2 from parameterized query. It can make DBAs (and developers) life easier. Now back to that errorlog!<br />
<span id="more-131"></span></p>
<pre class="brush: plain;">
2009-07-27 14:02:02.21 Logon     Error: 18456, Severity: 14, State: 8.
2009-07-27 14:02:02.21 Logon     Login failed for user 'tygger'. [CLIENT: 10.10.10.1]
</pre>
<p>Feel the difference: that state value is obviously different from what the client saw &#8211; and this is intentional. SQL Server won&#8217;t disclose any info which may help a malicious person during an attack. But if there&#8217;s a real need for help, you can go to the sysadmins and ask them to check the log what was the reason of the failure. They can check for the status values in the errorlog. And here&#8217;s the resolution:<br />
<table id="wp-table-reloaded-id-7-no-1" class="wp-table-reloaded wp-table-reloaded-id-7" cellspacing="1" cellpadding="1" border="1">
<thead>
	<tr class="odd row-1">
		<th class="column-1">ERROR</th><th class="column-2">DESCRIPTION</th>
	</tr>
</thead>
<tbody>
	<tr class="even row-2">
		<td class="column-1">2, 5</td><td class="column-2">Invalid username</td>
	</tr>
	<tr class="odd row-3">
		<td class="column-1">6</td><td class="column-2">SQL authentication was attempted with Windows login name</td>
	</tr>
	<tr class="even row-4">
		<td class="column-1">7</td><td class="column-2">Disabled login</td>
	</tr>
	<tr class="odd row-5">
		<td class="column-1">8</td><td class="column-2">Bad password</td>
	</tr>
	<tr class="even row-6">
		<td class="column-1">9</td><td class="column-2">Invalid password</td>
	</tr>
	<tr class="odd row-7">
		<td class="column-1">11, 12</td><td class="column-2">correct login but no server access</td>
	</tr>
	<tr class="even row-8">
		<td class="column-1">13</td><td class="column-2">SQL Server service paused</td>
	</tr>
	<tr class="odd row-9">
		<td class="column-1">16</td><td class="column-2">Correct login but no access to the selected (or default) database</td>
	</tr>
	<tr class="even row-10">
		<td class="column-1">18</td><td class="column-2">User must change password</td>
	</tr>
	<tr class="odd row-11">
		<td class="column-1">23</td><td class="column-2">Server is shutting down, only sysadmins can log in</td>
	</tr>
	<tr class="even row-12">
		<td class="column-1">27</td><td class="column-2">Correct login but server cannot determine an initial database</td>
	</tr>
	<tr class="odd row-13">
		<td class="column-1">38</td><td class="column-2">[2008] Opening explicitly specified database failed (16 in SQL 2005)</td>
	</tr>
	<tr class="even row-14">
		<td class="column-1">40</td><td class="column-2">[2008] Opening login default database failed (16 in SQL 2005)</td>
	</tr>
</tbody>
</table>
</p>
<p>Some of these are not obvious (some of them I have no idea about:), so here&#8217;s some help:</p>
<p>State 16 in SQL 2005, 38/40 in 2008 is caused most commonly by auto close databases. This is a great feature &#8211; for MSDE or Express but not for production. So I recommend you checking if you have any database with auto close enabled and if you have, turn this off &#8211; you have just problems with it. Other than this login issue (which will disappear if you retry as the database will be reopened in a few seconds, so a subsequent user can use it immediately) it pollutes your precious errorlog with messages like this: &#8220;<strong><em>Starting up database XYZ</em></strong>&#8221; .</p>
<p>State 11/12 are typical Windows login issues: SQL Server knows who tries to log in, authentication is successful, but there&#8217;s no SQL login for the Windows login, authorization fails.</p>
<p>This post was written based on the <a href="http://blogs.msdn.com/sql_protocols/archive/2006/02/21/536201.aspx">SQL Protocol team blog post</a> and the discussion after it, as it was pretty embarrassing that there&#8217;s not a single consolidated list of errors, but many of them should be collected from the comments &#8211; so I put the list together.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rollback.hu/2009/12/error-18456-level-14-state-sql-server-login-errors/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>SQL Server cluster security szigorítás how-not-to</title>
		<link>http://blog.rollback.hu/2009/08/sql-server-cluster-security-szigoritas-how-not-to/</link>
		<comments>http://blog.rollback.hu/2009/08/sql-server-cluster-security-szigoritas-how-not-to/#comments</comments>
		<pubDate>Mon, 31 Aug 2009 19:14:36 +0000</pubDate>
		<dc:creator>Erik</dc:creator>
				<category><![CDATA[Magyar]]></category>
		<category><![CDATA[change management]]></category>
		<category><![CDATA[cluster]]></category>
		<category><![CDATA[errorlog]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[üzemeltetés]]></category>

		<guid isPermaLink="false">http://blog.rollback.hu/?p=109</guid>
		<description><![CDATA[Az SQL Server 2008 előtti változatai úgy installálódtak, hogy a lokális adminisztrátor csoport alapból be volt téve az SQL sysadmin role-ba. Időnként, főleg nagy cégeknél, ez nem kívánatos mellékhatásokkal jár, például olyan emberek és accountok kapnak automatikusan jogot az SQL-hez, akiknek semmi közük hozzá egyébként. Így történt, hogy egyszer régen, nagyon régen engem is utolért [...]]]></description>
			<content:encoded><![CDATA[<p>Az SQL Server 2008 előtti változatai úgy installálódtak, hogy a lokális adminisztrátor csoport alapból be volt téve az SQL sysadmin role-ba. Időnként, főleg nagy cégeknél, ez nem kívánatos mellékhatásokkal jár, például olyan emberek és accountok kapnak automatikusan jogot az SQL-hez, akiknek semmi közük hozzá egyébként. Így történt, hogy egyszer régen, nagyon régen engem is utolért ez a feladat: válasszam le a Windows adminokat a SQL sysadminokról. Habár ez egy régi történet, többen azóta is emlegetik, úgy elcsesztem, úgyhogy a legutóbbi felhánytorgatáskor úgy döntöttem, megosztom a nagyérdeművel, tanuljatok az én hibámból.</p>
<p>Alapvetően egy éles rendszeren végzett változtatással álltam szemközt, úgyhogy a teszt SQL clusteren megcsináltam a változtatást, felírtam, hogy mit csináltam, és nekiálltam az éles rendszernek is. A feladat mindössze annyi volt, hogy a kivett BUILTIN\Administrators helyett be kellett raknom a DOMAIN\MyTeam csoportot sa-nak, és kész. Hogyan lehet ilyet letesztelni? Mivel clusterről beszélünk, én végigbillentem a SQL-t az összes node-ra, hogy lássam, hogy mindenhol el tud indulni rendesen az új beállításokkal, illetve tudok is hozzá kapcsolódni (ez utóbbira sqlcmd-t használok). Ha az OS-t piszkálom, akkor node reboot után megy ugyanez. Éles négy node-os cluster esetén ez kissé időigényes, és a fél perc helyett négy perc szolgáltatáskiesést okoz, de esküszöm, hogy megéri.</p>
<p>Szóval megcsináltam a változtatást az éles rendszeren is, megnéztem, minden működött, mindenki be tudott lépni, úgyhogy le is zártam az ügyet, és foglalkoztam a többi dologgal. Aztán egy pár hét múlva éjféltájban felhívott az ügyeletesünk, hogy a fent említett cluster nem indul el. Kérdeztem, hogy mi a tünet, és azt mondta, hogy felhívták azzal, hogy piros a monitor, megnézte, a cluster admin szerint el volt dőlve a szolgáltatás, megpróbálta újraindítani, el is indult minden egy időre, aztán egy-két perc után megint elfrakkolt, ezt eljátszotta párszor, azóta meg failed állapotban van. Rutinos üzemeltetőként  végigpörgött a fejemben, hogy mi mindent csináltunk a szerverrel az elmúlt időben, és a tünetek alapján rögtön tudtam, hogy mi a baj. Azért megkértem ,hogy nézze meg az errorlogot, amire elmondta az azóta híressé vált mondatot: „<strong>valami júzer be akar jelentkezni itt, és nem sikerül neki </strong>– de ez most mindegy, amíg nem fut a cluster rendesen”.</p>
<p>Itt egy kicsit röhögtem, és elmondtam neki, hogy a valami júzer a cluster service-t futtató account, és úgy működik a dolog, hogy a cluster service elindítja a clusterezett resource-okat, így például az SQL Server service-t, és pollozza őket, hogy működnek-e. Az SQL Server pollozása pedig úgy néz ki, hogy belogol a cluster service account, és időnként egy <strong>select @@servername </strong>query-t bedob. Ha ez sikerül, örül, ha nem, akkor egy megadott idő (default 180 másodperc, ha jól rémlik így a vonaton) után betegnek nyilvánítja a SQL Server service-t, és megállítja. Kiderült, hogy egy korábbi bohóckodás miatt a teszt clusteren már hozzá volt adva a cluster service külön SQL accountként, úgyhogy ott nem is volt semmi hiba. Az élesen csak az ütött be, amikor leterhelték a clustert, és megállt a SQL, majd el akart megint indulni, addig ugyanis nem próbált meg belogolni újra a cluster service account, így nem zavarta, hogy dobtam (vagyis droptam) a loginját. Amikor újraindult a SQL, kiválóan működött minden – 180 másodpercig, amikor is a sok hiábavaló próbálkozás után a cluster service betegnek nyilvánította az egyébként makkegészséges szervert, és lelőtte. A baj az volt, hogy megfelelő számú próbálkozás után már el sem jutottunk odáig, hogy elinduljon a SQL és beléphessünk megjavítani. Úgyhogy jött mindenki barátja, a single user mód:<strong> sqlservr -c -m</strong>, amiben sqlcmd-vel belépve kiválóan meg lehetett pákázni. Ilyenkor persze a SQL tényleg a cluster node-on fut, nem virtual serverként, tehát nem úgy lehet hozzá csatlakozni, mint máskor, hanem (local) vagy . vagy hosztnév. Gyorsan csak ennyit mondtunk:  </p>
<pre class="brush: sql;">
create login ’DOMAIN\_clusterserviceuser’ from windows
</pre>
<p>Figyelembe véve, hogy ő a szerver nevén kívül nem kérdez semmit, nagyon boldog a public role-lal, nem kell neki több jog. El is indult, örültünk is.</p>
<p>Tanulságok:</p>
<ul>
<li>A teszt és éles rendszereket szinkronban kell tartani.</li>
<li>A változtatások után mindig meg kell győződni arról, hogy mindent életben hagytunk: újraindítani az érintett service-eket, stb.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.rollback.hu/2009/08/sql-server-cluster-security-szigoritas-how-not-to/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQL Server login hibák &#8211; Error 18456, Level 14, state</title>
		<link>http://blog.rollback.hu/2009/07/sql-server-login-hibak-error-18456-level-14-state/</link>
		<comments>http://blog.rollback.hu/2009/07/sql-server-login-hibak-error-18456-level-14-state/#comments</comments>
		<pubDate>Thu, 30 Jul 2009 20:30:45 +0000</pubDate>
		<dc:creator>Erik</dc:creator>
				<category><![CDATA[Magyar]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[errorlog]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://blog.rollback.hu/?p=106</guid>
		<description><![CDATA[(English version here)
Időnként megesik, hogy valaki nem tud belogolni egy SQL Serverbe, mert elgépeli a jelszavát, nincs joga, stb. Ez nem olyan nagy gond egészen addig, amíg tudjuk, hogy miért nem tud belogolni. De mi van, ha valaki azt mondja, hogy nem sikerült neki, 101%, hogy jó jelszóval próbálkozik, jó szerverre, jó felhasználónévvel, jó adatbázisba, [...]]]></description>
			<content:encoded><![CDATA[<p>(<a href="http://blog.rollback.hu/2009/12/error-18456-level-14-state-sql-server-login-errors/">English version here</a>)<br />
Időnként megesik, hogy valaki nem tud belogolni egy SQL Serverbe, mert elgépeli a jelszavát, nincs joga, stb. Ez nem olyan nagy gond egészen addig, amíg tudjuk, hogy miért nem tud belogolni. De mi van, ha valaki azt mondja, hogy nem sikerült neki, 101%, hogy jó jelszóval próbálkozik, jó szerverre, jó felhasználónévvel, jó adatbázisba, minden jó, csak éppen nem tud belépni? A legegyszerűbb megoldás a nagy kedvencem, az <strong>errorlog</strong> elolvasása, már megint. Amennyiben a szerveren be van állítva a sikertelen belépési kísérletek naplózása (úgy emlékszem ez a default), akkor az errorlogba is bekerül az az üzenet, amit a kliensnek küld a szerver:</p>
<blockquote><p>Msg 18456, Level 14, State 1, Server DEMOSQL1, Line 1<br />
Login failed for user &#8216;kiscsillag&#8217;
</p></blockquote>
<p>Illetve igazából nem is ez kerül a logba, hanem valami jobb, de mielőtt ebbe belemegyek, értelmezzük az első sorát az üzenetnek, vagyis az error három numerikus argumentumát: Az első az <em>error number</em>, ez a hiba egyedi azonosítója, a gépek mindig jobban szeretik a számokat, mint a dumát. A második a <strong>level</strong> vagy <strong>severity</strong>, azaz mennyire gáz az adott hiba. Minél nagyobb a szám, annál rosszabb a helyzet, severity 20 és 25 között már az is kérdéses, hogy rendesen működik-e a szerver. Az utolsó elem a <strong>state</strong>, ami egy érdekes állat. Arról adhatunk itt információt, hogy honnan jött az error &#8211; például ha van egy általunk definiált hiba, amit több különböző helyen is használunk, akkor a state értékét használhatjuk annak a jelzésére, hogy honnan jött a hiba. És  most nézzük azt az errorlogot!</p>
<pre class="brush: plain;">
2009-07-27 14:02:02.21 Logon     Error: 18456, Severity: 14, State: 8.
2009-07-27 14:02:02.21 Logon     Login failed for user 'kiscsillag'. [CLIENT: 10.10.10.1]
</pre>
<p>A különbség jól látható: az a bizonyos state érték eléggé más itt, mint a kliensoldalon volt, és ez nem a véletlen műve. Az SQL Server, ahogyan azt jó rendszertől elvárjuk, nem mond többet a kliensnek, mint amennyi szükséges, nehogy ezzel segítsen egy esetleges támadást. Viszont aki tényleg segítségre szorul, az megkeresheti a sysadminokat, akik a logban láthatják, hogy miért is nem sikerült az a login. A state kódok pedig a következőek:<br />
<table id="wp-table-reloaded-id-5-no-1" class="wp-table-reloaded wp-table-reloaded-id-5" cellspacing="1" cellpadding="1" border="1">
<thead>
	<tr class="odd row-1">
		<th class="column-1">ERROR</th><th class="column-2">LEÍRÁS</th>
	</tr>
</thead>
<tbody>
	<tr class="even row-2">
		<td class="column-1">2, 5</td><td class="column-2">Érvénytelen felhasználónév</td>
	</tr>
	<tr class="odd row-3">
		<td class="column-1">6</td><td class="column-2">Windows login névvel próbálkoztál SQL autentikációt használni</td>
	</tr>
	<tr class="even row-4">
		<td class="column-1">7</td><td class="column-2">Letiltott login</td>
	</tr>
	<tr class="odd row-5">
		<td class="column-1">8</td><td class="column-2">Rossz jelszó</td>
	</tr>
	<tr class="even row-6">
		<td class="column-1">9</td><td class="column-2">Érvénytelen jelszó</td>
	</tr>
	<tr class="odd row-7">
		<td class="column-1">11, 12</td><td class="column-2">Helyes login, de nincs szerver hozzáférés</td>
	</tr>
	<tr class="even row-8">
		<td class="column-1">13</td><td class="column-2">SQL Server service paused</td>
	</tr>
	<tr class="odd row-9">
		<td class="column-1">16</td><td class="column-2">Helyes login, de nem lehetséges belépni a kért (vagy a default) adatbázisba</td>
	</tr>
	<tr class="even row-10">
		<td class="column-1">18</td><td class="column-2">Jelszót kell változtatni</td>
	</tr>
	<tr class="odd row-11">
		<td class="column-1">23</td><td class="column-2">A szerver éppen leáll, nem lehet bejelentkezni (nem sysadminoknak)</td>
	</tr>
	<tr class="even row-12">
		<td class="column-1">27</td><td class="column-2">Helyes login, de a szerver nem tud meghatÃ¡rozni egy kezdeti adatbázist</td>
	</tr>
	<tr class="odd row-13">
		<td class="column-1">38</td><td class="column-2">[2008] Nem sikerült az explicit megadott adatbázis megnyitása (16 SQL 2005-ben)</td>
	</tr>
	<tr class="even row-14">
		<td class="column-1">40</td><td class="column-2">[2008] Nem sikerült a felhasználó default adatbázisának a megnyitása (16 SQL 2005-ben)</td>
	</tr>
</tbody>
</table>
</p>
<p>Van néhány kód, ami nem olyan triviális, hogy mit is jelent, néhányról magam sem tudom :), úgyhogy néhány jellemzőt kiveséznék:</p>
<p>A state 16 (vagy 38/40 SQL 2008-ban) egyik leggyakoribb oka <strong>az auto close-os adatbázis</strong>. Azaz az SQL szerver becsukja az adatbázist, ha nem használták már egy ideje, és megint megnyitja, ha kell valakinek. Ez egy kiváló ötlet az MSDE-hez meg egyéb asztali gépes világba, de egyébként mindenkinek melegen ajánlom, hogy nézze meg, hogy van-e auto close-os adatbázisa, és ha van, kapcsolja ki ezt az opciót, mert csak szívás van vele. Hogy mi? Például a state 16: éppen be akar lépni a user, erre az SQL elkezdi megnyitni a DB-t neki, de amíg nem sikerül teljesen megnyitnia, addig ugye nem tudja beléptetni az adatbázisába a usert, és elbukik a login. Újrapróbálva valószínűleg jó lesz, mert addigra már kinyitja. A másik gagyi benne (és erről lehet messziről kiszúrni ezeket az adatbázisokat), hogy teleszemeteli az errorlogot &#8220;<strong><em>Starting up database XYZ</em></strong>&#8221; üzenetekkel.</p>
<p>A 11-12 tipikusan a Windows loginok esete: az SQL Server kiválóan azonosítja a felhasználót, de nincs neki megfelelő login létrehozva az SQL szerveren, úgyhogy emberünk kívül marad.</p>
<p>A blog alapját a <a href="http://blogs.msdn.com/sql_protocols/archive/2006/02/21/536201.aspx">SQL Protocol team blogja</a> és a nyomában kialakuló diskurzus adta, mivel nem sikerül összeszedniük az összes kódot egy táblába, és ez engem baromira zavart &#8211; úgyhogy összeszedtem.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rollback.hu/2009/07/sql-server-login-hibak-error-18456-level-14-state/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>A három legfontosabb dolog az életben</title>
		<link>http://blog.rollback.hu/2009/04/a-harom-legfontosabb-dolog-az-eletben/</link>
		<comments>http://blog.rollback.hu/2009/04/a-harom-legfontosabb-dolog-az-eletben/#comments</comments>
		<pubDate>Thu, 23 Apr 2009 22:08:59 +0000</pubDate>
		<dc:creator>Erik</dc:creator>
				<category><![CDATA[Magyar]]></category>
		<category><![CDATA[errorlog]]></category>
		<category><![CDATA[mssql]]></category>

		<guid isPermaLink="false">http://blog.rollback.hu/?p=82</guid>
		<description><![CDATA[A fenti kérdésre a válasz mindenkinél változó, de az SQL Server egyszerű lélek: 

master adatbázis data file
master adatbázis log file
errorlog

Ha ezt a három fájlt meg tudja nyitni, már boldog. És ha nem? Mindig az errorloggal kezdjük vizsgálódásainkat. Ha nem találjuk az errorlogot, nézzük meg, hogy van-e joga oda írni a SQL-t futtató accountnak. Ha megtaláljuk [...]]]></description>
			<content:encoded><![CDATA[<p>A fenti kérdésre a válasz mindenkinél változó, de az SQL Server egyszerű lélek: </p>
<ul>
<li>master adatbázis data file</li>
<li>master adatbázis log file</li>
<li>errorlog</li>
</ul>
<p>Ha ezt a három fájlt meg tudja nyitni, már boldog. És ha nem? Mindig az errorloggal kezdjük vizsgálódásainkat. Ha nem találjuk az errorlogot, nézzük meg, hogy van-e joga oda írni a SQL-t futtató accountnak. Ha megtaláljuk az errorlogot, akkor meg olvassuk el.<br />
A fenti paraméterek egyébként az SQL Server Configuration Managerben láthatóak és állíthatóak (meg a registryben).</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rollback.hu/2009/04/a-harom-legfontosabb-dolog-az-eletben/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>amd dual-core / quad-core bug and SQL Server</title>
		<link>http://blog.rollback.hu/2009/01/amd-dual-core-quad-core-bug-and-sql-server/</link>
		<comments>http://blog.rollback.hu/2009/01/amd-dual-core-quad-core-bug-and-sql-server/#comments</comments>
		<pubDate>Wed, 21 Jan 2009 21:21:11 +0000</pubDate>
		<dc:creator>Erik</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[errorlog]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://blog.rollback.hu/?p=48</guid>
		<description><![CDATA[The AMD multicore CPUs have an interesting feature: the timers of the cores are not synchronized. This is the so-called clock-drifting which can be accountable for a lot of unexpected phenomenons due to the fact that the cores have different times and processes using multiple cores can be badly surprised. During the last year I [...]]]></description>
			<content:encoded><![CDATA[<p>The AMD multicore CPUs have an interesting feature: the timers of the cores are not synchronized. This is the so-called clock-drifting which can be accountable for a lot of unexpected phenomenons due to the fact that the cores have different times and processes using multiple cores can be badly surprised. During the last year I had the chance to collect a few of the tricks:</p>
<ul>
<li>Negative round-trip time during ping (Windows 2003)</li>
<li>Excessive amount of events in SQL Server errorlog (W2K3, SQL 2K5)</li>
<li><code>find -mtime</code> 0 won&#8217;t find the recently created files (Red Hat EL 3)</li>
</ul>
<p>Given that this is a mostly-SQL blog, I&#8217;m going to detail the second one. You can see events like this in the errorlog:</p>
<blockquote><p>Date 11/25/2008 9:57:47 AM<br />
Log SQL Server (Current &#8211; 11/25/2008 12:49:00 PM)</p>
<p>Source Server</p>
<p>Message The time stamp counter of CPU on scheduler id 3 is not synchronized with other CPUs.
</p></blockquote>
<p>And you can see this quite frequently. Now AMD created a fix for the bug but its target audience is not the big tribe of the sysadmins but the desktops. Why do you need a quad-core for a desktop user? Exactly: for gaming. So the fix called <a href="http://www.amd.com/us-en/Processors/TechnicalResources/0,,30_182_871_13118,00.html">AMD Dual-Core Optimizer Version 1.1.4</a> gives you a chance to minimize the clock drifting by enabling the Game Mode. I gave it a try and installed it onto the server. Unfortunately the issue didn&#8217;t disappear, but it dropped by 97% which is a pretty good result &#8211; at least for me.</p>
<p>The idea sounds a bit wacky: fix an enterprise production database server with a gamer hotfix, but:</p>
<ol>
<li>It does the job</li>
<li>If the Spanish MSFT support team <a href="http://blogs.msdn.com/blogdoezequiel/archive/2008/11/06/cpu-drift-and-sql-server-timing-values.aspx">could afford it</a>, then I could as well :)</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://blog.rollback.hu/2009/01/amd-dual-core-quad-core-bug-and-sql-server/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

