<?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>IT Log &#187; SQL</title>
	<atom:link href="http://itlog.cz/rubriky/sql/feed/" rel="self" type="application/rss+xml" />
	<link>http://itlog.cz</link>
	<description>Information Technology</description>
	<lastBuildDate>Sat, 19 May 2012 17:24:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Audit Collection Service: struktura databáze</title>
		<link>http://itlog.cz/2011/06/01/audit-collection-service-struktura-databaze/</link>
		<comments>http://itlog.cz/2011/06/01/audit-collection-service-struktura-databaze/#comments</comments>
		<pubDate>Wed, 01 Jun 2011 10:06:18 +0000</pubDate>
		<dc:creator>Stanislav Jermář</dc:creator>
				<category><![CDATA[ACS]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[acs]]></category>
		<category><![CDATA[sql]]></category>

		<guid isPermaLink="false">http://itlog.cz/?p=459</guid>
		<description><![CDATA[Struktura databáze OperationsManagerAC a organizace dat z pohledu databázového &#8222;laika&#8220;. Návrh databáze využívá datové oddíly, dynamicky vytvářené a obsahující data za 24 hodin. Jeden den je tudíž základní jednotka, pokud počítáme s uchováním dat v databázi za delší období, vždy jsou to násobky celých dní. V databázi jsou vytvořené konfigurační tabulky a pro každý denní [...]]]></description>
			<content:encoded><![CDATA[<p>Struktura databáze OperationsManagerAC a organizace dat z pohledu databázového &#8222;laika&#8220;.</p>
<p>Návrh databáze využívá datové oddíly, dynamicky vytvářené a obsahující data za 24 hodin. Jeden den je tudíž základní jednotka, pokud počítáme s uchováním dat v databázi za delší období, vždy jsou to násobky celých dní. V databázi jsou vytvořené konfigurační tabulky a pro každý denní datový oddíl sada tabulek s datovými záznamy. Viz příklad z testovacího prostředí:</p>
<table cellspacing="0">
<tbody>
<tr>
<td>dtCategory</td>
<td><em>seznam auditních kategorií</em></td>
</tr>
<tr>
<td>dtConfig</td>
<td><em>konfigurace ACS, časové konstanty, počet datových oddílů</em></td>
</tr>
<tr>
<td>dtMachine</td>
<td><em>seznam serverů, ze kterých se sbírají data</em></td>
</tr>
<tr>
<td>dtPartition</td>
<td><em>seznam datových oddílů, informace o jejich stavu, ID</em></td>
</tr>
<tr>
<td>dtSource</td>
<td><em>zdroje</em></td>
</tr>
<tr>
<td>dtType</td>
<td><em>datové typy</em></td>
</tr>
<tr>
<td style="text-align: center;">&#8211; datové tabulky pro jeden oddíl:</td>
</tr>
<tr>
<td>dtEvent_1be83462_241e_45be_aaf4_a7a9cf603b09</td>
<td><em>v názvu je ID příslušného oddílu</em></td>
</tr>
<tr>
<td>dtEventData_1be83462_241e_45be_aaf4_a7a9cf603b09</td>
</tr>
<tr>
<td>dtPrincipal_1be83462_241e_45be_aaf4_a7a9cf603b09</td>
</tr>
<tr>
<td>dtString_1be83462_241e_45be_aaf4_a7a9cf603b09</td>
</tr>
<tr>
<td style="text-align: center;">&#8211; (data ostatních oddílů &#8211; partitions)</td>
</tr>
</tbody>
</table>
<p>Pohledy (Views) jsou ve třech formátech, podle počtu zobrazovaných sloupců String01,  &#8230;, String22: <strong>dvHeader </strong>(pouze hlavička), <strong>dvAll5</strong> (prvních pět sloupců), <strong>dvAll</strong> (všech 22 sloupců). Z následujícího předpisu pro kompletní pohled pouze pro jednu <em>partition</em>,  <strong>dvAll_5a1aa04b_b193_49b1_80ae_f3b019a404a3 </strong>je zřejmé, že doba zpracování dotazů v databázi bude nejkratší, pokud použijeme hledání v pohledech dvHeader. Je důležité si uvědomit, že pohled <strong>dvAll </strong>přes celou databázi představuje spojení všech existujících pohledů dvAll_&lt;ID&gt; přes všechny datové oddíly (partitions)</p>
<blockquote><p><code><br />
create view [dbo].[dvAll_5a1aa04b_b193_49b1_80ae_f3b019a404a3]<br />
as<br />
select<br />
e.Id,<br />
e.EventNo         as EventId,<br />
e.SequenceNo      as SequenceNo,<br />
'S/F' =<br />
case e.TypeNo<br />
when 8  then 'S'<br />
when 16 then 'F'<br />
else '?'<br />
end,<br />
c.Description     as Category,<br />
e.CreationTime    as CreationTime,<br />
e.CollectionTime  as CollectionTime,<br />
m.Description     as AgentMachine,<br />
sm.Description     as EventMachine,<br />
s.SourceName      as Source,<br />
p1.strSid          as HeaderSid,<br />
p1.strUser         as HeaderUser,<br />
p1.strDomain       as HeaderDomain,<br />
p2.strSid          as PrimarySid,<br />
p2.strUser         as PrimaryUser,<br />
p2.strDomain       as PrimaryDomain,<br />
e.PrimaryUserLogonId as PrimaryLogonId,<br />
p3.strSid          as ClientSid,<br />
p3.strUser         as ClientUser,<br />
p3.strDomain       as ClientDomain,<br />
e.ClientUserLogonId as ClientLogonId,<br />
p4.strSid          as TargetSid,<br />
p4.strUser         as TargetUser,<br />
p4.strDomain       as TargetDomain,<br />
s01.Description     as String01,<br />
s02.Description     as String02,<br />
s03.Description     as String03,<br />
s04.Description     as String04,<br />
s05.Description     as String05,<br />
s06.Description     as String06,<br />
s07.Description     as String07,<br />
s08.Description     as String08,<br />
s09.Description     as String09,<br />
s10.Description     as String10,<br />
s11.Description     as String11,<br />
s12.Description     as String12,<br />
s13.Description     as String13,<br />
s14.Description     as String14,<br />
s15.Description     as String15,<br />
s16.Description     as String16,<br />
s17.Description     as String17,<br />
s18.Description     as String18,<br />
s19.Description     as String19,<br />
s20.Description     as String20,<br />
s21.Description     as String21,<br />
s22.Description     as String22<br />
from<br />
dtEvent_5a1aa04b_b193_49b1_80ae_f3b019a404a3 e<br />
left outer join dtCategory c on e.CategoryNo = c.Id<br />
left outer join dtMachine m on e.AgentMachineId = m.Id<br />
left outer join dtString_5a1aa04b_b193_49b1_80ae_f3b019a404a3 sm on e.EventMachineId = sm.Id<br />
left outer join dtSource s on e.SourceId = s.Id<br />
left outer join dtPrincipal_5a1aa04b_b193_49b1_80ae_f3b019a404a3 p1 on e.UserId = p1.Id<br />
left outer join dtPrincipal_5a1aa04b_b193_49b1_80ae_f3b019a404a3 p2 on e.PrimaryUserId = p2.Id<br />
left outer join dtPrincipal_5a1aa04b_b193_49b1_80ae_f3b019a404a3 p3 on e.ClientUserId = p3.Id<br />
left outer join dtPrincipal_5a1aa04b_b193_49b1_80ae_f3b019a404a3 p4 on e.TargetUserId = p4.Id<br />
left outer join dtString_5a1aa04b_b193_49b1_80ae_f3b019a404a3 s01 on e.StringId01 = s01.Id<br />
left outer join dtString_5a1aa04b_b193_49b1_80ae_f3b019a404a3 s02 on e.StringId02 = s02.Id<br />
left outer join dtString_5a1aa04b_b193_49b1_80ae_f3b019a404a3 s03 on e.StringId03 = s03.Id<br />
left outer join dtString_5a1aa04b_b193_49b1_80ae_f3b019a404a3 s04 on e.StringId04 = s04.Id<br />
left outer join dtString_5a1aa04b_b193_49b1_80ae_f3b019a404a3 s05 on e.StringId05 = s05.Id<br />
left outer join dtString_5a1aa04b_b193_49b1_80ae_f3b019a404a3 s06 on e.StringId06 = s06.Id<br />
left outer join dtString_5a1aa04b_b193_49b1_80ae_f3b019a404a3 s07 on e.StringId07 = s07.Id<br />
left outer join dtString_5a1aa04b_b193_49b1_80ae_f3b019a404a3 s08 on e.StringId08 = s08.Id<br />
left outer join dtString_5a1aa04b_b193_49b1_80ae_f3b019a404a3 s09 on e.StringId09 = s09.Id<br />
left outer join dtString_5a1aa04b_b193_49b1_80ae_f3b019a404a3 s10 on e.StringId10 = s10.Id<br />
left outer join dtString_5a1aa04b_b193_49b1_80ae_f3b019a404a3 s11 on e.StringId11 = s11.Id<br />
left outer join dtString_5a1aa04b_b193_49b1_80ae_f3b019a404a3 s12 on e.StringId12 = s12.Id<br />
left outer join dtString_5a1aa04b_b193_49b1_80ae_f3b019a404a3 s13 on e.StringId13 = s13.Id<br />
left outer join dtString_5a1aa04b_b193_49b1_80ae_f3b019a404a3 s14 on e.StringId14 = s14.Id<br />
left outer join dtString_5a1aa04b_b193_49b1_80ae_f3b019a404a3 s15 on e.StringId15 = s15.Id<br />
left outer join dtString_5a1aa04b_b193_49b1_80ae_f3b019a404a3 s16 on e.StringId16 = s16.Id<br />
left outer join dtString_5a1aa04b_b193_49b1_80ae_f3b019a404a3 s17 on e.StringId17 = s17.Id<br />
left outer join dtString_5a1aa04b_b193_49b1_80ae_f3b019a404a3 s18 on e.StringId18 = s18.Id<br />
left outer join dtString_5a1aa04b_b193_49b1_80ae_f3b019a404a3 s19 on e.StringId19 = s19.Id<br />
left outer join dtString_5a1aa04b_b193_49b1_80ae_f3b019a404a3 s20 on e.StringId20 = s20.Id<br />
left outer join dtString_5a1aa04b_b193_49b1_80ae_f3b019a404a3 s21 on e.StringId21 = s21.Id<br />
left outer join dtString_5a1aa04b_b193_49b1_80ae_f3b019a404a3 s22 on e.StringId22 = s22.Id<br />
</code></p></blockquote>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://itlog.cz/2011/06/01/audit-collection-service-struktura-databaze/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Audit Collection Service: jak na historická data?</title>
		<link>http://itlog.cz/2011/03/09/audit-collection-service-jak-na-historicka-data/</link>
		<comments>http://itlog.cz/2011/03/09/audit-collection-service-jak-na-historicka-data/#comments</comments>
		<pubDate>Wed, 09 Mar 2011 13:52:55 +0000</pubDate>
		<dc:creator>Stanislav Jermář</dc:creator>
				<category><![CDATA[ACS]]></category>
		<category><![CDATA[admin]]></category>
		<category><![CDATA[audit]]></category>
		<category><![CDATA[SCOM 2007]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[sql]]></category>

		<guid isPermaLink="false">http://itlog.cz/?p=414</guid>
		<description><![CDATA[V databázi ACS systému SCOM 2007 jsou udržovány záznamy po dobu, kterou definujeme podle konkrétního prostředí, ve kterém je sběr auditních záznamů implementován. Výchozí nastavení představuje období předchozích 14 dní + aktuální den. Podle počtu agentů, nastavení auditní politiky na nich a pochopitelně v závislosti na výkonu databázového serveru, můžeme toto období protáhnout na 30, [...]]]></description>
			<content:encoded><![CDATA[<p>V databázi ACS systému SCOM 2007 jsou udržovány záznamy po dobu, kterou definujeme podle konkrétního prostředí, ve kterém je sběr auditních záznamů implementován. Výchozí nastavení představuje období předchozích 14 dní + aktuální den. Podle počtu agentů, nastavení auditní politiky na nich a pochopitelně v závislosti na výkonu databázového serveru, můžeme toto období protáhnout na 30, 100 nebo 300 dní. Hranice použitelnosti výsledné databáze ve vztahu k pokrytému období je tedy různá, stejně jako požadavky na uchování historických záznamů a možnost jejich zpracování a liší se případ od případu.</p>
<p>Standardní implementace SCOM + ACS tuto oblast nepokrývá, ale je k dispozici placené řešení od SecureVantage Technologies (<a title="svt" href="http://www.securevantage.com/AuditManager.aspx#" target="_blank">Archiver</a>). Nic nám však nebrání, abychom si zpřístupnili historická data sami v paralelní databázi se stejnou strukturou, jakou má databáze se &#8222;živými daty&#8220;.</p>
<p><span style="text-decoration: underline;"><strong>Výchozí modelová situace:</strong></span></p>
<p>Aktuální data pokrývají období 100 dnů v provozní databázi ACS, historická data jsou k dispozici v archivních souborech a každý z nich pokrývá 100 dnů, se vzájemným přesahem 1-2 dny. Archivní soubory jsou vytvořené pomocí nástroje <strong>MS SQL Server Management Studio</strong>.  (Databases \ <strong>OperationsManagerAC</strong> | Tasks | Backup&#8230; | Backup type: Full | Back up to Disk: &lt;jméno souboru&gt;.bak)</p>
<p><span style="text-decoration: underline;"><strong>Vytvoření prázdné databáze:</strong></span></p>
<p>Databáze se bude jmenovat <strong>OperationsManagerACH</strong>, bude pro zjednodušení na stejném serveru SQL jako aktuální databáze &#8211; proto odlišné jméno. Na tomto serveru jsou také instalované SQL Reporting Services.</p>
<ol>
<li>Získáme předpis pro vytvoření nové databáze: SQL Server Management Studio | označíme databázi <strong>OperationsManagerAC</strong> | Script Database as | CREATE To | New Query Editor Window</li>
<li>V editoru skript upravíme:
<div id="_mcePaste"><strong>jméno databáze</strong>, ctrl-H, Find what: OperationsManagerAC, Replace with: OperationsManagerACH</div>
<div id="_mcePaste"><strong>jména souborů </strong>změníme, protože je ukládám do stejné složky:</div>
<div id="_mcePaste">dbAuditData.mdf -&gt; dbAuditDataH.mdf</div>
<div id="_mcePaste">dbAuditLog.ldf -&gt; dbAuditLogH.ldf</div>
</li>
<li>Skript provedeme (execute) a získáme tak novou prázdnou databázi <strong>OperationsManagerACH</strong>.</li>
</ol>
<p><strong><span style="text-decoration: underline;">Zápis záznamů z archivu databáze:</span></strong></p>
<p>Databázi <strong>OperationsManagerACH </strong>naplníme informacemi z archivního souboru, například v prostředí <strong>SQL Server Management Studio</strong> následujícím postupem.</p>
<p>Tasks | Restore | Database &#8230; | záložka (<strong>General</strong>)</p>
<ul>
<li>To database: <strong>OperationsManagerACH </strong></li>
<li>přepnout volbu na <strong>From device</strong>, vyhledáme [...] v dialogu <strong>Specify Backup</strong>: Backup media: File, Add : &lt;jméno souboru.bak&gt; OK,</li>
<li>Označit Restore [x]</li>
</ul>
<p>na druhé záložce (<strong>Options</strong>): označené jsou pouze dvě volby</p>
<ul>
<li><strong>Restore options</strong>: Overwrite the existing database (<strong>WITH REPLACE</strong>) a</li>
<li><strong>Prompt before restoring each backup</strong></li>
</ul>
<p>Důležité je v tomto modelovém případě pozměnit pojmenování cílových souborů databáze historických dat:</p>
<ul>
<li>Restore the database files as (změnit pojmenování ve sloupci Restore As, [...]) &lt;cesta&gt;\<strong>dbAuditDataH.mdf </strong>a &lt;cesta&gt;\<strong>dbAuditLogH.ldf</strong></li>
<li>Dále zvolíme první položku <strong>Recovery state: Leave the database ready to use &#8230; (RESTORE WITH RECOVERY)</strong></li>
</ul>
<p><strong> </strong></p>
<p>Jakmile akce <strong>Restore </strong>doběhne, jsou historická data plně k dispozici a lze je zpřístupnit pro reporty.</p>
<p><strong><span style="text-decoration: underline;">Reporty, Data Source:</span></strong></p>
<p>Spustíme webový <strong>Report Manager</strong> a vytvoříme nový datový zdroj, který se připojuje k výše vytvořené databázi:</p>
<p>http://&lt;reportserverMachine&gt;/Reports</p>
<ul>
<li>akce <strong>Add new data source</strong></li>
<li>pojmenujeme &#8211; Name: DBH Audit</li>
<li>povolíme &#8211; Enable this data source</li>
<li>Definujeme způsob připojení databáze &#8211; <strong>Connection string</strong>: data source=&lt;scom07serverName&gt;;initial catalog=<strong>OperationsManagerACH</strong>;Integrated Security=SSPI</li>
<li>Windows Integrated Security</li>
</ul>
<p>Toť vše, protože je nová databáze vytvořena na serveru, kde je definována a korektně obsazena role db_datareader a jsou zde funkční SQL Reporting Services.</p>
]]></content:encoded>
			<wfw:commentRss>http://itlog.cz/2011/03/09/audit-collection-service-jak-na-historicka-data/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Introducing Microsoft SQL Server 2008 R2 &#8211; Free eBook!</title>
		<link>http://itlog.cz/2011/02/01/introducing-microsoft-sql-server-2008-r2-free-ebook/</link>
		<comments>http://itlog.cz/2011/02/01/introducing-microsoft-sql-server-2008-r2-free-ebook/#comments</comments>
		<pubDate>Tue, 01 Feb 2011 11:07:16 +0000</pubDate>
		<dc:creator>Stanislav Jermář</dc:creator>
				<category><![CDATA[e-book]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://itlog.cz/?p=400</guid>
		<description><![CDATA[Microsoft SQL Server Library nabízí více než 200 stránkovou publikaci pro seznámení se SQL Serverem 2008 R2.  (http://www.microsoft.com/sqlserver/2008/en/us/library.aspx nebo http://go.microsoft.com/fwlink/?LinkId=189147 )]]></description>
			<content:encoded><![CDATA[<p><a title="sql server library" href="http://www.microsoft.com/sqlserver/2008/en/us/library.aspx" target="_blank"><img class="alignnone size-full wp-image-401" title="IntroducingR2" src="http://itlog.cz/wp/wp-content/uploads/2011/02/IntroducingR2.jpg" alt="" width="117" height="143" /></a> Microsoft SQL Server Library nabízí více než 200 stránkovou publikaci pro seznámení se SQL Serverem 2008 R2.  (<a href="http://www.microsoft.com/sqlserver/2008/en/us/library.aspx" target="_blank">http://www.microsoft.com/sqlserver/2008/en/us/library.aspx</a> nebo <a href="http://go.microsoft.com/fwlink/?LinkId=189147" target="_blank">http://go.microsoft.com/fwlink/?LinkId=189147</a> )</p>
]]></content:encoded>
			<wfw:commentRss>http://itlog.cz/2011/02/01/introducing-microsoft-sql-server-2008-r2-free-ebook/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

