SQL Server de recuperare a statelor

Când restabiliți o bază de date SQL Server, observ că există trei state de recuperare diferite din care puteți alege:

  • Restaurați cu recuperare
  • Restaurați fără recuperare
  • Restaurați cu modul de așteptare

Întotdeauna am lăsat-o la valoarea implicită, dar ce înseamnă cu toții?

(Preferabil în termeni de laic)

0
fr hi bn

3 răspunsuri

GateKiller,

În termeni simpli (și nu o copiere-lipire din SQLBOL), astfel încât să puteți înțelege conceptele:

RESTORE WITH RECOVERY uses the backup media file (eg. fulldata.bak) to restore the database to back to the time that backup file was created. In this case, the restore sequence can restore other backups and roll them forward. This is great if you want to go back in time to restore the database to an earlier state - like when developing a system.

Dacă doriți să restaurați baza de date PENTRU FOARTE ULTIMELE DATE, (de exemplu, dacă faceți un sistem de recuperare în caz de dezastru și nu puteți pierde niciun fel de date), atunci doriți să restaurați acea copie de rezervă ȘI TOATE toate jurnalele de tranzacții create de acea copie de rezervă. Aceasta este atunci când utilizați RESTORE NORECOVERY. Acesta vă va permite să restaurați mai târziu jurnalele de tranzacții până la punctul de eșec (atâta timp cât le aveți).

RECUPERAREA CU STANDBY este capacitatea de a restabili baza de date până la o dată paritală (ca NORECOVERY de mai sus), dar pentru a permite ca baza de date să fie utilizată în continuare READONLY. Noile jurnale de tranzacții pot fi încă aplicate în baza de date pentru a le menține la zi (un server de rezervă). Utilizați acest lucru atunci când va dura prea mult pentru a restaura o bază de date completă pentru a reveni la operațiunile sistemului. (de exemplu, dacă aveți o bază de date TB multiplă care ar necesita 16 ore de restaurare, dar ar putea primi actualizări ale jurnalelor de tranzacții la fiecare 15 minute).

Acesta este un pic ca un server mirror - dar fără a trimite "fiecare tranzacție" la serverul de backup în timp real.

0
adăugat

Din cărțile On Line, cred că este destul de clar după ce ai citit-o

NORECOVERY

Instrumentează operația de restaurare pentru a nu revoca tranzacțiile neangajate. Trebuie să fie specificată opțiunea NORECOVERY sau STANDBY dacă trebuie aplicat un alt jurnal de tranzacții. Dacă nu este specificat nici NORECOVERY, RECOVERY sau STANDBY, recuperarea este implicită.

SQL Server impune ca opțiunea WITH NORECOVERY să fie utilizată în toate instruciunile RESTORE, cu excepția celei finale, când se restaurează o copie de rezervă a bazei de date și mai multe jurnale de tranzacții sau când sunt necesare mai multe instrucțiuni RESTORE (de exemplu, o copie de rezervă completă a bazei de date urmată de o copie de rezervă a bazei de date diferențiate).

Notă La specificarea opțiunii NORECOVERY, baza de date nu este utilizabilă în această stare intermediară, nerecuperată.

Atunci când este utilizat cu o operație de restaurare a unui fișier sau a unui grup de fișiere, NORECOVERY forțează ca baza de date să rămână în starea de restaurare după operația de restaurare. Acest lucru este util în oricare din aceste situații:

Este rulat un script de restaurare și jurnalul este întotdeauna aplicat.

Este utilizată o secvență de restaurare a fișierelor, iar baza de date nu este destinată utilizării între două operații de restaurare.

RECUPERARE

Instrumentează operația de restaurare pentru a redirecționa orice tranzacție neangajată. După procesul de recuperare, baza de date este gata de utilizare.

Dacă sunt planificate operațiile ulterioare RESTORE (RESTORE LOG sau RESTORE DATABASE din diferențial), NORECOVERY sau STANDBY ar trebui să fie specificate.

Dacă nu este specificat nici NORECOVERY, RECOVERY sau STANDBY, recuperarea este implicită. Când restaurați seturi de backup dintr-o versiune anterioară de SQL Server, poate fi necesară o actualizare a bazei de date. Această actualizare se realizează automat atunci când se specifică WITH RECOVERY. Pentru mai multe informații, consultați Copii de rezervă a tranzacțiilor.

STANDBY = undo_file_name

Specifică numele fișierului anulează, astfel încât efectele de recuperare pot fi anulate. Dimensiunea necesară pentru fișierul de anulare depinde de volumul acțiunilor de anulare rezultate din tranzacțiile neangajate. Dacă nu este specificat nici NORECOVERY, RECOVERY sau STANDBY, recuperarea este implicită.

STANDBY permite accesarea unei baze de date pentru accesul numai în citire între restaurările jurnalului de tranzacții și poate fi utilizată fie în situații de tip server în așteptare caldă, fie în situații speciale de recuperare în care este utilă inspectarea bazei de date între restabilirea jurnalului.

Dacă numele de fișier de anulare specificat nu există, SQL Server creează acest nume. Dacă fișierul există, SQL Server îl suprascrie.

Același fișier de anulare poate fi utilizat pentru restabilirea consecutivă a aceleiași baze de date. Pentru mai multe informații, consultați Utilizarea serverelor standby.

Important Dacă spațiul liber de disc este epuizat pe unitatea care conține numele de fișier anulează specificat, operația de restaurare se oprește.

STANDBY nu este permisă atunci când este necesară o actualizare a bazei de date.

0
adăugat

Puteți seta o bază de date Microsoft SQL Server să fie în modul NORECOVERY, RECOVERY sau STANDBY.

RECOVERY este starea normală și obișnuită a bazei de date în care utilizatorii se pot conecta și accesa baza de date (având în vedere că au setările corespunzătoare).

NORECOVERY permite administratorului de baze de date să restaureze fișierele de rezervă suplimentare, cum ar fi copii de rezervă diferențiale sau tranzacții. În timp ce baza de date este în această stare, utilizatorii nu pot conecta sau accesa această bază de date.

STANDBY este cam la fel ca statutul NORECOVERY, însă permite utilizatorilor să se conecteze sau să acceseze baza de date într-un acces READONLY. Astfel, utilizatorii pot rula doar comanda SELECT împotriva bazei de date. Acest lucru este folosit în Log Shipping destul de des pentru scopuri de raportare. Singurul dezavantaj este că, în timp ce există utilizatori în baza de date care rulează interogări SQL Server sau DBA nu este capabil să restabilească fișiere de backup suplimentare. Prin urmare, dacă aveți mulți utilizatori care accesează baza de date tot timpul, atunci replicarea ar putea rămâne în urmă.

0
adăugat