Obnavljanje polnega transakcijskega dnevnika v zbirki podatkov strežnika SQL Server

ID članka: 873235 - Oglejte si izdelke, na katere se nanaša ta članek.
Razširi vse | Zmanjšaj

Na tej strani

UVOD

V članku so opisani koraki, ki jim morate slediti, ko transakcijski dnevniki postanejo preveliki. Ko so transakcijski dnevniki polni, lahko Microsoft SQL Server postane neuporaben. V članku je opisano, kako prirežete in skrčite transakcijske dnevnike ter kako preprečite njihovo nepričakovano rast.

DODATNE INFORMACIJE

Zmanjšanje velikosti transakcijskih dnevnikov

Če želite odpraviti težave zaradi polnih transakcijskih dnevnikov, morate zmanjšati njihovo velikost. To naredite tako, da prirežete neaktivne transakcije v transakcijskem dnevniku in skrčite njegovo datoteko.

Opomba Transakcijski dnevniki so zelo pomembni za ohranjanje transakcijske celovitosti zbirke podatkov. Zato njihovih datotek ne smete izbrisati, tudi ko naredite varnostno kopijo zbirke podatkov in dnevnikov.


Za več informacij o zmanjšanju transakcijskih dnevnikov obiščite to Microsoftovo spletno mesto:
Krčenje transakcijskega dnevnika za SQL Server 2000
Krčenje transakcijskega dnevnika za SQL Server 2005

Prirezovanje neaktivnih transakcij v transakcijskem dnevniku

Ko so transakcijski dnevniki polni, morate nemudoma varnostno kopirati dnevniško datoteko. Med ustvarjanjem varnostne kopije SQL Server samodejno prireže neaktivni del transakcijskega dnevnika. Njegov neaktivni del vsebuje dokončane transakcije, zato ga SQL Server med procesom obnovitve več ne uporablja. SQL Server ponovno uporabi prirezani in neaktivni del transakcijskega dnevnika in mu tako ne dovoli, da bi še naprej rasel in zasedal več prostora.

Za dodatne informacije o stvareh, ki jih morate upoštevati, ko varnostno kopirate transakcijske dnevnike in obnavljate njihove varnostne kopije, si oglejte spodnje teme na spletni strani SQL Server Books Online:
  • Varnostne kopije transakcijskih dnevnikov
  • Varnostno kopiranje in obnovitev transakcijskih dnevnikov
Neaktivne transakcije lahko iz datoteke transakcijskega dnevnika izbrišete tudi z uporabo metode Prirezovanje. Za dodatne informacije o prirezovanju transakcijskih dnevnikov glejte temo "Prirezovanje transakcijskega dnevnika" na spletni strani SQL Server Books Online.

Pomembno Potem ko ročno prirežete datoteke transakcijskega dnevnika, morate pred njegovim varnostnim kopiranjem ustvariti celotno varnostno kopijo zbirke podatkov.

Za več informacij o težavah, ki se lahko pojavijo med prirezovanjem datotek transakcijskega dnevnika, kliknite to številko članka iz Microsoftove zbirke znanja:
62866 Razlogi, zakaj ni mogoče prirezati transakcijskega dnevnika SQL (Besedilo je morda v angleščini)

Krčenje datotek transakcijskega dnevnika

Operacija ustvarjanja varnostne kopije ali metoda Prirezovanje ne zmanjša velikosti dnevniške datoteke. Če želite zmanjšati velikost datoteke transakcijskega dnevnika, jo morate skrčiti. Če želite skrčiti datoteko transakcijskega dnevnika na zahtevano velikost in odstraniti nezasedene strani, morate izvesti operacijo DBCC SHRINKFILE. Izjava DBCC SHRINKFILE Transact-SQL lahko skrči samo neaktivni del v dnevniški datoteki.

Opomba Izjava DBCC SHRINKFILE Transact-SQL sama ne more prirezati dnevnika in skrčiti zasedenega prostora v dnevniški datoteki.

Za dodatne informacije o krčenju datotek transakcijskega dnevnika glejte naslednje teme na spletni strani SQL Server Books Online:
  • Krčenje transakcijskega dnevnika
  • DBCC SHRINKFILE
Če želite več informacij o krčenju datotek transakcijskega dnevnika, kliknite to številko članka iz Microsoftove zbirke znanja:
272318 Krčenje transakcijskega dnevnika v strežniku SQL Server 2000 z operacijo DBCC SHRINKFILE (Besedilo je morda v angleščini)
Za več informacij o težavah, ki se lahko pojavijo med krčenjem datotek transakcijskega dnevnika, kliknite te številke člankov iz Microsoftove zbirke znanja:
814574 PRB: Sporočilo o napaki: »Dnevniške datoteke ni mogoče skrčiti ...« se pojavi med krčenjem datoteke transakcijskega dnevnika (Besedilo je morda v angleščini)
324432 PRB: Ukaza DBCC SHRINKFILE in SHRINKDATABASE morda ne bosta delovala zaradi redkega besedila, ntexta ali slikovnih stolpcev (Besedilo je morda v angleščini)

Preprečevanje nepričakovane rasti datotek transakcijskih dnevnikov

Za preprečevanje nepričakovane rasti datotek transakcijskih dnevnikov premislite o uporabi ene izmed teh metod:
  • Nastavite velikost datotek transakcijskih dnevnikov na visoko vrednost in se tako izognite njihovi samodejni razširitvi.
  • Potem ko temeljito ovrednotite optimalno velikost pomnilnika, konfigurirajte samodejno razširitev datotek transakcijskih dnevnikov z uporabo spominskih enot namesto odstotka.

    Za več informacij o stvareh, ki jih je treba upoštevati med konfiguracijo možnosti samodejne rasti, kliknite to številko članka iz Microsoftove zbirke znanja:
    315512 Stvari, na katere je treba biti pozoren pri konfiguraciji samodejne rasti in krčenja (Besedilo je morda v angleščini)
  • Spremenite model obnove. V primeru hude napake ali poškodovanih podatkov morate zbirko podatkov varnostno kopirati in tako ohraniti doslednost njenih podatkov in transakcijsko integriteto. Glede na pomembnost podatkov v zbirki podatkov lahko uporabite enega od naslednjih modelov obnove in ugotovite, kako se jih varnostno kopira in koliko ste izpostavljeni njihovi izgubi:
    • Enostavni model obnove
    • Popolni model obnove
    • Model obnove z več dnevniki
    Če uporabite enostavni model, lahko obnovite bazo podatkov na čas njenega zadnjega varnostnega kopiranja. Pri popolnem modelu obnove ali modelu obnove z več dnevniki lahko z varnostnimi kopijami datotek transakcijskega dnevnika obnovite zbirko podatkov na točko, ko se je zgodila napaka.

    Privzeto je v strežnikih SQL Server 2000 in SQL Server 2005 model obnovitve njune zbirke podatkov nastavljen na popolni model obnovitve. Pri popolnem modelu obnovitve se uporablja redno varnostno kopiranje transakcijskih dnevnikov, s čimer preprečite njihovim datotekam, da bi pretirano zrasle glede na velikost zbirke podatkov. Toda če se varnostna kopiranja transakcijskega dnevnika ne izvajajo redno, njegova datoteka zraste in zasede disk in morda ne boste mogli izvajati sprememb podatkov v zbirki podatkov strežnika SQL Server.

    Če med obnovitvijo po hudi napaki ne želite uporabljati datotek transakcijskih dnevnikov, lahko model obnovitve spremenite iz popolnega v enostavnega.
  • Datoteke transakcijskih dnevnikov redno varnostno kopirajte in tako izbrišite neaktivne transakcije v njih.
  • Transakcije naj bodo majhne.
  • Poskrbite, da se ne bodo nedodeljene transakcije še naprej izvajale za nedoločen čas.
  • Možnost statistike posodabljanja nastavite tako, da se bo izvajala dnevno.
  • Za defragmentacijo indeksov in s tem boljše možnosti delovne obremenitve v vašem proizvodnem okolju uporabite izjavo DBCC INDEXDEFRAG Transact-SQL namesto izjave DBCC DBREINDEX Transact-SQL. Če zaženete izjavo DBCC DBREINDEX, ko je podatkovna zbirka strežnika SQL Server nastavljena na način popolne obnove, se lahko transakcijski dnevnik znatno poveča. Poleg tega izjava DBCC INDEXDEGRAG, za razliko od izjave DBCC DBREINDEX, ne more dolgo vzdrževati zapore.

    Za dodatne informacije o defragmentaciji indeksov v strežniku SQL Server 2000 glejte to Microsoftovo spletno mesto:
    Najboljši načini defragmentacije indeksov strežnika Microsoft SQL Server 2000
    Če morate zagnati izjavo DBCC DBREINDEX kot posel, ki je del načrta vzdrževanja zbirke podatkov, ga morate razdeliti na več manjših poslov. Poleg tega morate med posameznimi posli redno izvajati varnostna kopiranja transakcijskih dnevnikov.

Več informacij o datotekah transakcijskih dnevnikov

V strežnikih SQL Server 2000 in SQL Server 2005 vsaka zbirka podatkov vsebuje vsaj eno podatkovno datoteko in eno dnevniško datoteko. SQL Server shranjuje podatke fizično v podatkovni datoteki. Datoteka transakcijskega dnevnika shrani podrobnosti vseh sprememb, ki jih naredite v podatkovni zbirki strežnika SQL Server, in podrobnosti transakcij, ki so povzročile vsako spremembo. Ker transakcijska integriteta velja za osnovno in bistveno značilnost strežnika SQL Server, beleženja podrobnosti transakcij v tem strežniku ni mogoče izklopiti.

Datoteka transakcijskega dnevnika je logično razdeljena v manjše segmente, ki se imenujejo navidezne dnevniške datoteke. V strežniku SQL Server 2000 lahko konfigurirate datoteko transakcijskega dnevnika tako, da se razširi po potrebi. Razširitev transakcijskega dnevnika lahko nadzoruje uporabnik ali pa se jo konfigurira tako, da uporabi ves nezasedeni prostor na disku. Kakršne koli spremembe velikosti, ki jih naredi SQL Server na datotekah transakcijskega dnevnika, na primer prirezovanje ali povečevanje datotek transakcijskega dnevnika, se izvedejo v enotah navideznih dnevniških datotek.

Če je datoteka transakcijskega dnevnika, ki ustreza podatkovni zbirki strežnika SQL Server, polna in je pri dnevniških datotekah nastavljena možnost, da samodejno rastejo, datoteka transakcijskega dnevnika raste v enotah navideznih dnevniških datotek. Včasih lahko postane dnevniška datoteka zelo velika in morda vam bo zmanjkalo prostora na disku. Ko se to zgodi in se datoteka ne more širiti, v zbirki podatkov ne morete več izvajati sprememb. Poleg tega lahko SQL Server zaradi pomanjkanja prostora za širitev transakcijskega dnevnika podatkovno zbirko označi kot sumljivo.

Za več informacij o scenarijih, ki bi lahko povzročili nepričakovano rast datoteke transakcijskih dnevnikov, kliknite to številko članka iz Microsoftove zbirke znanja:
317375 Transakcijski dnevnik v strežniku SQL Server nepričakovano raste oz. je poln (Besedilo je morda v angleščini)

SKLICI

Za dodatne informacije o reševanju težav v zvezi s pomanjkanjem prostora na disku med obnovo glejte temo "Pomanjkanje prostora na disku" na spletni strani SQL Server Books Online. Za dodatne informacije o arhitekturi transakcijskega dnevnika glejte naslednje teme na spletni strani SQL Server Books Online:
  • Arhitektura transakcijskih dnevnikov
  • Logična arhitektura transakcijskih dnevnikov
  • Fizična arhitektura transakcijskih dnevnikov
Za dodatne informacije o modelih obnove v strežniku SQL Server 2000 glejte te teme na spletni strani SQL Server Books Online:
  • Izbira modela obnove
  • Enostavna obnova
  • Popolna obnova
  • Obnova z več dnevniki
  • Preklapljanje med modeli obnove

Note This is a "FAST PUBLISH" article created directly from within the Microsoft support organization. The information contained herein is provided as-is in response to emerging issues. As a result of the speed in making it available, the materials may include typographical errors and may be revised at any time without notice. See Terms of Use for other considerations.

Lastnosti

ID članka: 873235 - Zadnji pregled: 29. februar 2012 - Revizija: 1.0
VELJA ZA:
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL 2005 Server Enterprise
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL 2005 Server Workgroup
Ključne besede: 
kbsqlsetup kbdiskmemory kbdisasterrec kbhowto kbconfig kbinfo kbcip KB873235

Pošlji povratne informacije