Quan utilitzeu Microsoft SQL Server per adjuntar o accedir a un fitxer de base de dades MDF corrupte, podeu trobar diversos missatges d'error que poden confondre. A continuació, llistarem tots els errors, ordenats per freqüència. Per a cada error, descriurem els seus símptomes, explicarem la causa exacta i proporcionarem fitxers de mostra juntament amb els fitxers corregits per DataNumen SQL Recovery. Això us ajudarà a entendre millor aquests errors. Tingueu en compte que "xxx.MDF" representarà el nom del vostre corrupte SQL Server Fitxer de base de dades MDF.
Basat en SQL Server o missatges d'error CHECKDB, hi ha tres tipus d'errors:
-
- Errors d'assignació: Sabem que les dades dels fitxers MDF i NDF s'assignen com pàgines. I hi ha algunes pàgines especials que s'utilitzen per a la gestió de l'assignació, de la següent manera:
Tipus de pàgina | Descripció |
Pàgina GAM | Emmagatzema la informació del mapa d'assignació global (GAM). |
Pàgina SGAM | Emmagatzema la informació del mapa d'assignació global compartida (SGAM). |
Pàgina IAM | Emmagatzema la informació del mapa d'assignació d'índexs (IAM). |
Pàgina PFS | Emmagatzema la informació d'assignació de PFS. |
Si alguna de les pàgines d'assignació anteriors té errors o les dades gestionades per aquestes pàgines d'assignació no són coherents amb la informació d'assignació, aleshores SQL Server o CHECKDB informarà errors d'assignació.
- Errors de coherència: per pàgines que s'utilitzen per emmagatzemar dades, incloses les pàgines de dades i les pàgines d'índex, si SQL Server o CHECKDB troben qualsevol incoherència entre el contingut de la pàgina i la suma de comprovació, aleshores informaran errors de coherència.
- Tots els altres errors: Pot haver-hi altres errors que no pertanyin a les dues categories anteriors.
- xxxx.mdf no és un fitxer de base de dades principal. (Microsoft SQL Server, Error: 5171)
- La capçalera del fitxer 'xxxx.mdf' no és una capçalera de fitxer de base de dades vàlida. La propietat FILE SIZE és incorrecta.(Microsoft SQL Server, Error: 5172)
- SQL Server S'ha detectat un error d'E/S basat en la consistència lògica: suma de comprovació incorrecta
- SQL Server S'ha detectat un error d'E/S basat en la consistència lògica: pàgina trencada
- Esborra alguns registres o taules de la base de dades per error.
SQL Server té una eina integrada anomenada DBCC, que té CHECKDB i COMPROBABLE opcions que poden ajudar a reparar una base de dades MDF corrupta. Tanmateix, per als fitxers de base de dades MDB danyats greument, DBCC CHECKDB i COMPROBABLE també fallarà.
Errors de coherència reportats per CHECKDB:
- SQL Server S'ha detectat un error d'E/S basat en la consistència lògica: suma de comprovació incorrecta
- La fila de sys.xxx no té cap fila coincident a sys.xxx.
- Error de taula: es reconstruirà l'ID d'objecte ##, l'ID d'índex ##.
- Aquest índex de la taula del sistema no es pot tornar a crear.
- ID d'objecte ##, ID d'índex ##, ID de partició ##, ID d'unitat d'assignació ## (tipus Desconegut), ID de pàgina (##:560) conté un ID de pàgina incorrecte a la seva capçalera de pàgina.
Errors d'assignació informats per CHECKDB:
- La pàgina del mapa d'assignació d'índexs (IAM) és assenyalada pel punter següent de la pàgina IAM
- L'extensió (##:##) a l'ID de la base de dades ## està marcada com a assignada al GAM, però cap SGAM o IAM no l'ha assignat.
Tots els altres errors informats per CHECKDB:
- Error: (-#######) S'ha produït un error en executar la consulta "DBCC CHECKDB(xxxx) WITH NO_INFOMSGS" amb el següent error: "xxxx".
- S'ha detectat un error d'E/S (ID de pàgina incorrecta) durant la lectura a l'offset 0x###### al fitxer 'xxxx.mdf'.
- El sistema no ha pogut activar prou la base de dades per reconstruir el registre
- Pèrdua de dades en reparar amb CHECKDB
- Sembla que el sistema operatiu ha truncat el fitxer.
- Durant la repetició d'una operació registrada a la base de dades "xxxx", s'ha produït un error a l'ID del registre de registre.