数据库数据文件和控制文件恢复
admin
2023-02-28 17:41:41
0

数据库数据文件和控制文件恢复
一次数据库数据文件和控制文件丢失或未创建恢复数据库启动方法
该文档适用数据恢复:
数据库安装的时候丢失控制文件和数据文件
或者数据库故障的数据、控制文件丢失
或者数据库的本来数据、控制文件丢失有备份文件,用备份文件恢复
本文的环境变量
ORACLE_BASE=/oo/oracle
ORACLE_HOME=/oo/oracle/11g

1.数据库启动报错
数据库启动时报错:

报错1:
SQL> startup
ORA-01261: Parameter db_recovery_file_dest destination string cannot be translated
ORA-01262: Stat failed on a file destination directory
Linux-x86_64 Error: 2: No such file or directory
报错2:
通过手动制定启动数据库init.ora文件
SQL> startup mount pfile='/oo/oracle/11g/dbs/init.ora'
ORA-09925: Unable to create audit trail file
Linux-x86_64 Error: 2: No such file or directory
Additional information: 9925

根据init.ora文件中的信息进行创建目录,并给权限
将init.ora文件中ORACLE_BASE换成环境变量中的绝对路径
路径:/oo/oracle/11g/dbs
数据库数据文件和控制文件恢复
解决方案:
把init.ora中的目录都创建并且添加权限
mkdir -p /oo/oracle/flash_recovery_area
mkdir -p /oo/oracle/admin/orcl/adump
chmod 755 /oo/oracle/flash_recovery_area
chmod 755 /oo/oracle/admin/orcl/adump
chown oracle:oinstall /oo/oracle/admin/orcl/adump
chown oracle:oinstall /oo/oracle/flash_recovery_area/
注:这两个报错信息都是目录文件不存在
2.手动启动数据库
创建目录并给权限后通过手动制定启动数据库init.ora文件
SQL> startup mount pfile='/oo/oracle/11g/dbs/init.ora'
ORACLE instance started.
Total System Global Area 1068937216 bytes
Fixed Size 2220200 bytes
Variable Size 616566616 bytes
Database Buffers 444596224 bytes
Redo Buffers 5554176 bytes
ORA-00205: error in identifying control file, check alert log for more info
/oo/oracle/11g/dbs

SQL> create pfile='/oo/oracle/11g/dbs/initorcl.ora' from spfile;
File created.
SQL> create spfile from pfile='/oo/oracle/11g/dbs/initorcl.ora';
File created.

使用了如上方法创建spfile文件但是启动还是报错,错误原因就是这个目录下面没有如下这些文件导致的报错,并且这些文件都没有是个空的目录。
数据库数据文件和控制文件恢复
如果数据库没有备份,可以去其他正常的oracle数据库中找两个控制文件
具体控制文件放在的位置可以查看系统日志文件alert_orcl.log
路径:/oo/oracle/diag/rdbms/orcl/orcl/trace
数据库数据文件和控制文件恢复
找两个控制文件放到该目录下面/oo/oracle/11g/dbs
然后再次创建并重启数据库
create spfile from pfile='/oo/oracle/11g/dbs/init.ora';
startup mount pfile='/oo/oracle/11g/dbs/initorcl.ora'
注:每次再SQL中startup 后,再次启动前要先停shutdown

3.控制文件恢复后
有控制文件后再次启动数据库时报错信息变为系统数据文件system01.db找不到
报错3:
SQL> startup
ORACLE instance started.
Total System Global Area 1068937216 bytes
Fixed Size 2220200 bytes
Variable Size 616566616 bytes
Database Buffers 444596224 bytes
Redo Buffers 5554176 bytes
Database mounted.
ORA-01157: cannot identify/lock data file 1 - see DBWR trace file
ORA-01110: data file 1: '/oracle/oracle/oradata/orcl/system01.dbf'
去到目录下面查看时确实没有system01.dbf该文件并且这些文件都没有是个空的目录
数据库数据文件和控制文件恢复
没有日志文件和数据库文件使用recover恢复时一定会报如下错的。
上面的文件是从其他oracle数据库服务器复制的
报错4:
SQL> startup
ORACLE instance started.
Total System Global Area 1068937216 bytes
Fixed Size 2220200 bytes
Variable Size 616566616 bytes
Database Buffers 444596224 bytes
Redo Buffers 5554176 bytes
Database mounted.
ORA-01113: file 1 needs media recovery
ORA-01110: data file 1: '/oracle/oracle/oradata/orcl/system01.dbf'

alter database datafile '/oracle/oracle/oradata/orcl/system01.dbf' offline drop;
报错5:
ORA-01147: SYSTEM tablespace file 1 is offline
ORA-01110: data file 1: '/oracle/oracle/oradata/orcl/system01.dbf'
住:该报错信息就是上面的命令导致的在重新online就可以了
alter database datafile '/oracle/oracle/oradata/orcl/system01.dbf' online ;
然后使用recover命令进行恢复
recover datafile '/oracle/oracle/oradata/orcl/system01.dbf'; --恢复数据库文件
recover tablespace system; --恢复表空间
recover database; --恢复数据库
操作:
SQL>recover datafile '/oracle/oracle/oradata/orcl/system01.dbf';
SQL> ALTER DATABASE OPEN;
ALTER DATABASE OPEN
*
ERROR at line 1:
ORA-01157: cannot identify/lock data file 5 - see DBWR trace file
ORA-01110: data file 5: '/oracle/oracle/oradata/orcl/test_data01.dbf'
因为是从其他机器上面复制的dbf数据文件和redo日志没有复制完全,将报错的这个文件复制进去后再次使用该命令后,数据库启动了
报错的原因是复制别的数据库的文件时没有复制完全,表中有数据所以复制的数据库服务器中的数据文件需要都复制过去,建议复制初始化的数据库服务器中的文件。
SQL> ALTER DATABASE OPEN;

Database altered.

SQL> select STATUS from v$instance;

STATUS
------------
OPEN

SQL> select from all_tables;
select
from all_tables
*
ERROR at line 1:
ORA-01775: looping chain of synonyms
但是使用简单查询时报错了
重启一下数据库就可以了shutdown startup 再次启动后就和正常的一样了

oracle导入sql文件SQL>@/oo/PC_CORE01.sql
br/>SQL>@/oo/PC_CORE01.sql

相关内容

热门资讯

国家防总提升针对广东的应急响应... 今年第12号台风“红霞”已于7月25日早晨加强为台风级。预计,“红霞”将于25日夜间至26日早晨在香...
美媒爆猛料:两国首次直接袭击伊... 多名知情人士向美国《华尔街日报》透露,巴林和科威特在7月初对伊朗境内军事目标实施了秘密空袭,知情人士...
郑丽文:只有中国国民党可以确保... 据凤凰卫视报道,国民党今天(7月25日)举行“全代会”,党主席郑丽文与党内提名的县市长参选人一同造势...
透视上半年消费外贸外资走势 新华社北京7月23日电 题:稳中提质 韧性增强——透视上半年消费外贸外资走势新华社记者谢希瑶、王聿昊...
水龙头出水小怎么解决 水龙头出水小可能是由多种原因引起的,以下是一些常见的解决方法:1. 清洁水龙头:水龙头使用时间长了,...
小神童洗衣机启动后不出水直接洗 有可能是洗衣机的进水阀被烧坏了,需要换一个新的进水阀安装上即可。另外不建议自己擅自拆卸洗衣机内部进行...
祝贺景德镇! 海报制作:苗夏阳正在韩国釜山举行的联合国教科文组织第48届世界遗产大会25日通过决议将“景德镇手工瓷...
中央空调不制冷怎么办-中央空调... 中央空调,是电器股份有限公司主要产品之一,但是由于中央空调使用环境和使用方式的不同,在使用过程中就会...
空调不出水不制冷怎么回事 内罩长期不清洗,当然房间密封性差的话也会导致这种现象;其次就是外机问题,如果外机积满灰尘,会成空调制...
空调不出水,不制冷 原因有多种,可能是电源插头没有接牢、制冷剂不足、空调短时间休息间隙、空调滤网积灰等等。很多情况可以自...