oracle恢复数据文件(系统重装后,怎么恢复以前的ORACLE数据库)
本文目录
- 系统重装后,怎么恢复以前的ORACLE数据库
- oracle数据恢复 要如何做
- 如何Oracle 数据库备份与恢复
- oracle数据库数据删除后如何恢复
- oracle数据库恢复方法
- oracle电脑系统重装后只有数据文件怎么恢复
- 系统重装过了,但是oracle所有文件都在,我想数据恢复回来怎么弄
- oracle 关于数据恢复的问题
- oracle 用数据文件恢复数据库
- 在oracle中如何找回被删除的数据
系统重装后,怎么恢复以前的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数据恢复专题
备份恢复是Oracle中永恒的话题, 只要有数据 就有备份恢复的需求。 而在国内对于备份以及备份的可用性往往被企业所忽视。这造成了再数据库恢复上存在着东西方的差异。 更多的老外DBA把经历花在对Oracle内部原理和性能优化的研究上。
oracle data block structure
如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复!
诗檀软件专业数据库修复团队
而我们国内 DBA似乎必须要精通一门额外的技术==》 在没有任何备份的情况下 恢复Oracle数据库中数据的技术! 虽然这在大多数情况下是屠龙之技, 但很多时候却又变成了衡量一个DBA技术水准的标准了,(这样不好.. 不好)。
当然也并不是说 这种无备份下的数据恢复是无技术含金量的,实际上它们很需要对Oracle数据文件、数据块及其数据结构的理解,以及对数据字典构成的了解。
这里我们总结Oracle数据恢复专题的专题,包括一些在无备份情况下的数据恢复:例如DUL和BBED工具恢复等技术。
【数据恢复】利用构造ROWID实现无备份情况下绕过ORA-1578、ORA-8103、ORA-1410等逻辑/物理坏块问题
【数据恢复】ORA-600[kccpb_sanity_check_2]一例
Oracle rman中set newname可能很慢
如何清除Oracle控制文件中的无用记录,例如v$archived_log中的deleted归档日志记录
如何找回被create or replace覆盖的PL/SQL对象
Archivelog Completed Before VS UNTIL TIME
ASM丢失disk header导致ORA-15032、ORA-15040、ORA-15042 Diskgroup无法mount
Overcome ORA-600[4xxx] open database
数据恢复:解决ORA-600[kghstack_free2][kghstack_err+0068]一例
清理RMAN Catalog恢复目录
如何rename datafile name中存在乱码的数据文件
11g新特性recover corruption list
解决ORA-01578错误一例
Script:收集介质恢复诊断信息
如何重建SYSAUX表空间上的对象
Oracle数据恢复:解决ORA-00600: ORA-00704: bootstrap process failure错误一例
Script:检查数据库当前是否有备份操作在执行中
数据恢复:模拟2个逻辑坏块
Script:收集Oracle备份恢复信息
Oracle备份恢复:Rman Backup缓慢问题一例
了解rman catalog的兼容性
Oracle内部错误:ORA-00600一例
使用bbed解决ORA-01189错误
Fractured block found during backing up datafile
手动递增SCN号的几种方法:How to increase System Change Number by manual
DBMS_REPAIR example
Oracle的损坏/坏块 主要分以下几种:
ORA-1578
ORA-8103
ORA-1410
ORA-1499
ORA-1578
ORA-81##
ORA-14##
ORA-26040
ORA-600 Errors
Block Corruption
Index Corruption
Row Corruption
UNDO Corruption
Control File
Consistent Read
Dictionary
File/RDBA/BL
如何Oracle 数据库备份与恢复
Oracle数据库备份与恢复的三种方法
Oracle数据库有三种标准的备份方法,它们分别是导出/导入(EXP/IMP)、热备份和冷备份。导出备件是一种逻辑备份,冷备份和热备份是物理备份。
一、 导出/导入(Export/Import)
利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回到Oracle数据库中去。
1、 简单导出数据(Export)和导入数据(Import)
Oracle支持三种方式类型的输出:
(1)、表方式(T方式),将指定表的数据导出。
(2)、用户方式(U方式),将指定用户的所有对象及数据导出。
(3)、全库方式(Full方式),瘵数据库中的所有对象导出。
数据导入(Import)的过程是数据导出(Export)的逆过程,分别将数据文件导入数据库和将数据库数据导出到数据文件。
2、 增量导出/导入
增量导出是一种常用的数据备份方法,它只能对整个数据库来实施,并且必须作为SYSTEM来导出。在进行此种导出时,系统不要求回答任何问题。导出文件名缺省为export.dmp,如果不希望自己的输出文件定名为export.dmp,必须在命令行中指出要用的文件名。
增量导出包括三种类型:
(1)、“完全”增量导出(Complete)
即备份三个数据库,比如:
exp system/manager inctype=complete file=040731.dmp
(2)、“增量型”增量导出
备份上一次备份后改变的数据,比如:
exp system/manager inctype=incremental file=040731.dmp
(3)、“累积型”增量导出
累计型导出方式是导出自上次“完全”导出之后数据库中变化了的信息。比如:
exp system/manager inctype=cumulative file=040731.dmp
数据库管理员可以排定一个备份日程表,用数据导出的三个不同方式合理高效的完成。
比如数据库的被封任务可以做如下安排:
星期一:完全备份(A)
星期二:增量导出(B)
星期三:增量导出(C)
星期四:增量导出(D)
星期五:累计导出(E)
星期六:增量导出(F)
星期日:增量导出(G)
如果在星期日,数据库遭到意外破坏,数据库管理员可按一下步骤来回复数据库:
第一步:用命令CREATE DATABASE重新生成数据库结构;
第二步:创建一个足够大的附加回滚。
第三步:完全增量导入A:
imp system/manager inctype=RESTOREFULL=y FILE=A
第四步:累计增量导入E:
imp system/manager inctype=RESTOREFULL=Y FILE=E
第五步:最近增量导入F:
imp system/manager inctype=RESTOREFULL=Y FILE=F
二、 冷备份
冷备份发生在数据库已经正常关闭的情况下,当正常关闭时会提供给我们一个完整的数据库。冷备份时将关键性文件拷贝到另外的位置的一种说法。对于备份Oracle信息而言,冷备份时最快和最安全的方法。冷备份的优点是:
1、 是非常快速的备份方法(只需拷文件)
2、 容易归档(简单拷贝即可)
3、 容易恢复到某个时间点上(只需将文件再拷贝回去)
4、 能与归档方法相结合,做数据库“最佳状态”的恢复。
5、 低度维护,高度安全。
但冷备份也有如下不足:
1、 单独使用时,只能提供到“某一时间点上”的恢复。
2、 再实施备份的全过程中,数据库必须要作备份而不能作其他工作。也就是说,在冷备份过程中,数据库必须是关闭状态。
3、 若磁盘空间有限,只能拷贝到磁带等其他外部存储设备上,速度会很慢。
4、 不能按表或按用户恢复。
如果可能的话(主要看效率),应将信息备份到磁盘上,然后启动数据库(使用户可以工作)并将备份的信息拷贝到磁带上(拷贝的同时,数据库也可以工作)。冷备份中必须拷贝的文件包括:
1、 所有数据文件
2、 所有控制文件
3、 所有联机REDO LOG文件
4、 Init.ora文件(可选)
值得注意的使冷备份必须在数据库关闭的情况下进行,当数据库处于打开状态时,执行数据库文件系统备份是无效的。
下面是作冷备份的完整例子。
(1) 关闭数据库
sqlplus /nolog sql》;connect /as sysdba sql》;shutdown normal;
(2) 用拷贝命令备份全部的时间文件、重做日志文件、控制文件、初始化参数文件
{$PageTitle=sql》;cp ; ;}
(3) 重启Oracle数据库
sql》;startup
三、 热备份
热备份是在数据库运行的情况下,采用archivelog mode方式备份数据库的方法。所以,如果你有昨天夜里的一个冷备份而且又有今天的热备份文件,在发生问题时,就可以利用这些资料恢复更多的信息。热备份要求数据库在Archivelog方式下操作,并需要大量的档案空间。一旦数据库运行在archivelog状态下,就可以做备份了。热备份的命令文件由三部分组成:
1. 数据文件一个表空间一个表空间的备份。
(1) 设置表空间为备份状态
(2) 备份表空间的数据文件
(3) 回复表空间为正常状态
2. 备份归档log文件
(1) 临时停止归档进程
(2) log下那些在archive rede log目标目录中的文件
(3) 重新启动archive进程
(4) 备份归档的redo log文件
3. 用alter database bachup controlfile命令来备份控制文件
热备份的优点是:
1. 可在表空间或数据库文件级备份,备份的时间短。
2. 备份时数据库仍可使用。
3. 可达到秒级恢复(恢复到某一时间点上)。
4. 可对几乎所有数据库实体做恢复
5. 恢复是快速的,在大多数情况下爱数据库仍工作时恢复。
热备份的不足是:
1. 不能出错,否则后果严重
2. 若热备份不成功,所得结果不可用于时间点的恢复
3. 因难于维护,所以要特别仔细小心,不允许“以失败告终”。
oracle数据库数据删除后如何恢复
删除表后,可以采用如下操作:
在 user_recyclebin中找到最近操作过的表名称,然后用闪回(只能用于10G及以上版本)。
FLASH BACK TABLE TABLE_NAME TO BEFORE DROP;
如果是删了或修改里面的数据,可以先建立一个快表将删除修改之前状态的数据找回到这个表中:
CREATE TABLE QUICK_TABLE AS
SELECT * FROM TABLE_NAME AS OF TIMESTAMP SYSTEM-1/24 (一小时前的),减去的时间可以自己定。如楼上F_253那位老兄的写法就不错,能自由定制时间
oracle数据库恢复方法
第一种:
首先,备份数据库(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,安装目录、数据库名称都一样,这样保证注册表里不用更改;再覆盖物理文件,最后重新实例化,打开数据库就可以进去了。
注:恢复必须要有以下文件 a、初始化参数文件INIT.ORA b、所有数据文件 .dbf c、所有重做日志文件(联机日志、归档日志)redo d、所有控制文件 crtl e、internal密码文件。
oracle电脑系统重装后只有数据文件怎么恢复
方法一:
首先,备份数据库下的数据文件,在重新命名,重新安装数据库。安装完成后,打开控制面板,停止oracle的服务。把(X:\oracle\oradata)下新生成的文件改名,把原先目录下的文件恢复名字,再重新启动oracle服务和监听。用sys/as dba登陆数据库,登陆进去后,打开table提示不能打开。打开common页,执行命令alert database open;这时再刷新table,用原先数据库的普通用户进入,数据成功恢复。
方法二:
1、将原来的ORACLE文件夹改名,找来ORACLE安装光盘,将ORACLE安装在原来安装的目录下。
2、安装完毕,系统中多出一个可用的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、启动服务,先打开数据库,然后可以用以前的用户名和密码登陆进去。要补充的是还要修改文件listener.ora,将里面的相关的东西改过来就可以了。
上面我们通过建立一个一模一样的ORACLE,安装目录、数据库名称都一样,这样保证注册表里不用更改;再覆盖物理文件,最后重新实例化,达到资料恢复的目的。资料恢复中心提醒:由于上述操作比较复杂,所以非专业人士请勿盲目操作,应该第一时间联系资料恢复中心可以为你解决资料恢复问题。
系统重装过了,但是oracle所有文件都在,我想数据恢复回来怎么弄
方法一:
首先,备份数据库下的数据文件,在重新命名,重新安装数据库。安装完成后,打开控制面板,停止oracle的服务。把(x:\oracle\oradata)下新生成的文件改名,把原先目录下的文件恢复名字,再重新启动oracle服务和监听。用sys/as
dba登陆数据库,登陆进去后,打开table提示不能打开。打开common页,执行命令alert
database
open;这时再刷新table,用原先数据库的普通用户进入,数据成功恢复。
方法二:
1、将原来的oracle文件夹改名,找来oracle安装光盘,将oracle安装在原来安装的目录下。
2、安装完毕,系统中多出一个可用的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、启动服务,先打开数据库,然后可以用以前的用户名和密码登陆进去。要补充的是还要修改文件listener.ora,将里面的相关的东西改过来就可以了。
上面我们通过建立一个一模一样的oracle,安装目录、数据库名称都一样,这样保证注册表里不用更改;再覆盖物理文件,最后重新实例化,达到资料恢复的目的。资料恢复中心提醒:由于上述操作比较复杂,所以非专业人士请勿盲目操作,应该第一时间联系资料恢复中心可以为你解决资料恢复问题。
oracle 关于数据恢复的问题
恢复包含restore(数据文件)和recover(增备+日志)两个阶段。只要备份的数据文件没问题,并且日志保存完整,不论你的表存在哪个文件里 都是可以通过日志恢复出来的。
-----------------------
当然了按照你说的流程,删错了文件,因此测试数据本来也就没有丢失。如果不对那个删错的文件进行恢复或者offline操作的话,Oracle认为少数据文件 不允许open实例。
oracle 用数据文件恢复数据库
在oracle系统中的文件名后缀被文件本身是没有什么作用的,他只是便于用户领会文件的作用/含义等,便于oracle系统更加方便的去管理文件。在创建一个文件的时候,可以任意指定一个后缀,例如:sql》
create
tablespace
test
datafile
’/oracle/oradata/hello/test.sql’
size
20mtablespace
created.这样也能成功,但是我相信没有人会这样指定一个文件名。
在oracle中如何找回被删除的数据
1、首先新建一张测试表TEST,里面输入记录。由于删除/更新/插入恢复步骤相同,这里仅演示删除数据的情况。
2、删除其中1条记录,查看表中记录情况,由下图可见,记录2被删除了。
3、恢复之前先确定要恢复到的时间点,下图可以看出2018-03-07 15:33:00数据是正确的。
SELECT *
FROM TEST AS OF TIMESTAMP TO_TIMESTAMP(’2018-03-07 15:33:00’, ’YYYY-MM-DD HH24:MI:SS’);
4、下面进行表数据恢复。
FLASHBACK TABLE TEST TO TIMESTAMP TO_TIMESTAMP(’2018-03-07 15:33:00’, ’YYYY-MM-DD HH24:MI:SS’);
可以看到报错了,原因是没有开启行移动。
5、开启该表的行移动。
ALTER TABLE TEST ENABLE ROW MOVEMENT;
6、再次执行数据恢复。
FLASHBACK TABLE TEST TO TIMESTAMP TO_TIMESTAMP(’2018-03-07 15:33:00’, ’YYYY-MM-DD HH24:MI:SS’);
然后查看数据情况,可以看到已经恢复了。
更多文章:
documents删除了怎么办(My Documents 删除的文件怎么恢复)
2024年6月29日 08:59
mysql持久化三种方式(activemq 什么是持久化mysql集群)
2024年6月27日 03:23
为什么说世界是虚拟的,人类只是一串代码?科学家从DNA中找到隐藏的特殊代码,人类是被送到地球上的生物吗
2024年8月28日 15:40
search engine(用search engine【(互联网上的)搜索引擎】造句,拜托,我是一个英语白痴啊!!)
2024年7月25日 21:21
19世纪画家马奈印象主义的最初领袖?马奈、莫奈和_______都是印象派重要画家
2024年7月24日 05:37
java中fileinputstream(一个很简单的fileinputstream——JAVA问题)
2024年7月20日 13:32
html表格垂直居中(css里如何让表格里的文字竖直居中,并距离左边一定距离)
2024年3月8日 12:10
linux查看进程并杀死(linux如何关闭已建立的ip连接,杀掉进程)
2024年7月2日 04:50
draft是什么意思中文(啤酒达人来答:啤酒上注明draft什么意思,来源是什么)
2024年7月18日 18:38