HOME 首页
SERVICE 服务产品
XINMEITI 新媒体代运营
CASE 服务案例
NEWS 热点资讯
ABOUT 关于我们
CONTACT 联系我们
创意岭
让品牌有温度、有情感
专注品牌策划15年

    oracle闪回查询语句(oracle 闪回查询语句)

    发布时间:2023-04-19 05:12:34     稿源: 创意岭    阅读: 96        

    大家好!今天让创意岭的小编来大家介绍下关于oracle闪回查询语句的问题,以下是小编对此问题的归纳整理,让我们一起来看看吧。

    开始之前先推荐一个非常厉害的Ai人工智能工具,一键生成原创文章、方案、文案、工作计划、工作报告、论文、代码、作文、做题和对话答疑等等

    只需要输入关键词,就能返回你想要的内容,越精准,写出的就越详细,有微信小程序端、在线网页版、PC客户端

    官网:https://ai.de1919.com

    创意岭作为行业内优秀的企业,服务客户遍布全球各地,如需了解SEO相关业务请拨打电话175-8598-2043,或添加微信:1454722008

    本文目录:

    oracle闪回查询语句(oracle 闪回查询语句)

    一、oracle如何恢复误删的表记录数据?

    oracle如何恢复误删的表记录数据,解决办法:

    1. 从flash back里查询被删除的表select * from recyclebin

    2. 执行表的恢复flashback table  tbName  to before drop;这里的tbName代表你要恢复的表的名称。

    3. 先从flashback_transaction_query视图里查询,视图提供了供查询用的表名称、事务提交时间、UNDO_SQL等字段。

    4. 一般先根据时间进行查询,查询语句模式为select * from tb as of timestamp to_timestamp(time,'yyyy-mm-dd hh44:mi:ss'); tb指表名称,time指某个时间点。

    这个命令的作用是,允许Oracle 修改分配给行的rowid。

    在Oracle 中,插入一行时就会为它分配一个rowid,而且这一行永远拥有这个rowid。

    闪回表处理会对EMP 完成DELETE,并且重新插入行,这样就会为这些行分配一个新的rowid。

    要支持闪回就必须允许Oracle 执行这个操作。

    二、什么是闪回技术啊?主要内容有哪些啊?

    为了使oracle数据库从任何逻辑误操作中迅速恢复,Oracle 数据库10g 提供了一系列人为错误更正技术,称为闪回。闪回从根本上改变了数据恢复。过去,数据库在几分钟内就可能损坏,但需要几小时才能恢复。利用闪回技术,更正错误的时间与错误发生时间几乎相同。而且它非常易用,使用一条短命令便可恢复整个数据库,而不必执行复杂的程序。闪回技术提供了一个 SQL 界面,能够快速分析和修复人为错误。闪回技术为本地数据损坏提供了细粒度外部分析和修复,如当错误删除客户订单时。闪回技术还支持修复更多广泛的损坏,同时快速避免长时间停机,如当本月的所有客户订单都被删除时。闪回技术是 Oracle 数据库独有的特性,支持各级恢复,包括行、事务、表、表空间和数据库范围。

    1 闪回查询

    在Oracle 9i之前,如果用户错误操作数据后,除了不完全恢复外,没有好的解决办法。Oracle 9i中提供闪回查询,由一个新的包DBMS_FLASH来实现。用户使用闪回查询可以及时取得误操作DML(Delete、Update、Insert)前某一时间点数据库的映像视图,用户可以利用系统时间或系统改变号(SCN:System Change Number)来指定这个只读视图,并可以针对错误进行相应的恢复措施。闪回查询功能完全依赖于自动回滚段管理(AUM),对于Drop等误操作不能恢复。闪回特性可应用在以下方面:

    (1)自我维护过程中的修复:当一些重要的记录被意外删除,用户可以向后移动到一个时间点,查看丢失的行并把它们重新插入现在的表内恢复。

    (2)恢复Email和声音Email:当用户意外删除了Email或者声音信息时,可以通过移回到固定时间点来恢复删除。

    (3)账号平衡状况:可以查看以前的历史数据。如银行外币管理中用于记录特定时间的汇率。在以前,汇率变更被记录在一个历史表中,现在就可以通过闪回功能进行查询。

    (4)用于趋势分析的决策支持系统:决策支持系统和联机分析应用必须执行一个长时间的事务。使用闪回查询,这些应用可以对历史数据执行分析和建模。例如,特定产品如矿泉水随季节变化需求情况的变化。

    2 闪回版本查询

    闪回版本查询提供了一种查看行级数据库变化的方法。它是 SQL 的扩展,支持以特定时间间隔检索所有不同版本的行。例如:

    Select * from EMPLOYEE versions between ‘2:00 PM’ and ‘3:00 PM’ where …

    该语句显示出今天下午 2 点至 3 点之间该行的各版本,每个版本都由不同的事务所更改。使用 DBA 可指出数据何时、如何被更改的,并追溯到用户、应用程序或事务。这使得 DBA 可以跟踪数据库中的逻辑破坏并加以更正。它还让应用开发人员能够对其代码进行调试。

    3 闪回事务查询

    闪回事务查询提供了一种查看事务级数据库变化的方法。它是 SQL 的扩展,能够看到事务带来的所有变化。例如:

    Select * from DBA_TRANSACTION_QUERY where xid = ‘000200030000002D’;

    该语句显示出该事务引起的结果性变化。此外,返回补充 SQL 语句,并用于撤消由事务引起的各行变化。使用精密工具(如 DBA),应用开发人员可以精确地诊断和更正数据库或应用中的逻辑问题。

    4 闪回数据库

    要将 Oracle 数据库恢复到以前的时间点,传统方法是进行时间点恢复。然而,时间点恢复需要用数小时甚至几天的时间,因为它需要从备份中恢复整个数据库,并恰好恢复到数据库发生错误前的时间点。由于数据库的大小不断增长,因此需要用数小时甚至几天的时间才能恢复整个数据库。 闪回数据库是进行时间点恢复的新战略。它能够快速将 Oracle 数据库恢复到以前的时间,以正确更正由于逻辑数据损坏或用户错误而引起的任何问题。闪回日志可用于捕获旧版本的变化块。一种方法是不间断备份或存储快照。当需要执行恢复时,可快速重放闪回日志,以将数据库恢复到错误前的时间点,并且只恢复改变的块。这一过程非常快,可将恢复时间从数小时缩短至几分钟。此外,它还非常易用。通过发出以下简单的命令,可将数据库恢复到 2:05 PM。

    FLASHBACK DATABASE to ‘2:05 PM’;

    它的使用不要求进行磁带恢复,没有冗长的停机时间,没有复杂的恢复过程。您还可以使用闪回,然后以只读方式打开数据库,并检查其内容。如果您确定闪回过远或不足,您可以重新发出闪回命令,以找到数据库损坏前的正确时间点。闪回同时与 Data Guard 相集成,因此您可以一起闪回生产和待机数据库(参见以下数据保护部分)。

    闪回数据库就像是为数据库安装了一个倒回或撤消按钮。

    5 闪回表

    使用该特性,可以确保数据库表能够被恢复到之前的某一个时间点上。注意,该功能与最早的Oracle 9i中的Flashback Query不同,Flashback Query仅是得到了表在之前某个时间点上的快照而已,并不改变当前表的状态;而Falshback Table却能够将表及附属对象一起回到以前的某个时间点。该功能基于撤销数据(undodata)。

    6 闪回删除

    无意丢弃或删除数据库是人们经常会犯的错误。经常听到 Oracle 支持人员说:“在我删除那个表时,我以为我已经连接到了测试数据库。”用户已认识到他们错了,但已经太晚了,没有办法轻松恢复被删除的表及其索引、约束和触发器。对象一旦被删除就永远被删除了。如果真是重要的表或其它对象(如索引、分区或集簇),DBA 不得不执行时间点恢复,但这非常耗时,而且会导致丢失最近的事务。 闪回删除针对删除 Oracle 数据库 10g 中的对象提供了一个安全网络。当用户删除一个表,Oracle 会将它放到垃圾箱中。垃圾箱中的对象一直会保留,直到用户决定永久删除它们或包含该本的表空间不足。垃圾箱是一个虚拟容器,用于存放所有被删除的对象。用户可以查看垃圾箱,“撤消”被删除的表及其相关的对象。例如,可以发出以下命令来“撤消”雇员信息表及其所有相关对象。

    FLASHBACK TABLE employee BEFORE DROP;

    闪回删除就像是为一个表及其相关对象安装了一个撤消按钮。

    三、oracle高级数据库应用,实验报告:数据闪回 使用flashback实现对表、模式以及数据库级误删除进行恢复。

    首先你要知道依赖关系:

    flashback database依赖于:闪回日志

    flashback drop依赖于:回收站

    flashback table/query依赖于:undo

    开启闪回要在mount状态下:

    alter system set db_flashback_retention_target=2880 scope=both;

    alter database flashback on;

    再者你要利用事务号获得undo语句

    查看事务号:select versions_xid,empno,ename,sal from tt01

    versions between timestamp minvalue and maxvalue

    order by empno;

    根据得到的事务号查看undo_sql语句:

    select undo_sql from flashback_transaction_query

    where xid='versions_xid' //这里的XID就是上面查询到的versions_xid

    如果只是闪回误删除的表:

    flashback table TT01 to before drop;

    闪回的是最近删除的一张表,当然也可以根据情况自定义闪回误删的表

    步骤:

    查看DB回收站内容:show recyclebin;

    在里面可以查看到删除的表,根据里面的recyclebin name可以来查看表结构

    比如:desc "BIN$3naDFKEKFIDISB332DI"

    四、oracle闪回运用

    很简单,就一个语句

    flashback table tablename to before drop;

    以上就是关于oracle闪回查询语句相关问题的回答。希望能帮到你,如有更多相关问题,您也可以联系我们的客服进行咨询,客服也会为您讲解更多精彩的知识和内容。


    推荐阅读:

    wordpress搜索文章(wordpress搜索文章后确认自动打开该文章)

    韩国化妆品牌子排行榜(韩国化妆品牌子排行榜前十名orlod)

    个人求职简历word(个人求职简历word文档)

    杭州市独生子女父母60岁补贴标准(杭州市独生子女父母60岁补贴标准是多少)

    园林景观设计公司标语大全(园林景观公司宣传语)