错误状态:

SQL> startup

ORA-01261: Parameter db_recovery_file_dest destination string cannot be translated

ORA-01262: Stat failed on a file destination directory

Linux Error: 2: No such file or directory

SQL> show parameter db_recovery_file_dest

ORA-01034: ORACLE not available

Process ID: 0

Session ID: 0 Serial number: 0

解决思路:

是指定的目录不存在?还是没权限?照网上的方法创建文件夹还是不行。

最后根据原理发现数据库启动是由spfile,pfile等决定的,检查相关文件内容

由于启动方式是以spfile决定的,检查spfile定义的文件夹是否都创建了,有权限了。

错误原因:

最后在spfileorcl.ora文件里查看,发现其中一个文件夹在该指定目录不存在,

db_recovery_file_dest的文件件夹丢失,文件夹不存在。

解决办法:

在该目录下(/home/oracle/app/oradata) 创建对应的文件或文件夹

重新启动 startup,启动成功!

相关知识点:

oracle数据库启动和停止

以oracle用户身份登录
登录后输入以下命令:
oracle-> sqlplus /nolog
SQL*Plus: Release 9.2.0.1.0 - Production on 星期一 4月 26 09:42:00 2004

Copyright (c) 1982, 2002>>, Oracle Corporation. All rights reserved.

SQL>; connect /as sysdba
已连接。
SQL>;
在进入后就可以进行下面的操作了!
先说关闭数据库
shutdown有四个参数,四个参数的含义如下:
Normal 需要等待所有的用户断开连接
Immediate 等待用户完成当前的语句
Transactional 等待用户完成当前的事务
Abort 不做任何等待,直接关闭数据库
normal需要在所有连接用户断开后才执行关闭数据库任务,所以有的时候看起来好象命令没有运行一样!在执行这个命令后不允许新的连接
immediate在用户执行完正在执行的语句后就断开用户连接,并不允许新用户连接。
transactional 在拥护执行完当前事物后断开连接,并不允许新的用户连接数据库。
abort 执行强行断开连接并直接关闭数据库。
前三种方式不回丢失用户数据。第四种在不的已的情况下,不建议采用!
数据库的启动
数据库启动使用startup命令,它有三种情况
第一种:不带参数,启动数据库实例并打开数据库,以便用户使用数据库,在多数情况下,使用这种方式!
第二种:带nomount参数,只启动数据库实例,但不打开数据库,在你希望创建一个新的数据库时使用,或者在你需要这样的时候使用!
第三种:带mount参数,在进行数据库更名的时候采用。这个时候数据库就打开并可以使用了!

lsnrctl start 启动监听器

pfile, spfile,参数文件,服务器参数文件

1、   PFILE和SPFILE定义

PFILE:文本参数文件(TEXT PARAMETER FILE)又叫静态参数文件,ASCII文本文件(可以直接编辑)

SPFILE:服务器参数文件(SERVER PARAMETER FILE)。二进制文件(不可以直接编辑,db启动后通过sql命令在线修改。)

Oracle启动过程中选择参数文件的顺序:

从Oracle9i开始,spfile被引入Oracle数据库,Oracle首选spfile<ORACLE_SID>.ora文件作为启动参数文件;如果该文件不存在,Oracle选择spfile.ora文件;如果前两者都不存在,Oracle将会选择init<ORACLE_SID>.ora文件;如果以上三个文件都不存在,Oracle将无法创建和启动instance。

Oracle在启动过程中,会在特定的路径中寻找参数文件,在Unix/Linux下的路径为$ORACLE_HOME/dbs目录,在WINDOWS上的路径为$ORACLE_HOME/database目录。

关于参数文件的详细说明:

新建一个数据库以后,默认启动文件是/dbs目录下的spfile,,执行create pfile from spfile以后,重启数据库,执行show parameter spfile会显示value为空,说明这时不是以spfile启动的,这时执行create pfile from spfile,会出现错误,因为现在没有使用spfile,这里用命令create spfile frompfile ,再重启数据库,发现启动参数为spfile。在刚安装完oracle以后,spfile和pfile会出 现在/dbs目录下,这时启动参数为spfile,执行create pfiel from spfile 以后,会在/database目录下产生一个pfile,这时重启数据库,会以/database目录下的pfile启动,重启后,执行create spfile from pfile,会在/database下产生一个spfile文件,这时重启数据库会以/database目录下的spfile启动。也就是说oracle会先找/database目录下的spfile和pfile,再找/dbs目录下的spfile和pfile。

2、   存放位置,查询v$parameter视图,方式有两种。

1)SQL> select vp.VALUE from v$parameter vp where vp.NAME = 'spfile';

VALUE

--------------------------------------------------------------------------------

F:/ORACLE/PRODUCT/10.2.0/DB_3/DBS/SPFILEFFTEST.ORA

2)SQL> show parameter spfile;

NAME   TYPE   VALUE

------------------------------------ ----------- ------------------------------

spfile   string   F:/ORACLE/PRODUCT/10.2.0/DB_3/DBS/SPFILEFFTEST.ORA

实际上,以上两种方式是一样的。方式2)是方式1)的封装语句,从告警文件中可以发现,show parameter其实是执行了方式1)的语句。

一般保存位置:

Spfile位置:$/oracle/product/10.2.0/db_1/dbs/spfile<sid>.ora

对于Windows其位置是:$ORACLE_HOME/database/spfile<SID>.ora

pfile位置:$oracle/oracle/product/10.2.0/admin/<sid>/init.ora.xxxxx

在$ORACLE_BASE/admin/<sid>/pfile下,你很可能可以看到一个类似这样init.ora.1 92003215317]名字的文件,这就是初始化参数文件,只是跟上了时间戳。对于Oracle920 ,缺省的就使用spfile启动,但是这个spfile不是凭空而来,而是根据这个文件创建而来 ,你可以去掉这个长后缀,就是标准的pfile文件了。

3、   判断db系统以pfile还是spfile启动?

1)   用show   parameter   spfile命令,如果Value为空,则表示使用以pfile启动db,未创建spfile。

SQL> show parameter spfile;

SQL> select name, value from v$parameter where name = 'spfile';

--以下是变种方式:

SQL> SELECT DECODE(value, NULL, 'PFILE', 'SPFILE') "Init File Type"

FROM sys.v_$parameter WHERE name = 'spfile';

2)   查询v$spparameter视图。如果isspecified里有true,表明用spfile进行了指定配置。如果全为false,表明用pfile启动。

SQL> Select isspecified, count(*) from v$spparameter group by isspecified;

ISSPECIFIED   COUNT(*)

----------- ----------

TRUE                23

FALSE              236

3)   通过create pfile来鉴别,如果当前使用的不是spfile,则相应格式的create pfile会产生错误。

查看是否使用SPFILE,可以在数据库启动后,使用create spfile命令验证。

SQL> create spfile from pfile='d:/asdf.ora';

create spfile from pfile='d:/asdf.ora'

*

ERROR 位于第 1 行:

ORA-32002: 无法创建已由例程使用的 SPFILE

4)

4、   Spfile与pfile相互创建

1)   从pfile创建spfile的方法。

如果以pfile启动,想切换成spfile启动。则重建spfile,然后重启DB即可。

create spfile from pfile;

SQL> create spfile from pfile;

Done

SQL> create spfile from pfile='F:/oracle/product/10.2.0/admin/fftest/pfile/init.ora.215201120126';

Done

SQL> connect fftest/fftest@fftest

SQL> show parameter spfile;

NAME    TYPE  VALUE

------------------------------------ ----------- ------------------------------

spfile       string      F:/ORACLE/PRODUCT/10.2.0/DB_3/DATABASE/SPFILEFFTEST.ORA

2)   从spfile创建pfile

SQL> show parameter spfile

NAME      TYPE        VALUE

------------------------------------ ----------- ------------------------------

spfile      string

SQL> create spfile from pfile='?/dbs/init<sid>.ora'

对于pfile,你可以用文本编辑器直接手工编辑一个,也可以使用create pfile命令 从spfile创建,如:CREATE PFILE='C:/PFILE/MYPFILE.ORA' FROM   SPFILE='D:/SPFILE/MYSPFILE.ORA',或者从当前实例所使用的spfile创建:create  pfile='c:/pfile/mypfile.ora' from spfile。

3)

5、   参数文件的修改方法

1) 分为手动修改和在线修改。

Pfile:手动修改用于修改pfile,直接用文本编辑打开pfile修改。要使用修改生效,须重启数据库。

Spfile:在线修改是在数据库运行时,用alter system命令进行修改,命令如下(详细的命令 语句请参考oracle官方参考文档):

sql>alter system set job_queue_processed=50 scope=MEMORY

注意,scope=MEMORY表示应用范围,取值如下:

SPFILE:修改只对SPFILE有效,不影响当前实例,需要重启数据库才能生效;

MEMORY:修改只对内存有效,即只对当前实例有效,且立即生效,但不会保存到SPFILE, 数据库重启后此配置丢失;

BOTH:顾名思义,包含以上两种,立即生效,且永久生效。

  对于ALTER SYSTEM的参数修改命令,请注意以下几点:

第一,如果当前实例使用的是pfile而非spfile,则scope=spfile或scope=both会产生错误;

第二,如果实例以pfile启动,则scope的默认值为MEMORY, 若以spfile启动,则默认值为 BOTH;

第三,可以使用DEFERRED表示所作修改只适用于将来的会话,还可以使用COMMENT写入注 释,如:ALTER SYSTEM SET JOB_QUEUE_PROCESSES=50 SCOPE=BOTH DEFERRED COMMENT=" 注释"

第四,删除参数的方法如下:ALTER SYSTEM SET PARAMETER='';

附:启动顺序、pfile、spfile测试用例:

C:/Documents and Settings/felix>sqlplus fftest/fftest@fftest

连接到:

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production

With the Partitioning, OLAP and Data Mining options

SQL> shutdown immediate;

ORA-01031: 权限不足

SQL> connect fftest/fftest@fftest as sysdba

ERROR:

ORA-01031: insufficient privileges

SQL> connect sys/fftest@fftest as sysdba;

已连接。

SQL> shutdown immediate;

数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。

SQL> startup mount

ORACLE 例程已经启动。

Total System Global Area  612368384 bytes

Fixed Size                  1250428 bytes

Variable Size             167775108 bytes

Database Buffers          436207616 bytes

Redo Buffers                7135232 bytes

数据库装载完毕。

SQL> alter database open;

数据库已更改。

SQL> show parameter spfile;   --此处表明使用的spfile启动

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

spfile                               string      F:/ORACLE/PRODUCT/10.2.0/DB_3/

DATABASE/SPFILEFFTEST.ORA

SQL> create pfile from spfile;  --spfile在OS级别改名后,创建pfile报错

create pfile from spfile

*

第 1 行出现错误:

ORA-27041: 无法打开文件

OSD-04002: 无法打开文件

O/S-Error: (OS 2) 系统找不到指定的文件。

SQL> shutdown immediate;

数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。

SQL> startup mount

ORACLE 例程已经启动。

Total System Global Area  612368384 bytes

Fixed Size                  1250428 bytes

Variable Size             222301060 bytes

Database Buffers          381681664 bytes

Redo Buffers                7135232 bytes

数据库装载完毕。

SQL> alter database open;

数据库已更改。

SQL> show parameter spfile;   --因为database/下的spfile改名,又找不到spfile.ora,只能找到initfftest.ora,而里面内容为spfile ...重定位到dbs/spfile文件

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

spfile                               string      F:/ORACLE/PRODUCT/10.2.0/DB_3/

DBS/SPFILEFFTEST.ORA

SQL> show parameter spfile;

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

spfile                               string      F:/ORACLE/PRODUCT/10.2.0/DB_3/

DBS/SPFILEFFTEST.ORA

SQL> create pfile from spfile;     --把dbs/下的spfile也改名,创建pfile失败。

create pfile from spfile

*

第 1 行出现错误:

ORA-27041: 无法打开文件

OSD-04002: 无法打开文件

O/S-Error: (OS 2) 系统找不到指定的文件。

SQL> shutdown immediate;

数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。

SQL> startup mount;       --因为spfile改名,导致db找不到启动文件,不能启动db,报错

ORA-01078: failure in processing system parameters

ORA-01565: error in identifying file 'F:/oracle/product/10.2.0/db_3/dbs/spfileff

test.ora'

ORA-27041: unable to open file

OSD-04002: ????????????

O/S-Error: (OS 2) ??????????????????????

SQL> startup mount;

ORACLE 例程已经启动。

Total System Global Area  612368384 bytes

Fixed Size                  1250428 bytes

Variable Size             176163716 bytes

Database Buffers          427819008 bytes

Redo Buffers                7135232 bytes

数据库装载完毕。

SQL> alter database open;

数据库已更改。

SQL> show parameter db_recovery_file_dest_size

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

db_recovery_file_dest_size           big integer 2G

SQL> show parameter spfile;

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

spfile                               string      F:/ORACLE/PRODUCT/10.2.0/DB_3/

DATABASE/SPFILEFFTEST.ORA

SQL> alter system set db_recovery_file_dest_size=10g scope=both;  --spfile更改成功

系统已更改。

SQL> show parameter db_recovery_file_dest_size

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

db_recovery_file_dest_size           big integer 10G

SQL> create pfile from spfile;      --用spfile生成pfile,可以看到pfile内容不再是spfile的重定向内容。

文件已创建。

SQL> show parameter db_recovery_file_dest_size

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

db_recovery_file_dest_size           big integer 10G

SQL> shutdown immediate

数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。

SQL> startup

ORACLE 例程已经启动。

Total System Global Area  612368384 bytes

Fixed Size                  1250428 bytes

Variable Size             180358020 bytes

Database Buffers          423624704 bytes

Redo Buffers                7135232 bytes

数据库装载完毕。

数据库已经打开。

SQL> show parameter db_recovery_file_dest_size;   --重启db,依然为10g

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

db_recovery_file_dest_size           big integer 10G

SQL> show parameter spfile;

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

spfile                               string      F:/ORACLE/PRODUCT/10.2.0/DB_3/

DATABASE/SPFILEFFTEST.ORA

SQL> shutdown immediate;

数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。

SQL> startup pfile=f:/oracle/product/10.2.0/db_3/database/init.ora.215201120126   --用指定的pfile文件启动

ORACLE 例程已经启动。

Total System Global Area  612368384 bytes

Fixed Size                  1250428 bytes

Variable Size             167775108 bytes

Database Buffers          436207616 bytes

Redo Buffers                7135232 bytes

数据库装载完毕。

数据库已经打开。

SQL> show parameter db_recovery_file_dest_size;     --大小为2G

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

db_recovery_file_dest_size           big integer 2G

SQL> show parameter spfile;

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

spfile                               string

SQL> create spfile from pfile;                          ---用pfile生成spfile

文件已创建。

SQL> alter system set db_recovery_file_dest_size=3g scope=both;  --pfile启动改参数失败

alter system set db_recovery_file_dest_size=3g scope=both

*

第 1 行出现错误:

ORA-32001: 已请求写入 SPFILE, 但是在启动时未指定 SPFILE

SQL> shutdown immediate

数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。

SQL> startup

ORACLE 例程已经启动。

Total System Global Area  612368384 bytes

Fixed Size                  1250428 bytes

Variable Size             180358020 bytes

Database Buffers          423624704 bytes

Redo Buffers                7135232 bytes

数据库装载完毕。

数据库已经打开。

SQL> show parameter spfile;                         ---重启db,默认还是找database下的spfile

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

spfile                               string      F:/ORACLE/PRODUCT/10.2.0/DB_3/

DATABASE/SPFILEFFTEST.ORA

SQL> show parameter db_recovery_file_dest_size;

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

db_recovery_file_dest_size           big integer 10G

SQL> shutdown immediate

数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。

SQL> startup pfile=f:/oracle/product/10.2.0/db_3/database/init.ora.215201120126  --手动编辑pfile文件参数后

ORACLE 例程已经启动。

Total System Global Area  612368384 bytes

Fixed Size                  1250428 bytes

Variable Size             167775108 bytes

Database Buffers          436207616 bytes

Redo Buffers                7135232 bytes

数据库装载完毕。

数据库已经打开。

SQL> show parameter spfile;

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

spfile                               string

SQL> show parameter db_recovery_file_dest_size;

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

db_recovery_file_dest_size           big integer 3G

SQL> shutdown immediate;

数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。

SQL> startup

ORACLE 例程已经启动。

Total System Global Area  612368384 bytes

Fixed Size                  1250428 bytes

Variable Size             184552324 bytes

Database Buffers          419430400 bytes

Redo Buffers                7135232 bytes

数据库装载完毕。

数据库已经打开。

SQL> show parameter db_recovery_file_dest_size;

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

db_recovery_file_dest_size           big integer 10G

SQL> show parameter spfile;

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

spfile                               string      F:/ORACLE/PRODUCT/10.2.0/DB_3/

DATABASE/SPFILEFFTEST.ORA

SQL>

#测试end

ORA-01262,oracle启动报错,及Oracle启动原理的更多相关文章

  1. win7 64位 python启动报错:无法启动此程序,因为计算机中丢失api-ms-win-crt-process-l1-1-0.dll

    安装python3.7,安装成功后,在cmd窗口输入python检查是否安装成功,报错:无法启动此程序,因为计算机中丢失api-ms-win-crt-process-l1-1-0.dll 在网上查询了 ...

  2. oracle数据库启动报错,不能启动ASM实例

    数据库rac启动时报错,日志例如以下,后来使用 Sat Jun  7 06:02:11 2014 GATHER_STATS_JOB encountered errors.  Check the tra ...

  3. 安装Rational Rose启动报错:无法启动此程序,由于计算机中丢失 suite objects.dll。

    执行Rational Rose的时候假设出现这种错误,先检查环境变量有没有common的地址,假设没有直接配上就OK:配置例如以下:D:\Program Files\Rational\Common; ...

  4. 安装 Rational Rose 启动报错:无法启动此程序,因为计算机中丢失 suite objects.dll

    安装完以后提示找不到 suite objects.dll: 经查找,该 dll 存在: 找不到的原因是,安装程序自动设置在 Path 中的环境变量有误: 把最后的 common 改成 Common: ...

  5. 安装Rational Rose启动报错:无法启动此程序,因为计算机中丢失 suite objects.dll。

    运行Rational Rose的时候如果出现这样的错误,先检查环境变量有没有common的地址,如果没有直接配上就OK:配置如下:D:\Program Files\Rational\Common; 我 ...

  6. Oracle启动报错ORA-27102解决

    环境:RHEL5.5 + Oracle 10.2.0.4 此错误一般是因为数据库的初始化参数文件的内存设置不当导致.本例是因为操作系统参数设置问题导致. 当前现象:Oracle启动报错ORA-2710 ...

  7. 解决mysql安装报错:无法启动此程序,因为计算机丢失MSVCP120.dll

    问题一: 因为装的是新系统,所以遇到mysql启动报错:无法启动此程序,因为计算机丢失MSVCP120.dll 后来参考这篇文章https://blog.csdn.net/huacode/articl ...

  8. tomcat 1)启动时不识别执行启动命令 2)启动报错 3)关闭不了,用myEclipse启动时显示jvm_bind,端口占用

  9. Oracle启动报错ORA-03113解决

    环境:RHEL6.4 + Oracle 11.2.0.4 步骤摘要:1.启动报错ORA-031132.查看alert日志查找原因3.根据实际情况采取合理的措施,这里我们先增加闪回区大小,把库启动起来4 ...

  10. undo丢失恢复异常恢复,运维DBA反映Oracle数据库无法启动报错ORA-01157 ORA-01110,分析原因为Oracle数据库坏块导致

    本文转自 惜纷飞 大师. 模拟基表事务未提交数据库crash,undo丢失恢复异常恢复,运维DBA反映Oracle数据库无法启动报错ORA-01157 ORA-01110,分析原因为Oracle数据库 ...

随机推荐

  1. acm之奇葩数据输入专题

    1.每組测试数据都在一行,不知道每组测试数据的长度,以换行为测试数据输入的结束 关键代码:if (cin.get() == '\n')   {语句} 例如:找出每组测试的最大值: 输入: 3 1 4 ...

  2. vue.js vue-jsonp解决跨域问题

    安装jsonp npm install vue-jsonp --save main.js中引入 import VueJsonp from 'vue-jsonp' Vue.use(VueJsonp) 组 ...

  3. GRE新东方推荐学习方法(2010年左右)

    单词:新东方新版红宝书(<NEW GRE 词汇精选>),不用<再要你命三个> 填空:新东方绿皮书(扎实的词汇量) 阅读:1 新东方绿皮书:2 <GRE阅读 39+3全攻略 ...

  4. ST-LINK接口定义

    ST-LINKIII管脚定义及接法:     ST-LINK IIILED灯三种状态含义: 常亮:目标板与ST-LINK在SWIM模式或者JTAG/SWD模式下已经通讯初始化. 闪烁:目标板与ST-L ...

  5. CAD安装失败怎样卸载CAD 2017?错误提示某些产品无法安装

    AUTODESK系列软件着实令人头疼,安装失败之后不能完全卸载!!!(比如maya,cad,3dsmax等).有时手动删除注册表重装之后还是会出现各种问题,每个版本的C++Runtime和.NET f ...

  6. Unity 在Inspector面板,脚本前面的激活对勾

    写个脚本,把它挂在一个游戏对象上: using System.Collections; using System.Collections.Generic; using UnityEngine; pub ...

  7. linux开机挂载磁盘

    1. [root@localhost master-build]# cat /etc/fstab # # /etc/fstab # Created by anaconda on Thu Aug :: ...

  8. Murano Weekly Meeting 2016.06.07

    Meeting time: 2016.June.7 1:00~2:00 Chairperson:  Kirill Zaitsev, from Mirantis Meeting summary: 1.A ...

  9. (转)cut命令详解

    Linux:cut命令详解   cut 文件内容查看 显示行中的指定部分,删除文件中指定字段 显示文件的内容,类似于下的type命令. 说明 该命令有两项功能,其一是用来显示文件的内容,它依次读取由参 ...

  10. 牛客网Java刷题知识点之字符流缓冲区、BufferedWriter、BufferedReader、BufferedReader-readLine方法原理、自定义MyBufferedReader-read方法、自定义MyBufferedReader-readLine方法

    不多说,直接上干货! 把提高效率的动作,封装成一个对象.即把缓冲区封装成一个对象. 就是在一个类里封装一个数组,能对流锁操作数据进行缓存. 什么是字符流缓冲区? 善于使用字符流缓冲区,减轻负担,提高下 ...