【转载】只有.dbf数据文件进行数据库恢复

摘要:
由于数据库服务器崩溃,无法进入系统进行数据库备份,只能复制出与Oracle相关的文件。对于复制的文件,请在测试计算机上执行不完整的恢复。具体过程如下:1.安装oracle 10g服务器,创建一个与要恢复的数据库同名的实例。2.将控制文件作为sysdba备份到udmp目录中的跟踪文件。3.立即关闭会停止数据库并备份当前~oracleproduct10.2.0oradata目录中的文件,然后删除这些文件并复制所有文件。要恢复到此目录的数据库的dbf文件。将数据库启动到nomount状态。

此篇文章为转载,来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26015009/viewspace-714742/
个人mark下,在之后dbf的情况下,如何不完整恢复,拿出数据。

由于数据库服务器崩溃,造成了无法进入系统进行数据库备份,只能把oracle相关文件拷贝出来。对于拷贝出来的文件在测试机上进行一次不完全恢复,具体流程如下所示:
1、安装oracle 10g服务端并创建一个与要进行恢复的数据库相同名称的实例(db_name,sid,字符集一样,因为在创建控制文件时,会判断你要恢复的dbf文件中文件头信息中的数据库名是否与所在的实例名是否一样)
2、以sysdba身份进行备份控件文件到udmp目录的trace文件(语句:alter database backup controlfile to trace)
3、Shutdown immediate停止数据库,备份当前~oracleproduct10.2.0oradata目录中的文件,接着删除这些文件并把需恢复的数据库的所有.dbf文件拷到此目录下。其中 system01.dbf,sysaux01.dbf和存储真实数据的.dbf文件是必要的
(只要DBF就可以了,日志和控制文件不要)。
4、以sysdba进入并执行startup nomount。把数据库启动到nomount状态。
5、从第2步备份出来trace文件中拷贝CREATE CONTROLFILE部分语句来重建控制文件。此处应根据实际情况增删表空间文件记录,如以下黑体部分则为新增记录。
CREATE CONTROLFILE set Database ocp Resetlogs
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 'C:oracleproduct10.2.0oradataocpRED001.LOG'SIZE 50M,
GROUP 2 'C:oracleproduct10.2.0oradataocpRED002.LOG'SIZE 50M,
GROUP 3 'C:oracleproduct10.2.0oradataocpRED003.LOG'SIZE 50M
DATAFILE
'D:oradataSYSTEM01.DBF',--要恢复的数据所在的dbf文件
'D:oradataUNDOTBS01.DBF',--要恢复的数据所在的dbf文件
'D:oradataSYSAUX01.DBF',--要恢复的数据所在的dbf文件
'D:oradataUSERS01.DBF',--要恢复的数据所在的dbf文件
'D:oradataEXAMPLE01.DBF',--要恢复的数据所在的dbf文件
'D:oradataHYGEIA01.DBF',--要恢复的数据所在的dbf文件
'D:oradataHYGEIA02.DBF',--要恢复的数据所在的dbf文件
'D:oradataHYGEIA03.DBF'--要恢复的数据所在的dbf文件
CHARACTER SET ZHS16GBK
6 alter database open resetlogs;
7 重新创建临时表空间
8 查看恢复后结果

第二种情况(其实要恢复数据库只要system01.dbf,sysaux01.dbf和存储真实数据的.dbf文件)
1、安装oracle 10g服务端并创建一个与要进行恢复的数据库相同名称的实例(db_name,sid,字符集一样,因为在创建控制文件时,会判断你要恢复的dbf文件中文件头信息中的数据库名是否与所在的实例名是否一样)
2、以sysdba身份进行备份控件文件到udmp目录的trace文件(语句:alter database backup controlfile to trace)
3、Shutdown immediate停止数据库,备份当前~oracleproduct10.2.0oradata目录中的文件,接着删除这些文件并把需恢复的数据库的所有.dbf文件拷到此目录下。其中 system01.dbf,sysaux01.dbf和存储真实数据的.dbf文件是必要的
(只要DBF就可以了,日志和控制文件不要)。
4、以sysdba进入并执行startup nomount。把数据库启动到nomount状态。
5、从第2步备份出来trace文件中拷贝CREATE CONTROLFILE部分语句来重建控制文件。此处应根据实际情况增删表空间文件记录,如以下黑体部分则为新增记录。
CREATE CONTROLFILE set Database ocp resetlogs
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 'D:oracleproduct10.2.0oradataocpRED001.LOG'SIZE 50M,
GROUP 2 'D:oracleproduct10.2.0oradataocpRED002.LOG'SIZE 50M,
GROUP 3 'D:oracleproduct10.2.0oradataocpRED003.LOG'SIZE 50M
DATAFILE
'D:oracleproduct10.2.0oradataocpSYSTEM01.DBF',--损坏的数据库的system表空间的数据文件
'D:oracleproduct10.2.0oradataocpSYSAUX01.DBF',--损坏的数据库的sysaux表空间的数据文件
'D:oracleproduct10.2.0oradataocpHYGEIA01.DBF',--要恢复的数据所在的dbf文件
'D:oracleproduct10.2.0oradataocpHYGEIA02.DBF', --要恢复的数据所在的dbf文件
'D:oracleproduct10.2.0oradataocpHYGEIA03.DBF' --要恢复的数据所在的dbf文件
CHARACTER SET ZHS16GBK

6、Shutdown immediate
7、在adminpfile目录下的init.ora里加入隐含参数:
_allow_resetlogs_corruption=true
_allow_terminal_recovery_corruption=true
undo_tablespace='SYSTEM'
undo_management='MANUAL'
8、执行startup pfile='D:oracleproduct10.2.0adminorclpfileinit.ora(文件名和目录按照实际情况而定)' mount force;
9、Recover database recover database until cancel进行介质恢复。
10、 Alter database open resetlogs打开数据库可能不成功:此处出现了ORA-03113 " ORA-03113: 通信通道的文件结尾"的错误提示。
11、 重新启动数据库(startup) ,结果出现以下错误提示:
ora-01113:文件1需要介质恢复
ora-01110:数据文件1:'D:ORACLEPRODUCT10.2.0ORADATAORCLSYSTEM01.DBF'
12、 从新恢复表空间文件recover datafile D:ORACLEPRODUCT10.2.0ORADATAORCLSYSTEM01.DBF(其它表空间文件可能也需要恢复)
13、 alter database open; 数据库已更新
14.重新创建UNDOTBS1表空间
create undo tablespace undotbs1 DATAFILE
'D:oracleproduct10.2.0oradataorclundotbs01.dbf' SIZE 200M
15、Shutdown immediate
16、在adminpfile目录下的init.ora里加入隐含参数:
删除_allow_resetlogs_corruption=true
删除_allow_terminal_recovery_corruption=true
undo_tablespace='UNDOTBS1'
undo_management='AUTO'
17.startup pfile='D:oracleproduct10.2.0adminorclpfileinit.ora
18、 full export备份数据库。
19 重新创建临时表空间
20 查看恢复后结果

免责声明:文章转载自《【转载】只有.dbf数据文件进行数据库恢复》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇case when then 与 count联合使用【等待优化】SQL SERVER常见等待——解决会话等待产生的系统问题下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

如何使用 Navicat Premium 的新“自动运行”工具自动运行行数据库复制。

数据库复制有至少三种不同的方式: 快照复制:一台服务器上的数据复制到同一台或不同服务器上的另一个数据库。 合并复制:来自两个或多个数据库的数据被合并到一个数据库中。 事务复制:用户收到数据库的完整初始副本,然后在数据更改时接收定期更新。在分布式数据库管理系统(DDBMS)中,对一个位置的数据执行的更改、添加和删除会自动反映在存储在所有其他位置的数据中。这...

两种常见的mysql集群架构

常见的mysql集群架构 根据业务发展阶段和业务代码部署情况不同,对于扩展单数据库可以使用以下几种部署架构模型 单地域高可用架构 单地域高可用架构的构成 dbproxy数据库代理: 主要处理:读写分离,主从切换等。 主库(高可用):处理业务写流量。 从库(多实例,可选高可用):处理业务读流量。 单地域高可用的架构可以处理 业务流量在单地域的的业务结...

从 SQL Server 到 MySQL (一):异构数据库迁移

背景 沪江成立于 2001 年,作为较早期的教育学习网站, 当时技术选型范围并不大: Java 的版本是 1.2,C# 尚未诞生,MySQL 还没有被 Sun 收购, 版本号是 3.23。 工程师们选择了当时最合适的微软体系,并在日后的岁月里, 逐步从 ASP 过度到 .net,数据库也跟随 SQL Server 进行版本升级。 十几年过去了,技术社区已经...

省市县三级联动数据导入数据库

中国行政区域三级联动数据导入数据库脚本 area.py 数据链接github https://github.com/adyliu/china_area/blob/master/area_code_2019.json 部分数据格式 area = [{ "code": 110000000000, "name": "北京市", "lev...

01.SQLServer性能优化之----强大的文件组----分盘存储

前天有学弟问逆天:“逆天,有没有一种方式可以让我一个表存到两个数据库文件中,或者说怎么把一个表的数据平摊到其他数据库文件中?” (⊙o⊙)…,逆天数据库优化不是很强悍,不过类似的情景倒是见过,可以给你一个思路。比如说我们在创建数据库的时候就可以好好利用文件组。 举个例子: 我们一般创建数据库都是这么来的: create database BigValu...

免疫信息学

http://blog.sciencenet.cn/blog-204973-845856.html 第一节 免疫信息学源流 上个世纪中叶充满科学传奇。那不仅是个DNA双螺旋结构阐明、分子生物学产生与兴起的时代,也是系统论、控制论、信息论纷纷形成问世并引起全球广泛关注的时代,还是电子计算机走进人类社会并产生重要影响的时代。香农发表了《通信的数学理论》,奠定了...