<?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; backup</title>
	<atom:link href="http://blog.rollback.hu/tag/backup/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>SQL 2005-2008 upgrade, játékosan</title>
		<link>http://blog.rollback.hu/2010/02/sql-2005-2008-upgrade-jatekosan/</link>
		<comments>http://blog.rollback.hu/2010/02/sql-2005-2008-upgrade-jatekosan/#comments</comments>
		<pubDate>Tue, 16 Feb 2010 07:08:51 +0000</pubDate>
		<dc:creator>Erik</dc:creator>
				<category><![CDATA[Magyar]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[T-SQL]]></category>
		<category><![CDATA[üzemeltetés]]></category>

		<guid isPermaLink="false">http://blog.rollback.hu/?p=176</guid>
		<description><![CDATA[Alig használt SQL 2005 szerverünket SQL 2008-ra cseréljük, gariban. Jó az a 2005 Enterprise, az online minden félelmetesen jól működik, de hát az ember vérszemet kap, és akar filtered indexet meg tömörítést meg policy managementet meg mindenféle rettenetet, ha már fizetett érte&#8230;
Ha upgrade-ről van szó, csakis a side-by-side upgrade-et támogatom, azaz az átköltözést egy új [...]]]></description>
			<content:encoded><![CDATA[<p>Alig használt SQL 2005 szerverünket SQL 2008-ra cseréljük, gariban. Jó az a 2005 Enterprise, az online minden félelmetesen jól működik, de hát az ember vérszemet kap, és akar filtered indexet meg tömörítést meg policy managementet meg mindenféle rettenetet, ha már fizetett érte&#8230;</p>
<p>Ha upgrade-ről van szó, csakis a side-by-side upgrade-et támogatom, azaz az átköltözést egy új verziójú szerverre, szemben az in-place upgrade-del, amikor az ember lefuttatja az upgrade-et az éppen futó szerverére. Miért? Mert üzemeltető vagyok, és szeretem, ha van hova visszatérni probléma esetén. Nem viccből van az oldal tetejére írva az, hogy ROLLBACK. Az üzemeltetésben fontos szempont, hogy legalább rontani ne rontsunk a helyzeten. A fejlesztő megteheti, neki kísérleteznie KELL, ami magában hordja a bukta lehetőségét &#8211; az üzemeltető ezt nem teheti meg. És mégis kísérleteznie kell, ezért jó a rollback. Mint minden jófajta stratégiai játékban.<br />
<span id="more-176"></span><br />
Szóval side-by-side upgrade, vagyis igazából migráció. Ez igen egyszerű dolog esetünkben: tükrözni kell az adatbázist, aztán csak billenteni kell. Meg vinni persze a loginokat meg jobokat. De az már nem nagy szám. A replikáció sem annyira. És ha baj van, csak vissza kell állni a 2005-ös adatbázisra. Tök egyszerű terv, egyetlen apró hibától eltekintve: nem működik. A billenéskor az SQL 2008 megnyitja az adatbázist, és felhozza a saját szintjére. Ez nem a compatibility level, amit lehet állítani, hanem ez bizony egy olyan database version, amit csak tudhatunk, de nem befolyásolhatunk. Az adatbázis belső verziója mindig az adatbázis motorjához passzol, a 611 vagy 612 az SQL 2005-höz, a 655 az SQL 2008-hoz. Ez akadályozza meg például azt, hogy egy SQL 2008-as adatbázis backupot visszaállítsunk SQL 2005-re. A verziószám olyan magas, hogy beint az SQL Server helyből. Ha pedig egy 2005-ös mentést teszünk 2008-ra, akkor rögvest lefut az upgrade, valahogy így:</p>
<blockquote><p>Processed 121 pages for database &#8216;Teszt&#8217;, file &#8216;Teszt&#8217; on file 1.<br />
Processed 2 pages for database &#8216;Teszt&#8217;, file &#8216;Teszt_log&#8217; on file 1.<br />
Converting database &#8216;Teszt&#8217; from version 611 to the current version 655.<br />
Database &#8216;Teszt&#8217; running the upgrade step from version 611 to version 621.<br />
Database &#8216;Teszt&#8217; running the upgrade step from version 621 to version 622.<br />
Database &#8216;Teszt&#8217; running the upgrade step from version 622 to version 625.<br />
Database &#8216;Teszt&#8217; running the upgrade step from version 625 to version 626.<br />
Database &#8216;Teszt&#8217; running the upgrade step from version 626 to version 627.<br />
Database &#8216;Teszt&#8217; running the upgrade step from version 627 to version 628.<br />
Database &#8216;Teszt&#8217; running the upgrade step from version 628 to version 629.<br />
Database &#8216;Teszt&#8217; running the upgrade step from version 629 to version 630.<br />
Database &#8216;Teszt&#8217; running the upgrade step from version 630 to version 631.<br />
Database &#8216;Teszt&#8217; running the upgrade step from version 631 to version 632.<br />
Database &#8216;Teszt&#8217; running the upgrade step from version 632 to version 633.<br />
Database &#8216;Teszt&#8217; running the upgrade step from version 633 to version 634.<br />
Database &#8216;Teszt&#8217; running the upgrade step from version 634 to version 635.<br />
Database &#8216;Teszt&#8217; running the upgrade step from version 635 to version 636.<br />
Database &#8216;Teszt&#8217; running the upgrade step from version 636 to version 637.<br />
Database &#8216;Teszt&#8217; running the upgrade step from version 637 to version 638.<br />
Database &#8216;Teszt&#8217; running the upgrade step from version 638 to version 639.<br />
Database &#8216;Teszt&#8217; running the upgrade step from version 639 to version 640.<br />
Database &#8216;Teszt&#8217; running the upgrade step from version 640 to version 641.<br />
Database &#8216;Teszt&#8217; running the upgrade step from version 641 to version 642.<br />
Database &#8216;Teszt&#8217; running the upgrade step from version 642 to version 643.<br />
Database &#8216;Teszt&#8217; running the upgrade step from version 643 to version 644.<br />
Database &#8216;Teszt&#8217; running the upgrade step from version 644 to version 645.<br />
Database &#8216;Teszt&#8217; running the upgrade step from version 645 to version 646.<br />
Database &#8216;Teszt&#8217; running the upgrade step from version 646 to version 647.<br />
Database &#8216;Teszt&#8217; running the upgrade step from version 647 to version 648.<br />
Database &#8216;Teszt&#8217; running the upgrade step from version 648 to version 649.<br />
Database &#8216;Teszt&#8217; running the upgrade step from version 649 to version 650.<br />
Database &#8216;Teszt&#8217; running the upgrade step from version 650 to version 651.<br />
Database &#8216;Teszt&#8217; running the upgrade step from version 651 to version 652.<br />
Database &#8216;Teszt&#8217; running the upgrade step from version 652 to version 653.<br />
Database &#8216;Teszt&#8217; running the upgrade step from version 653 to version 654.<br />
Database &#8216;Teszt&#8217; running the upgrade step from version 654 to version 655.<br />
RESTORE DATABASE successfully processed 121 pages in 2.243 seconds (0.497 MB/sec). </p></blockquote>
<p>És ez az adatbázis már soha nem tud 2005-ön futni. Amikor megbillentjük a mirrort a 2005-2008 felállásban, egy nagyon mókás dolog történik: az addig passzív 2008 aktív lesz, felhozza az adatbázist a 2008-as verzióra, ezt a mirroring átviszi a 2005-ös szerverre, és az innentől kezdve nem tud mit kezdeni az adatbázissal. Ott van, látjuk, de a mirroring eltörött (az utolsó mozdulat az volt, hogy megnőtt az adatbázis verziója, és itt véget ért a történet, gyakorlatilag megvakította magát). Ha megpróbáljuk recoverelni a RESTORE DATABASE Teszt WITH RECOVERY paranccsal, akkor elkezd panaszkodni, hogy ő ezt már nem ismeri. Valami ilyesmit köhög:</p>
<blockquote><p>Msg 948, Level 20, State 1, Line 1<br />
The database &#8216;Teszt&#8217; cannot be opened because it is version 655. This server supports version 611 and earlier. A downgrade path is not supported.</p></blockquote>
<p>Hát ez kellemetlen&#8230; Pedig olyan jó ötletnek tűnt&#8230; De itt jön az enterprájz-élmény: a database snapshot. Csináljunk egy olyan mentést az adatbázisról, ami hamar kész van, és hamar vissza lehet rá állni, és nincs rá sokáig szükségünk &#8211; ez a kívánság database snapshotért kiált. És valóban: a mirror billentése előtt készítünk egy snapshotot a 2005-ös szerveren, a billentés után meg levesszük a (mellesleg törött) tükröt, és már lehet is visszaállni a snapshot által ábrázolt állapotra. Snapshotot persze csak T-SQL-ből lehet csinálni, de onnan egyszerű:</p>
<pre class="brush: sql;">
CREATE DATABASE TesztSnapshot ON (NAME = 'Teszt_Data', FILENAME = 'C:\sql\Teszt_Data.SS'), (Name = 'Teszt_Data2', FILENAME = 'C:\sql\Teszt_Data2.SS') AS SNAPSHOT OF Teszt;
</pre>
<p>Aztán zajlik az élet, a snapshot meg kicsit eleszi a performanciát (azért nem szabad orrba-szájba gyártani), de ilyen esetekben ez teljesen belefér. Ha vissza akarunk állni rá, akkor ezt mondjuk:</p>
<pre class="brush: sql;">
RESTORE DATABASE Teszt
FROM DATABASE_SNAPSHOT = 'Tesztsnapshot';
</pre>
<p>És kész. De miért fér hozzá most a SQL Server a 2008-as adatbázishoz, ha az előbb nem fért? Azért, mert ez egy restore: nem logikailag, objektumszinten, hanem fizikailag, lapszinten nyúl hozzá. A bájtok meg bájtok. Amikorra pedig logikailag kell hozzányúlnia, addigra már megint 2005-ös az adatbázis.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rollback.hu/2010/02/sql-2005-2008-upgrade-jatekosan/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Csináljunk Maintenance Plant az adatbázisainkhoz! Csináljunk?</title>
		<link>http://blog.rollback.hu/2009/06/csinaljunk-maintenance-plant-az-adatbazisainkhoz-csinaljunk/</link>
		<comments>http://blog.rollback.hu/2009/06/csinaljunk-maintenance-plant-az-adatbazisainkhoz-csinaljunk/#comments</comments>
		<pubDate>Sun, 21 Jun 2009 11:01:40 +0000</pubDate>
		<dc:creator>Erik</dc:creator>
				<category><![CDATA[Magyar]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[DBCC]]></category>
		<category><![CDATA[scripting]]></category>
		<category><![CDATA[üzemeltetés]]></category>

		<guid isPermaLink="false">http://blog.rollback.hu/?p=98</guid>
		<description><![CDATA[Aki ott volt a Technet üzemeltetői konferencián vagy letöltötte az internetről valamely darabkáját az előadásomnak, az emlékezhet rá, hogy ajánlottam a maintenance planek használatát mentések készítéséhez. A maintenance planek SQL 2005-ben tulajdonképpen Integration Services csomagok, azok csinálják a mentést, DBCC CHECKDB-t, stb. A wizarddal pikk-pakk össze lehet rakni egyet, és már ülhetünk is nyugodtan a [...]]]></description>
			<content:encoded><![CDATA[<p>Aki ott volt a Technet üzemeltetői konferencián vagy letöltötte az internetről valamely darabkáját az előadásomnak, az emlékezhet rá, hogy ajánlottam a maintenance planek használatát mentések készítéséhez. A maintenance planek SQL 2005-ben tulajdonképpen Integration Services csomagok, azok csinálják a mentést, DBCC CHECKDB-t, stb. A wizarddal pikk-pakk össze lehet rakni egyet, és már ülhetünk is nyugodtan a babérjainkon (azért ne felejtsük el beállítani, hogy a jobok elbukása esetén küldjön levelet).</p>
<p>Ez mind jól hangzik, de: én nem szeretem, ha az ember dolgozik a gép helyett, tehát az adatbázis létrehozást is automatizáltam &#8211; mivel sorban töltöm fel a szerveket, mindig van egy olyan, amelyikre az új adatbázisok kerülnek. Úgyhogy írtam egy scriptet, amelyik létrehozza a teszt és/vagy éles adatbázist, a hozzá tartozó userrel együtt, akinek beállít egy 20 karakteres random jelszót, és íme: a linuxos kollégáim meg tudják csinálni az új adatbázisokat, nem kell várniuk arra, hogy egy DBA megcsinálja, a DBA-nak meg nem kell izgulnia, hogy mit rontott el a sysadmin :) Ebből már csak egy dolog hiányzik: a karbantartás és a mentés. Úgyhogy nekiálltam automatikusan legyártani az Integration Services csomagokat. Hadd fogalmazzak finoman: az egyik legsötétebb zsákutca volt, ahol valaha jártam. Végül eljutottam oda, hogy valami irgalmatlan nagy gányolással meg lehet oldani, és még így is marad benne némi homály. És ez nekem betett.</p>
<p>Úgyhogy szemléletet váltottam: a Transact-SQL kiválóan alkalmas backupok készítésére, akár időbélyeggel is, és mióta feltalálták a powershellt, a régi backup fájlok törlése sem okoz gondot. A full backup előtt természetesen lefut egy DBCC CHECKDB, ez pont plusz egy sor a T-SQL scriptben, és örülhetek, hogy mindig jó mentést teszek el. Az összes egyé karbantartást is meg lehet oldani T-SQL-lel (sp_updatestats, index javítás/újraépítés), úgyhogy nagyon kicsit sajnálkozva, ugyanakkor örülve az automatizált környezetemnek jelentem: kidobtuk a maintenance planeket. Majd ha lehet egyszerűen generálni őket, visszanézek.</p>
<p>(ja, nemsokára felteszem a scripteket is :))</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rollback.hu/2009/06/csinaljunk-maintenance-plant-az-adatbazisainkhoz-csinaljunk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Compressed backup &#8211; egy szép történet</title>
		<link>http://blog.rollback.hu/2008/11/compressed-backup-egy-szep-tortenet/</link>
		<comments>http://blog.rollback.hu/2008/11/compressed-backup-egy-szep-tortenet/#comments</comments>
		<pubDate>Tue, 11 Nov 2008 19:27:21 +0000</pubDate>
		<dc:creator>Erik</dc:creator>
				<category><![CDATA[Magyar]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[más tolla]]></category>
		<category><![CDATA[mssql]]></category>
		<category><![CDATA[sql2008]]></category>

		<guid isPermaLink="false">http://blog.rollback.hu/?p=33</guid>
		<description><![CDATA[   Épp olvastam Paul Randal blogjában egy kis high-end SQL szerverről. Mivel egyszer volt egy közepesen kellemetlen beszélgetésem arról, hogy hogyan lehet nagy (terás) SQL adatbázisokat menteni, ez a téma különösen érdekel engem, és hát ők 12 backup device-ra mentettek 2 óra alatt, kicsit tuningolva az opciókon és több hálókártyát használva.
   [...]]]></description>
			<content:encoded><![CDATA[<p>   Épp olvastam <a href="http://www.sqlskills.com/BLOGS/PAUL/post/High-end-backup-compression-numbers.aspx">Paul Randal blogjában</a> egy kis high-end SQL szerverről. Mivel egyszer volt egy közepesen kellemetlen beszélgetésem arról, hogy hogyan lehet nagy (terás) SQL adatbázisokat menteni, ez a téma különösen érdekel engem, és hát ők 12 backup device-ra mentettek 2 óra alatt, kicsit tuningolva az opciókon és több hálókártyát használva.<br />
   Hab a tortán: SQL 2008 backup compressionnel a 2 TB-ot 36 perc alatt mentik&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.rollback.hu/2008/11/compressed-backup-egy-szep-tortenet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

