Maison base de données tutoriel mysql 数据库的恢复模式

数据库的恢复模式

Jun 07, 2016 pm 03:00 PM
内容 commencer 恢复 数据库 模式

---恢复内容开始--- 数据库的恢复模式是数据库遭到破坏时还原数据库中数据的数据存储方式,它与可用性、性能、磁盘空间等因素相关。每一种恢复模式都按照不同的方式维护数据库的数据和日志。系统提供了3种数据库的恢复模式: 1、完整恢复模式 2、大容量日志

---恢复内容开始---

数据库的恢复模式是数据库遭到破坏时还原数据库中数据的数据存储方式,它与可用性、性能、磁盘空间等因素相关。每一种恢复模式都按照不同的方式维护数据库的数据和日志。系统提供了3种数据库的恢复模式:

1、完整恢复模式

2、大容量日志记录的恢复模式

3、简单恢复模式

    完整恢复模式是最高等级的数据库恢复模式。在完整恢复模式中,对数据库的所有操作都记录在数据库的事务日志中。即使那些大容量数据库操作和创建索引的操作,也就记录在数据库的事务日志中。当数据库遭到破坏之后,可以使用该数据库的事务日志迅速还原数据库。

   在完整恢复模式中,由于事务日志记录了数据库的所有变化,所以可以使用事务日志将数据库还原到任意的时刻点。但是,这种恢复模式耗费大量的磁盘空间。除非是那种事务日志非常重要的数据库备份策略,否则一般不建议使用这种恢复模式。

   就想完整恢复模式一样,大容量日志记录的恢复模式也使用数据库备份和日志备份还原数据库。但是,在使用了大容量日志记录的恢复模式的数据库中,其事务日志耗费了的磁盘空间远远小于使用完整恢复模式的数据库的事务日志。在大容量日志记录的恢复模式中,Check Index、bulk insert、BCP、Select Into等操作不记录在事务日志中。

   对于那些规模比较小的数据库或数据不经常改变的数据库来说,可以使用简单恢复模式。当使用简单恢复模式时,可以通过执行完全数据库备份和增量数据库备份来还原数据库,数据库只能还原到执行备份操作的时刻点。执行备份操作之后的所有的数据修改都丢失并且需要重建。这种模式的特点是数据库没有事务日志。这种模型的好处是耗费比较少的磁盘空间,恢复模式最简单。

举个例子:

假设出问题的数据库为A, 新恢复后的数据库为B
1.前提:A数据库的恢复模式必须为:完整。
2.备份A数据库的日志,假设文件名为log.bak
3.使用A数据库的最近的完整备份,使用 WITH NORECOVERY 的方式,恢复为B数据库
4.使用恢复日志的方式,指定还原的时间点(T),将Log.bak文件还原到B数据库,完成后,B数据库的内容即是T时间之前的完整数据。

 

以下为测试语句建A数据库

--<span>创建A数据库 
CREATE   DATABASE   A 
GO 

</span>--<span>对A数据库进行备份 
BACKUP   DATABASE   A   TO   DISK</span>= <span>'</span><span>c:\A.bak </span><span>'</span><span>   WITH   FORMAT 
GO 

</span>--<span>创建测试表 
CREATE   TABLE   A.dbo.TB_test(ID   </span><span>int</span><span>) 

GO
</span>--<span>插入数据
Insert Into A.dbo.TB_test(ID)
</span><span>select</span> <span>1</span><span>

GO

</span>--<span>延时1秒钟,再进行后面的操作
</span>--<span>(这是由于SQL   Server的时间精度最大为百分之三秒,不延时的话,可能会导致还原到时间点的操作失败) 
WAITFOR   DELAY   </span><span>'</span><span>00:00:01 </span><span>'</span><span> 
GO 

</span>--<span>假设我们现在误操作删除了   A.dbo.TB_test   这个表 
DROP   TABLE   A.dbo.TB_test 

</span>--<span>为了测试还原时间点,先记录操作的时间点
SELECT   dt</span>=<span>GETDATE()   INTO   #T 
GO 

</span>--<span>在删除操作后,发现不应该删除表    TB_test 

</span>--<span>下面演示了如何恢复这个误删除的表    TB_test,以及数据行

</span>--<span>为了避免覆盖A数据库,恢复时,生成到B数据库

GO
</span>--<span>首先,备份A数据库的事务日志(使用事务日志才能还原到指定的时间点) 
BACKUP   LOG   A   TO   DISK</span>= <span>'</span><span>c:\A_log.bak </span><span>'</span><span>   WITH   FORMAT 
GO 

</span>--<span>接下来,我们要先还原完全备份(还原日志必须在还原完全备份的基础上进行),生成数据库B
RESTORE   DATABASE   B   FROM   DISK</span>= <span>'</span><span>c:\A.bak </span><span>'</span><span> 
WITH  FILE </span>= <span>1</span>,  MOVE N<span>'</span><span>A</span><span>'</span> TO N<span>'</span><span>C:\B.mdf</span><span>'</span><span>,  
                MOVE N</span><span>'</span><span>A_log</span><span>'</span> TO N<span>'</span><span>C:\B.ldf</span><span>'</span><span>,  NORECOVERY,    REPLACE  
GO 

</span>--<span>将事务日志还原到删除操作前(这里的时间对应上面的删除时间,并比删除时间略早 
DECLARE   @dt   datetime 
SELECT   @dt</span>=DATEADD(ms,-<span>20</span>,dt)   FROM   #T     --<span>获取比表被删除的时间略早的时间 
RESTORE   LOG   B   FROM   DISK</span>= <span>'</span><span>c:\A_log.bak </span><span>'</span>   WITH   RECOVERY,STOPAT=<span>@dt 

GO 

</span>--<span>查询一下,看表是否恢复 
SELECT   </span>*<span>   FROM   B.dbo.TB_test 

</span>--<span>最后删除我们做的测试环境 
DROP   DATABASE   A 
DROP   DATABASE   B
DROP   TABLE   #T</span>
Copier après la connexion

 

---恢复内容结束---

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Le mode Ne pas déranger ne fonctionne pas sur iPhone : correctif Le mode Ne pas déranger ne fonctionne pas sur iPhone : correctif Apr 24, 2024 pm 04:50 PM

Même répondre à des appels en mode Ne pas déranger peut être une expérience très ennuyeuse. Comme son nom l'indique, le mode Ne pas déranger désactive toutes les notifications d'appels entrants et les alertes provenant d'e-mails, de messages, etc. Vous pouvez suivre ces ensembles de solutions pour résoudre ce problème. Correctif 1 – Activer le mode de mise au point Activez le mode de mise au point sur votre téléphone. Étape 1 – Faites glisser votre doigt depuis le haut pour accéder au Centre de contrôle. Étape 2 – Ensuite, activez le « Mode Focus » sur votre téléphone. Le mode Focus active le mode Ne pas déranger sur votre téléphone. Aucune alerte d’appel entrant n’apparaîtra sur votre téléphone. Correctif 2 – Modifier les paramètres du mode de mise au point S'il y a des problèmes dans les paramètres du mode de mise au point, vous devez les résoudre. Étape 1 – Ouvrez la fenêtre des paramètres de votre iPhone. Étape 2 – Ensuite, activez les paramètres du mode Focus

Comment le langage Go implémente-t-il les opérations d'ajout, de suppression, de modification et de requête de la base de données ? Comment le langage Go implémente-t-il les opérations d'ajout, de suppression, de modification et de requête de la base de données ? Mar 27, 2024 pm 09:39 PM

Le langage Go est un langage de programmation efficace, concis et facile à apprendre. Il est privilégié par les développeurs en raison de ses avantages en programmation simultanée et en programmation réseau. Dans le développement réel, les opérations de base de données font partie intégrante. Cet article explique comment utiliser le langage Go pour implémenter les opérations d'ajout, de suppression, de modification et de requête de base de données. Dans le langage Go, nous utilisons généralement des bibliothèques tierces pour faire fonctionner les bases de données, telles que les packages SQL couramment utilisés, gorm, etc. Ici, nous prenons le package SQL comme exemple pour présenter comment implémenter les opérations d'ajout, de suppression, de modification et de requête de la base de données. Supposons que nous utilisons une base de données MySQL.

Comment restaurer les commentaires supprimés sur Xiaohongshu ? Des conseils pour les commentaires supprimés ? Comment restaurer les commentaires supprimés sur Xiaohongshu ? Des conseils pour les commentaires supprimés ? Mar 27, 2024 am 11:56 AM

Xiaohongshu est une plateforme sociale de commerce électronique populaire où les utilisateurs peuvent partager des expériences d'achat, des détails sur leur vie, etc. Lors de l'utilisation, certains utilisateurs peuvent voir leurs commentaires supprimés. Alors, comment restaurer les commentaires supprimés sur Xiaohongshu ? 1. Comment restaurer les commentaires supprimés sur Xiaohongshu ? S'il s'avère qu'un commentaire a été supprimé par erreur, les utilisateurs peuvent choisir d'attendre que l'équipe officielle de Xiaohongshu le restaure. Dans ce cas, il est préférable d’être patient et d’attendre car l’équipe officielle peut automatiquement traiter et reprendre les commentaires après un certain temps. Si vous constatez qu'un commentaire a été supprimé, envisagez de republier un contenu similaire. Mais lorsque vous republiez, assurez-vous que le contenu est conforme aux directives de la communauté de Xiaohongshu pour éviter d'être à nouveau supprimé. 3. Contactez le service client de Xiaohongshu : si vous pensez que votre commentaire a été erroné

Tutoriel détaillé sur l'établissement d'une connexion à une base de données à l'aide de MySQLi en PHP Tutoriel détaillé sur l'établissement d'une connexion à une base de données à l'aide de MySQLi en PHP Jun 04, 2024 pm 01:42 PM

Comment utiliser MySQLi pour établir une connexion à une base de données en PHP : Inclure l'extension MySQLi (require_once) Créer une fonction de connexion (functionconnect_to_db) Appeler la fonction de connexion ($conn=connect_to_db()) Exécuter une requête ($result=$conn->query()) Fermer connexion ( $conn->close())

Comment Hibernate implémente-t-il le mappage polymorphe ? Comment Hibernate implémente-t-il le mappage polymorphe ? Apr 17, 2024 pm 12:09 PM

Le mappage polymorphe Hibernate peut mapper les classes héritées à la base de données et fournit les types de mappage suivants : join-subclass : crée une table séparée pour la sous-classe, incluant toutes les colonnes de la classe parent. table par classe : créez une table distincte pour les sous-classes, contenant uniquement des colonnes spécifiques aux sous-classes. union-subclass : similaire à join-subclass, mais la table de classe parent réunit toutes les colonnes de la sous-classe.

iOS 18 ajoute une nouvelle fonction d'album 'Récupéré' pour récupérer les photos perdues ou endommagées iOS 18 ajoute une nouvelle fonction d'album 'Récupéré' pour récupérer les photos perdues ou endommagées Jul 18, 2024 am 05:48 AM

Les dernières versions d'Apple des systèmes iOS18, iPadOS18 et macOS Sequoia ont ajouté une fonctionnalité importante à l'application Photos, conçue pour aider les utilisateurs à récupérer facilement des photos et des vidéos perdues ou endommagées pour diverses raisons. La nouvelle fonctionnalité introduit un album appelé "Récupéré" dans la section Outils de l'application Photos qui apparaîtra automatiquement lorsqu'un utilisateur a des photos ou des vidéos sur son appareil qui ne font pas partie de sa photothèque. L'émergence de l'album « Récupéré » offre une solution aux photos et vidéos perdues en raison d'une corruption de la base de données, d'une application d'appareil photo qui n'enregistre pas correctement dans la photothèque ou d'une application tierce gérant la photothèque. Les utilisateurs n'ont besoin que de quelques étapes simples

Une analyse approfondie de la façon dont HTML lit la base de données Une analyse approfondie de la façon dont HTML lit la base de données Apr 09, 2024 pm 12:36 PM

HTML ne peut pas lire directement la base de données, mais cela peut être réalisé via JavaScript et AJAX. Les étapes comprennent l'établissement d'une connexion à la base de données, l'envoi d'une requête, le traitement de la réponse et la mise à jour de la page. Cet article fournit un exemple pratique d'utilisation de JavaScript, AJAX et PHP pour lire les données d'une base de données MySQL, montrant comment afficher dynamiquement les résultats d'une requête dans une page HTML. Cet exemple utilise XMLHttpRequest pour établir une connexion à la base de données, envoyer une requête et traiter la réponse, remplissant ainsi les données dans les éléments de la page et réalisant la fonction de lecture HTML de la base de données.

Analyse des principes de base du système de gestion de base de données MySQL Analyse des principes de base du système de gestion de base de données MySQL Mar 25, 2024 pm 12:42 PM

Analyse des principes de base du système de gestion de base de données MySQL MySQL est un système de gestion de base de données relationnelle couramment utilisé qui utilise le langage de requête structuré (SQL) pour le stockage et la gestion des données. Cet article présentera les principes de base du système de gestion de base de données MySQL, y compris la création de bases de données, la conception de tables de données, l'ajout de données, la suppression, la modification et d'autres opérations, et fournira des exemples de code spécifiques. 1. Création d'une base de données Dans MySQL, vous devez d'abord créer une instance de base de données pour stocker les données. Le code suivant peut créer un fichier nommé "mon

See all articles