作家
登录

Oracle数据库数据丢失?这几种方法教你来恢复~

作者: 来源: 2017-10-17 09:15:34 阅读 我要评论

在应用这个包之前,须要先做一些设置和修改:

1、打开 initorcl.ora,修改初始化参数 utl_file_dir,设置 dbms_logmnr_d 包将要应用的数据字典文件的放置目次。

然后重启数据库使参数生效。

2、以 sys 用户连接到数据库履行 dbmslmd.sql 脚本重建 dbms_logmnr_d 这个包。

应用 Logminer 分析重做日记文件的操作重要有以下步调:

  • 应用 dbms_logmnr_d 里的存储过程 build 创建一个外部数据字典文件;
  • 应用 dbms_logmnr 里的存储过程 add_logfile 添加要分析的日记文件;
  • 应用 dbms_logmnr 里的存储过程 start_logmnr 启动分析;
  • 萌芽与 dbms_logmnr 相干的几个视图来获取日记文件内容;
  • 应用 dbms_logmnr 里的存储过程 end_logmnr 停止分析。

▲下面具体讲述应用的过程

1)应用 dbms_logmnr_d 里的存储过程 build 创建一个外部数据字典文件:

3)应用 dbms_logmnr 里的存储过程 start_logmnr 启动分析;

如不雅没有运行在归档模式,那么竽暌股于重做日记文件的轮回应用可能导致日记文件被覆盖而无法获取到所要寻找的恢复条目。如不雅运行在归档模式,则可以经由过程查看 $ORACLE_HOME\admin\orcl\bdump 目次下的 alert_orcl.log 里日记文件归档的时光和缺点操作的时光来肯定参加哪些归档日记文件到待分析的文件列表中去。

留意:履行以上过程时 logfilename 参数须要写日记文件的全路径,不然会报错。反复以上操作直到把所有须要分析的文件都加到列表中去。如许就可以启动进行分析。

如许就可以经由过程下面的萌芽来获取日记文件的内容了。

5)应用 dbms_logmnr 里的存储过程 end_logmnr 停止分析。

4)萌芽与 dbms_logmnr 相干的几个视图来获取日记文件内容;

如许就可以找出要恢复所需的语句。留意:v$logmnr_contents 只对履行 dbms_logmnr.start_logmnr 的会话有效,如不雅经由过程其他会话或者应用 dbms_logmnr.end_logmnr 终止了分析,都将不克不及拜访 v$logmnr_contents 的数据。如不雅要使其他会话也能获取到这些数据,可以经由过程别的建表来实现,如:

再对 undo_sql 进行授权,其他用户就可以拜访 v$logmnr_contents 的数据了。

应用完成今后用下面的敕令来停止分析晃荡:exec dbms_logmnr.end_logmnr;

如许就释放了分派给 logminer 的资本(内存和数据构造)。

大年夜膳绫擎的过程可知,如不雅是更新的数据量比较大年夜,而日记文件比较小,就可能会导致日记文件的切换。如不雅没有及时去发掘日记文件(没有运行在归档模式),那么可能会因为日记文件的轮回应用而导致数据弗成恢复。如不雅运行在归档模式,也可能因为须要分析的日记文件比较多而时光较长。

四、应用 flashback 新特点恢复数据

Oracle9i 开端供给了闪回萌芽(Flashback Query)功能,对于误删除或者误更新并且已经 commit 了的情况供给了简便快捷的恢复办法;而在 Oracle 供给闪回萌芽之前,碰着这种情况只能经由过程备份来进行基于时光点的恢复或者应用 logmnr 发掘日记来恢复,无疑这比闪回萌芽要麻烦并且费时。

应用这个 Flashback Query 特点的前提前提:

1. 数据库必须处于 Automatic Undo Management 状况。

2)应用 dbms_logmnr 里的存储过程 add_logfile 添加要分析的日记文件到待分析文件列表:

2. 最大年夜可以闪回萌芽的时光段由 UNDO_RETENTION 初始化参数(单位为秒)指定

可以经由过程 ALTER SYSTEM SET UNDO_RETENTION = <seconds>; 来动态修改参数值。

▲若何应用 Flashback Query 来恢复数据呢?

4、导入停止后,检查表中的记录,并用恰当的办法恢复当天的修改。

1)经由过程 SQL

应用 SELECT 语句的 AS OF 来进行闪回萌芽,语法如下:

应用 AS OF 关键字来对表,视图或者物化视图进行 Flashback Query,如不雅指定了 SCN,那么 expr 部分必须是一个数字,如不雅指定了 TIMESTAMP,那么 expr 必须是一个 timestamp 类型的值。萌芽结不雅将返回在指定的 SCN 或者时光点上的数据。

下面我们应用 scott 筹划来作一个实验。


  推荐阅读

  云计算和成本:爱恨交织的关系

沙龙晃荡 | 去哪儿、陌陌、ThoughtWorks在主动化运维中的实践!10.28不见不散! 固然致力于履行数字化计谋,但重视节约成本仍然是应用云计算的公司的重要义务。然而,很多公司都在尽力获得>>>详细阅读


本文标题:Oracle数据库数据丢失?这几种方法教你来恢复~

地址:http://www.17bianji.com/lsqh/37967.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)