SQL Server est largement utilisé pour le stockage des données et la gestion des données. La base de données agit comme un backend pour de nombreuses applications populaires. SQL Server permet de construire des programmes d'application avec des fonctionnalités efficaces et de haute performance. Il a été observé que SQL Server est bon quand il s'agit de fonctionnalités et de performances, mais faible dans la gestion des erreurs. Journalisation des erreurs et la suppression est souvent assuré à partir de l'ordinateur client. Parfois, toutes les options pour résoudre certaines erreurs dans la base de données SQL échoue et vous devez compter sur un logiciel de récupération de SQL pour corriger les erreurs dans la base de données.
Dans cet article, nous allons discuter d'une situation d'erreur typique. Le message d'erreur dit: "Erreur de table: ID d'objet O_ID1, ID d'index I_ID1 liaison de chaîne inter-objet. Page P_ID1 points à P_ID2 dans l'ID d'objet O_ID2, ID d'index I_ID2 ".
Dans SQL rangées de bases de données sont stockées dans des pages. Chaque page pointe vers une autre page. Au-dessus d'erreur indiqué à penser que le pointeur de Pg_Id1 qui était censé pointer vers la page suivante d'un objet particulier, les points à la page suivante d'un objet différent.
Pour résoudre l'erreur, vous devez commencer par vérifier les défaillances matérielles. S'il n'y a pas de problème au niveau du matériel, essayez de restaurer la base de données à partir d'une sauvegarde (si vous avez fait tout). Si aucune sauvegarde est stocké, la dernière option consiste à exécuter la commande DBCC CHECKDB. DBCC CHECKDB commence par vérifier les pages de données des tables système. Si une erreur est trouvée qui ne peut pas être réparé, DBCC CHECKDB est arrêté instantanément.
Comprendre DBCC CHECKDB
DBCC CHECKDB vérifie l'intégrité structurelle allocation et de tous les objets de la base de données corrompues. Il vérifie que les index et les pages de données sont correctement liés et dans l'ordre de tri correct. Cohérence dans les pointeurs, les données sur des pages et des pages décalages est également vérifiée. Commande DBCC déclaration recueille des informations sur la base de données endommagée, puis vérifie le fichier journal pour connaître les modifications supplémentaires. Deux séries d'informations sont combinées pour rendre les données cohérentes après la numérisation.
Syntaxe
DBCC CHECKDB
('Database'
[, NOINDEX
| {REPAIR_FAST
| REPAIR_REBUILD
| REPAIR_ALLOW_DATA_LOSS
}]
) [WITH {[ALL_ERRORMSGS]
[, [NO_INFOMSGS]]
[, [TABLOCK]]
[, [ESTIMATEONLY]]
[, [PHYSICAL_ONLY]]
}
]
Explication des arguments
NOINDEX
NOINDEX clause rend la commande DBCC CHECKDB pour fonctionner uniquement sur les tables système. Tables définies par l'utilisateur ayant des index non cluster ne sont pas vérifiées.
REPAIR_FAST
REPAIR_FAST clause rend la commande DBCC pour effectuer la réparation rapide du niveau base de données SQL quelques erreurs. Il répare les clés supplémentaires dans les index non cluster. Il n'ya aucun risque de perte de données par cette clause.
REPAIR_REBUILD
REPAIR_REBUILD est utilisé pour réparer les erreurs SQL de degré plus élevé que ceux réparé par REPAIR_FAST. Toutes les erreurs éliminées par REPAIR_FAST et le temps de prendre des mesures de rétablissement SQL, telles que la reconstruction d'index sont effectuées par REPAIR_REBUILD. Il n'ya aucun risque de perte de données par cette clause.
REPAIR_ALLOW_DATA_LOSS
Clause REPAIR_ALLOW_DATA_LOSS est utilisé pour effectuer la récupération de MDF SQL pour toutes les erreurs qui sont réparés par REPAIR_FAST et REPAIR_REBUILD. Lorsque cette commande est exécutée, des lignes et des pages sont désaffectées et attribués. Ceci est fait pour corriger les erreurs d'attribution, de lignes structurelles ou des erreurs de page, et de supprimer des objets de texte corrompus. Processus de réparation effectuée à l'aide REPAIR_ALLOW_DATA_LOSS peut causer des pertes de données. Processus de réparation peut être exécuté pour une transaction utilisateur. Cela vous aidera à reculer les changements, si nécessaire. Si un processus de récupération SQL est annulée, des erreurs peuvent exister dans la base de données. Les erreurs restants peuvent être retirés par l'aide d'une sauvegarde.
AVEC
Dans la clause WITH, vous pouvez spécifier des options, comme aucun. des messages d'erreur retournés, bloque l'acquisition, ou les exigences pour tempdb.
PHYSICAL_ONLY
Si la clause PHYSICAL_ONLY est utilisé, contrôle d'intégrité se limite à vérifier la structure physique de la page et têtes d'enregistrement, et la cohérence entre l'ID d'objet page, ID d'index et de structures d'allocation. Cette option est également utilisée pour vérifier pages endommagées et les erreurs matérielles qui entravent données.
Si la solution ci-dessus ne résout pas votre problème, vous pouvez essayer le logiciel de récupération de SQL.
Aucun commentaire:
Enregistrer un commentaire
Thanks for your valuable comment !