开发者社区> leshami> 正文

又一例SPFILE设置错误导致数据库无法启动

简介: --======================================== --又一例SPFILE设置错误导致数据库无法启动 --========================================       SPFILE参数错误,容易导致数据库无法启动。
+关注继续查看

--========================================

--又一例SPFILE设置错误导致数据库无法启动

--========================================

 

    SPFILE参数错误,容易导致数据库无法启动。关于SPFILE设置错误处理办法的总结,请参照:SPFILE错误导致数据库无法启动

   

    此次的情况与上次的稍有不同,故列出该次的恢复过程

 

故障   

    SQL> startup

    ORA-16032: parameter LOG_ARCHIVE_DEST destination string cannot be translated

    ORA-07286: sksagdi: cannot obtain device information.

    Linux Error: 2: No such file or directory

   

分析

    SQL> ho cat /u01/app/oracle/admin/orcl/bdump/alert_orcl.log   --查看告警日志

    Tue Aug  3 10:38:25 2010

    ALTER SYSTEM SET log_archive_dest='u01/app/oracle/archivelog1' SCOPE=SPFILE; --此处路径开始处少了"/"

    Tue Aug  3 10:39:59 2010

    ALTER SYSTEM SET log_archive_duplex_dest='/u01/app/oracle/archivelog2' SCOPE=SPFILE;

    Tue Aug  3 10:40:25 2010

    Incremental changes to log_archive_dest_1 not allowed with SPFILE

    Tue Aug  3 10:40:43 2010

    ALTER SYSTEM SET log_archive_dest_1='location=/u01/app/oracle/archivelog3' SCOPE=SPFILE;

    Tue Aug  3 10:40:57 2010

    ALTER SYSTEM SET log_archive_dest_2='location=/u01/app/oracle/archivelog4' SCOPE=SPFILE;

    Tue Aug  3 10:41:02 2010

    Starting background process EMN0

    EMN0 started with pid=21, OS id=3944

    Tue Aug  3 10:41:02 2010

    Shutting down instance: further logons disabled    --实例开始关闭

    Tue Aug  3 10:41:03 2010

    Stopping background process QMNC

    Tue Aug  3 10:41:04 2010

    Stopping background process CJQ0

    Tue Aug  3 10:41:05 2010

    Stopping background process MMNL

    Tue Aug  3 10:41:06 2010

    Stopping background process MMON

    Tue Aug  3 10:41:07 2010

    Shutting down instance (immediate)

    License high water mark = 7

    Tue Aug  3 10:41:07 2010

    Stopping Job queue slave processes

    Tue Aug  3 10:41:12 2010

    Process OS id : 3942 alive after kill

    Errors in file /u01/app/oracle/admin/orcl/udump/orcl_ora_3859.trc

    Tue Aug  3 10:41:12 2010

    Job queue slave processes stopped

    All dispatchers and shared servers shutdown

    Tue Aug  3 10:41:14 2010

    ALTER DATABASE CLOSE NORMAL

    Tue Aug  3 10:41:15 2010

    SMON: disabling tx recovery

    SMON: disabling cache recovery

    Tue Aug  3 10:41:15 2010

    Shutting down archive processes

    Archiving is disabled

    Tue Aug  3 10:41:20 2010

    ARCH shutting down

    ARC1: Archival stopped

    Tue Aug  3 10:41:25 2010

    ARCH shutting down

    ARC0: Archival stopped

    Tue Aug  3 10:41:26 2010

    Thread 1 closed at log sequence 46

    Successful close of redo thread 1

    Tue Aug  3 10:41:26 2010

    Completed: ALTER DATABASE CLOSE NORMAL

    Tue Aug  3 10:41:26 2010

    ALTER DATABASE DISMOUNT

    Completed: ALTER DATABASE DISMOUNT

    ARCH: Archival disabled due to shutdown: 1089

    Shutting down archive processes

    Archiving is disabled

    Archive process shutdown avoided: 0 active

    ARCH: Archival disabled due to shutdown: 1089

    Shutting down archive processes

    Archiving is disabled

    Archive process shutdown avoided: 0 active

    Tue Aug  3 10:41:49 2010                        --至此所有的进程都被关闭

    Starting ORACLE instance (normal)               --启动后仅出现了行提示

    LICENSE_MAX_SESSION = 0

    LICENSE_SESSIONS_WARNING = 0

    Picked latch-free SCN scheme 2

 

    SQL> ho ps -ef | grep oracle     --后台进程被关闭

    root      3796  3764  0 10:28 pts/0    00:00:00 su - oracle

    oracle    3797  3796  0 10:29 pts/0    00:00:00 -bash

    oracle    3829  3797  0 10:29 pts/0    00:00:00 /usr/bin/perl -w /usr/bin/uniread sqlplus / as sysdba

    oracle    3830  3829  0 10:29 pts/1    00:00:00 sqlplus   as sysdba

    oracle    3947  3830  1 10:41 ?        00:00:02 oracleorcl (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))

    oracle    3953  3830  0 10:43 pts/1    00:00:00 /bin/bash -c ps -ef | grep oracle

    oracle    3954  3953  0 10:43 pts/1    00:00:00 ps -ef

 

    SQL>  ho strings /u01/app/oracle/10g/dbs/spfileorcl.ora  --查看spfileorcl的信息

 

    orcl.__db_cache_size=167772160

    orcl.__java_pool_size=4194304

    orcl.__large_pool_size=4194304

    orcl.__shared_pool_size=71303168

    orcl.__streams_pool_size=0

    *.audit_file_dest='/u01/app/oracle/admin/orcl/adump'

    *.background_dump_dest='/u01/app/oracle/admin/orcl/bdump'

    *.compatible='10.2.0.1.0'

    *.control_files='/u01/app/oracle/oradata/orcl/control01.ctl','/u01/app/oracle/oradata/orcl/control02.ctl'

    *.core_dump_dest='/u01/app/oracle/admin/orcl/cdump'

    *.db_block_size=8192

    *.db_domain=''

    *.db_file_multiblock_read_count=16

    *.db_name='orcl'

    *.db_recovery_file_dest='/u01/app/oracle/flash_recovery_area'

    *.db_recovery_file_dest_size=2147483648

    *.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'

    *.fast_start_mttr_target=30

    *.job_queue_processes=10

    *.log_archive_dest_1='location=/u01/app/oracle/archivelog3'

    *.log_archive_dest_2='location=/u01/app/oracle/archivelog4'

    *.log_archive_dest_state_2='ENABLE'

    *.log_archive_dest='u01/app/oracle/archivelog1'   --同告警日志提示的一样,路径开始处少了"/"

    *.log_archive_duplex_dest='/u01/app/oracle/archivelog2'

    *.log_archive_format='arc_%t_%s_%r.arc'

    *.open_cursors=300

    *.pga_aggregate_target=83886080

    *.processes=150

    *.remote_login_passwordfile='EXCLUSIVE'

    *.sga_target=251658240

    *.undo_management='AUTO'

    *.undo_tablespace='UNDOTBS1'

    *.user_dump_dest='/u01/app/oracle/admin/orcl/udump'

 

解决

    SQL> vim /u01/app/oracle/10g/dbs/initorcl.ora    --由于没有备份的参数文件,在此新建一个pfile.

                                                     --如果有内容可以先清空其内容然后再添加如下内容并保存

    spfile='/u01/app/oracle/10g/dbs/spfileorcl.ora'

    log_archive_dest='/u01/app/oracle/archivelog1/'

 

    SQL> startup pfile = '$ORACLE_HOME/dbs/initorcl.ora';  --再次提示错误,原来是归档方式不兼容导致

    ORA-16019: cannot use LOG_ARCHIVE_DEST_1 with LOG_ARCHIVE_DEST or LOG_ARCHIVE_DUPLEX_DEST

 

    --根据上面的错误提示在使用LOG_ARCHIVE_DEST_1不能同时指定LOG_ARCHIVE_DESTLOG_ARCHIVE_DUPLEX_DEST参数

    --再次修改initorcl.ora,添加以下内容,添加后的结果如下

    --注意此处是将log_archive_dest_1log_archive_dest_2清空

    --也可以将log_archive_destlog_archive_duplex_dest置空,因为这是两种不同的归档方式,互不兼容

 

    SQL> ho cat /u01/app/oracle/10g/dbs/initorcl.ora    --查看修改后的初始化参数

    spfile='/u01/app/oracle/10g/dbs/spfileorcl.ora'

    log_archive_dest='/u01/app/oracle/archivelog1/'

    log_archive_dest_1=''

    log_archive_dest_2=''

 

    SQL> startup pfile = '/u01/app/oracle/10g/dbs/initorcl.ora';

    ORACLE instance started.

 

    Total System Global Area  251658240 bytes

    Fixed Size                  1218796 bytes

    Variable Size              79693588 bytes

    Database Buffers          167772160 bytes

    Redo Buffers                2973696 bytes

    Database mounted.

    Database opened.

 

    SQL> show parameter pfile;

 

    NAME                                 TYPE        VALUE

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

    spfile                               string      /u01/app/oracle/10g/dbs/spfile

                                                     orcl.ora

    SQL> show parameter spfile;

 

    NAME                                 TYPE        VALUE

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

    spfile                               string      /u01/app/oracle/10g/dbs/spfile

                                                     orcl.ora

                                                     

    SQL> desc v$spparameter

     Name                                      Null?    Type

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

     SID                                                VARCHAR2(80)

     NAME                                               VARCHAR2(80)

     VALUE                                              VARCHAR2(255)

     DISPLAY_VALUE                                      VARCHAR2(255)

     ISSPECIFIED                                        VARCHAR2(6)

     ORDINAL                                            NUMBER

     UPDATE_COMMENT                                     VARCHAR2(255)

 

    SQL> select distinct isspecified from v$spparameter;

 

    ISSPEC

    ------

    TRUE       --第一行为true 可以知道数据库使用spfile参数启动

    FALSE

 

    SQL> show parameter log_archive   --查看log_archive相关参数

 

    NAME                                 TYPE        VALUE

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

    log_archive_config                   string

    log_archive_dest                     string      /u01/app/oracle/archivelog1/  --该参数已显示正确路径

    log_archive_dest_1                   string      --该参数已经被初始化的pfile置空

    log_archive_dest_10                  string

    log_archive_dest_2                   string      --该参数已经被初始化的pfile置空

    log_archive_dest_3                   string

    log_archive_dest_4                   string

    log_archive_dest_5                   string

    log_archive_dest_6                   string

    log_archive_dest_7                   string

    log_archive_dest_8                   string

 

    NAME                                 TYPE        VALUE

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

    log_archive_dest_9                   string

    log_archive_dest_state_1             string      enable

    log_archive_dest_state_10            string      enable

    log_archive_dest_state_2             string      ENABLE

    log_archive_dest_state_3             string      enable

    log_archive_dest_state_4             string      enable

    log_archive_dest_state_5             string      enable

    log_archive_dest_state_6             string      enable

    log_archive_dest_state_7             string      enable

    log_archive_dest_state_8             string      enable

    log_archive_dest_state_9             string      enable

 

    NAME                                 TYPE        VALUE

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

    log_archive_duplex_dest              string      /u01/app/oracle/archivelog2

    log_archive_format                   string      arc_%t_%s_%r.arc

    log_archive_local_first              boolean     TRUE

    log_archive_max_processes            integer     2

    log_archive_min_succeed_dest         integer     1

    log_archive_start                    boolean     FALSE

    log_archive_trace                    integer     0

 

    --将出现错误的几个参数永久化修改到spfile参数

    SQL> alter system set log_archive_dest = '/u01/app/oracle/archivelog1' scope = spfile;

 

    System altered.

 

    SQL> alter system set log_archive_dest_1 = '' scope = spfile;

 

    System altered.

 

    SQL> alter system set log_archive_dest_2 = '' scope = spfile;

 

    System altered.

 

    SQL> startup            --实例正常从spfile 启动

    ORACLE instance started.

 

    Total System Global Area  251658240 bytes

    Fixed Size                  1218796 bytes

    Variable Size              79693588 bytes

    Database Buffers          167772160 bytes

    Redo Buffers                2973696 bytes

    Database mounted.

    Database opened.   

 

    SQL> create pfile = '$ORACLE_HOME/dbs/spfileorcl.ora.bak' from spfile;

 

    File created.         --备份spfile                     

 

更多

SPFILE错误导致数据库无法启动

 

Managing Archived Redo Logs

 

Oracle 用户、对象权限、系统权限

 

Oracle 角色、配置文件

 

  Oracle 联机重做日志文件(ONLINE LOG FILE)

 

  Oracle 控制文件(CONTROLFILE)

 

  Oracle 表空间与数据文件

 

Oracle 归档日

 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
使用OpenApi弹性释放和设置云服务器ECS释放
云服务器ECS的一个重要特性就是按需创建资源。您可以在业务高峰期按需弹性的自定义规则进行资源创建,在完成业务计算的时候释放资源。本篇将提供几个Tips帮助您更加容易和自动化的完成云服务器的释放和弹性设置。
18427 0
【原】Oracle 数据库实例启动过程
Oracle数据库实例的启动,严格来说应该是实例的启动,数据库仅仅是在实例启动后进行装载。Oracle数据启动的过程被划分为,几个不同的步骤,在不同的启动过程中,我们可以对其实现不同的操作,系统修复等等工作,因此了解Oracle数据启动、关闭是非常有必要的。
649 0
studio设置File Templates
从项目的整体风格考虑,对所有类要进行必要的说明,就注释说明来说首先需要说明是作者,文件创建时间,业务功能说明,这几项是基本的内容,而添加这些说明内容以前可能手动的添加文件标题头,这种做法现在都非常过时了。
708 0
Oracle Restart启动数据库实例故障一例
  Oracle Restart是11gR2中推出的重要高可用(High Availability)特性。在Single Instance情况下,Clusterware形成一个可用性维护框架,Oracle组件服务都是在这个维护管理框架上进行管理。
1049 0
error LNK1104: cannot open file 错误解决方案
1、在TOOLS->OPTIONS->Directories->Library files,加入你的LIB文件所在的目录,然后在Project->setting->object->Object/Library Modules中加入你的LIB文件,如you.lib(中文版本在 工具-》选项-》目录下加入lib所在目录后。
633 0
Fiddler 技术篇-捕捉https协议设置,抓取百度https实例演示
Fiddler 技术篇-捕捉https协议设置,抓取百度https实例演示
43 0
+关注
leshami
传播知识,分享快乐!十年以上数据库,系统运维与管理,性能优化经验。全部文章,欢迎扩散,转载请注明出处!
639
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载