返回首页

oracle 恢复数据(oracle怎么恢复已删除数据?)

来源:www.xuniwu.cn   时间:2023-04-17 18:18   点击:50  编辑:admin   手机版

一、oracle怎么恢复已删除数据?

在Oracle数据库中,如果已经删除了数据,可以通过以下步骤进行恢复:

1. 检查是否启用了回滚段(Undo Segment)和闪回技术(Flashback Technology)。

2. 如果启用了回滚段,可以通过回滚段来恢复删除的数据。首先,找到最近一次删除数据时的SCN(System Change Number)号码,然后使用FLASHBACK命令将数据库恢复到该SCN号码之前的状态。在这个状态下,可以使用SELECT语句查询删除的数据,然后将其导出到文件中。最后,使用INSERT语句将数据重新插入到数据库中。

3. 如果启用了闪回技术,可以使用DBMS_FLASHBACK包中的函数进行恢复。首先,使用FLASHBACK_TABLE函数将表还原到删除之前的状态。然后,使用SELECT语句查询删除的数据,将其导出到文件中。最后,使用INSERT语句将数据重新插入到数据库中。

需要注意的是,在恢复删除数据之前,必须确保数据库中没有其他操作,否则可能会导致恢复失败或数据不一致的情况。此外,恢复数据的过程需要谨慎操作,以避免数据丢失或不一致的情况。

二、Oracle数据库该怎么恢复?

  任何软件都有可能在有意或无意的情况下被重新安装,如Oracle重装后数据库怎么恢复呢?情况发生在你是无意的情况下!ORACLE数据库恢复的方法我们经常会用到,下面就为您介绍重装系统后ORACLE数据库恢复的方法,希望对您学习ORACLE数据库恢复方面能有所帮助。  我的电脑突然挂了,不得不重装系统,不过我的ORACLE装在了D盘,所有的文件都还在,我相信一定能够恢复,直到搞定工作,我才开始整我的数据库,花了两天时间,终于恢复了,庆祝一下,同时总结一下,希望有遇到同样问题的朋友能够快速搞定此类问题  第一种:  首先,备份数据库(X:\oracle\oradata)下的数据文件,重新命名即可(否则装数据库的时候会提示sid已存在)。重新安装数据库,当然数据库的名字就是你要恢复的名字。安装完成后,打开控制面板,停止oracle的服务。把(X:\oracle\oradata)下新生成的文件改名,把原先目录下的文件恢复名字。再重新启动oracle服务和监听。用sys/as dba 登陆数据库,可能会提示权限不够(ora-01031)修改(X:\oracle\ora92\network\admin )文件夹下的sqlnet.ora文件,添加SQLNET.AUTHENTICATION_SERVICES= (NTS),增加权限。登陆进去后,打开table提示不能打开。打开common页,执行命令alert database open;这时再刷新table,发现原先的表可以打开了。恢复成功了。再用原先数据库的普通用户进入。发现一切正常。至此,大功告成。  第二种:  1、首先,将原来的ORACLE文件夹改名,原来的路径是D:/oracle.我暂时改成D:/oracle_old.找来ORACLE(我用的是ORACLE 9I)安装光盘,将ORACLE安装在原来安装的目录下,这样恢复起来更加方便,主要是注册表的内容不用修改。  2、安装完了之后,系统中又有一个可以使用的ORACLE了。这个时候要做的就是将原来的文件和数据恢复过来。第一步,先关闭ORACLE的所有已经启动的项目,在"服务"里面逐一关闭。然后,将安装目录改名。我现在用的是D:/oracle.改成D:/oracle_new.再将D:/oracle_old改成D:/oracle. 这样理论上说从物理层面恢复了ORACLE了。但是我们发现,现在还不能启动ORACLE的监听程序和服务程序。我们还要从逻辑上解决。  3、在dos环境下执行一个删除命令:oradim -delete -sid mm,其中mm为创建oracle时候创建的实例 建议执行这个命令后重新启动机器,重启后就可以建立和原来实例名相同的实例。当然你懒,不重新启动也可以,但是你的实例名就不能和原来的一样了。  4、在dos环境下执行命令 oradim -new -sid mm -startmode a -pfile "D:\oracle\admin\mm\pfile\initmm.ora "创建一个新的实例,其中 "mm"为新数据库的名称。  5、启动服务,先打开数据库,然后可以用以前的用户名和密码登陆进去。 要补充的是,一般的ORACLE数据库的监听程序都是用电脑的名称来识别地址的,而不是127.0.0.1或者localhost.所以,如果我们安装系统的时候用的是不同的电脑名称(比如我原来用的是wm_mm.重新安装后用的是wenming_mm),那么我们还有一个工作要做,就是修改文件 listener.ora.将里面的相关的东西改过来就可以了。  需要耐心、细心,可能在一步里有一个细小的差别就会出些古怪的错误提示,有时需要根据错误提示采取策略,总之原理是,先装一个一模一样的ORACLE,安装目录、数据库名称都一样,这样保证注册表里不用更改;再覆盖物理文件,最后重新实例化,打开数据库就可以进去了。

三、Oracle中,如果用户误删了数据,有没有办法把数据恢复过来?

在Oracle中,如果用户误删了数据,可以通过以下步骤尝试将数据恢复:

1. 首先,查看数据表的回滚段是否被占用。如果是,则说明数据可以通过回滚操作被恢复。可以使用以下命令检查回滚段是否被占用:

   ```

   SELECT SEGMENT_NAME, STATUS

   FROM DBA_ROLLBACK_SEGS

   WHERE SEGMENT_NAME IN

   (SELECT SEGMENT_NAME

   FROM DBA_EXTENTS

   WHERE OWNER = '<table_owner>'

   AND SEGMENT_TYPE = 'TABLE'

   AND SEGMENT_NAME = '<table_name>');

   ```

   如果回滚段的状态为“ONLINE”,则可以进行回滚操作。

2. 如果回滚段未被占用,则可以考虑使用Oracle的闪回技术进行数据恢复。通过闪回技术,可以将表恢复到之前的状态,而不需要从备份中恢复数据。使用以下命令进行闪回恢复:

   ```

   FLASHBACK TABLE <table_name> TO BEFORE DELETE;

   ```

   这将把表恢复到删除操作之前的状态。

3. 如果以上两种方法都无法进行数据恢复,则可以考虑从备份中恢复数据。一般来说,Oracle数据库都会定期备份数据,可以从备份中恢复误删的数据。如果没有备份,数据可能无法恢复。

需要注意的是,数据恢复操作需要谨慎进行,因为不正确的操作可能会导致数据更加损坏或丢失。建议在进行数据恢复操作之前先备份数据库。同时,如果不确定如何进行数据恢复操作,建议咨询专业的Oracle数据库管理员或数据库维护人员。

四、oracle中误删除数据的恢复方法?

OracleDBA神器:PRM灾难恢复工具,Schema级别数据恢复。PRMForOracleDatabase–schema级别oracle数据库数据恢复特性,PRM即ParnassusDataRecoveryManager是企业级别Oracle数据库灾难恢复工具。

PRM可以在无备份的情况下恢复被truncated/drop掉的表,也可以恢复无法打开的Oracle数据库(AlterDatabaseOpen失败)中的数据。

PRM是图形化增强版的OracleDUL工具,同时具备很多OracleDUL不具备的特性

五、oracle数据库还原步骤?

Oracle数据库还原步骤如下:

1. 准备备份文件:从备份介质(磁带、磁盘等)中获取数据库备份文件。

2. 关闭数据库:使用SQL*Plus或者SQL命令行工具,以SYSDBA身份登录数据库,并使用SHUTDOWN IMMEDIATE命令关闭数据库。

3. 恢复控制文件:在备份文件中找到控制文件备份,将其复制到数据库的控制文件目录中,然后使用RECOVER命令恢复控制文件备份。

4. 恢复数据文件:使用RECOVER命令恢复数据文件备份。如果有多个数据文件,则需要依次对每个文件进行还原。

5. 打开数据库:使用ALTER DATABASE OPEN命令打开数据库,如果数据库无法打开,则需要使用RESETLOGS选项启动数据库。

6. 恢复归档日志(可选):如果在备份后有归档日志产生,则需要将归档日志也进行恢复。

7. 验证恢复结果:使用SQL命令行工具或者SQL*Plus等工具,检查数据库中的数据是否恢复正常。

需要注意的是,在进行数据库还原前,需要备份原始数据库,以免在还原过程中出现意外情况导致数据丢失。同时,还原过程中需要保证数据库与备份文件的版本一致,否则可能会导致还原失败。

顶一下
(0)
0%
踩一下
(0)
0%