<?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>tech-blog.IT &#187; SQL Server 2005</title>
	<atom:link href="http://tech-blog.it/category/sql-server-2005/feed/" rel="self" type="application/rss+xml" />
	<link>http://tech-blog.it</link>
	<description>Co tam Pani w Windowsach?</description>
	<lastBuildDate>Wed, 28 Jul 2010 10:25:14 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>SQL 2005 dla początkujących: tworzenie nowego użytkownika bazy danych.</title>
		<link>http://tech-blog.it/2009/12/tworzenie-nowego-uzytkownika-bazy-danych/</link>
		<comments>http://tech-blog.it/2009/12/tworzenie-nowego-uzytkownika-bazy-danych/#comments</comments>
		<pubDate>Fri, 18 Dec 2009 12:20:04 +0000</pubDate>
		<dc:creator>monika</dc:creator>
				<category><![CDATA[SQL Server 2005]]></category>

		<guid isPermaLink="false">http://tech-blog.it/?p=293</guid>
		<description><![CDATA[Aby stworzyć użytkownika dla bazy danych i przypisać mu odpowiednie uprawnienia do wykonywania zadań w bazie danych należy rozwinąć węzeł z nazwą bazy danych i przejść do węzłów Security &#124; Users. Klikamy prawym przyciskiem myszy i wybieramy New User&#8230;
W pozycji User name wpisujemy jego nazwę, natomiast w Login name wyszukujemy skonfigurowany uprzednio login. O tworzeniu [...]]]></description>
			<content:encoded><![CDATA[<p>Aby stworzyć użytkownika dla bazy danych i przypisać mu odpowiednie uprawnienia do wykonywania zadań w bazie danych należy rozwinąć węzeł z nazwą bazy danych i przejść do węzłów<strong> Security</strong> | <strong>Users</strong>. Klikamy prawym przyciskiem myszy i wybieramy <strong>New User&#8230;</strong><br />
W pozycji <strong>User name</strong> wpisujemy jego nazwę, natomiast w <strong>Login name</strong> wyszukujemy skonfigurowany uprzednio login. O tworzeniu loginu traktował <a href="http://tech-blog.it/2009/12/tworzenie-loginu-dla-bazy-danych/">poprzedni wpis</a>.<br />
W pozycji <strong>Default schema </strong>przypisujemy użytkownikowi domyślny schemat, natomiast poniżej w sekcji<strong> Schemas owned by this User</strong> zaznaczamy pozostałe schematy, które mają być własnością tego użytkownika.<br />
W sekcji <strong>Database role membership</strong>, przypisujemy użytkownikowi rolę:</p>
<ul>
<li> db_accessadmin – zezwala na dodawanie i usuwanie kont,</li>
<li> db_backupoperator – zezwala na wykonywanie kopii zapasowych,</li>
<li> db_datareader – zezwala na odczyt baz danych,</li>
<li> db_datawriter – zezwala na zapisywanie i modyfikację baz danych,</li>
<li> db_ddladmin – zezwala na modyfikację i usuwanie obiektów baz danych,</li>
<li> db_denydatareader – nie zezwala na odczyt baz danych,</li>
<li> db_dentydatawriter – nie zezwala na zapisywanie i modyfikację baz danych,</li>
<li> db_owner – zezwala na pełną kontrolę nad bazą danych,</li>
<li> db_securityadmin – zezwala na zarządzanie uprawnieniami oraz rolami baz danych,</li>
<li> public – rola domyślna, zapewniająca minimum uprawnień.</li>
</ul>
<p style="text-align: center;"><img class="size-full wp-image-294  aligncenter" title="user1" src="http://tech-blog.it/wp-content/uploads/2009/12/user1.png" alt="user1" width="493" height="440" /></p>
<p><strong>Poniżej znajduje się skrypt T-SQL z wykonanej operacji:</strong></p>
<p><em>USE [baza]<br />
GO<br />
CREATE USER [monika] FOR LOGIN [monika]<br />
GO<br />
USE [baza]<br />
GO<br />
ALTER AUTHORIZATION ON SCHEMA::[db_owner] TO [monika]<br />
GO<br />
USE [baza]<br />
GO<br />
EXEC sp_addrolemember N&#8217;db_owner&#8217;, N&#8217;monika&#8217;<br />
GO</em></p>
]]></content:encoded>
			<wfw:commentRss>http://tech-blog.it/2009/12/tworzenie-nowego-uzytkownika-bazy-danych/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQL 2005 dla początkujących: tworzenie loginu dla bazy danych</title>
		<link>http://tech-blog.it/2009/12/tworzenie-loginu-dla-bazy-danych/</link>
		<comments>http://tech-blog.it/2009/12/tworzenie-loginu-dla-bazy-danych/#comments</comments>
		<pubDate>Mon, 14 Dec 2009 14:36:08 +0000</pubDate>
		<dc:creator>monika</dc:creator>
				<category><![CDATA[SQL Server 2005]]></category>
		<category><![CDATA[login]]></category>
		<category><![CDATA[SQL 2005]]></category>

		<guid isPermaLink="false">http://tech-blog.it/?p=285</guid>
		<description><![CDATA[W SQL Management Studio klikamy na węzeł Databases &#124; Security &#124; Logins. Klikamy prawym przyciskiem myszy i wybieramy New Login.
Na głównej stronie określamy czy będzie to użytkownik Windows (użytkownik Active Directory lub lokalne konto), czy będzie to użytkownik SQL. W celu wybrania autoryzacji Windows – zaznaczamy Windows authentication, w przypadku autoryzacji SQL – SQL Server [...]]]></description>
			<content:encoded><![CDATA[<p>W SQL Management Studio klikamy na węzeł <strong>Databases</strong> | <strong>Security</strong> | <strong>Logins</strong>. Klikamy prawym przyciskiem myszy i wybieramy <strong>New Login</strong>.<br />
Na głównej stronie określamy czy będzie to użytkownik Windows (użytkownik Active Directory lub lokalne konto), czy będzie to użytkownik SQL. W celu wybrania autoryzacji Windows – zaznaczamy <strong>Windows authentication</strong>, w przypadku autoryzacji SQL – <strong>SQL Server authentication</strong>.<br />
W przypadku wybrania autoryzacji SQL, należy wprowadzić hasło dla loginu oraz poniżej wybrać jedną lub kilka z trzech opcji:</p>
<ul>
<li><strong>Enforce password Policy</strong> – hasło nie może zawierać w sobie części nazwy loginu i nie może być krótsze niż 7 znków oraz powinno zawierać cyfry, duże i małe litery oraz znaki nie alfanumeryczne. Informacje pobierane są z polityki grupowej.</li>
<li><strong>Enforce password expiration</strong> – hasło wygasa po przekroczeniu wartości określonej w polityce grupowej.</li>
<li><strong>User must change password at next logon</strong> – wymaga zmiany hasła użytkownika przy kolejnym logowaniu.</li>
</ul>
<p>Sekcje<strong> Default Database</strong> oraz <strong>Default language</strong> są widowczne zarówno dla loginu z autoryzacją SQL jak i Windows. W Default Database określamy domyślną bazę danych dla loginu.</p>
<p><img class="aligncenter size-full wp-image-286" title="login1" src="http://tech-blog.it/wp-content/uploads/2009/12/login1.png" alt="login1" width="503" height="448" /><br />
Na stronie <strong>Server Roles</strong> wybieramy role serwerowe, przypisane dla tego loginu</p>
<ul>
<li> bulkadmin – zezwala na operację masowego wstawiania danych (BULK INSERT),</li>
<li> dbcreator – zezwala na tworzenie, usuwanie,  modyfikację bazy danych oraz dodawanie do niej nowych członków (CREATE DATABASE),</li>
<li> diskadmin – zezwala na zarządzanie plikami .mdf i .ldf (ALTER),</li>
<li> processadmin – zezwala na kontrolę procesów (ALTER ANY CONNECTION oraz ALTER SERVER STATE),</li>
<li> securityadmin – zezwala na zarządzanie loginami i uprawnieniami (ALTER ANY LOGIN),</li>
<li> serveradmin – zezwala na konfigurację całego serwera (ALTER SERVER STATE, ALTER SETTINGS, SHUTDOWN),</li>
<li> setupadmin –zezwala na zarządzanie serwerami połączonymi (ALTER ANY LINKED SERVER),</li>
<li> sysadmin – zezwala na pełną kontrolę nad bazami danych (CONTROL SERVER with GRANT),</li>
</ul>
<p><img class="aligncenter size-full wp-image-287" title="login2" src="http://tech-blog.it/wp-content/uploads/2009/12/login2.png" alt="login2" width="521" height="470" /></p>
<p>Na stronie <strong>User Mapping</strong> zaznaczamy do której bazy użytkownik będzie posiadał uprawnienia (<strong>Users mapped to this login</strong>), a następnie w sekcji <strong>Database role membership for</strong> : nazwa_bazy  zaznaczamy role, które chcemy nadać:</p>
<ul>
<li> db_accessadmin – zezwala na dodawanie i usuwanie kont,</li>
<li> db_backupoperator – zezwala na wykonywanie kopii zapasowych,</li>
<li> db_datareader – zezwala na odczyt baz danych,</li>
<li> db_datawriter – zezwala na zapisywanie i modyfikację baz danych,</li>
<li> db_ddladmin – zezwala na modyfikację i usuwanie obiektów baz danych,</li>
<li> db_denydatareader – nie zezwala na odczyt baz danych,</li>
<li> db_dentydatawriter – nie zezwala na zapisywanie i modyfikację baz danych,</li>
<li> db_owner – zezwala na pełną kontrolę nad bazą danych,</li>
<li> db_securityadmin – zezwala na zarządzanie uprawnieniami oraz rolami baz danych,</li>
<li> public – rola domyślna, zapewniająca minimum uprawnień.</li>
</ul>
<p><img class="aligncenter size-full wp-image-288" title="login3" src="http://tech-blog.it/wp-content/uploads/2009/12/login3.png" alt="login3" width="521" height="465" /></p>
<p>Strona<strong> Securables </strong>służy do przypisywania uprawnień do obiektów zabezpieczanych dla tego loginu.</p>
<p><img class="aligncenter size-full wp-image-289" title="login4" src="http://tech-blog.it/wp-content/uploads/2009/12/login4.png" alt="login4" width="529" height="471" /><br />
Strona <strong>Status</strong> służy  do nadawania lub odejmowania uprawnień dla loginu do łączenia się z bazą danych (<strong>Permission to connect to Database engine</strong>) oraz blokowania konta.</p>
<p><img class="aligncenter size-full wp-image-290" title="login5" src="http://tech-blog.it/wp-content/uploads/2009/12/login5.png" alt="login5" width="527" height="471" /><br />
<strong>Poniżej znajduje się skrypt wykonanej powyżej operacji:</strong></p>
<p><em>USE [master]<br />
GO<br />
CREATE LOGIN [monika] WITH PASSWORD=N&#8217;Pa$$w0rd&#8217; MUST_CHANGE, DEFAULT_DATABASE=[master], CHECK_EXPIRATION=ON, CHECK_POLICY=ON<br />
GO<br />
EXEC master..sp_addsrvrolemember @loginame = N&#8217;monika&#8217;, @rolename = N&#8217;sysadmin&#8217;<br />
GO<br />
USE [moja_baza]<br />
GO<br />
CREATE USER [monika] FOR LOGIN [monika]<br />
GO<br />
USE [moja_baza]<br />
GO<br />
EXEC sp_addrolemember N&#8217;db_datareader&#8217;, N&#8217;monika&#8217;<br />
GO<br />
USE [moja_baza]<br />
GO<br />
EXEC sp_addrolemember N&#8217;db_datawriter&#8217;, N&#8217;monika&#8217;<br />
GO<br />
USE [moja_baza]<br />
GO<br />
EXEC sp_addrolemember N&#8217;db_owner&#8217;, N&#8217;monika&#8217;<br />
GO</em></p>
<p><strong>W przypadku tworzenia loginu jako użytkownika Windows, skrypt będzie wyglądał następująco:</strong></p>
<p><em>USE [master]<br />
GO<br />
CREATE LOGIN [FREYA\pyszczek] FROM WINDOWS WITH DEFAULT_DATABASE=[master]<br />
GO<br />
EXEC master..sp_addsrvrolemember @loginame = N&#8217;FREYA\pyszczek&#8217;, @rolename = N&#8217;sysadmin&#8217;<br />
GO<br />
USE [baza]<br />
GO<br />
CREATE USER [FREYA\pyszczek] FOR LOGIN [FREYA\pyszczek]<br />
GO<br />
USE [baza]<br />
GO<br />
EXEC sp_addrolemember N&#8217;db_datareader&#8217;, N&#8217;FREYA\pyszczek&#8217;<br />
GO<br />
USE [baza]<br />
GO<br />
EXEC sp_addrolemember N&#8217;db_datawriter&#8217;, N&#8217;FREYA\pyszczek&#8217;<br />
GO<br />
USE [baza]<br />
GO<br />
EXEC sp_addrolemember N&#8217;db_owner&#8217;, N&#8217;FREYA\pyszczek&#8217;<br />
GO</em></p>
]]></content:encoded>
			<wfw:commentRss>http://tech-blog.it/2009/12/tworzenie-loginu-dla-bazy-danych/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Error: 1498 &#8211; SQL 2005 mirror is disabled by default&#8230;</title>
		<link>http://tech-blog.it/2009/11/error-1498-sql-2005-mirror/</link>
		<comments>http://tech-blog.it/2009/11/error-1498-sql-2005-mirror/#comments</comments>
		<pubDate>Mon, 30 Nov 2009 11:44:27 +0000</pubDate>
		<dc:creator>monika</dc:creator>
				<category><![CDATA[SQL Server 2005]]></category>
		<category><![CDATA[Error: 1498]]></category>
		<category><![CDATA[SQL mirroring]]></category>

		<guid isPermaLink="false">http://tech-blog.it/?p=276</guid>
		<description><![CDATA[Zabraliśmy się za tworzenie lustrzanych baz danych i nagle błąd:
Database mirroring is disabled by default. Database mirroring is currently provided for evaluation purposes only and is not to be used in production environments. To enable database mirroring for evaluation purposes, use trace flag 1400 during startup. For more information about trace flags and startup options, [...]]]></description>
			<content:encoded><![CDATA[<p>Zabraliśmy się za tworzenie lustrzanych baz danych i nagle błąd:<em></em></p>
<p><em>Database mirroring is disabled by default. Database mirroring is currently provided for evaluation purposes only and is not to be used in production environments. To enable database mirroring for evaluation purposes, use trace flag 1400 during startup. For more information about trace flags and startup options, see SQL Server Books Online. (Microsoft SQL Server, Error: 1498)</em></p>
<p><img class="aligncenter size-full wp-image-277" title="Screenshot - 25-11-2009 , 10_54_56" src="http://tech-blog.it/wp-content/uploads/2009/11/Screenshot-25-11-2009-10_54_56.png" alt="Screenshot - 25-11-2009 , 10_54_56" width="500" height="200" /></p>
<p>Jak sobie z tym poradzić? Wchodzimy do właściwości serwera SQL i w zakładce<strong> Advanced</strong> przechodzimy do pozycji <strong>Startup Parameters</strong>. Na końcu parametrów startowych dopisujemy: <strong>-T1400</strong> po czym restartujemy serwer SQL.</p>
<p><img class="aligncenter size-full wp-image-278" title="Screenshot - 25-11-2009 , 10_57_22" src="http://tech-blog.it/wp-content/uploads/2009/11/Screenshot-25-11-2009-10_57_22.png" alt="Screenshot - 25-11-2009 , 10_57_22" width="372" height="408" /></p>
]]></content:encoded>
			<wfw:commentRss>http://tech-blog.it/2009/11/error-1498-sql-2005-mirror/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zmiana nazwy instancji SQL 2005</title>
		<link>http://tech-blog.it/2009/11/zmiana-nazwy-instancji-sql-2005/</link>
		<comments>http://tech-blog.it/2009/11/zmiana-nazwy-instancji-sql-2005/#comments</comments>
		<pubDate>Mon, 30 Nov 2009 11:34:20 +0000</pubDate>
		<dc:creator>monika</dc:creator>
				<category><![CDATA[SQL Server 2005]]></category>
		<category><![CDATA[change instance name]]></category>
		<category><![CDATA[sql 2005 zmiana nazwy instancji]]></category>

		<guid isPermaLink="false">http://tech-blog.it/?p=270</guid>
		<description><![CDATA[Aby sprawdzić aktualną nazwę instancji wykonujemy:
sp_helpserver
select @@servername
Teraz zmieniamy nazwę:
sp_dropserver  ‘stara_nazwa’
go
sp_addserver ‘nowa_nazwa’ , ‘local’
go
Aby sprawdzić, czy nazwa została zmieniona, wykonujemy pierwsze zapytanie.

]]></description>
			<content:encoded><![CDATA[<p>Aby sprawdzić aktualną nazwę instancji wykonujemy:</p>
<p style="padding-left: 30px;"><em>sp_helpserver<br />
select @@servername</em></p>
<p>Teraz zmieniamy nazwę:</p>
<p style="padding-left: 30px;"><em>sp_dropserver  ‘stara_nazwa’<br />
go<br />
sp_addserver ‘nowa_nazwa’ , ‘local’<br />
go</em></p>
<p>Aby sprawdzić, czy nazwa została zmieniona, wykonujemy pierwsze zapytanie.<em><br />
</em></p>
]]></content:encoded>
			<wfw:commentRss>http://tech-blog.it/2009/11/zmiana-nazwy-instancji-sql-2005/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQL 2005 dla początkujących: tworzenie nowej bazy oraz jej usuwanie</title>
		<link>http://tech-blog.it/2009/11/tworzenie_bazy/</link>
		<comments>http://tech-blog.it/2009/11/tworzenie_bazy/#comments</comments>
		<pubDate>Mon, 30 Nov 2009 10:20:31 +0000</pubDate>
		<dc:creator>monika</dc:creator>
				<category><![CDATA[SQL Server 2005]]></category>
		<category><![CDATA[Autogrowth]]></category>
		<category><![CDATA[create database]]></category>
		<category><![CDATA[File Groups]]></category>
		<category><![CDATA[SQL 2005]]></category>
		<category><![CDATA[tworzenie baz danych]]></category>
		<category><![CDATA[usuwanie baz danych]]></category>

		<guid isPermaLink="false">http://tech-blog.it/?p=260</guid>
		<description><![CDATA[1. Jak stworzyć nową bazę danych przy pomocy SQL Management Studio
Włączamy SQL Server Management Studio i łączymy się z instancją, w której chcemy dodać nową bazę danych. Klikamy prawym przyciskiem myszy na węźle Databases i wybieramy New Database…
W pozycję Database name wpisujemy nazwę bazy danych, poniżej w pozycji Owner możemy przypisać bazie danych jej właściciela. [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><strong>1. Jak stworzyć nową bazę danych przy pomocy SQL Management Studio</strong></p>
<p>Włączamy SQL Server Management Studio i łączymy się z instancją, w której chcemy dodać nową bazę danych. Klikamy prawym przyciskiem myszy na węźle <strong>Databases</strong> i wybieramy <strong>New Database…</strong><br />
W pozycję <strong>Database name</strong> wpisujemy nazwę bazy danych, poniżej w pozycji<strong> Owner</strong> możemy przypisać bazie danych jej właściciela. Aby to zrobić wciskamy przycisk<strong> […]</strong> i wybieramy jego nazwę. Jeśli chcemy włączyć pełnotekstowe wyszukiwanie w bazie danych, należy zaznaczyć opcje <strong>Use full-text indexing</strong>.<br />
W sekcji <strong>Database files</strong> możemy zobaczyć dokładne informacje na temat tworzonej bazy danych:<br />
<strong>Logical Nam</strong>e – logiczna nazwa bazy danych i logu transakcyjnego.<br />
<strong>File type</strong> – typ plików (dane oraz log transakcyjny).<br />
<strong>Filegroup </strong>– grupa plików w jakiej znajduje się dany plik. O grupach plików będzie można przeczytać dalej.<br />
<strong>Initial Size (MB)</strong> – rozmiar każdego z utworzonych plików.<br />
<strong>Autogrowth</strong> – służy to konfiguracji automatycznego przyrostu bazy danych.<br />
<strong>Path</strong> – ścieżka, gdzie znajdują się pliki danych i logu transakcyjnego. Obydwa pliki domyślnie znajdują się w katalogu Data (<em>C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data</em>). W każdej chwili jednak można zmienić ich lokalizację poprzez wciśnięcie przycisku <strong>[…]</strong> . Pliki te mogą znajdować się w innych folderach, bądź na oddzielnych dyskach.<br />
<strong>File name</strong> – nazwa pliku (nazwabazy_data.mdf oraz nazwabazy_log.ldf)</p>
<p><img class="aligncenter size-full wp-image-261" title="db1" src="http://tech-blog.it/wp-content/uploads/2009/11/db1.png" alt="db1" width="610" height="447" /></p>
<p>Przechodzimy do zakładki <strong>Options</strong>. W pozycji <strong>Collation</strong> możemy zmienić rodzaj kodowania językowego. Domyślnie jest on taki sam, jak ustawiony dla całego serwera w czasie jego instalacji.<br />
W pozycji <strong>Recovery model </strong>możemy wybrać model odzyskiwania danych. Więcej o modelu odzyskiwania danych, w dalszej  części artykułu.<br />
Poniżej w sekcji <strong>Compatibility level </strong>możemy wybrać poziom kompatybilności bazy. Domyślnie jest to SQL Server 2005. Do wyboru mamy jeszcze SQL Server 2000 lub SQL Server 7.0.</p>
<p><img class="aligncenter size-full wp-image-262" title="db2" src="http://tech-blog.it/wp-content/uploads/2009/11/db2.png" alt="db2" width="610" height="444" /></p>
<p>Wciskamy przycisk <strong>OK</strong> i baza danych zostaje stworzona.</p>
<p style="text-align: center;"><strong>2. Jak stworzyć nową bazę danych przy pomocy zapytania T-SQL.</strong></p>
<p>Poniżej znajduje się listing z powyższej operacji tworzenia bazy danych:</p>
<p><em>CREATE DATABASE [moja_baza] ON  PRIMARY<br />
( NAME = N&#8217;moja_baza&#8217;, FILENAME = N&#8217;C:\dane\moja_baza.mdf&#8217; , SIZE = 3072KB , FILEGROWTH = 1024KB )<br />
LOG ON<br />
( NAME = N&#8217;moja_baza_log&#8217;, FILENAME = N&#8217;C:\logi\moja_baza_log.ldf&#8217; , SIZE = 1024KB , FILEGROWTH = 10%)<br />
GO<br />
EXEC dbo.sp_dbcmptlevel @dbname=N&#8217;moja_baza&#8217;, @new_cmptlevel=90<br />
GO<br />
IF (1 = FULLTEXTSERVICEPROPERTY(&#8217;IsFullTextInstalled&#8217;))<br />
begin<br />
EXEC [moja_baza].[dbo].[sp_fulltext_database] @action = &#8216;disable&#8217;<br />
end<br />
GO<br />
ALTER DATABASE [moja_baza] SET ANSI_NULL_DEFAULT OFF<br />
GO<br />
ALTER DATABASE [moja_baza] SET ANSI_NULLS OFF<br />
GO<br />
ALTER DATABASE [moja_baza] SET ANSI_PADDING OFF<br />
GO<br />
ALTER DATABASE [moja_baza] SET ANSI_WARNINGS OFF<br />
GO<br />
ALTER DATABASE [moja_baza] SET ARITHABORT OFF<br />
GO<br />
ALTER DATABASE [moja_baza] SET AUTO_CLOSE OFF<br />
GO<br />
ALTER DATABASE [moja_baza] SET AUTO_CREATE_STATISTICS ON<br />
GO<br />
ALTER DATABASE [moja_baza] SET AUTO_SHRINK OFF<br />
GO<br />
ALTER DATABASE [moja_baza] SET AUTO_UPDATE_STATISTICS ON<br />
GO<br />
ALTER DATABASE [moja_baza] SET CURSOR_CLOSE_ON_COMMIT OFF<br />
GO<br />
ALTER DATABASE [moja_baza] SET CURSOR_DEFAULT  GLOBAL<br />
GO<br />
ALTER DATABASE [moja_baza] SET CONCAT_NULL_YIELDS_NULL OFF<br />
GO<br />
ALTER DATABASE [moja_baza] SET NUMERIC_ROUNDABORT OFF<br />
GO<br />
ALTER DATABASE [moja_baza] SET QUOTED_IDENTIFIER OFF<br />
GO<br />
ALTER DATABASE [moja_baza] SET RECURSIVE_TRIGGERS OFF<br />
GO<br />
ALTER DATABASE [moja_baza] SET AUTO_UPDATE_STATISTICS_ASYNC OFF<br />
GO<br />
ALTER DATABASE [moja_baza] SET DATE_CORRELATION_OPTIMIZATION OFF<br />
GO<br />
ALTER DATABASE [moja_baza] SET PARAMETERIZATION SIMPLE<br />
GO<br />
ALTER DATABASE [moja_baza] SET  READ_WRITE<br />
GO<br />
ALTER DATABASE [moja_baza] SET RECOVERY FULL<br />
GO<br />
ALTER DATABASE [moja_baza] SET  MULTI_USER<br />
GO<br />
ALTER DATABASE [moja_baza] SET PAGE_VERIFY CHECKSUM<br />
GO<br />
USE [moja_baza]<br />
GO<br />
IF NOT EXISTS (SELECT name FROM sys.filegroups WHERE is_default=1 AND name = N&#8217;PRIMARY&#8217;) ALTER DATABASE [moja_baza] MODIFY FILEGROUP [PRIMARY] DEFAULT<br />
GO</em></p>
<p style="text-align: center;"><strong>3. Omówienie przydatnych funkcji:</strong></p>
<p><strong>Model Odzyskiwania</strong><br />
Przechodząc do właściwości bazy danych i zakładki <strong>Options</strong>,  z rozwijanej listy możemy wybrać jeden z trzech modeli odzyskiwania (<strong>Recovery Model</strong>):<br />
•    <strong>Full</strong> &#8211; dzięki rozległemu logowaniu oferuje możliwość odtworzenia stanu z dowolnego punktu w czasie i nie ma ryzyka utraty wyników pracy.<br />
•    <strong>Bulk logged</strong> – uzupełnienie modelu Full, dodatkowo w pliku logu transakcyjnego rejestrowane są operacje bulk (import dużej ilości danych).<br />
•    <strong>Simple</strong> – jako iż nie oferuje kopii zapasowych dzienników transakcyjnych, bazę danych można odzyskać jedynie z ostatniego pliku kopii zapasowych.</p>
<p>To samo możemy wykonać poprzez zapytanie T-SQL:</p>
<p><em>USE [master]<br />
GO<br />
ALTER DATABASE [baza2] SET RECOVERY FULL | SIMPLE | BULK_LOGGED WITH NO_WAIT<br />
GO</em></p>
<p><strong>Autogrowth</strong><br />
Aby zezwolić na powiększanie plików bazy danych i logu transakcyjnego, przechodzimy do właściwości bazy danych i na stronie Files wciskamy przycisk<strong> […] </strong>w pozycji<strong> Autogrowth</strong>,  a następnie zaznaczamy opcje<strong> Enable Autogrowth</strong>.<br />
Poniżej mamy możliwość określenia czy plik będzie powiększał się procentowo (<strong>In Percent</strong>) czy będzie powiększał się w określoną ilość megabajtów (<strong>In Megabytes</strong>).<br />
Możemy również określić maksymalny rozmiar pliku, zaznaczając opcję <strong>Restricted File Growth</strong> i określając ilość megabajtów. Jeśli nie chcemy określać maksymalnego rozmiaru, zaznaczamy<strong> Unrestricted File Growth</strong>.</p>
<p><img class="aligncenter size-full wp-image-263" title="db3" src="http://tech-blog.it/wp-content/uploads/2009/11/db3.png" alt="db3" width="289" height="226" /><br />
<strong>File Groups</strong><br />
Oprócz głównych plików .mdf i .ldf można utworzyć dodatkowe pomocnicze pliki danych (pliki .ndf). Pliki te służą do odseparowania różnych danych (np. indeksy, procedury składowe, tabele użytkownika mogą znajdować się w innych plikach i na innych dyskach niż tabele systemowe).<br />
Aby stworzyć nową grupę plików przechodzimy do właściwości bazy danych, a następnie do strony<strong> Files</strong> i wciskamy przycisk<strong> Add</strong>. W sekcji <strong>Database files</strong> zostanie dodany nowy plik. Nadajemy mu nazwę oraz z rozwijanej listy w pozycji <strong>Filegroup</strong> wybieramy <strong>New file group</strong> (ponieważ w grupie PRIMARY znajduje się główny plik danych).</p>
<p><img class="aligncenter size-full wp-image-264" title="db4" src="http://tech-blog.it/wp-content/uploads/2009/11/db4.png" alt="db4" width="257" height="123" /></p>
<p>W kolejnym oknie kreatora nadajemy nazwę nowo utworzonej grupie oraz określamy czy ma być grupą domyślną, gdzie będą zapisywane wszystkie nowo utworzone pliki (aktualną grupą domyślną jest grupa PRIMARY), jak i również, czy grupa ma być w trybie tylko do odczytu (<strong>Read-only</strong>).</p>
<p><img class="aligncenter size-full wp-image-265" title="db5" src="http://tech-blog.it/wp-content/uploads/2009/11/db5.png" alt="db5" width="302" height="188" /></p>
<p>Nową grupę plików możemy również utworzyć na stronie <strong>Filegroups</strong>. Wciskamy przycisk <strong>Add</strong> i w pozycji <strong>Name </strong>wpisujemy nazwę nowej grupy oraz zaznaczamy, czy grupa ma być domyślna i czy ma być w trybie tylko do odczytu.</p>
<p><img class="aligncenter size-full wp-image-266" title="db6" src="http://tech-blog.it/wp-content/uploads/2009/11/db6.png" alt="db6" width="439" height="131" /></p>
<p>W przypadku zapytania T-SQL, tworzenie nowej grupy wygląda w następujący sposób:</p>
<p><em>USE [master]<br />
GO<br />
ALTER DATABASE [moja_baza] ADD FILEGROUP [NOWA GRUPA]<br />
GO</em></p>
<p><em>Natomiast dodawanie pliku do nowo utworzonej grupy:</em></p>
<p><em>USE [master]<br />
GO<br />
ALTER DATABASE [moja_baza] ADD FILE ( NAME = N&#8217;nowy_plik&#8217;, FILENAME = N&#8217;C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\nowy_plik.ndf&#8217; , SIZE = 2048KB , FILEGROWTH = 1024KB ) TO FILEGROUP [NOWA GRUPA]<br />
GO<br />
</em><br />
<strong>Pozostałe przydatne opcje na stronie Options w sekcji Other options:</strong><br />
<strong>AUTO_CLOSE</strong> – służy do automatycznego zamykania, gdy baza danych nie jest w użyciu. W momencie, gdy ktoś chce użyć bazy ponownie, baza się otwiera.<br />
<strong>AUTO_CREATE_STATISTICS</strong> – służy do tworzenia automatycznych statystyk na kolumnach w tabelach.<br />
<strong>AUTO_UPDATE_STATICTIC</strong>S – służy do automatycznego uaktualniania statystyk.<br />
<strong>AUTO_SHRINK</strong> – służy do automatycznego zmniejszania danych i logu transakcyjnego w przypadku, gdy 25% pliku zawiera niewykorzystane miejsce.<strong></strong></p>
<p style="text-align: center;"><strong>4. Jak usunąć bazę danych?</strong></p>
<p style="text-align: left;">Aby usunąć bazę danych klikamy prawym przyciskiem myszy na jej nazwie i wybieramy <strong>Delete</strong>.<br />
Na głównym ekranie widzimy nazwę bazy danych i jej właściciela. Poniżej możemy zaznaczyć dwie opcje: <strong>Delete backup and restore history for database</strong>, której zaznaczenie spowoduje usunięcie historii kopii zapasowych i odzyskiwania danej bazy danych oraz opcja <strong>Close existing connections</strong>, która pozwala na zamknięcie wszystkich aktualnie istniejących połączeń z bazą danych.<br />
Aby usunąć bazę danych należy wcisnąć przycisk OK.</p>
<p style="text-align: left;"><img class="aligncenter size-full wp-image-267" title="db7" src="http://tech-blog.it/wp-content/uploads/2009/11/db7.png" alt="db7" width="501" height="454" /></p>
<p style="text-align: left;">Poniżej znajduje się skrypt tej operacji:</p>
<p><em>EXEC msdb.dbo.sp_delete_database_backuphistory @database_name = N&#8217;moja_baza&#8217;<br />
GO<br />
USE [master]<br />
GO<br />
DROP DATABASE [moja_baza]<br />
GO</em></p>
]]></content:encoded>
			<wfw:commentRss>http://tech-blog.it/2009/11/tworzenie_bazy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wysoka dostępność baz MS SQL 2005 &#8211; Lustrzane bazy</title>
		<link>http://tech-blog.it/2009/11/sql2005mirroring/</link>
		<comments>http://tech-blog.it/2009/11/sql2005mirroring/#comments</comments>
		<pubDate>Sun, 29 Nov 2009 12:51:44 +0000</pubDate>
		<dc:creator>monika</dc:creator>
				<category><![CDATA[SQL Server 2005]]></category>
		<category><![CDATA[sql 2005 mirror]]></category>

		<guid isPermaLink="false">http://tech-blog.it/?p=249</guid>
		<description><![CDATA[Artykuł ukazał się na łamach portalu WindowsHosting.pl.
Podobnie jak w przypadku log shipping, transakcje w lustrzanych kopiach baz danych są przenoszone z serwera głównego (Principial Server) na serwer pomocniczy, nazywany tutaj serwerem lustrzanym (Mirror Server) z tą różnicą, że transakcje są zatwierdzanie w momencie, kiedy następują.
Na serwerze głównym znajduje się główna baza danych, gdzie przeprowadzane są [...]]]></description>
			<content:encoded><![CDATA[<p><em>Artykuł ukazał się na łamach portalu <a href="http://windowshosting.pl/Lustrzane.kopie.baz.danych.czyli.zapewnianie.wysokiej.dostepnosci.w.bazach.danych.MS.SQL.2005">WindowsHosting.pl</a>.</em></p>
<p>Podobnie jak w przypadku log shipping, transakcje w lustrzanych kopiach baz danych są przenoszone z serwera głównego (<strong>Principial Server</strong>) na serwer pomocniczy, nazywany tutaj serwerem lustrzanym (<strong>Mirror Server</strong>) z tą różnicą, że transakcje są zatwierdzanie w momencie, kiedy następują.<br />
Na serwerze głównym znajduje się główna baza danych, gdzie przeprowadzane są transakcje. Serwer główny zapisuje zmiany w głównym dzienniku transakcji i automatycznie przenosi informacje na temat przeprowadzonych transakcji na serwer lustrzany, który dokonuje wpisu w swoim dzienniku transakcji. Następnie serwer lustrzany wysyła potwierdzenie do serwera głównego.<br />
W ten sposób serwer lustrzany zawiera pełną kopię bazy danych ze wszystkimi wykonanymi transakcjami. Należy jednak pamiętać, że nie można tworzyć lustrzanych baz danych z baz systemowych.<br />
W celu zapewnienia wysokiej dostępności możemy skonfigurować dodatkowy serwer zwany serwerem pomocniczym (<strong>Witness Server</strong>), który monitoruje serwery z główną i lustrzaną bazą danych.  W momencie, gdy następuje awaria i przestanie działać serwer główny, serwer nadzorujący wykonuje automatyczne przekierowanie i serwer lustrzany pełni funkcję serwera głównego. Aplikacje, które używają SNAC (SQL Native Client) lub .NET Data Provider są przełączane z serwera głównego na lustrzany transparentnie.</p>
<p style="text-align: center;"><strong>Jak skonfigurować lustrzaną bazę danych w SQL Management Studio?</strong></p>
<p style="text-align: left;">W SQL Management Studio klikamy prawym przyciskiem myszy na bazie danych i w jej właściwościach przechodzimy do strony Mirroring. Najpierw musimy skonfigurować zabezpieczenia serwera głównego i lustrzanego, a przy wyborze opcji z serwerem nadzorującym – także i jego. W tym celu przyciskamy <strong>Configure Security</strong>.<br />
Na pierwszej stronie kreatora określamy, czy chcemy używać serwera nadzorującego (<strong>Witness Server instance</strong>), który służy do automatycznego przywracania po awarii w trybie synchronicznym .</p>
<p style="text-align: left;"><img class="aligncenter size-full wp-image-250" title="mirror1" src="http://tech-blog.it/wp-content/uploads/2009/11/mirror1.png" alt="mirror1" width="372" height="336" /></p>
<p style="text-align: left;">Na kolejnym ekranie <strong>Choose Servers to Configure</strong> możemy zaznaczyć, które instancje chcemy skonfigurować.</p>
<p style="text-align: left;"><img class="aligncenter size-full wp-image-251" title="mirror2" src="http://tech-blog.it/wp-content/uploads/2009/11/mirror2.png" alt="mirror2" width="389" height="345" /></p>
<p style="text-align: left;">Na stronie <strong>Principal Server Instance</strong> określamy węzeł końcowy (<strong>Endpoint</strong>), poprzez który główny serwer będzie akceptował połączenia z serwera lustrzanego i serwera nadzorującego. W pozycji <strong>Listener port</strong> wpisujemy numer portu, którego chcemy używać. Należy pamiętać, że jeśli którykolwiek z instancji serwera: główny, lustrzany czy nadzorujący znajduje się na tym samym serwerze, numer portu musi się różnić.  Wpisujemy port i nadajemy węzłowi końcowemu nazwę oraz zaznaczamy czy chcemy szyfrować dane wysyłane przez ten endpoint <strong>(Enrypt data sent through this endpoint</strong>).</p>
<p style="text-align: left;"><img class="aligncenter size-full wp-image-252" title="mirror3" src="http://tech-blog.it/wp-content/uploads/2009/11/mirror3.png" alt="mirror3" width="435" height="391" /></p>
<p style="text-align: left;">Na kolejnej stronie konfigurujemy instancję serwera lustrzanego. Z rozwijanej listy <strong>Mirror server instance</strong> wybieramy żądaną instancję i serwer oraz wciskamy przycisk <strong>Connect</strong>. Poniżej, podobnie jak na ekranie powyżej konfigurujemy port oraz nazwę węzła końcowego.</p>
<p style="text-align: left;"><img class="aligncenter size-full wp-image-253" title="mirror4" src="http://tech-blog.it/wp-content/uploads/2009/11/mirror4.png" alt="mirror4" width="416" height="376" /></p>
<p style="text-align: left;">Jeśli wybraliśmy opcję z serwerem nadzorującym, wybieramy nazwę jego instancji w pozycji <strong>Witness server instance</strong>, wciskamy <strong>Connect</strong> i ponownie konfigurujemy numer portu i nazwę węzła.</p>
<p style="text-align: left;"><img class="aligncenter size-full wp-image-254" title="mirror5" src="http://tech-blog.it/wp-content/uploads/2009/11/mirror5.png" alt="mirror5" width="431" height="384" /></p>
<p style="text-align: left;">Jeśli instancje używają różnych kont w zaufanej domenie jako kont usług SQL, należy je wpisać w pozycje <strong>Principal, Witness i Mirror</strong>. Jeśli wszystkie instancje używają tego samego konta, klikamy przycisk <strong>Next</strong> bez wpisywania czegokolwiek.</p>
<p style="text-align: left;"><img class="aligncenter size-full wp-image-255" title="mirror6" src="http://tech-blog.it/wp-content/uploads/2009/11/mirror6.png" alt="mirror6" width="406" height="362" /></p>
<p style="text-align: left;">Na ostatniej stronie czytamy podsumowanie i wciskamy przycisk<strong> Finish</strong>.</p>
<p>Po zakończeniu zostanie stworzony mechanizm tworzenia lustrzanych baz danych.<br />
Przed włączeniem mechanizmu, należy wykonać pełną kopię zapasową głównej bazy danych i odtworzyć ją na serwerze lustrzanym z opcją <strong>RESTORE WITH NORECOVERY</strong>. Lustrzana baza danych będzie znajdowała się teraz w stanie<strong> In Recovery</strong>.</p>
<p>Po odtworzeniu bazy danych powracamy do kreatora lustrzanych baz danych i przed wciśnięciem przycisku <strong>Start Mirroring</strong> wybieramy tryb w sekcji <strong>Operating Mod</strong>e. Do wyboru mamy trzy tryby:</p>
<ul>
<li>Synchroniczny z automatycznym przywracaniem po awarii (<strong>Synchronous with automatic failover (high availability)</strong>), który gwarantuje wysoką dostępność. Do działania w tym trybie niezbędny jest uprzednio skonfigurowany serwer nadzorujący. Transakcja zostaje uważana za zakończoną na serwerze główny, gdy serwer lustrzany zapisze transakcję w swoim dzienniku i wyśle potwierdzenie do serwera głównego. Serwer nadzorujący kontroluje automatyczne przywrócenie po awarii na serwerze lustrzanym, gdy serwer główny jest niedostępny.</li>
<li>Asynchroniczny (<strong>Asynchronous (high performance)</strong>) – Zmiany zostają zatwierdzone na serwerze głównym a następnie transferowane są na serwer lustrzany. W tym trybie, serwer główny zatwierdza transakcje bez oczekiwania na potwierdzenie od serwera lustrzanego. Nie działa tu automatyczne przywracanie po awarii. Jeśli główny serwer przestaje działać, należy ręcznie  przekazać jego działania serwerowi lustrzanemu. Tryb ten jest szybszy w działaniu niż tryb synchroniczny, niestety istnieje możliwość, że część transakcji nie zostanie zapisanych na serwerze lustrzanym.</li>
<li>Synchroniczny (<strong>Synchronous (high protection)</strong>) zapewniający wysoką ochronę – Zatwierdzanie zmian odbywa się na obydwu serwerach. Nie zawiera serwera nadzorującego. Jeśli główny serwer przestaje działać, pełna kopia danych znajdująca się na serwerze lustrzanym zostaje ręcznie wypromowana do działania jako serwer główny. Jeśli natomiast serwer lustrzany przestaje działać, serwer główny przechodzi w tryb offline, a dane nie zostają utracone.</li>
</ul>
<p style="text-align: left;"><img class="aligncenter size-full wp-image-256" title="mirror8" src="http://tech-blog.it/wp-content/uploads/2009/11/mirror8.png" alt="mirror8" width="507" height="454" /></p>
<p style="text-align: left;">Ten sam process można wykonać poprzez zapytanie T-SQL:</p>
<p><em>CREATE ENDPOINT [Mirroring]<br />
AS TCP (LISTENER_PORT = 5022)<br />
FOR DATA_MIRRORING (ROLE = PARTNER, ENCRYPTION = REQUIRED ALGORITHM RC4)<br />
ALTER ENDPOINT [Mirroring] STATE = STARTED</em></p>
<p><em>CREATE ENDPOINT [Mirroring]<br />
AS TCP (LISTENER_PORT = 5022)<br />
FOR DATA_MIRRORING (ROLE = PARTNER, ENCRYPTION = REQUIRED ALGORITHM RC4)<br />
ALTER ENDPOINT [Mirroring] STATE = STARTED</em></p>
<p><em>CREATE ENDPOINT [Mirroring]<br />
AS TCP (LISTENER_PORT = 5023)<br />
FOR DATA_MIRRORING (ROLE = WITNESS, ENCRYPTION = REQUIRED ALGORITHM RC4)<br />
ALTER ENDPOINT [Mirroring] STATE = STARTED</em></p>
<p><em>ALTER DATABASE [db] SET PARTNER = &#8216;TCP://serwer1.local:5022&#8242;<br />
ALTER DATABASE [db] SET PARTNER = &#8216;TCP://serwer2.local :5022&#8242;<br />
ALTER DATABASE [db] SET WITNESS = &#8216;TCP://witness.local:5023&#8242;</em></p>
]]></content:encoded>
			<wfw:commentRss>http://tech-blog.it/2009/11/sql2005mirroring/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Jak skonfigurować przesyłanie dziennika transakcji (Log shipping) w SQL Management Studio.</title>
		<link>http://tech-blog.it/2009/11/logshipping/</link>
		<comments>http://tech-blog.it/2009/11/logshipping/#comments</comments>
		<pubDate>Tue, 24 Nov 2009 12:10:44 +0000</pubDate>
		<dc:creator>monika</dc:creator>
				<category><![CDATA[SQL Server 2005]]></category>
		<category><![CDATA[log shipping]]></category>
		<category><![CDATA[SQL 2005]]></category>

		<guid isPermaLink="false">http://tech-blog.it/?p=237</guid>
		<description><![CDATA[Przed konfiguracją Log shipping należy stworzyć udział plików na backup logów transakcyjnych, aby nie obciążać serwera głównego i aby zapewnić wysoką dostępność najlepiej jest to zrobić na innym serwerze.
Następnie dla każdego serwera pomocniczego należy stworzyć folder, do którego będą kopiowane backupy logów transakcyjnych.
W SQL Management Studio klikamy prawym przyciskiem na nazwę bazy danych, dla której [...]]]></description>
			<content:encoded><![CDATA[<p>Przed konfiguracją <strong>Log shipping</strong> należy stworzyć udział plików na backup logów transakcyjnych, aby nie obciążać serwera głównego i aby zapewnić wysoką dostępność najlepiej jest to zrobić na innym serwerze.<br />
Następnie dla każdego serwera pomocniczego należy stworzyć folder, do którego będą kopiowane backupy logów transakcyjnych.</p>
<p>W SQL Management Studio klikamy prawym przyciskiem na nazwę bazy danych, dla której chcemy skonfigurować przesyłanie dziennika i przechodzimy do jej właściwości. Klikamy na stronę<strong> Transaction Log Shipping</strong> i zaznaczamy <strong>Enable this as a primary database in a log shopping configuration</strong>.<br />
Poniżej w sekcji <strong>Trasaction log backups</strong> wciskamy przycisk <strong>Backup Settings</strong>, aby skonfigurować opcję wykonywania kopi zapasowej logu transakcyjnego<span id="more-237"></span></p>
<p><img class="aligncenter size-full wp-image-236" title="ls1" src="http://tech-blog.it/wp-content/uploads/2009/11/ls1.png" alt="ls1" width="465" height="416" /><br />
Backup logów transakcyjnych jest wykonywany poprzez zadanie Agenta serwera SQL działającego na głównym serwerze SQL.<br />
Na stronie <strong>Transaction Log Backup Settings</strong> określamy ścieżkę do udziału sieciowego, gdzie będą przechowywane backupy. Poniżej, jeśli folder backupów znajduje się na głównym serwerze, możemy wpisać lokalną ścieżkę do tego folderu.<br />
Mamy tu również możliwość określenia, po ilu godzinach pliki backupu będą kasowane. Domyślnie są to 72 godziny.<br />
Poniżej w<strong> Backup Job</strong> klikamy na przycisk<strong> Schedule</strong> i określamy harmonogram, kiedy zadanie ma się wykonywać.<br />
Klikamy przycisk OK. i wracamy do głównego okna konfiguracyjnego.</p>
<p>Uwaga: Jeśli wykonujemy kopię zapasową logów transakcyjnych wraz z innym zadaniem lub planem konserwacyjnym, Management Studio nie będzie w stanie wykonać odzyskiwania backupu na instancjach na serwerze pomocniczym.</p>
<p><img class="aligncenter size-full wp-image-238" title="ls2" src="http://tech-blog.it/wp-content/uploads/2009/11/ls2.png" alt="ls2" width="450" height="416" /><br />
Następnie w głównym oknie, w sekcji<strong> Secondary Server instances and databases</strong> wciskamy przycisk<strong> Add</strong>, aby dodać serwer pomocniczy.<br />
Na stronie<strong> Secondary Database Settings</strong> wciskamy przycisk <strong>Connect</strong> i łączymy się z serwerem, który będzie pełnił rolę standby i w pozycji <strong>Secondary database</strong> wybieramy nazwę bazy danych.</p>
<p>Na serwerze pomocniczym należy odzyskać pełną kopię zapasową głównej bazy danych przed tym, gdy serwer pomocniczy stanie się miejscem przeznaczenia przesyłania dzienników transakcji. Na zakładce <strong>Initialize Secondary Database</strong> możemy zaznaczyć w jaki sposób będzie przebiegał proces odzyskiwania z backupu na serwerze pomocniczym. Do wyboru mamy opcje:</p>
<ul>
<li>Tak, stwórz pełny backup głównej bazy danych i odzyskaj ją na serwerze pomocniczym (oraz utwórz bazę pomocniczą, jeśli taka nie istnieje),</li>
<li>Tak, odzyskaj istniejący plik backupu serwera głównego na bazę danych na serwerze pomocniczym (oraz utwórz pomocniczą bazę danych, jeśli taka nie istnieje).</li>
<li>Nie, pomocnicza baza danych jest zainicjowana.</li>
</ul>
<p>Jeśli wybierzemy opcję pierwszą, należy kliknąć przycisk <strong>Restore Options</strong>. Jeśli baza pomocnicza będzie utworzona w momencie odtwarzania backupu, możemy określić folder, w którym zostaną stworzone pliki danych oraz logu transakcyjnego. Wpisujemy zatem ścieżkę do folderów na serwerze pomocniczym.<br />
Jeśli wybierzemy opcję drugą, musimy określić ścieżkę do zasobu sieciowego, gdzie znajduje się plik kopii zapasowej, do którego ma dostęp serwer pomocniczy.<br />
Trzecią opcję wybieramy w przypadku wypromowania pomocniczej bazy danych na główną.</p>
<p><img class="aligncenter size-full wp-image-239" title="ls3" src="http://tech-blog.it/wp-content/uploads/2009/11/ls3.png" alt="ls3" width="475" height="427" /><br />
Pliki są kopiowane z katalogu backup, na serwer docelowy poprzez zadanie Agenta serwera SQL działające na serwerze pomocniczym. Zakładka <strong>Copy Files</strong> służy do skonfigurowania folderu docelowego.<br />
Poniżej możemy określić, po jakim czasie skopiowane pliki mają zostać usunięte. Domyślnie są to 72 godziny.<br />
W sekcji <strong>Copy Job</strong> możemy określić, kiedy zadanie kopiowania ma się wykonywać. Wciskamy przycisk <strong>Schedule</strong> i określamy harmonogram wykonywania zadania.</p>
<p><img class="aligncenter size-full wp-image-240" title="ls4" src="http://tech-blog.it/wp-content/uploads/2009/11/ls4.png" alt="ls4" width="460" height="410" /></p>
<p>Pliki są odzyskiwane z katalogu docelowego przy użyciu zadania Agenta serwera SQL działającego na serwerze pomocniczym. W zakładce <strong>Restore Transaction Log</strong> możemy określić stan bazy danych po wykonaniu zadania odzyskiwania z backupu. Do wyboru mamy <strong>No recovery mode</strong> lub<strong> Standby mode</strong>. Rzecz jasna jak i w poprzednich zakładkach, możemy określić, kiedy zadanie ma się wykonywać.</p>
<p><img class="aligncenter size-full wp-image-241" title="ls5" src="http://tech-blog.it/wp-content/uploads/2009/11/ls5.png" alt="ls5" width="425" height="380" /><br />
Klikamy OK aby zamknąć okno konfiguracji serwera pomocniczego oraz OK aby zamknąć główne okno konfiguracyjne i rozpocząć proces przesyłania dzienników.<br />
Po zakończeniu możemy prześledzić raport z wykonanej operacji.</p>
<p><img class="aligncenter size-full wp-image-242" title="ls6" src="http://tech-blog.it/wp-content/uploads/2009/11/ls6.png" alt="ls6" width="441" height="225" /><br />
Natomiast na serwerze pomocniczym możemy zauważyć, że baza danych ma status <strong>Restoring</strong>.</p>
<p><img class="aligncenter size-full wp-image-243" title="ls7" src="http://tech-blog.it/wp-content/uploads/2009/11/ls7.png" alt="ls7" width="260" height="130" /></p>
<p style="text-align: center;"><strong>Jak wypromować serwer standby na serwer główny.</strong></p>
<p style="text-align: left;">
Przesyłanie dziennika transakcji odtwarza pełny backup bazy danych serwera głównego na serwer pomocniczy. Następnie cyklicznie przenosi transakcje ze zmianami z serwera głównego, na serwer standby.<br />
Niestety w przypadku awarii serwera głównego, serwer standby działa jedynie w trybie tylko do odczytu (read-only) i nie może służyć jako serwer awaryjny. Jeśli po awarii chcemy użyć serwera standby jako serwera głównego, należy go wypromować ręcznie.<br />
Aby to zrobić należy odtworzyć plik logu transakcyjnego serwera głównego na serwerze standby, a następnie wyłączyć zadania i kopiowania i odtwarzania. W dalszej kolejności należy uruchomić usługę przesyłania dziennika transakcji w taki sposób, jak zostało opisane powyżej z jedną zmianą: dodając nowy serwer pomocniczy na stronie<strong> Secondary Detabase Settings</strong>, w sekcji<strong> Secondary database</strong> wpisujemy nazwę bazy danych oryginalnego serwera głównego, a w zakładce <strong>Initialize Secondary Database</strong> zaznaczamy <strong>No, the secondary database is initialized</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://tech-blog.it/2009/11/logshipping/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Microsoft SQL Server, Error 1475</title>
		<link>http://tech-blog.it/2009/07/microsoft-sql-server-error-1475/</link>
		<comments>http://tech-blog.it/2009/07/microsoft-sql-server-error-1475/#comments</comments>
		<pubDate>Tue, 28 Jul 2009 14:35:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[SQL Server 2005]]></category>
		<category><![CDATA[error 1475]]></category>
		<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://tech-blog.it/?p=84</guid>
		<description><![CDATA[W czasie próby uruchomienia usługi lustrzanych baz danych w SQL 2005, bardzo często można natknąć się na następujący błąd:
Database Mirroring cannot be enabled because the database may have bulk logged changes that have not been backed up. The last log backup on the principal must be restored on the mirror. (Microsoft SQL Server, Error 1475)

Aby [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">W czasie próby uruchomienia usługi lustrzanych baz danych w SQL 2005, bardzo często można natknąć się na następujący błąd:</p>
<p style="text-align: justify;"><em>Database Mirroring cannot be enabled because the database may have bulk logged changes that have not been backed up. The last log backup on the principal must be restored on the mirror. (Microsoft SQL Server, Error 1475)<span id="more-84"></span></em></p>
<p><img class="aligncenter size-full wp-image-545" title="screenshot-28-07-2009-08_46_03" src="http://tech-blog.it/wp-content/uploads/2009/07/screenshot-28-07-2009-08_46_03.png" alt="screenshot-28-07-2009-08_46_03" width="483" height="178" /></p>
<p>Aby rozwiązać ten problem, należy wykonać pełną kopię zapasową bazy danych na serwerze głównym i odtworzyć ją na serwerze lustrzanym z opcją <strong>RESTORE WITH NOREVOVERY</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://tech-blog.it/2009/07/microsoft-sql-server-error-1475/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Konfiguracja operatorów i zadania administracyjnego w SQL 2005</title>
		<link>http://tech-blog.it/2008/12/konfiguracja-operatorow-i-zadania-administracyjnego-w-sql-2005/</link>
		<comments>http://tech-blog.it/2008/12/konfiguracja-operatorow-i-zadania-administracyjnego-w-sql-2005/#comments</comments>
		<pubDate>Mon, 01 Dec 2008 14:48:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[SQL Server 2005]]></category>
		<category><![CDATA[database mail]]></category>
		<category><![CDATA[SQL 2005]]></category>

		<guid isPermaLink="false">http://tech-blog.it/?p=58</guid>
		<description><![CDATA[Po skonfigurowaniu Database Mail (o tym jak to zrobić tutaj) czas na konfigurację operatora i zadania administracyjnego.
Przechodzimy do SQL Server agent i wchodzimy w jego właściwości. Przechodzimy na podstronę Alert System i zaznaczamy Enable mail profile, po czym w Mail system ustawiamy Database Mail, a w Mail profile ustawiamy profil utworzony przy okazji konfiguracji Database [...]]]></description>
			<content:encoded><![CDATA[<p>Po skonfigurowaniu Database Mail (o tym jak to zrobić <strong><a href="http://pyszczek.net/archives/260">tutaj</a></strong>) czas na konfigurację operatora i zadania administracyjnego.</p>
<p>Przechodzimy do<strong> SQL Server agent</strong> i wchodzimy w jego właściwości. Przechodzimy na podstronę <strong>Alert System</strong> i zaznaczamy <strong>Enable mail profile</strong>, po czym w <strong>Mail system</strong> ustawiamy <strong>Database Mail</strong>, a w <strong>Mail profile</strong> ustawiamy profil utworzony przy okazji konfiguracji Database Mail. Po wykonanej opracji wykonujemy restart SQL Server agenta!<span id="more-58"></span></p>
<p>Czas na stworzenie operatora. Klikamy na <strong>SQL Server agent</strong> | <strong>Operators</strong> | <strong>New operator</strong>. Nadajemy nazwę i wpisujemy adres e-mail operatora.</p>
<p>Przechodzimy do <strong>SQL Server agent</strong> | <strong>Jobs</strong> | <strong>New Job</strong>, nadajemy nazwę zadania i przechodzimy do strony <strong>Step</strong> | <strong>New </strong>i nadajemy nazwę tworzonego kroku. Z pozycji <strong>Database</strong> wybieramy baze, na której chcemy wykonywać zadanie, a poniżej wpisujemy komendę T-SQL, która ma być wykonywana. Klikamy OK i przechodzimy do strony <strong>Schedules</strong> i konfigurujemy kiedy zadanie ma być wykonywane. Na końcu przechodzimy do strony <strong>Notifications</strong>, klikamy E-mail i wybieramy, w jakim wypadku ma być wysyłany mail z notyfikacją (po wykonaniu zadania bez względu na status, gdy zadanie się nie uda lub gdy zadanie się uda).</p>
<p><strong><a href="http://www.screencast.com/t/zP9vxYFvZU">TUTAJ</a> </strong>można zobaczyć video z całej operacji.</p>
]]></content:encoded>
			<wfw:commentRss>http://tech-blog.it/2008/12/konfiguracja-operatorow-i-zadania-administracyjnego-w-sql-2005/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Usuwanie loginów SQL i właścicieli schematów w SQL 2005</title>
		<link>http://tech-blog.it/2008/11/usuwanie-loginow-sql-i-wlascicieli-schematow-w-sql-2005/</link>
		<comments>http://tech-blog.it/2008/11/usuwanie-loginow-sql-i-wlascicieli-schematow-w-sql-2005/#comments</comments>
		<pubDate>Sun, 30 Nov 2008 14:48:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[SQL Server 2005]]></category>
		<category><![CDATA[70-431]]></category>
		<category><![CDATA[logins]]></category>
		<category><![CDATA[schemas]]></category>
		<category><![CDATA[SQ: 2005]]></category>

		<guid isPermaLink="false">http://tech-blog.it/?p=56</guid>
		<description><![CDATA[Dziś krótki wpis o usuwaniu loginów SQLowych, który być może przyda się na egzaminie 70-431. Chodzi o to, aby użytkownik SQL (w tym wypadku &#8220;monika&#8221;) został usunięty, a wszystko czego ów użytkownik jest właścicielem ma być przejęte przez dbo.
W zadaniu należy pamiętać w pierwszej kolejności o schematach i ich właścicielach. Gdybyśmy próbowali usunąć najpierw użytkownika, [...]]]></description>
			<content:encoded><![CDATA[<p>Dziś krótki wpis o usuwaniu loginów SQLowych, który być może przyda się na egzaminie 70-431. Chodzi o to, aby użytkownik SQL (w tym wypadku &#8220;monika&#8221;) został usunięty, a wszystko czego ów użytkownik jest właścicielem ma być przejęte przez <strong>dbo</strong>.<br />
W zadaniu należy pamiętać w pierwszej kolejności o schematach i ich właścicielach. Gdybyśmy próbowali usunąć najpierw użytkownika, który jest właścicielem jakiegoś schematu, dostalibyśmy komunikat, że nie można tego zrobić:<span id="more-56"></span></p>
<p style="text-align: center;"><a href="http://pyszczek.net/wp-content/uploads/2008/11/screenshot-2008-11-30-19_59_12.png" rel="lightbox[56]"><img class="alignnone size-full wp-image-279" title="screenshot-2008-11-30-19_59_12" src="http://pyszczek.net/wp-content/uploads/2008/11/screenshot-2008-11-30-19_59_12.png" alt="" width="500" height="159" /></a></p>
<p>Otwieramy zatem SSMS i przechodzimy do <strong>Databases</strong> | <strong>Nazwa bazy danych</strong> | <strong>Security</strong> | <strong>Schemas</strong> i prawym przyciskiem klikamy na schemacie z nazwą jak nasz użytkownik do usunięcia. Wybieramy <strong>Właściwości</strong>.</p>
<p style="text-align: center;"><a href="http://pyszczek.net/wp-content/uploads/2008/11/ownership1.png" rel="lightbox[56]"><img class="alignnone size-full wp-image-265 aligncenter" title="ownership1" src="http://pyszczek.net/wp-content/uploads/2008/11/ownership1.png" alt="" width="348" height="301" /></a></p>
<p>Otworzy się nowe okno dialogowe, gdzie możemy zmienić właściciela schematu. Wciskamy <strong>Szukaj</strong> i szukamy tam <strong>dbo,</strong> po czym zamykamy okna dialogowe, a właścicielem danego schematu jest już dbo.</p>
<p style="text-align: center;"><a href="http://pyszczek.net/wp-content/uploads/2008/11/ownership02.png" rel="lightbox[56]"><img class="alignnone size-full wp-image-276" title="ownership02" src="http://pyszczek.net/wp-content/uploads/2008/11/ownership02.png" alt="" width="465" height="419" /></a></p>
<p>Teraz przechodzimy do sekcji <strong>Databases</strong> | <strong>Nazwa bazy danych</strong> | <strong>Security</strong> | <strong>Users</strong> dla naszej bazy i kasujemy naszego użytkownika poprzez wciśnięcie prawego przycisku myszy i wybraniu <strong>Delete</strong>.</p>
<p style="text-align: center;"><a href="http://pyszczek.net/wp-content/uploads/2008/11/ownership4.png" rel="lightbox[56]"><img class="alignnone size-full wp-image-272 aligncenter" title="ownership4" src="http://pyszczek.net/wp-content/uploads/2008/11/ownership4.png" alt="" width="340" height="343" /></a></p>
<p>Teraz przechodzimy do nazwy instancji i klikamy <strong>Security</strong> | <strong>Logins</strong> lecz tym razem nie dla naszej wybranej bazy, lecz dla wszystkich baz i wyszukujemy użytkownika. Kasujemy go tak samo jak w kroku poprzednim.</p>
<p style="text-align: center;"><a href="http://pyszczek.net/wp-content/uploads/2008/11/ownership5.png" rel="lightbox[56]"><img class="alignnone size-full wp-image-273 aligncenter" title="ownership5" src="http://pyszczek.net/wp-content/uploads/2008/11/ownership5.png" alt="" width="326" height="342" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://tech-blog.it/2008/11/usuwanie-loginow-sql-i-wlascicieli-schematow-w-sql-2005/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
