Încălcarea integrității bazei de date, comunitatea terrasoft

A trebuit să se confrunte cu o problemă atunci când clientul avea erori "specifice" cu următorul caracter:

au apărut următoarea eroare (s): Mesajul de eroare original: eroare I / O (pagina ID rău) detectată în timpul de citire la offset 0x00000010a5c000 în fileC: \ Terrasoft \ Data \ terrasoftCRM 30x15 Rus.mdf







Eroare la salvarea înregistrării. Mesajul de eroare inițial: Eroare I / O (ID de pagină necorespunzătoare) este detectată în timpul citirii la offset 0x00000010a58000 în fileC: \ terrasoft \ Data \ terrasoftCRM 30x15 Rus.mdf

Originalul mesaj de eroare: Nu s-a putut găsi intrarea din index pentru '16f1d2207bc9455f408a6e73882fe163ff010000' RID în pagina de index (1: 498 400), indicele de ID-ul 0, baza de date 'TSCRM30'. Stack apel

Această eroare apare atunci când serverul bază de date se blochează. Pentru ao rezolva, trebuie să executați un script, pe baza de date utilizând Query Analyzer sau Management Studio:

ALTER DATABASE Numele bazei de date SET single_user

DBCC CHECKDB ("DatabaseName", "Repair_allow_data_loss")

ALTER DATABASE Numele bazei de date SET multi_user







Există o mică observație
DBCC CHECKDB cu parametrul repair_allow_data_loss
poate duce la pierderea datelor și, eventual, la încălcarea integrității logice a sistemului

recomandat
- utilizați copii de rezervă
- prima alergare
DBCC CHECKDB cu opțiunea repair_rebuild și numai - dacă această opțiune nu ajută (în caz extrem, dacă nu există altă cale de ieșire), atunci cu opțiunea repair_allow_data_loss

De asemenea, împărtășiți experiențele
Desigur, aceste erori critice nu sunt doar așa, și de obicei se întâmplă atunci când cineva își schimbă datele în baza de date și, în același timp. luminile sau cineva apăsat butonul OFF de pe server (există chiar și astfel încât în ​​loc de server folosind un calculator personal al unora :)). Totul ar fi bine dacă serverul de baze de date a fost UPS, și de obicei nu plătesc până aplaude tunete. CHECKDB dbcc nu poate ajuta întotdeauna, dar, desigur, și am fost de economisire :) aș Dar dacă se întâmplă, această problemă a recomandat să faceți următoarele:
1. Încercați opțiunile cu dbcc checkdb
2. Dacă aveți noroc, creați o copie completă a bazei de date sau din copia de rezervă utilizând script-uri de instalare sau sql și utilizând utilitarele Import / Export, SSIS "pour" datele într-o nouă bază de date și. puneți UPS-ul pe server, configurați backup automat cu verificare și trăiți liniștit :)
3. În cazul în care toate aceleași tabele nu pot fi restaurate, la mine sa dovedit a extrage datele din astfel de tabele prin selectarea de sus. pachete și le "turnați" într-o copie curată.
Poate că ești norocos și poți trage mai mult :)







Trimiteți-le prietenilor: