网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

数据库数据文件和控制文件恢复

数据库数据文件和控制文件恢复
一次数据库数据文件和控制文件丢失或未创建恢复数据库启动方法
该文档适用数据恢复:
数据库安装的时候丢失控制文件和数据文件
或者数据库故障的数据、控制文件丢失
或者数据库的本来数据、控制文件丢失有备份文件,用备份文件恢复
本文的环境变量
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

网页题目:数据库数据文件和控制文件恢复
当前网址:http://bjjierui.cn/article/ggchhc.html

其他资讯