Maison base de données tutoriel mysql oracle闪回表详解

oracle闪回表详解

Jun 07, 2016 pm 04:20 PM
oracle 详解

--- 说明闪回数据库 --- 使用闪回表将表内容还原到过去的特定时间点 --- 从删除表中进行恢复 --- 使用闪回查询查看截止到任一时间点的数据库内容 --- 使用闪回版本查询查看某一行在一段时间内的各个版本 --- 使用闪回事务查询查看事务处理历史记录 或行 优点

   --- 说明闪回数据库

  --- 使用闪回表将表内容还原到过去的特定时间点

  --- 从删除表中进行恢复

  --- 使用闪回查询查看截止到任一时间点的数据库内容

  --- 使用闪回版本查询查看某一行在一段时间内的各个版本

  --- 使用闪回事务查询查看事务处理历史记录

oracle闪回表详解   三联

或行

  优点:

  闪回技术由于只能处理更改数据,所以从根本上改变了恢复技术。使用这个技术时,从错误中恢复花费的时间等于制造错误所花费的时间。当闪回技术使用时,它与介质恢复相比,在易用性、可用性和还原时间方面有明显的优势。

  闪回数据库使用闪回日志执行闪回。闪回删除使用回收站。其他所有功能都使用还原数据。


  闪回数据库 -----这个功能可撤销导致逻辑数据损坏的更改

  就是当出现逻辑错误时,能够将整个数据库回退到出错前的那个时间点上,

  闪回数据库的日志文件不是由传统的Log Writer (LGWR)进程写入,而是由一个称为RecoVery WRiter (RVWR)的新进程写入,闪回日志文件由RCWR进程在恢复区中自动创建和维护。

  [Z喎�"" target="_blank" class="keylink">vcmFjbGVAdHlnZXIgfl0kIHBzIC1lZg=="grep rvwr|grep -v grep

  oracle 8414 1 0 14:33 ? 00:00:00 ora_rvwr_ORCL

  可以使用闪回数据库的场景包括

  1. 用户截断了表(trucate)

  2. 系统管理员误删除了用户

  3. 用户错误的执行了某个批处理任务,或者该批处理任务的脚本编写错误,使得多个表的数据发生混乱,我们无法采用闪回表的方式进行恢复

  实现闪回数据库的基础是闪回日志,只要我们配置了闪回数据库,就会自动创建闪回日志。这时,只要数据库里的数据发生变化,oracle就会将数据被修改前的旧值保存在闪回日志里,当我们需要闪回数据库时,oracle就会读取闪回日志里的记录,并应用到数据库上,从而将数据库回退到历史的某个时间点上。

oracle闪回表详解

  闪回数据库:减少还原时间

  闪回数据库比使用还原文件和重做日志文件的传统时间点恢复的速度要更快。随着数据库规模的增加,通过还原所有数据文件来执行传统的时间点恢复所需的时间长度变得不太现实。使用闪回数据库时,因为不要需要还原数据文件,所以恢复数据库的时间与需要回退的更改数目(而不是数据库大小)成比例。

  闪回数据库是通过使用一类被称为闪回数据库日志的日志文件来实施的。oracle数据库会定期将数据块的“前像”记录在闪回数据库日志中。为了快速将数据文件更改回退到捕获闪回日志的时间(就在所需目标时间之前),可以重用块前像。然后,应用重做日志文件中的更改来填充间隔。在快速恢复区中会自动创建和管理闪回数据库日志。

  在不能使用闪回数据库功能的情况下,必须使用不完全恢复操作将数据库返回到特定时间。闪回数据库操作完成后,可在只读模式下打开数据库,验证是否使用了正确的目标时间或系统更改号(SCN)。如果没有,可以再次闪回数据库,或者通过执行恢复操作来前滚数据库。因此,要撤销闪回数据库操作,必须向前恢复数据库。

  注:闪回保留目标并不能绝对保证闪回可用。如果闪回恢复区中必须存在的文件需要占用空间,可能会自动删除闪回日志。

  闪回数据库操作完成后,必须使用以下一种方法打开数据库:

  · 在只读模式下验证是否使用了正确的目标时间或SCN

  · 使用RESETLOGS 参数才允许进行更新

  闪回数据库限制:(不能使用闪回数据库)

  · 已还原或重新创建了控制文件

  · 已删除了表空间

  · 已收缩了数据文件

  不能使用闪回数据库恢复自闪回目标时间以来已删除的数据文件。

  删除的数据文件会添加到控制文件中且标记为脱机,但是不会闪回。

  闪回数据库不能闪回自闪回目标时间以来已收缩的数据文件,这种数据文件必须先脱机,才能执行闪回操作。

  实验1:启用闪回数据库

  1. 设置闪回恢复区保留时间3天

  SYS@ORCL>show parameter flashback

  NAME TYPE VALUE

  ------------------------------------ -------------------------------- ------------------------------

  db_flashback_retention_target integer 1440 //db_flashback_retention_target 用于定义一个时间上限 单位是分钟

  SYS@ORCL>alter system set db_flashback_retention_target=4320;

  SYS@ORCL>show parameter flashback

  NAME TYPE VALUE

  ------------------------------------ -------------------------------- ------------------------------

  db_flashback_retention_target integer 4320

  2. 查看当前闪回状态,未开启闪回,开启闪回(mount状态开启闪回)

  SYS@ORCL>select flashback_on from v$database;

  FLASHBACK_ON

  ------------------

  NO

  SYS@ORCL>alter database flashback on;

  alter database flashback on

  *

  ERROR at line 1:

  ORA-38759: Database must be mounted by only one instance and not open.

  SYS@ORCL>shutdown immediate

  Database closed.

  Database dismounted.

  ORACLE instance shut down.

  SYS@ORCL>startup mount;

  ORACLE instance started.

  Total System Global Area 314572800 bytes

  Fixed Size 1219160 bytes

  Variable Size 121636264 bytes

  Database Buffers 188743680 bytes

  Redo Buffers 2973696 bytes

  Database mounted.

  3. 开启闪回,必须在归档模式下开启

  SYS@ORCL>archive log list;

  Database log mode Archive Mode

  Automatic archival Enabled

  Archive destination USE_DB_RECOVERY_FILE_DEST

  Oldest online log sequence 29

  Next log sequence to archive 31

  Current log sequence 31

  SYS@ORCL>alter database flashback on;

  Database altered.

  4. 打开数据库,,查看闪回状态

  SYS@ORCL>alter database open;

  Database altered.

  SYS@ORCL>select flashback_on from v$database;

  FLASHBACK_ON

  ------------------

  YES

  SYS@ORCL>

  实验2:闪回数据库用途 -----实验参考eygle 的循序渐进oracle

  SYS@ORCL>conn tyger/tyger

  Connected.

  TYGER@ORCL>select count(*) from tyger;

  COUNT(*)

  ----------

  1

  TYGER@ORCL>select count(*) from test;

  COUNT(*)

  ----------

  14

  TYGER@ORCL>alter session set nls_date_format="yyyy-mm-dd hh24:mi:ss';

  Session altered.

  TYGER@ORCL>select sysdate from dual;

  SYSDATE

  -------------------

  2014-03-11 15:47:14

  TYGER@ORCL>truncate table tyger;

  Table truncated.

  TYGER@ORCL>select sysdate from dual;

  SYSDATE

  -------------------

  2014-03-11 15:47:38

  TYGER@ORCL>truncate table test;

  Table truncated.

  TYGER@ORCL>select sysdate from dual;

  SYSDATE

  -------------------

  2014-03-11 15:48:03

  闪回需要在Mount状态下进行,可以指定Timestamp/SCN/Sequence进行闪回。

  首先将数据库闪回到第一时间点,以Redo only的方式打开数据库:

  SYS@ORCL>startup mount;

  ORACLE instance started.

  Total System Global Area 314572800 bytes

  Fixed Size 1219160 bytes

  Variable Size 130024872 bytes

  Database Buffers 180355072 bytes

  Redo Buffers 2973696 bytes

  Database mounted.

  SYS@ORCL>flashback database to timestamp

  2 to_timestamp('2014-03-11 15:47:14','yyyy-mm-dd hh24:mi:ss');

  Flashback complete.

  SYS@ORCL>alter database open read only; //以read only原因:如果数据恢复的不够理想,可以关闭数据库继续进行恢复

  Database altered.

  SYS@ORCL>select count(*) from tyger.tyger;

  COUNT(*)

  ----------

  1

  SYS@ORCL>select count(*) from tyger.test;

  COUNT(*)

  ----------

  14

  数据恢复不理想,继续进行恢复 ---前提:以redo only打开数据库

  SYS@ORCL>startup mount;

  ORACLE instance started.

  Total System Global Area 314572800 bytes

  Fixed Size 1219160 bytes

  Variable Size 130024872 bytes

  Database Buffers 180355072 bytes

  Redo Buffers 2973696 bytes

  Database mounted.

  SYS@ORCL>flashback database to timestamp

  2 to_timestamp('2014-03-11 15:47:38','yyyy-mm-dd hh24:mi:ss');

  Flashback complete.

  SYS@ORCL>alter database open read only;

  Database altered.

  SYS@ORCL>select count(*) from tyger.tyger;

  COUNT(*)

  ----------

  0

  SYS@ORCL>select count(*) from tyger.test;

  COUNT(*)

  ----------

  14

  如果数据恢复确认完成,就可以以resetlogs打开数据库,恢复工作 ------重置日志,不能再flashback至resetlogs之前的时间点

  SYS@ORCL>alter database open resetlogs;

  Database altered.

  oracle闪回表详解:

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)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

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)

Combien de temps les journaux de la base de données Oracle seront-ils conservés ? Combien de temps les journaux de la base de données Oracle seront-ils conservés ? May 10, 2024 am 03:27 AM

La durée de conservation des journaux de la base de données Oracle dépend du type de journal et de la configuration, notamment : Redo logs : déterminé par la taille maximale configurée avec le paramètre "LOG_ARCHIVE_DEST". Redo logs archivés : Déterminé par la taille maximale configurée par le paramètre "DB_RECOVERY_FILE_DEST_SIZE". Redo logs en ligne : non archivés, perdus au redémarrage de la base de données et la durée de conservation est cohérente avec la durée d'exécution de l'instance. Journal d'audit : Configuré par le paramètre "AUDIT_TRAIL", conservé 30 jours par défaut.

L'ordre des étapes de démarrage de la base de données Oracle est L'ordre des étapes de démarrage de la base de données Oracle est May 10, 2024 am 01:48 AM

La séquence de démarrage de la base de données Oracle est la suivante : 1. Vérifiez les conditions préalables ; 2. Démarrez l'écouteur ; 3. Démarrez l'instance de base de données ; 4. Attendez que la base de données s'ouvre ; 6. Vérifiez l'état de la base de données ; . Activez le service (si nécessaire) ; 8. Testez la connexion.

De quelle quantité de mémoire Oracle a-t-il besoin ? De quelle quantité de mémoire Oracle a-t-il besoin ? May 10, 2024 am 04:12 AM

La quantité de mémoire requise par Oracle dépend de la taille de la base de données, du niveau d'activité et du niveau de performances requis : pour le stockage des tampons de données, des tampons d'index, l'exécution d'instructions SQL et la gestion du cache du dictionnaire de données. Le montant exact dépend de la taille de la base de données, du niveau d'activité et du niveau de performances requis. Les meilleures pratiques incluent la définition de la taille SGA appropriée, le dimensionnement des composants SGA, l'utilisation d'AMM et la surveillance de l'utilisation de la mémoire.

Exigences de configuration matérielle du serveur de base de données Oracle Exigences de configuration matérielle du serveur de base de données Oracle May 10, 2024 am 04:00 AM

Exigences de configuration matérielle du serveur de base de données Oracle : Processeur : multicœur, avec une fréquence principale d'au moins 2,5 GHz Pour les grandes bases de données, 32 cœurs ou plus sont recommandés. Mémoire : au moins 8 Go pour les petites bases de données, 16 à 64 Go pour les tailles moyennes, jusqu'à 512 Go ou plus pour les grandes bases de données ou les charges de travail lourdes. Stockage : disques SSD ou NVMe, matrices RAID pour la redondance et les performances. Réseau : réseau haut débit (10GbE ou supérieur), carte réseau dédiée, réseau à faible latence. Autres : alimentation stable, composants redondants, système d'exploitation et logiciels compatibles, dissipation thermique et système de refroidissement.

Comment lire le fichier dbf dans Oracle Comment lire le fichier dbf dans Oracle May 10, 2024 am 01:27 AM

Oracle peut lire les fichiers dbf en suivant les étapes suivantes : créer une table externe et référencer le fichier dbf ; interroger la table externe pour récupérer les données dans la table Oracle ;

Quelle quantité de mémoire est nécessaire pour utiliser la base de données Oracle Quelle quantité de mémoire est nécessaire pour utiliser la base de données Oracle May 10, 2024 am 03:42 AM

La quantité de mémoire requise pour une base de données Oracle dépend de la taille de la base de données, du type de charge de travail et du nombre d'utilisateurs simultanés. Recommandations générales : petites bases de données : 16 à 32 Go, bases de données moyennes : 32 à 64 Go, grandes bases de données : 64 Go ou plus. D'autres facteurs à prendre en compte incluent la version de la base de données, les options d'optimisation de la mémoire, la virtualisation et les meilleures pratiques (surveiller l'utilisation de la mémoire, ajuster les allocations).

Les tâches planifiées Oracle exécutent l'étape de création une fois par jour Les tâches planifiées Oracle exécutent l'étape de création une fois par jour May 10, 2024 am 03:03 AM

Pour créer une tâche planifiée dans Oracle qui s'exécute une fois par jour, vous devez effectuer les trois étapes suivantes : Créer une tâche. Ajoutez un sous-travail au travail et définissez son expression de planification sur "INTERVAL 1 DAY". Activez le travail.

De quelle quantité de mémoire une base de données Oracle a-t-elle besoin ? De quelle quantité de mémoire une base de données Oracle a-t-elle besoin ? May 10, 2024 am 02:09 AM

Les besoins en mémoire d'Oracle Database dépendent des facteurs suivants : taille de la base de données, nombre d'utilisateurs actifs, requêtes simultanées, fonctionnalités activées et configuration matérielle du système. Les étapes permettant de déterminer les besoins en mémoire incluent la détermination de la taille de la base de données, l'estimation du nombre d'utilisateurs actifs, la compréhension des requêtes simultanées, la prise en compte des fonctionnalités activées et l'examen de la configuration matérielle du système.

See all articles