在Oracle 数据库的实际应用中,开启archivelog模式是必不可少的,但是在设置archivelog的过程中,可能因为不小心出现错误,导致数据库无法启动,本案例就是一种情况。

误操作现象:

设置archivelog name格式时,将archivelog的命名格式设置为archive_%s_%t.arc,修改系统配置文件成功,重启数据库使设置生效。但是异常发生了,数据库无法启动。

出错原因:

设置archivelog name格式时,匹配符%s,%t,%r是必须的。

%s 日志序列号。

%t 重做线程编号。

%r RESETLOGS的ID值。

因为在设置的时候没有符合匹配符%s,%t,%r都存在的要求,所以在数据库启动,加载参数文件时,这条设置无法验证通过,导致数据库无法启动。

 SQL> alter system set log_archive_format="archive_%s_%t.arc" scope=spfile;

 System altered.

 SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORA-19905: log_archive_format must contain %s, %t and %r
SQL> alter system set log_archive_format="robt_%s_%t_%r.arc" scope=spfile;
alter system set log_archive_format="robt_%s_%t_%r.arc" scope=spfile
*
ERROR at line 1:
ORA-01034: ORACLE not available
Process ID: 0
Session ID: 153 Serial number: 7663

解决方案:

1.在spfile的同目录下,创建文件inite<instance name>.ora, 内容如下

根据spfile文件生成的。

 *.audit_file_dest='D:\pp\oracle\admin\epicdb\adump'
*.audit_trail='db'
*.compatible='11.2.0.0.0'
*.control_files='F:\***\***\***\CONTROL01.CTL','D:\PP\ORACLE\FAST_RECOVERY_AREA\<instance name>\CONTROL02.CTL'
*.db_block_size=8192
*.db_domain=''
*.db_name='epicdb'
*.db_recovery_file_dest_size=2147483648
*.db_recovery_file_dest='d:\<instance name>\FRA'
*.diagnostic_dest='D:\pp\oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=epicdbXDB)'
*.job_queue_processes=1000
*.log_archive_dest_1='location=E:\<instance name>\archivelog'
*.log_archive_dest_10='location=use_db_recovery_file_dest'
*.log_archive_format='archive_%s_%t_%r.arc'在设置pfile的过程中修复archivelog设置
*.memory_target=854589440
*.open_cursors=300
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.undo_tablespace='UNDOTBS3'
*.utl_file_dir='c:\logminer'

2. PL/SQL中执行

 SQL>startup nomount pfile=‘<pfile所在的路径>\init<instance name>.ora’;
这里应该提示
ORACLE instance started.

3.通过pfile启动了数据库,通过pfile生成spfile

 SQL> create spfile from pfile;
File created.

4.重启数据库

 SQL> shutdown immediate
ORA-01507: database not mounted
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
....
Database mounted.
Database opened.

总结:

找到问题出现的根本原因,是解决问题的要点。本案例的现象就是数据库无法加载spfile文件,导致无法正常启动,archivelog的设置错误是问题的导火索。先要让数据库启动才能重新设置archivelog,根据这个思路,重建pfile,在重建的过程中将archivelog的设置修改正确,启动数据库,根据pfile生成spfile,之后重启数据库。

Oracle 设置archivelog错误解决方案的更多相关文章

  1. 安装完oracle11g_2x64位数据库后使用PL Developer链接oracle报错“请确认是否安装了32位oracle和TNS错误”解决方案

    解决使用PL Developer登录oracle报错没有配置TNS错误.首先安装好oracle11g数据库,安装PL developer32位 1,下载“instantclient-basic-win ...

  2. Oracle Ora 错误解决方案合集

    注:本文来源于 < Oracle学习笔记 --- Oracle ORA错误解决方案 > ORA-00001: 违反唯一约束条件 (.)错误说明:当在唯一索引所对应的列上键入重复值时,会触发 ...

  3. Oracle 数据库基础 出现invalid username/password; logon denied错误解决方案

    出现invalid username/password; logon denied错误解决方案 [win7或win8中 cmd要以管理员身份运行] 1.Dos下输入命令:sqlplus sys/安装时 ...

  4. Oracle 控制文件损坏解决方案

    Oracle 控制文件损坏解决方案 故障一:丢失(损坏)一个控制文件 前台报错:ORA-00205:error in identifying control file,check alert log ...

  5. win7访问局域网总提示用户名密码错误解决方案

    win7访问局域网总提示用户名密码错误解决方案 1.点击开始-在搜索栏输入:secpol.msc(或者直接按下win+r键,输入secpol.msc),打开本地安全策略. 2.找到“安全设置”的“本地 ...

  6. [Oracle]为何Archivelog 没有马上被删除

    [Oracle]为何Archivelog 没有马上被删除 客户设置了 Archivelog 的 deletion policy 是 CONFIGURE ARCHIVELOG DELETION POLI ...

  7. jmeter发送json数据,报405、400错误解决方案

    1.405错误解决方案:添加HTTP信息头管理器(错误因数:发送格式未设置) 2.400错误解决方案:json文本格式有误(注意:换行.空格等)解决方案:对照json文本数据(错误因数:发送的json ...

  8. php源码编译常见错误解决方案大全

    php源码编译常见错误解决方案大全http://www.cnlvzi.com/index.php/Index/article/id/143 在CentOS编译PHP5的时候有时会遇到以下的一些错误信息 ...

  9. oracle所有的乱码解决方案

    oracle所有的乱码解决方案 是不是经常看见各式各样的乱码,看见头就大了,大家别怕,所有的问题都会有一个甚至不止一个的解决方案,有句名言说的好:万法不离其踪.网上大部分把工具的乱码和代码操作的乱码混 ...

随机推荐

  1. 断命windows上卸载node并重装

    抠门儿世界500强给前端开发人员用windows windows不支持n模块没法自动升级 不记得何时安装的旧版本node连个uninstaller都找不到 绕道安装nvm path也自动加进去了丫命令 ...

  2. 自己写的一个android小应用 手电筒

    简洁 小巧 免费 无广告 代码奉上 active类 private boolean isopent = false; private Camera camera; @Override protecte ...

  3. JavaSE 国际化 简单例子

    ①在src下添加两个文件: base_zh_CN.properties Test=\u8fd9\u662f\u4e2d\u6587 base_en_US.properties Test=english ...

  4. 嵌入式C语言之---模块化编程

    当你在一个项目小组做一个相对较复杂的工程时,意味着你不再独自单干.你需要和你的小组成员分工合作,一起完成项目,这就要求小组成员各自负责一部分工程.比如你可能只是负责通讯或者显示这一块.这个时候,你就应 ...

  5. ruby迭代器iterator和枚举器Enumerator

    编写自定义的迭代器 The defining feature of an iterator method is that it invokes a block of code associatedwi ...

  6. Codevs_1040_[NOIP2001]_统计单词个数_(划分型动态规划)

    描述 http://codevs.cn/problem/1040/ 与Codevs_1017_乘积最大很像,都是划分型dp. 给出一个字符串和几个单词,要求将字符串划分成k段,在每一段中求共有多少单词 ...

  7. oracle 绑定变量

    “绑定变量”这个词也许对于某些人来说看以来陌生,其实我们在很早的时候就已经开始运用它了. 在java中使用的PrepareStatement对象,大家一定会说这不是将sql语句做预编译操作嘛,被封装的 ...

  8. [C# 网络编程系列]专题六:UDP编程

    转自:http://www.cnblogs.com/zhili/archive/2012/09/01/2659167.html 引用: 前一个专题简单介绍了TCP编程的一些知识,UDP与TCP地位相当 ...

  9. VS发布,TFS邮件设置截图

    vs2012发布截图: TFS邮件设置截图:

  10. 字符串编码、Base64字符串 互转

    /// <summary>  /// 将字符串编码为Base64字符串  /// </summary>  /// <param name="str"& ...