{"id":22,"date":"2012-05-27T17:51:58","date_gmt":"2012-05-27T15:51:58","guid":{"rendered":""},"modified":"2018-09-17T21:57:38","modified_gmt":"2018-09-17T19:57:38","slug":"zaloha-a-obnova-v-sql-server-2005","status":"publish","type":"post","link":"http:\/\/spireng.sk\/en\/zaloha-a-obnova-v-sql-server-2005\/","title":{"rendered":"Z\u00e1loha a obnova v SQL Server 2005"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"imgp_img\" style=\"margin: 5px 20px; float: left;\" src=\"\/sites\/default\/files\/imagepicker\/1\/4567dfgd.jpg\" alt=\"Obr\u00e1zok\" width=\"200\" height=\"211\" \/>Spr\u00e1vny datab\u00e1zov\u00fd administr\u00e1tor mus\u00ed ma\u0165 2 veci: funk\u010dn\u00fd z\u00e1lohovac\u00ed syst\u00e9m a aktu\u00e1lny profesn\u00fd \u017eivotopis. Ak toti\u017e zlyh\u00e1 to prv\u00e9, bude potrebova\u0165 to druh\u00e9. Takto za\u010d\u00edna vtip o z\u00e1lohovan\u00ed a obnove v knihe o spravovan\u00ed SQL Server, ktor\u00fa pr\u00e1ve \u010d\u00edtam. Ni\u010d sa tam nep\u00ed\u0161e o \u017eivotopise, ale o z\u00e1lohovacom syst\u00e9me je tam toho dos\u0165. Po\u010fme sa na to pozrie\u0165.<!--more--><!--break--><\/p>\n<p>Z\u00e1lohovanie datab\u00e1zy je \u010dinnos\u0165, ktor\u00e1 vy\u017eaduje pl\u00e1novanie. V\u00fdsledkom tak\u00e9hoto pl\u00e1novania je strat\u00e9gia z\u00e1lohovania. Tak\u00e1to strat\u00e9gia sa v pr\u00edpade SQL Servera 2005 sklad\u00e1 z troch prvkov:<\/p>\n<ol>\n<li style=\"text-align: left;\">Model obnovy &#8211; nastavenie datab\u00e1zy, pod\u013ea ktor\u00e9ho sa generuje transak\u010dn\u00fd log;<\/li>\n<li>Skripty pre z\u00e1lohu &#8211; T-SQL skripty, ktor\u00e9 sa pravidelne sp\u00fa\u0161\u0165aj\u00fa a vytv\u00e1raj\u00fa z\u00e1lohy;<\/li>\n<li>Obnovovacie skripty &#8211; T-SQL skripty na obnovu.<\/li>\n<\/ol>\n<p>Tak\u017ee najprv model obnovy. Je to nastavenie datab\u00e1zy, ktor\u00e9 m\u00f4\u017ee ma\u0165 tri hodnoty, ale dlhodobo pou\u017eite\u013en\u00e9 s\u00fa len <em>Simple Recovery model <\/em><span style=\"font-style: normal;\">a <\/span><em>Full Recovery Model<\/em><span style=\"font-style: normal;\">. Toto nastavenie m\u00e1 vplyv na to, ak\u00fd typ z\u00e1lohy sa d\u00e1 spravi\u0165, ako sa \u00fadaje daj\u00fa obnovi\u0165, ale hlavne ako sa generuje transak\u010dn\u00fd log. Pri Simple modely sa log pravidelne zma\u017ee pri tzv. Checkpointe, ktor\u00fd rob\u00ed SQL Server v ur\u010dit\u00fdch intervaloch a pri ktorom sa zap\u00ed\u0161u \u00fadaje z pam\u00e4ti na disk. V\u00fdhodou tohto modelu je, \u017ee sa administr\u00e1tor nemus\u00ed o log stara\u0165, preto\u017ee jeho ve\u013ekos\u0165 sa automaticky reguluje. Pri Full model log ost\u00e1va aj po checkpointoch. V tomto pr\u00edpade je mo\u017en\u00e9 ho z\u00e1lohova\u0165, preto\u017ee m\u00f4\u017ee obsahova\u0165 v\u0161etky transakcie od poslednej z\u00e1lohy. Treba sa o neho ale aj stara\u0165. To znamen\u00e1, po z\u00e1lohe ho skr\u00e1ti\u0165 a skontrolova\u0165 jeho d\u013a\u017eku, aby nenaplnil povolen\u00fa kapacitu disku (v takom pr\u00edpade SQL server nedovol\u00ed vykona\u0165 do datab\u00e1zy \u017eiadnu zmenu).<\/span><\/p>\n<p><span style=\"font-style: normal;\">Skripty pre z\u00e1lohu s\u00fa postaven\u00e9 na pr\u00edkaze <\/span><em>BACKUP DATABASE | LOG &lt;n\u00e1zov datab\u00e1zy&gt;<\/em><span style=\"font-style: normal;\">. Pomocou neho viete z\u00e1lohova\u0165 datab\u00e1zu alebo log. V pr\u00edpade datab\u00e1zy si viete vybra\u0165, \u010di chcete pln\u00fa z\u00e1lohu alebo pr\u00edrastkov\u00fa. Pr\u00edrastkov\u00e1 obsahuje zmenu od poslednej plnej alebo pr\u00edrastkovej z\u00e1lohy. Okrem toho e\u0161te m\u00f4\u017eete z\u00e1lohova\u0165 len niektor\u00e9 s\u00fabory alebo filegroupy.<\/span><\/p>\n<p><span style=\"font-style: normal;\">Skripty na obnovu s\u00fa tie\u017e postaven\u00e9 na jednom pr\u00edkaze, a to <\/span><em>RESTORE DATABASE | LOG &lt;n\u00e1zov datab\u00e1zy&gt;<\/em><span style=\"font-style: normal;\">. Podstatn\u00e9 je, \u017ee skripty obnovy sa p\u00ed\u0161u pod\u013ea skriptov z\u00e1lohovania. Teda to, \u010do z\u00e1lohujete a v takom porad\u00ed, ako z\u00e1lohujete, potom aj obnovujte. Najm\u00e4, ak rob\u00edte pr\u00edrastkov\u00fa z\u00e1lohu alebo z\u00e1lohu logu, treba d\u00e1va\u0165 pozor na poradie obnovovania, preto\u017ee ka\u017ed\u00e1 tak\u00e1to z\u00e1loha je pr\u00edrastkov\u00e1 od poslednej z\u00e1lohy. D\u00f4le\u017eit\u00e1 je e\u0161te klauzula <\/span><em>WITH NORECOVERY | RECOVERY<\/em><span style=\"font-style: normal;\">. Pre v\u0161etky <\/span><em>RESTORE<\/em><span style=\"font-style: normal;\"> pr\u00edkazy okrem posledn\u00e9ho je potrebn\u00e9 pou\u017ei\u0165 <\/span><em>NORECOVERY<\/em><span style=\"font-style: normal;\"> a pre posledn\u00fd pr\u00e1ve <\/span><em>RECOVERY<\/em><span style=\"font-style: normal;\">. Tento pr\u00edkaz sp\u00f4sob\u00ed redo v\u0161etk\u00fdch transakci\u00ed z logu, ktor\u00e9 boli vykonan\u00e9 od poslednej z\u00e1lohy a undo v\u0161etk\u00fdch neukon\u010den\u00fdch transakci\u00ed. Toto sa ale mus\u00ed dia\u0165 ako posledn\u00fd krok celej z\u00e1lohy.<\/span><\/p>\n<p>Ak za\u010dnete prem\u00fd\u0161\u013ea\u0165 nad vhodnou strat\u00e9giou, d\u00f4jdete k tomu, \u017ee sa mus\u00edte rozhodn\u00fa\u0165 medzi jednoduch\u00fdm z\u00e1lohovac\u00edm syst\u00e9mom, ktor\u00fd ale bude ma\u0165 ve\u013ek\u00e9 z\u00e1lohy a dlh\u00fd z\u00e1lohovac\u00ed \u010das alebo komplikovan\u00fdm pr\u00edrastkov\u00fdm z\u00e1lohovan\u00edm, ktor\u00fd bude obsahova\u0165 mal\u00e9 z\u00e1lohy ale komplikovan\u00fa obnovu. V\u017edy to bude <em>jednoduchos\u0165 pl\u00e1nu<\/em> vs. <em>ve\u013ekos\u0165 z\u00e1lohy a \u010das z\u00e1lohovania<\/em>. Ak si zvol\u00edte Simple strat\u00e9giu, tak z\u00e1lohujete len datab\u00e1zu (najjednoduch\u0161ie st\u00e1le cel\u00fa). Log sa pou\u017eije len na redo a undo transakci\u00ed na z\u00e1ver. Cel\u00fa z\u00e1lohovaciu strat\u00e9giu postav\u00edte na d\u00e1tach a log ignorujte. Ak naopak pou\u017eijete pri z\u00e1lohovan\u00ed log, mus\u00edte sa stara\u0165 o jeho ve\u013ekos\u0165 a postup obnovy tie\u017e nie je \u00faplne jednoduch\u00fd, ale v\u00fdsledok je, \u017ee z\u00e1lohu m\u00f4\u017eete robi\u0165 aj ka\u017ed\u00fd 10 min\u00fat, preto\u017ee trv\u00e1 kr\u00e1tko a nie je ve\u013ek\u00e1. Treba si ujasni\u0165 priority a potom sa rozhodn\u00fa\u0165.<\/p>\n<p>E\u0161te na z\u00e1ver jedna pozn\u00e1mka: SQL Server obsahuje aj tzv. funkcionalitu Snapshot-ov. Nepou\u017e\u00edvajte ich na z\u00e1lohu. S\u00fa to \u0161peci\u00e1lne entity, ktor\u00e9 ke\u010f vytvor\u00edte, vedia v\u00e1m zobrazova\u0165 read-only stav datab\u00e1zy v nejakom \u010dase. V skuto\u010dnosti s\u00fa st\u00e1le napojen\u00e9 na datab\u00e1zu a obsahuj\u00fa len rozdiel zmien, ktor\u00e9 boli vykonan\u00e9 od ich vytvorenia (aby vedeli zobrazi\u0165 stav, ak\u00fd bol v danom \u010dase). Na z\u00e1lohu nie s\u00fa v\u00f4bec vhodn\u00e9.<\/p>","protected":false},"excerpt":{"rendered":"<p>Spr\u00e1vny datab\u00e1zov\u00fd administr\u00e1tor mus\u00ed ma\u0165 2 veci: funk\u010dn\u00fd z\u00e1lohovac\u00ed syst\u00e9m a aktu\u00e1lny profesn\u00fd \u017eivotopis. Ak toti\u017e zlyh\u00e1 to prv\u00e9, bude potrebova\u0165 to druh\u00e9. Takto za\u010d\u00edna vtip o z\u00e1lohovan\u00ed a obnove v knihe o spravovan\u00ed SQL Server, ktor\u00fa pr\u00e1ve \u010d\u00edtam. Ni\u010d sa tam nep\u00ed\u0161e o \u017eivotopise, ale o z\u00e1lohovacom syst\u00e9me je tam toho dos\u0165. Po\u010fme sa [&hellip;]<\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17],"tags":[],"class_list":["post-22","post","type-post","status-publish","format-standard","hentry","category-databazy"],"_links":{"self":[{"href":"http:\/\/spireng.sk\/en\/wp-json\/wp\/v2\/posts\/22","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/spireng.sk\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/spireng.sk\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/spireng.sk\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/spireng.sk\/en\/wp-json\/wp\/v2\/comments?post=22"}],"version-history":[{"count":1,"href":"http:\/\/spireng.sk\/en\/wp-json\/wp\/v2\/posts\/22\/revisions"}],"predecessor-version":[{"id":232,"href":"http:\/\/spireng.sk\/en\/wp-json\/wp\/v2\/posts\/22\/revisions\/232"}],"wp:attachment":[{"href":"http:\/\/spireng.sk\/en\/wp-json\/wp\/v2\/media?parent=22"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/spireng.sk\/en\/wp-json\/wp\/v2\/categories?post=22"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/spireng.sk\/en\/wp-json\/wp\/v2\/tags?post=22"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}