热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

使用bbed恢复表数据

对于表级别的数据恢复,ORACLE提供了多种恢复方法:flashback query,logmnr等。本文通过示例演示使用bbed的copy命令恢复用户误删除或者损坏的表数据,当然我们也可以使用该方法来恢复其他数据。实验过程:SQL>selecttablespace_name,file_namef

对于表级别的数据恢复,ORACLE提供了多种恢复方法:flashback query,logmnr等。本文通过示例演示使用bbedcopy命令恢复用户误删除或者损坏的表数据,当然我们也可以使用该方法来恢复其他数据。

实验过程:

SQL> select tablespace_name,file_name from dba_data_files;

TABLESPACE_NAME FILE_NAME
--------------- --------------------------------------------------
USERS		/home/app/oraten/oradata/oraten/users01.dbf
SYSAUX		/home/app/oraten/oradata/oraten/sysaux01.dbf
UNDOTBS1	/home/app/oraten/oradata/oraten/undotbs01.dbf
SYSTEM		/home/app/oraten/oradata/oraten/system01.dbf
TBS1		/home/app/oraten/oradata/oraten/tbs101.dbf

SQL> conn scott/tiger
Connected.
SQL> create table tcopy tablespace tbs1 as select object_id,object_name from user_objects;

Table created.

SQL> select * from tcop;  
select * from tcop
              *
ERROR at line 1:
ORA-00942: table or view does not exist


SQL> select * from tcopy;

 OBJECT_ID OBJECT_NAME
---------- --------------------------------------------------------------------------------------------------------------------------------
     51809 INVALID_ROWS
     52080 TCOPY
     51574 PK_DEPT
     51573 DEPT
     51575 EMP
     51576 PK_EMP
     51577 BONUS
     51578 SALGRADE

8 rows selected.

SQL> conn / as sysdba
Connected.
SQL> alter system checkpoint;

System altered.

SQL> alter system flush buffer_cache;

System altered.

SQL> host cp /home/app/oraten/oradata/oraten/tbs101.dbf /home/app/oraten/oradata/oraten/tbs101.copy.dbf

SQL> conn scott/tiger
Connected.
SQL> delete from tcopy;

8 rows deleted.

SQL> commit;

Commit complete.

SQL> select * from tcopy;

no rows selected

用户误将表数据删除,下面通过bbed来进行恢复.

首先看看需要修复的数据块

SQL> desc dba_segments
 Name						       Null?	Type
 ----------------------------------------------------- -------- ------------------------------------
 OWNER								VARCHAR2(30)
 SEGMENT_NAME							VARCHAR2(81)
 PARTITION_NAME 						VARCHAR2(30)
 SEGMENT_TYPE							VARCHAR2(18)
 TABLESPACE_NAME						VARCHAR2(30)
 HEADER_FILE							NUMBER
 HEADER_BLOCK							NUMBER
 BYTES								NUMBER
 BLOCKS 							NUMBER
 EXTENTS							NUMBER
 INITIAL_EXTENT 						NUMBER
 NEXT_EXTENT							NUMBER
 MIN_EXTENTS							NUMBER
 MAX_EXTENTS							NUMBER
 PCT_INCREASE							NUMBER
 FREELISTS							NUMBER
 FREELIST_GROUPS						NUMBER
 RELATIVE_FNO							NUMBER
 BUFFER_POOL							VARCHAR2(7)

SQL> select segment_name,header_file,header_block,blocks from dba_segments where segment_name='TCOPY';

SEGMENT_NAME									  HEADER_FILE
--------------------------------------------------------------------------------- -----------
HEADER_BLOCK	 BLOCKS
------------ ----------
TCOPY										    5
	 531	      8

使用bbedcopy命令来恢复

SQL> desc dba_segments
 Name						       Null?	Type
 ----------------------------------------------------- -------- ------------------------------------
 OWNER								VARCHAR2(30)
 SEGMENT_NAME							VARCHAR2(81)
 PARTITION_NAME 						VARCHAR2(30)
 SEGMENT_TYPE							VARCHAR2(18)
 TABLESPACE_NAME						VARCHAR2(30)
 HEADER_FILE							NUMBER
 HEADER_BLOCK							NUMBER
 BYTES								NUMBER
 BLOCKS 							NUMBER
 EXTENTS							NUMBER
 INITIAL_EXTENT 						NUMBER
 NEXT_EXTENT							NUMBER
 MIN_EXTENTS							NUMBER
 MAX_EXTENTS							NUMBER
 PCT_INCREASE							NUMBER
 FREELISTS							NUMBER
 FREELIST_GROUPS						NUMBER
 RELATIVE_FNO							NUMBER
 BUFFER_POOL							VARCHAR2(7)

SQL> select segment_name,header_file,header_block,blocks from dba_segments where segment_name='TCOPY';

SEGMENT_NAME									  HEADER_FILE
--------------------------------------------------------------------------------- -----------
HEADER_BLOCK	 BLOCKS
------------ ----------
TCOPY										    5
	 531	      8

查看修复结果

SQL> conn / as sysdba
Connected.
SQL> alter system flush buffer_cache;

System altered.

SQL> conn scott/tiger
Connected.
SQL> select * from tcopy;

 OBJECT_ID
----------
OBJECT_NAME
----------------------------------------------------------------------------------------------------
     51809
INVALID_ROWS

     52080
TCOPY

     51574
PK_DEPT


 OBJECT_ID
----------
OBJECT_NAME
----------------------------------------------------------------------------------------------------
     51573
DEPT

     51575
EMP

     51576
PK_EMP


 OBJECT_ID
----------
OBJECT_NAME
----------------------------------------------------------------------------------------------------
     51577
BONUS

     51578
SALGRADE


8 rows selected.






推荐阅读
  • 探讨如何真正掌握Java EE,包括所需技能、工具和实践经验。资深软件教学总监李刚分享了对毕业生简历中常见问题的看法,并提供了详尽的标准。 ... [详细]
  • 本文详细介绍了Python编程语言的学习路径,涵盖基础语法、常用组件、开发工具、数据库管理、Web服务开发、大数据分析、人工智能、爬虫开发及办公自动化等多个方向。通过系统化的学习计划,帮助初学者快速掌握Python的核心技能。 ... [详细]
  • 本文介绍了如何在 Oracle 数据库中结合使用 UPDATE 和 SELECT 语句,以实现复杂的数据更新操作。首先准备测试环境和数据表,然后通过嵌套查询的方式从其他表中获取需要更新的值,最后执行更新操作并验证结果。 ... [详细]
  • 自己用过的一些比较有用的css3新属性【HTML】
    web前端|html教程自己用过的一些比较用的css3新属性web前端-html教程css3刚推出不久,虽然大多数的css3属性在很多流行的浏览器中不支持,但我个人觉得还是要尽量开 ... [详细]
  • MySQL DateTime 类型数据处理及.0 尾数去除方法
    本文介绍如何在 MySQL 中处理 DateTime 类型的数据,并解决获取数据时出现的.0尾数问题。同时,探讨了不同场景下的解决方案,确保数据格式的一致性和准确性。 ... [详细]
  • 本文探讨了在Windows Server 2008环境下配置Tomcat使用80端口时遇到的问题,包括端口被占用、多项目访问失败等,并提供详细的解决方法和配置建议。 ... [详细]
  • 通过Web界面管理Linux日志的解决方案
    本指南介绍了一种利用rsyslog、MariaDB和LogAnalyzer搭建集中式日志管理平台的方法,使用户可以通过Web界面查看和分析Linux系统的日志记录。此方案不仅适用于服务器环境,还提供了详细的步骤来确保系统的稳定性和安全性。 ... [详细]
  • 本文介绍如何在PostgreSQL数据库中正确插入和处理JSON数据类型,确保数据完整性和避免常见错误。 ... [详细]
  • 本文探讨了Microsoft OLE DB Provider for SQL Server错误80004005的成因与解决方法,详细分析了SQL Server连接失败的原因,并提供了多个有效的解决方案。 ... [详细]
  • 深入理解T-SQL中的NULL与三值逻辑
    本文探讨了SQL Server中的三值逻辑,解释了谓词计算结果为TRUE、FALSE和UNKNOWN的规则。通过具体示例,详细说明了如何正确处理NULL值,并探讨了在不同约束条件下的行为。 ... [详细]
  • 本文介绍如何在Qt应用程序中让QLineEdit控件获得输入焦点,通过简单的代码示例和解释,帮助开发者更好地理解和使用这一功能。 ... [详细]
  • 数据结构入门:栈的基本概念与操作
    本文详细介绍了栈这一重要的数据结构,包括其基本概念、顺序存储结构、栈的基本操作(如入栈、出栈、清空栈和销毁栈),以及如何利用栈实现二进制到十进制的转换。通过具体代码示例,帮助读者更好地理解和应用栈的相关知识。 ... [详细]
  • 探讨如何从数据库中按分组获取最大N条记录的方法,并分享新年祝福。本文提供多种解决方案,适用于不同数据库系统,如MySQL、Oracle等。 ... [详细]
  • 本文介绍如何在SQL Server中对Name列进行排序,使特定值(如Default Deliverable Submission Notification)显示在结果集的顶部。 ... [详细]
  • 在尝试用另一台电脑的MySQL文件替换本地D:\xampp\mysql目录后,MySQL服务无法启动。错误提示显示MySQL意外关闭,可能是由于端口冲突、依赖缺失、权限问题或崩溃等原因引起。 ... [详细]
author-avatar
二狗子
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有