Oracle_Flashback_技术_总结
oracle中闪回语法
oracle中闪回语法全文共四篇示例,供读者参考第一篇示例:Oracle中的闪回功能是一种强大的特性,它可以让用户在数据库操作出现错误时快速恢复数据到之前的状态。
通过使用闪回功能,用户可以在不影响其他正在运行的事务的情况下,进行数据的回滚操作,使数据库恢复到之前一个确定的时间点。
在Oracle中,闪回功能主要通过闪回查询和闪回表来实现。
闪回查询可以让用户查看数据库在某个时间点的数据情况,而闪回表可以让用户将表恢复到之前的状态。
下面我们来详细介绍一下这两种闪回功能的具体语法和用法。
闪回查询的语法如下:```SELECT * FROM table_name AS OF TIMESTAMP timestamp;```这条SQL语句表示从指定的时间戳timestamp时刻查看table_name表的数据情况。
用户可以使用这种方式来查看数据库在某个具体时刻的数据,从而找出误操作的原因,或者进行数据对比和分析。
除了基本的闪回查询和闪回表功能之外,Oracle中还提供了其他一些灵活的闪回功能,比如闪回查询带条件、闪回表到某个SCN号、闪回事务等。
用户可以根据具体的需求和情况,选择合适的闪回方式进行操作。
需要注意的是,闪回功能在数据库恢复和数据修复方面有着非常重要的作用,但在使用时也需要谨慎操作,以避免对数据造成更大的影响。
在使用闪回功能之前,用户最好提前做好数据备份和日志记录,以防止操作出现意外情况。
Oracle中的闪回功能是一项非常实用和强大的特性,它可以帮助用户在数据库操作出现错误时快速恢复数据,有效避免数据丢失和影响。
通过灵活运用闪回功能,可以提高数据库的稳定性和安全性,保证数据的完整和可靠性。
希望本文的介绍能够对大家有所帮助,希望大家在使用Oracle数据库时,能够充分利用闪回功能,提升数据管理的效率和水平。
第二篇示例:Oracle中的闪回语法是一种非常强大的工具,它可以帮助用户轻松地还原数据库到之前的状态。
oracle flashback table语法
oracle flashback table语法
OracleFlashbackTable语法是一种用于恢复或查看历史表数据
的强大工具。
使用FlashbackTable语法可以在数据库中快速恢复表
数据,而无需执行复杂的恢复过程。
Flashback Table语法基于Oracle Database的闪回技术,它能够在不影响当前事务的情况下,快速恢复表的历史数据。
Flashback Table语法可以通过以下方式实现:
1. 使用FLASHBACK TABLE语句恢复表数据:
FLASHBACK TABLE table_name TO TIMESTAMP
(timestamp_value);
该语句将指定表恢复到指定时间戳的状态。
2. 使用FLASHBACK TABLE语句查询表历史数据:
FLASHBACK TABLE table_name TO SCN (scn_value);
该语句将查询指定表在指定系统变更号(SCN)之前的历史数据。
Flashback Table语法还可以使用其他参数来控制恢复的数据量和恢复的范围。
例如,您可以使用如下参数:
- 查询限制参数:通过限制查询范围来加快查询速度。
- 历史数据保留参数:用于控制历史数据在数据库中的保留时间。
- 恢复操作日志参数:用于记录Flashback Table操作的详细信息。
总之,Oracle Flashback Table语法是一种功能强大的数据库
工具。
它可以帮助您快速恢复表数据,从而提高数据库恢复的效率和
准确性。
oracle数据库闪回
而闪回技术提供了从逻辑错误中恢复的更有效和更快的方法,多数情况下,在用这种技术进行恢复时数据库仍然联机并对用户可用。此外,闪回技术允许选择性地复原某些对象。使用传统的技术,从某种意义上说某有选择,只能恢复整个数据库。
SQL> conn rocky/rocky
已连接。
SQL> select * from emp;
EID NAME SEX ID
---------- ---------- ----- ----------
aa bb B 11
闪回数据库
闪回数据库的条件
1、 数据库日志系统必须在归档模式下。
2、 如果丢失了一个数据文件,或者由于某种原因不能使用特定的数据文件,则不能使用闪回数据库进行恢复。
3、 如果已经在想闪回的时间范围内复原或重建了一个控制文件,则不能使用闪回数据库特性。
4、 不能闪回一个数据库到RESETLOGS操作之前。
def hykdddd
defgdbbea hykdddd
SQL>
注意:回收站中的对象只能进行查询,任何的DML操作将不起作用。
恢复被删除的表
只要回收站中列出被删除的表,就可以使用命令恢复它。
FLASHBACK TABLE table_name TO BEFORE DROP
还有:
清除整个回收站:purge recyclebin
除回收站中的单个表:purge table test_drop
上述命令将从USERS表空间中删除单一用户scott的所有对象(以及存在于其他表空间中的所有依赖对象)。
oracle flash back原理
oracle flash back原理Oracle Flashback是一种数据库恢复和查询技术,它可以基于时间或者特定条件,将数据库恢复到过去的某个状态。
本文将详细介绍Oracle Flashback的原理和实现方式。
现代数据库面临着日益增长的数据量和日志的快速变化。
数据库管理员需要能够在数据损坏或删除时快速恢复数据库,并且能够进行详细的查询和分析操作。
Oracle Flashback技术提供了一种可靠且高效的解决方案,使管理员能够快速恢复数据库,追溯数据变更历史和查询特定时刻的数据状态。
【1. Oracle Flashback的基本原理】Oracle Flashback的原理是通过使用Undo数据和Redo数据来实现数据的恢复和查询。
Undo数据是事务发生前的数据副本,也称为回滚段。
当一个事务发生时,Oracle数据库将当前的数据状态复制一份,称为Undo数据。
在事务执行过程中,所有的修改操作都是在Undo数据上进行的,并且还会保存被修改的数据的一个副本。
这样,当需要恢复到过去的某个时刻时,可通过Undo数据将数据库还原到该时刻的状态。
Redo数据是在数据库中发生修改操作时,记录这些操作的数据。
当数据库发生故障或者需要进行恢复时,通过Redo数据可以将数据库恢复到最近的一次备份或者故障前的状态。
【2. Oracle Flashback的实现方式】Oracle提供了多种方式来实现Flashback技术,包括Flashback Query、Flashback Transaction、Flashback Table、Flashback Database等。
下面分别介绍这些实现方式的原理和使用方法。
(1) Flashback QueryFlashback Query是一种基于时间点查询的技术,可以在一个事务中查询到过去某个时间点的数据库状态。
它通过读取Undo数据和Redo 数据,将数据库恢复到指定时间点的状态,然后执行查询操作。
oracle flashback table语法
oracle flashback table语法OracleFlashbackTable语法是一种用于恢复被修改或删除的表数据的技术。
它使您可以使用简单的SQL语句来回滚表数据,并且比使用恢复工具和备份更加方便和快速。
要使用Flashback Table,您需要在Oracle数据库中启用闪回功能。
一旦启用,您可以使用以下语法将表恢复到以前的状态:FLASHBACK TABLE table_name TO TIMESTAMP timestamp_value;其中,table_name是您要恢复的表的名称,timestamp_value是您要将表恢复到的时间戳值。
您可以使用SYSTIMESTAMP或TO_TIMESTAMP函数来指定时间戳值。
例如,以下语句将从my_table表中删除的所有行恢复到3月1日下午2点的状态:FLASHBACK TABLE my_table TO TIMESTAMP '2021-03-0114:00:00';除了使用时间戳值外,您还可以使用SCN(系统更改号码)来恢复表。
以下语法将表恢复到指定的SCN:FLASHBACK TABLE table_name TO SCN scn_value;在使用Flashback Table时,需要注意以下几点:1. 您需要具有FLASHBACK权限才能使用Flashback Table。
2. 恢复表数据将覆盖当前表数据。
如果您在恢复之前未备份表数据,则无法撤消。
3. Flashback Table仅适用于表级别的恢复,无法恢复单个行或单个列。
4. 如果表已被TRUNCATE或DROP,则无法使用Flashback Table 来恢复数据。
总之,Flashback Table是一种快速和方便的恢复表数据的方法,但在使用它之前,请确保您了解其工作原理和限制。
在Oracle中使用Flashback
在Oracle中使用FlashbackFlashback是Oracle数据库中的一项功能,它允许用户在不恢复数据库的情况下,将数据库对象和数据回滚到之前的状态。
Flashback技术提供了一种简单而快速的方式来修复因错误操作而导致的数据丢失或破坏。
Oracle提供了多种Flashback功能,包括Flashback Query、Flashback Version Query、Flashback Table和Flashback Transaction Query等。
首先,Flashback Query是一种查询数据历史状态的功能。
通过使用AS OF子句,可以查询特定时间点或系统变化号(SCN)之前的数据库状态。
这对于检查之前的数据状态以及确定问题源头非常有用。
例如,以下查询将返回在特定时间点之前的员工表数据:```SELECT * FROM employeesASOFTIMESTAMPTO_TIMESTAMP('2024-01-0109:00:00','YYYY-MM-DDHH24:MI:SS');```其次,Flashback Version Query是一种查询特定数据行在历史上的不同版本的功能。
通过使用VERSIONS BETWEEN子句,可以查询一些时间范围内数据行的所有版本。
这对于恢复误删除或误修改的数据非常有用。
例如,以下查询将返回在时间段内特定员工ID的所有数据行版本:```SELECTVERSIONSSTARTSCN,VERSIONSSTARTTIME,VERSIONSENDSCN,VERS IONSENDTIME,*FROM employees VERSIONS BETWEEN TIMESTAMPTO_TIMESTAMP('2024-01-0109:00:00','YYYY-MM-DDHH24:MI:SS')ANDTO_TIMESTAMP('2024-01-3109:00:00','YYYY-MM-DDHH24:MI:SS')WHERE employee_id = 100;```第三,Flashback Table是一种将整个表恢复到之前状态的功能。
oracle回退delete语句
一、介绍在数据库管理系统中,delete语句用于删除表中的数据记录。
然而,有时候用户可能会错误地执行delete语句,导致删除了重要的数据。
在这种情况下,需要进行回退操作来恢复被误删除的数据记录。
二、oracle回退delete语句的方法1. 使用flashback技术Oracle数据库提供了flashback技术,可以通过回退操作来恢复被删除的数据记录。
使用flashback技术需要先确定数据库中是否启用了flashback功能,如果启用了,则可以使用flashback查询被删除的数据记录,然后通过flashback操作将数据记录回退至删除前的状态。
2. 使用备份和恢复如果数据库中没有启用flashback功能,可以通过数据库备份和恢复来回退delete语句。
首先需要找到数据库中删除数据之前的备份,然后进行数据恢复操作,将备份中的数据恢复至数据库中,从而实现回退操作。
3. 使用日志文件Oracle数据库中的日志文件记录了数据库中的所有操作,包括delete 语句的执行情况。
通过查询日志文件,可以找到被删除的数据记录,然后使用日志文件中的信息进行数据恢复操作,将数据记录回退至删除前的状态。
三、注意事项在进行回退delete语句的操作时,需要注意以下几点:1. 数据库备份的重要性及时做好数据库的备份工作非常重要,可以在意外删除数据时提供及时的恢复操作。
2. 谨慎执行delete语句在执行delete语句时,务必要谨慎操作,确保不会误删除重要数据记录。
3. 使用flashback技术需谨慎虽然flashback技术可以实现数据回退操作,但也需要谨慎操作,以免对数据库产生不必要的影响。
四、结论在数据库管理中,回退delete语句是一项非常重要的操作,可以帮助恢复误删除的数据记录,保证数据库的完整性和稳定性。
在日常的数据库管理工作中,需要时刻关注数据库的备份情况,谨慎执行delete 语句,并掌握回退delete语句的操作方法,以保障数据库的安全性和稳定性。
Oracle Flashback 技术 总结
Oracle Flashback 技术总结Flashback 技术是以Undo segment中的内容为基础的,因此受限于UNDO_RETENTON参数。
要使用flashback 的特性,必须启用自动撤销管理表空间。
在Oracle 10g中,Flash back家族分为以下成员:Flashback Database,Flashback Drop,Flashback Query(分Flashback Query,Flashback V ersion Query,Flashback Transaction Query 三种) 和Flashback Table。
一.Flashback DatabaseFlashback Database 功能非常类似与RMAN的不完全恢复,它可以把整个数据库回退到过去的某个时点的状态,这个功能依赖于Flashback log 日志。
比RMAN更快速和高效。
因此Flashback Database 可以看作是不完全恢复的替代技术。
但它也有某些限制:1. Flashback Database 不能解决Media Failure,这种错误RMAN恢复仍是唯一选择2. 如果删除了数据文件或者利用Shrink技术缩小数据文件大小,这时不能用Flashback Database技术回退到改变之前的状态,这时候就必须先利用RMAN把删除之前或者缩小之前的文件备份restore 出来,然后利用Flashback Database 执行剩下的Flashback Datbase。
3. 如果控制文件是从备份中恢复出来的,或者是重建的控制文件,也不能使用Flashback Database。
4. 使用Flashback Database锁能恢复到的最早的SCN,取决与Flashback Log中记录的最早SCN。
Flashback Database 架构Flashback Database 整个架构包括一个进程Recover Writer(RVWR)后台进程,Flashback Database Log日志和Flash Recovery Area。
oracle闪回介绍
flashback(闪回)是Oracle10g里新加入的一个非常有用的一个feature。
通过flashback的功能,我们可以避开传统的recover 的方式去恢复一些我们进行的误操作。
不过相当recovery来说。
这两个还是有差别的。
1. recovery的恢复是基于数据文件的,先要restore备份好的数据文件,flashback是基于flashback log文件的,所以基点不一样,recovery是基于备份的时间上的,可以恢复到备份至完整归档的任何一个时刻,而flashback是基于flashback log的,而log的存储时效是受限于db_flashback_retention_target这个参数的(以分钟为单位,默认1440分钟,即24小时)。
2. recovery的恢复是应用redo记录的,所以会对期间我们不关心的数据也进行修补,而flashback可以只针对我们关心的数据进行修补。
3. recovery的恢复可以恢复数据文件物理损坏或者日志物理损坏,而flashback是基于flashback log的,只能处理由于用户的错误的逻辑操作,比如删除了表,删除了用户等。
由此可见,其实flashback和recovery的恢复还是有不少本质的差别的,因此我们要针对着相应的情况来进行相应的选择。
flashback具体来说有4种常用的操作,这几种操作虽然都冠以flashback,但是还是有着一些较大的差别,1、flashback database(闪回数据库)对应flashback database来说,一般用来处理误删除了user或者一些错误的数据操作。
要使用flash database的特性。
我们一定要启动flashback功能,SQL>alter database flashback on; 如果要关闭使用alter database flashback off;同时要配置和检查参数db_flashback_retention_target,这个是控制flashback log的保留时间的参数,默认是1440分钟,即24小时。
flashbacklog的管理方式
flashbacklog的管理方式FLASHBACKLOG的管理方式oracle对flashback log采用了自动管理的方式,并且不允许手工去删除flashback log。
当flashback log写满时,会自动的覆盖掉最早的一个flashback日志。
并且值得注意的是,如果手工删除了flashback log,数据库将自动把flashback设置成no!我们先把数据库的flashback打开:SQL> startup mount;ORACLE instance started.Total System Global Area 167772160 bytesFixed Size 1247900 bytesVariable Size 67110244 bytesDatabase Buffers 96468992 bytesRedo Buffers 2945024 bytesDatabase mounted.SQL> alter database flashback on;Database altered.Elapsed: 00:00:04.00SQL>SQL>SQL> alter database open;Database altered.Elapsed: 00:00:29.82SQL>SQL>SQL>SQL>SQL>SQL>SQL> select flashback_on from v$database;FLASHBACK_ON------------------YESElapsed: 00:00:22.05SQL>SQL>我们来看看当前flashback日志有哪些:SQL>SQL> exitDisconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - ProductionWith the Partitioning, OLAP and Data Mining optionsD:\oracle\product\10.2.0\flash_recovery_area\ORALOCAL\FL ASHBACK>D:\oracle\product\10.2.0\flash_recovery_area\ORALOCAL\FL ASHBACK>ls -ltotal 16016-rwxrwxrwa 1 Administrators SYSTEM 8200192 Jan 21 15:54 O1_MF_4QFKO379_.FLB我们再看看flashback的相关参数设置:目录大小设置了50M,当前1个flashback日志空间占用率为15.63%D:\oracle\product\10.2.0\flash_recovery_area\ORALOCAL\FL ASHBACK>sqlplus "/ as sysdba"SQL*Plus: Release 10.2.0.1.0 - Production on 星期三1月21 15:49:45 2009Copyright (c) 1982, 2005, Oracle. All rights reserved.Connected to:Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - ProductionWith the Partitioning, OLAP and Data Mining optionsSQL> show parameter recoverNAME TYPE VALUE------------------------------------ ----------- ------------------------------db_recovery_file_dest string D:\oracle\product\10.2.0\flash _recovery_areadb_recovery_file_dest_size big integer 50Mrecovery_parallelism integer 0SQL>SQL> select * from V$FLASH_RECOVERY_AREA_USAGE;FILE_TYPE PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES------------ ------------------ ------------------------- ---------------CONTROLFILE 0 0 0 ONLINELOG 0 0 0 ARCHIVELOG 0 0 0 BACKUPPIECE 0 0 0 IMAGECOPY 0 0 0 FLASHBACKLOG 15.63 0 16 rows selected.Elapsed: 00:00:04.01SQL>SQL> select * from v$flashback_database_log;OLDEST_FLASHBACK_SCN OLDEST_FLASHBA RETENTION_TARGET FLASHBACK_SIZE ESTIMATED_FLASHBACK_SIZE-------------------- -------------- ---------------- -------------- ------------------------1402232 21-1月-09 1440 8192000 70410240Elapsed: 00:00:01.54SQL>SQL>SQL>现在,我们执行一些dml,来将block的pre image写到flashback log中。
oracle flashback用法
oracle flashback用法
Oracle Flashback是一种Oracle数据库提供的功能,用于恢复
或查询数据库的历史数据。
它通过使用数据库中的日志和其他信息来回溯数据库的状态,而不是通过传统的备份和恢复方法。
以下是一些Oracle Flashback的常见用法:
1. Flashback Table:通过Flashback Table命令可以将表还原到
之前的状态。
这个命令可以撤销对表格的一系列更新、删除或插入操作,从而恢复表格的先前状态。
2. Flashback Query:Flashback Query是一种基于时间的查询技术,可以查询数据库在过去某个时间点的数据快照。
通过使用AS OF子句可以指定查询的时间点。
3. Flashback Transaction:Flashback Transaction用于回滚整个
事务,而不仅仅是表格的某个状态。
它会恢复事务在过去的某个时间点的所有更改。
4. Flashback Database:Flashback Database是一种恢复整个数
据库到过去某个时间点的能力。
它可以回滚整个数据库到之前的状态,包括数据文件和控制文件。
需要注意的是,为了使用Oracle Flashback功能,数据库需要
开启Flashback功能,并在数据库中设置合适的Flashback区域。
此外,使用Flashback功能可能对数据库的性能产生一定
影响,因此在使用时需要权衡利弊。
用Oracle闪回功能恢复偶然丢失的数据
mysql
闪回数据库概述 mysql
闪回数据库能使整个数据库闪回到特定的时间点。 mysql
闪回数据库恢复比传统恢复操作更快的原因是:恢复不再受数据库大小的影响。
oracle
闪回数据库恢复时间正比于恢复过程汇总需要备份的变化的数量,而不是数据文件和归档日志大小。 unix
闪回恢复区可以包括数据文件、控制文件、联机重做日志、各种各样的RMAN文件和闪回日志。用户可以在建立重做日志、控制文件、和归档日志文件时将他们存储在闪回恢复区。 unix
影响联机重做日志的参数:
oracle
DB_CREATE_ONLINE_LOG_DEST_n
DB_RECOVERY_FILE_DEST
DB_CREATE_FILE_DEST
mysql
影响归档日志的一些参数: unix
LOG_ARCHIVE_DEST_n
LOG_ARCHIVE_DEST
LOG_ARCHIVE_DUPLEX_DEST
oracle
oracle
2.启动数据库到mount状态
mysql
3.从RMAN发出闪回数据库恢复命令
linux
Connecttarget
Flashbackdatabasetoscn=……; oracle
4.alter database open resetlogs;
ssh
使用闪回恢复区
unix
闪回恢复区是一个集中的恢复区域。
linux
这些文件和数据文件及控制文件有关系。这就减少了手工清除不需要的归档日志。
mysql
V$recovery_file_dest检查消耗的空间和其他关于闪回恢复区的统计信息。 unix
oracle闪回原理
oracle闪回原理Oracle数据库的闪回技术是一种用于快速恢复数据库到某个特定的时间点的技术。
它可以在意外的数据修改、误删除或其他用户错误操作后,快速恢复数据库到以前的状态。
Oracle的闪回技术主要基于redo log和数据文件的架构。
当数据库执行修改操作时,相关的信息会被写入redo log中,而实际的数据则会被写入数据文件。
闪回技术利用了这些日志信息来进行恢复。
具体而言,Oracle 闪回技术通过以下几个步骤实现数据恢复:1. 闪回查询(Flashback Query):利用数据库中的undo表空间和闪回日志文件,可以通过语句查询数据库中某个时间点的数据。
用户可以使用SELECT命令,指定某个时间点进行查询,而不需要进行真正的数据恢复操作。
2. 闪回版本查询(Flashback Version Query):除了对整个数据库进行闪回查询外,还可以对指定表或视图的特定行或列进行查询。
通过查询某个时间点的历史版本,可以找回误删除或修改的数据。
3. 闪回表(Flashback Table):如果需要将整个表恢复到某个时间点,可以使用闪回表功能。
这个功能会对整个表进行快速恢复,而不需要使用传统的恢复方法。
4. 闪回数据库(Flashback Database):对于更大范围的数据恢复,可以使用闪回数据库功能。
这个功能会将整个数据库恢复到某个时间点,并且会自动处理所有相关的数据文件和日志文件。
需要注意的是,闪回技术对于一些操作是有限制的,比如数据文件的删除、表空间的重命名等。
同时,使用闪回技术恢复的数据必须还在系统中,不能超过undo表空间的保留时间。
因此,在实际使用闪回技术前,需要做好相关的配置和规划。
Oracle的闪回特性
Oracle的闪回特性在Oracle 9i之前的版本中,如果用户因为误操作delete或update了数据并最终提交,为了恢复这些用户错误,我们必须通过逻辑备份或者物理备份进行恢复来纠正这些错误,这种方法是极其复杂和低效的。
为了提高数据库的可用性,简化用户的数据恢复,从Oracle 9i开始,Oracle将闪回flashback引入到数据库中,闪回功能类似播放机中的回退功能,通过回退,我们可以找会正确的数据,纠正犯下的错误。
从Oracle 9i到Oracle 10g以及Oracle 11g,Oracle在不停地增加和强化闪回功能,在这一章中,我们将全面介绍Oracle的闪回特性。
1.Oracle 9i的闪回查询特性从Oracle 9i开始Oracle 引入了闪回查询(Flashback Query)的特性,通过闪回查询我们可以按照时间戳或SCN来向前查询,获取修改之前的数据镜像,再通过insert等操作就可以恢复数据。
闪回查询依赖于回滚段中存储的数据前镜像,在Oracle 9i以前的版本中,通常只要事务提交后,前镜像数据就可以被覆盖,空间可以重用;在Oracle 9i中Oracle引入了自动回滚段管理(Automatic Undo Management,简称AUM)的新特性,在AUM模式下,我们可以通过调整undo_retention参数来设置数据库UNDO信息的保留时间,只要前镜像没有被覆盖,那么闪回就是可能的,但是需要注意的是,UNDO信息的保留还同UNDO表空间中的空间有关,如果空间紧张,为了满足事务的需要,非会动的前镜像信息是可以被覆盖的。
可以使用select 语句的as of子句来进行闪回查询,具体语法如下:As of scn/timestamp expr通过关键词as of 可以对表、视图、物化视图进行Flashback Query,可以指定SCN或者timestamp,其中timestamp是9i中引入的新的数据类型,精确到毫秒的时间单位。
Oracle Flashback 技术 总结
1. Flashback1. 闪回恢复区Flashback Recovery Area1. 设置闪回恢复区2. 取消闪回恢复区3. 闪回恢复区的内容4. 闪回恢复区的一些限制5. 闪回恢复区的空间管理6. Flash Recovery Area空间不足导致DB不能打开或hang住处理方法7. Flash Recovery Area 的备份2. Flashback Database1. Flashback Database 说明2. Flashback Database 架构3. 启用Flashback Database 步骤1. 配置Flash Recovery Area2. 启动flashback database4. Flashback Database操作示例1. 检查是否启动了flash recovery area2. 检查是否启用了归档3. 检查是否启用了flashback database4. 查询当前的scn5. 查询当前的时间6. 删除表A7. 重启DB 到mount8. 执行恢复分timestamp 或者SCN两种9. 打开数据库5. 和Flashback Database 相关的3个视图1. Vdatabase2. Vflashback_database_log3. Vflashback_database_stat6. Flashback Drop1. Tablespace Recycle Bin2. Flashback Drop 实例操作7. Flashback Query1. Flashback Query1. 多版本读一致性2. As of timestamp 的示例3. As of scn 示例4. SCN 与timestamp 关系5. Flashback Query 函数存储过程包触发器等对象2. Flashback version Query3. Flashback Transaction Query8. Flashback Table9. Oracle Flashback Data Archive1. Flashback Data Archive 说明2. Flashback Data Archive 的相关操作1. Creating a Flashback Data Archive2. Altering a Flashback Data Archive3. Dropping a Flashback Data Archive4. Specifying the Default Flashback Data Archive5. Enabling and Disabling Flashback Data Archive6. DDL Statements on Tables Enabled for Flashback DataArchive3. 一个用Flashback Data Archive 恢复数据的测试写在前面:2009年的时候结合网上的资料整理了下Flashback的用法。
OPC总结
以下是我总结的OCP教程的知识点,以备参考之用!1, What’s Oracle Server?·It’s a database management system that provides an open, comprehensive, integrated approach to information management.·Consists of an Oracle instance and an Oracle database2,What is Oracle Flashback Technology?·Oracle Flashback Query.·Oracle Flashback Versions Query.·Oracle Flashback Transaction Query.·Oracle Flashback Table.·Oracle Flashback Drop.·Oracle Flashback Database.·Oracle Flashback Restore Points.3,Oracle Enterprise Manager Grid Control (OEMGC) is a HTML-based user interface supporting the administrator. Includes:·Oracle Management Service (OMS).·Oracle Management Agents.·Oracle Management Repository.4,Oracle Database 10g with RAC(Real Application Cluster)·Multiple Oracle instances running on multiple computer·Oracle Clusterware·Shared-everything database5,Oracle Database 10g with Data Guard·Production (primary) database·Standby database: a copy of production database·Physical standby database·Logical standby database·Switch role of databases in case of failure6, The difference between physical and logical standby database.·Datafiles·Oracle redo logs·Physical standby database:directly applies redo to its datafiles·Logical standby database: convert DML and DDL operations to SQL statements 7, Overview of Oracle Primary Components8,Oracle Instance·Is a means to access an Oracle database·Always opens one and only one database·Consists of memory(SGA) and background process9,Connect to an Oracle instance·Establishing a user connection·Creating a session (Through Server Process)10,Oracle DatabasePhysical Structure:·Mainly: Consists of three file types: Data files, Redo log files, Control files·Others: Parameter file, Password file, Archived log filesMemory Structure:Oracle’s memory structure consists of two memory areas known as:·System Global area (SGA) :Allocated at instance startup, and is a fundamental component of Oracle instance·Program Global Area (PGA) :Allocated when the server process is started11,SGA:System Global AreaThe SGA consists of serveral memory structures:·Shared Pool·Database Buffer Cache·Redo Log Buffer·Other structures(for example, lock and latch management, statistical data)There are two additional memory structures that can be configured within the SGA:·Large Pool·Java Pool·Stream Pool (10G)When the size of SGA is less than 128 ,the granule is 4M, otherwise the granule is 16M. SGA_MAX_SIZE controls the size of SGA.12,Shared PoolUsed to store:·Most recently executed SQL statements·Most recently used data definitionsIt consists of two key performance-related memories: Library Cache and Data Dictionary Cache Sized by the parameter: SHARED_POOL_SIZEHow to change the size: ALTER SYSTEM SET SHARED_POOL_SIZE = 64M;13,Library Cache(库高速缓存)•Stores information about the most recently used SQL and PLSQL statements •Enables the sharing of commonly used statements•Is managed by a least recently used (LRU) algorithm•Consists of two structures:–Shared SQL area–Shared PL/SQL area•Size determined by the Shared Pool sizing14,Data Dictionary Cache(数据字典高速缓存)• A collection of most recently used definitions in database•Includes information about database files, tables,indexes, columns, users, privileges, and other database objects•During the parse phase, the server process looks at the data dictionary for information to resolve object names and validate access•Caching data dictionary information into memory improves response time on queries and DML•Size determined by the Shared Pool sizing15,Database Buffer Cache(数据库缓冲区高速缓存)•Stores copies of data blocks that have been retrieved from the data files•Enables great performance gains when you obtain and update data•Managed through an LRU algorithm•DB_BLOCK_SIZE determines primary block size如果未在数据库缓冲区高速缓存中找到这个块,服务器进程就从数据文件读取这个块,并在数据库缓冲区高速缓存中放置一个副本.If the data blocks are not found in the Database Buffer Cache, The server processes are responsible to read the needed blocks from the data files, and then save a copy of them in the Database Buffer Cache for the future used.缓冲区的dirty data size由参数FAST_START_MTTR_TARGET决定的(如果已指定)。
sql闪回查询语句
sql闪回查询语句SQL闪回查询(Flashback Query)是Oracle数据库提供的一项功能,它允许用户查询过去某个时间点的数据。
这种技术基于Oracle 的闪回技术(Flashback Technology),该技术利用撤销数据来获取之前的数据版本。
闪回查询非常有用于误操作(比如错误地更新或删除了数据)之后的数据恢复,也可用于历史数据分析。
要执行闪回查询,你需要使用`AS OF`子句指定一个时间戳。
以下是一些示例:1. **查询特定时间点的数据**:```sqlSELECT *FROM table_nameAS OF TIMESTAMPTO_TIMESTAMP('2023-04-01 12:00:00', 'YYYY-MM-DD HH24:MI:SS');```2. **查询特定事务之前的数据**:```sqlSELECT *FROM table_nameAS OF SCN 123456;```3. **查询特定事务之后的数据**:```sqlSELECT *FROM table_nameAS OF SCN 123457;```在上述语句中,`table_name`应该替换为你想要查询的表名,而`TO_TIMESTAMP`函数和SCN号(System Change Number,系统变更号)则分别用来指定时间点和事务编号。
需要注意的是,要使闪回查询工作,必须确保数据库的撤销保留策略允许访问到所需的历史数据。
此外,由于闪回查询可能涉及大量历史数据的扫描,其性能可能会受到影响。
因此,在进行此类查询时,应评估系统负载和性能影响。
oracle数据丢失恢复数据方法
oracle数据丢失恢复数据方法在使用Oracle数据库过程中,数据丢失是一种常见的问题。
当数据库中的数据丢失时,我们需要及时采取措施来进行数据恢复,以避免数据的长期丢失。
本文将介绍一些常用的Oracle数据丢失恢复方法,帮助我们有效地处理这个问题。
1. 数据库备份与恢复数据库备份是一种常见的防范措施,它可以帮助我们在数据丢失后快速恢复数据库。
在Oracle中,我们可以使用RMAN(Recovery Manager)工具来实现数据库备份和恢复。
RMAN可以备份整个数据库或者特定的表空间、数据文件等,同时也支持增量备份,大大减少了备份所需的时间和空间。
当数据库发生数据丢失时,我们可以使用RMAN来恢复备份的数据库文件,确保数据的完整性。
2. 闪回技术Oracle提供了闪回技术,可以帮助我们恢复数据库到某个历史时间点的状态。
通过闪回技术,我们可以将数据库中的数据、表结构等回滚到特定的时间点,从而实现数据的恢复。
闪回技术相比于传统的数据恢复方法,具有更高的效率和更少的风险。
我们可以使用闪回查询(FLASHBACK QUERY)来查看历史数据,使用闪回表(FLASHBACK TABLE)来恢复特定表的状态,使用闪回数据库(FLASHBACK DATABASE)来恢复整个数据库。
3. 日志文件恢复Oracle数据库在运行过程中会生成大量的日志文件,这些日志文件记录了数据库的操作、变更等信息。
当数据库发生数据丢失时,我们可以通过日志文件的恢复来还原数据。
在Oracle数据库中,我们可以使用归档日志文件(Archive Log)或在线重做日志文件(Online Redo Log)来进行数据恢复。
归档日志文件可以将数据库中的所有变更操作记录下来,当数据丢失时,我们可以将归档日志文件应用到数据库中,恢复数据的完整性。
同时,我们也可以使用在线重做日志文件来进行数据恢复,将重做日志文件中的操作应用到数据库中。
4. 数据库导入导出数据库导入导出是一种常见的数据恢复方法。
Oracle10g新特性Flashback探究
or c e 72 a l 2 31 1 1 1 3 0 7: 0: 0 7 0 00 om :
r vw r
— —
¥ I - S I
o c rl t aI32 6 ot 0 4
Wre R WR 的新过 程写 入 。 i r( V ) t 这是 O llg的新增 进 程 。 mc O e 我们
FL ASHBACK DAT ABASE LOG; OL DEST FL SHB A ACK SCN OLDEST FL SHBACK TI A
1 6 62 0 03 2 1 01: 42 7 20 5— - 9 0 7: 02
在笔者参与 的一个 大型上市公 司的 E P项 目的开发过程 R
图 2 定 义数 据 对 象
2. 3 初 始 化 2.
中, 使用 S r om 完成特殊格式报表和表单的需求很 大 , mat r f 如何 在 S at r 内部进行 数据 定义并 实现和 R p r程 序 的数据 m rom f eo t 传递 , 一直 困扰着开发 人员 , 本文对 该问题给 出了一个很 好的 解 决办法。
-
与常规 的重做 日志(e o lg ) r o s 不同 , d 回闪 日志既不需 要由 DB A创建 , 也不需要 由他们维护 ; 它们 由 O al Maae i s rc n gd Fl e e
r r… - 1 r ce db 0 2 w-. o a l a 82 01 Mar29 4 9 1 9 6: O1 mf 54b l .b 1 1 cp n
.
( MF) O 自动在 闪回恢复区域所指定的 目录 中创建。 些文件不 这
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Oracle Flashback 技术总结Flashback 技术是以Undo segment中的内容为基础的,因此受限于UNDO_RETENTON参数。
要使用flashback 的特性,必须启用自动撤销管理表空间。
在Oracle 10g中,Flash back家族分为以下成员:Flashback Database,Flashback Drop,Flashback Query(分Flashback Query,Flashback V ersion Query,Flashback Transaction Query 三种) 和Flashback Table。
一.Flashback DatabaseFlashback Database 功能非常类似与RMAN的不完全恢复,它可以把整个数据库回退到过去的某个时点的状态,这个功能依赖于Flashback log 日志。
比RMAN更快速和高效。
因此Flashback Database 可以看作是不完全恢复的替代技术。
但它也有某些限制:1. Flashback Database 不能解决Media Failure,这种错误RMAN恢复仍是唯一选择2. 如果删除了数据文件或者利用Shrink技术缩小数据文件大小,这时不能用Flashback Database技术回退到改变之前的状态,这时候就必须先利用RMAN把删除之前或者缩小之前的文件备份restore 出来,然后利用Flashback Database 执行剩下的Flashback Datbase。
3. 如果控制文件是从备份中恢复出来的,或者是重建的控制文件,也不能使用Flashback Database。
4. 使用Flashback Database锁能恢复到的最早的SCN,取决与Flashback Log中记录的最早SCN。
Flashback Database 架构Flashback Database 整个架构包括一个进程Recover Writer(RVWR)后台进程,Flashback Database Log日志和Flash Recovery Area。
一旦数据库启用了Flashback Database,则RVWR 进程会启动,该进程会向Flash Recovery Area中写入Flashback Database Log,这些日志包括的是数据块的" 前镜像(before image)",这也是Flashback Database 技术不完全恢复块的原因。
[oracle@dba ~]$ ps -ef|grep rvworacle 12620 12589 0 13:21 pts/1 00:00:00 grep rvw启用Flashback Database数据库的Flashback Database功能缺省是关闭的,要想启用这个功能,就需要做如下配置。
1. 配置Flash Recovery Area要想使用Flashback Database,必须使用Flash Recovery Area,因为Flashback Database Log 只能保存在这里。
要配置的2个参数如下,一个是大小,一个是位置。
如果数据库是RAC,flash recovery area 必须位于共享存储中。
数据库必须处于archivelog 模式.启用Flash Recovery Area:SQL>ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE=20G SCOPE=BOTH; SQL>ALTER SYSTEM SET DB_RECOVERY_FILE_DEST='/DBA/FB' SCOPE=BOTH;禁用Flash Recovery Area:SQL>ALTER SYSTEM SET DB_RECOVERY_FILE_DEST='' ;对于Flash Recovery Area,Oracle 是这样建议的,flash recovery area 设置的越大,flashback database 的恢复能力就越强,因此建议flash recovery area 能够放的下所有的数据文件,增量备份,以及所有尚未备份的归档文件,当然还有它自己产生的flashback logs。
在数据库运行过程中,oracle 自动向该区域写入文件,当剩余空间不足15%的时候,它就会在alert 中增加警告,提示你空间不足。
但此时不会影响数据库的正常运转,直到所有空间统统被用掉之后,oracle 首先尝试删除寻些过期的文件,冗余文件或备份过的文件,如果这些做完了,还是没有空闲空间的话,数据库就被hang 住了。
对于因Flash Recovery Area导致的数据库hang的处理,请参考:/tianlesoftware/archive/2009/10/14/4668991.aspx或者/251097186/blog/12446506732. 启用数据库Flashback 功能1). 数据库启动到mount状态SQL> startup mount;2). 检查Flashback 功能,缺省时功能是关闭的。
SQL> select name, current_scn, flashback_on from v$database; NAME CURRENT_SCN FLASHBACK_ON-------- ----------- ------------------DBA945715 NO3). 启动Flashback功能SQL>shutdown immediateSDL>startup mountSQL> alter database flashback on;数据库已更改。
SQL> select name, current_scn, flashback_on from v$database; NAME CURRENT_SCN FLASHBACK_ON--------- ----------- ------------------DBA0 YES4). 设置初始化参数:DB_FLASHBACK_RETENTION_TARGET:SQL>alter system set db_flashback_retention_target=1440 scope=both;该参数用来控制flashback log 数据保留的时间,或者说,你希望flashback database 能够恢复的最早的时间点。
默认值是1440,单位是minute,即24 小时,需要注意的是该参数虽然未直接指定flash recovery area大小,但却受其制约,举个例子假如数据库每天有10%左右的数据变动的话,如果该初始化参数值设置为1440,则flash recovery area 的大小至少要是当前数据库实际容量的10%,如果该初始化参数设置为2880,则flash recovery area 的大小就至少是数据库所占容量的20%。
5). 启动数据库SQL>alter database open;Flashback Database操作示例做操作前先备份数据库RMAN> backup database;1. 检查是否启动了flash recovery area:SQL> show parameter db_recovery_fileNAME TYPE V ALUE------------------------------------ ----------- ------------------------------db_recovery_file_dest tring D:\oracle/flash_recovery_areadb_recovery_file_dest_size big integer 1G2. 检查是否启用了归档SQL> archive log list;数据库日志模式存档模式自动存档启用存档终点USE_DB_RECOVERY_FILE_DEST最早的联机日志序列9下一个存档日志序列11当前日志序列113. 检查是否启用了flashback databaseSQL> select flashback_on from v$database;FLASHBACK_ON------------------YES4. 查询当前的scnSQL> SELECT CURRENT_SCN FROM V$DA TABASE; CURRENT_SCN-----------9479215. 查询当前的时间SQL> select to_char(sysdate,'yy-mm-dd hh24:mi:ss') time from dual; TIME-----------------09-10-14 14:37:056. 删除表ASQL> select * from A;ID NAME---------- ----------1 tianle2 daveSQL> drop table A;表已删除。
SQL> commit;7. Flashback Database 实际是对数据库的一个不完全恢复操作,因为需要关闭数据库重启到mount状态。
SQL> shutdown immediate数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mountORACLE 例程已经启动。
Total System Global Area 209715200 bytesFixed Size 1248116 bytesV ariable Size 79692940 bytesDatabase Buffers 121634816 bytesRedo Buffers 7139328 bytes数据库装载完毕。
8. 执行恢复:分timestamp 或者SCN两种SQL> Flashback database to timestamp to_timestamp('09-10-14 14:37:05','yy-mm-ddhh24:mi:ss');闪回完成。
或者:SQL> Flashback database to scn 947921;闪回完成。
9. 打开数据库:在执行完flashback database 命令之后,oracle 提供了两种方式让你修复数据库:1). 直接alter database open resetlogs 打开数据库,当然,指定scn 或者timestamp 时间点之后产生的数据统统丢失。