Adăugarea și ștergerea unui fișier de bază de date între rezervările jurnalului

Adăugarea fișierelor de bază de date SQL Server 7.0 între copiile de rezervă ale jurnalului de tranzacții încalcă secvența de backup a intrărilor din jurnalul de tranzacții create după fișierul adăugat incorect.






Dacă încercați să restaurați baza de date folosind o copie de siguranță completă și o secvență de backup jurnal de tranzacții, backup de jurnal de tranzacții, creat după ce a fost adăugat sau șterse fișierele bazei de date nu poate fi utilizat pentru recuperare. O încercare de a restaura prima copie de rezervă a jurnalului de tranzacții creată după adăugarea fișierului va eșua cu următorul mesaj de eroare:

Server: Msg 3155, Nivelul 16, Starea 1, Linia 1
Operația RESTORE nu poate continua deoarece unul sau mai multe fișiere au fost adăugate sau abandonate din baza de date de la crearea setului de backup.
Server: Msg 3013, Nivelul 16, Starea 1, Linia 1
Operația de backup sau restaurare se termină anormal.

Luați în considerare cazul când utilizați baza de date industrială a SQL Server 7.0, care funcționează în modul 24x7 (24 de ore pe zi, toată săptămâna). Când încercați să-l restaurați din copia de rezervă, trebuie să restaurați mai întâi ultima copie de siguranță completă (prin utilizarea CU NORECOVERY), și apoi, tot n-1 de rezervă jurnal de tranzacții (folosind CU NORECOVERY), și cel mai recent jurnal de tranzacții de rezervă (folosind cu recuperare).
Pașii următori descriu secvența implică adăugarea unui fișier de bază de date între înregistrările de rezervă jurnal de tranzacții în baza de date de producție și rezultatele într-o eroare care apare atunci când încercați să restaurați dintr-o copie de rezervă, așa cum este descris mai sus.
NOTĂ: Pașii de mai jos au fost aplicați la baza de date utilizată în mod activ.

Creați o copie de rezervă a jurnalului de tranzacții în fișierul tran_log1.trn.

Adăugați fișierul în baza de date folosind scriptul de mai jos:

ALTER DATABASE la nord
ADĂGAȚI FILE
(NAME = northwind_data1,
FILENAME = 'E: \ MSSQL7 \ DATA \ northwnd_data1.ndf';
SIZE = 5MB,
MAXSIZE = 15,
FILEGROWTH = 10%
)
GO

Când baza de date se descompune sau dacă doriți să recuperați din copia de rezervă pentru a restabili starea anterioară a bazei de date folosind secvența de backup creată înainte de eșec, urmați pașii de mai jos:

1. Restaurați baza de date SQL Server 7.0 folosind:

Cu NORECOVERY
Restaurați cu succes

Prelucrate 360 ​​pagini pentru baza de date „Northwind“, fișierul „Northwind“ la dosar 1. prelucrate 1 pagini pentru baza de date „Northwind“, fișierul „Northwind_log“ la dosar 1. Copie de rezervă sau de restaurare a fost procesată cu succes 361 pagini în 0,810 secunde (3.642 MB / sec )







2. Restaurați copia de rezervă a jurnalului de tranzacții utilizând WITH NORECOVERY din tran_log1.trn:

Sunt procesate 1 pagini pentru baza de date "northwind", fișierul "Northwind_log" în fișierul 1. Operația de copiere de rezervă sau de restaurare a fost procesată cu succes în 1 pagină în 0,004 secunde (1,664 MB / sec).

3. Recuperați jurnalul de tranzacții folosind WITH NORECOVERY din tran_log2.trn:

Operația de restaurare nu reușește cu un mesaj de eroare:

Server: Msg 3155, Nivelul 16, Starea 1, Linia 1
Operația RESTORE nu poate continua deoarece unul sau mai multe fișiere au fost adăugate sau abandonate din baza de date de la crearea setului de backup. Server: Msg 3013, Level 16, Starea 1, Linia 1 Operația de backup sau restaurare se termină anormal.

Deoarece mesajul de eroare indică faptul că jurnalul de tranzacții nu poate fi recuperat din backupul jurnalului de tranzacții specificat (tran_log2.trn). Acest comportament corespunde designului SQL Server 7.0 și nu permite adăugarea sau ștergerea fișierelor între copii de rezervă ale jurnalului.
Pentru a preveni această eroare, creați o copie de rezervă completă după ce adăugați sau ștergeți unul sau mai multe fișiere de bază de date și apoi începe o nouă secvență de rezervare a jurnalului. Dacă secvența de backup creat anterior este disponibil doar pentru a restabili, a restabili tran_log1.trn, folosind opțiunea de recuperare cu, care vă permite să restaurați o bază de date la starea non-contradictorii în mod direct, înainte au fost adăugate sau șterse fișierele bazei de date.

Luați în considerare un script similar cu cel folosit pentru SQL Server 7.0. După adăugarea fișierului în baza de date industrială, executați:

ALTER DATABASE Northwind
ADĂGAȚI FILE
(
NAME = northwind_data1,
FILENAME = 'E: \ MSSQL7 \ DATA \ northwnd_data1.ndf';
SIZE = 5MB,
MAXSIZE = 15,
FILEGROWTH = 10%
)
GO

S-au procesat 1 pagini pentru baza de date "northwind", fișierul "Northwind_log" din fișierul 1.
Server: Msg 5123, Nivel 16, Starea 1, Linia 1
CREATE FILE întâlnit eroare de sistem de operare 3 (Sistemul nu poate găsi
calea specificată) în timp ce încercați să deschideți sau să creați fișierul fizic
'E: \ Program Files \ Microsoft SQL Server \ MSSQL \ DATA \ nwnd_d2.ndf'.
Server: Msg 5183, Nivel 16, Starea 1, Linia 1
Fișierul 'northwind_data2' nu poate fi creat. Utilizați WITH MOVE pentru a specifica un nume de fișier fizic utilizabil.
Server: Msg 3013, Nivelul 16, Starea 1, Linia 1
RESTORE LOG se termină anormal.

Mesajul de eroare este afișat deoarece comanda RESTORE nu a pornit de la opțiunea de creare a unui fișier nou (corespunzător fișierului adăugat la baza de date industrială) și care vă permite să scrieți date într-un fișier.
Pentru a evita mesajul de eroare 5123, utilizați următorul script de comportament:

1. Restaurați manual prima copie de rezervă a jurnalului de tranzacții creată după adăugarea fișierului (pentru SQL Server Query Analyzer sau SQL Server Enterprise Manager) utilizați următorul cod:

RESTORE LOG NORTHWIND DIN
DISK = 'e: \ filemgt \ nwind_log2.trn'
CU MOVE 'northwind_data1'
TO 'c: \ Program Files \ server Microsoft SQL \ MSSQL $ SQL2K1 \ Data \ northwnd_data1.ndf',
NORECOVERY

Acum ați creat un nou fișier de bază de date, la fel cum există în baza de date industrială a serverului pe care a fost creată copia de rezervă a jurnalului de tranzacții.
După ce executați comenzile de la pasul 1, puteți continua recuperarea jurnalului de tranzacții, fără a utiliza opțiunea MOVE.







Articole similare

Trimiteți-le prietenilor: