ORA-00604: 和ORA-01548: 编译存储过程

2023-10-14 23:08

本文主要是介绍ORA-00604: 和ORA-01548: 编译存储过程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


刚才启动测试环境下虚拟机上的oracle,启动过程没有报错,在我编译存储过程的时候报错如下:

Thu Jul  4 14:05:09 2013
Errors in file /u01/app/oracle/admin/ora10g/bdump/ora10g_smon_3319.trc:
ORA-00604: error occurred at recursive SQL level 1
ORA-00376: file 2 cannot be read at this time
ORA-01110: data file 2: '/u01/oracle/oradata/ora10g/undotbs01.dbf'
Opening with internal Resource Manager plan
where NUMA PG = 1, CPUs = 2
replication_dependency_tracking turned off (no async multimaster replication found)
Starting background process QMNC
QMNC started with pid=16, OS id=3337

没有搞明白这是为什么??

看到上面提示undo文件/u01/oracle/oradata/ora10g/undotbs01.dbf,就查看了一下发现这个文件不存在。

SQL> select segment_name,status,tablespace_name from dba_rollback_segs;SEGMENT_NAME                   STATUS           TABLESPACE_NAME
------------------------------ ---------------- ------------------------------
SYSTEM                         ONLINE           SYSTEM
_SYSSMU4$                      NEEDS RECOVERY   UNDOTBS1
_SYSSMU5$                      NEEDS RECOVERY   UNDOTBS1
_SYSSMU6$                      NEEDS RECOVERY   UNDOTBS1
_SYSSMU7$                      NEEDS RECOVERY   UNDOTBS1
_SYSSMU8$                      NEEDS RECOVERY   UNDOTBS1
_SYSSMU9$                      NEEDS RECOVERY   UNDOTBS1
_SYSSMU10$                     NEEDS RECOVERY   UNDOTBS1
_SYSSMU22$                     ONLINE           UNDOTBS02
_SYSSMU23$                     ONLINE           UNDOTBS02
_SYSSMU24$                     ONLINE           UNDOTBS02SEGMENT_NAME                   STATUS           TABLESPACE_NAME
------------------------------ ---------------- ------------------------------
_SYSSMU25$                     ONLINE           UNDOTBS02
_SYSSMU26$                     ONLINE           UNDOTBS02
_SYSSMU27$                     ONLINE           UNDOTBS02
_SYSSMU28$                     ONLINE           UNDOTBS02
_SYSSMU29$                     ONLINE           UNDOTBS02
_SYSSMU30$                     ONLINE           UNDOTBS02
_SYSSMU21$                     ONLINE           UNDOTBS02
_SYSSMU11$                     OFFLINE          UNDOTBS01
_SYSSMU12$                     OFFLINE          UNDOTBS01
_SYSSMU13$                     OFFLINE          UNDOTBS01
_SYSSMU14$                     OFFLINE          UNDOTBS01SEGMENT_NAME                   STATUS           TABLESPACE_NAME
------------------------------ ---------------- ------------------------------
_SYSSMU15$                     OFFLINE          UNDOTBS01
_SYSSMU16$                     OFFLINE          UNDOTBS01
_SYSSMU17$                     OFFLINE          UNDOTBS01
_SYSSMU18$                     OFFLINE          UNDOTBS01
_SYSSMU19$                     OFFLINE          UNDOTBS01
_SYSSMU20$                     OFFLINE          UNDOTBS0128 rows selected.SQL> 

发现正在用的是不是这一个UNDOTBS1,而是UNDOTBS02;但是UNDOTBS1却需要恢复。

百度上贴一段。。。。。

回滚表空间
有三种种情况:
1、数据库已经完全关闭(使用shutdown immediate或shutdown命令)
1) 确认数据库完全关闭
2) 修改init.ora文件,注释"rollback-segment"
3) svrmgrl> startup restrict mount
4) svrmgrl> alter database datafile filename offline drop;
5) svrmgrl> alter database open;
基于出现的结果:"statement PRocessed" 转(7);"ORA-00604,ORA-00376,ORA-01110"转(6)
6) svrmgrl> shutdown immediate
修改init.ora文件,增加如下一行:_corrupted_rollback_segments = (<roll1>,...<rolln>)
svrmgrl> startup restrict
7) svrmgrl> drop tablespace tablespace_name including contents;
8) 重建表空间及回滚段
9) svrmgrl> alter system disable restricted session;
10) 修改init.ora文件
2、数据库未完全关闭(数据库崩溃或使用shutdown abort命令关闭数据库)
1) 恢复备份
2) svrmgrl> startup mount
3) svrmgrl> select file#,name,status from v$datafile;
svrmgrl> alter database datafile filename online;
4) svrmgrl> select v1.group#,member,sequence#,first_change# from v$log v1,v$logfile v2 where v1.group#=v2.group#;
5) svrmgrl> select file#,change# from v$recover_file; #参见方案2-4
6) svrmgrl> recover datafile filename;
7) svrmgrl> alter database open;
3、数据库处于打开状态
1) 删除回滚段和表空间
2) 重建表空间和回滚段


因为启动后当前库没有报错,所以就创建了pfile,然后修改pfile,添加参数写上损坏的回滚段,然后用它启动,

_CORRUPTED_ROLLBACK_SEGMENTS=(_SYSSMU4$,_SYSSMU5$,_SYSSMU6$,_SYSSMU7$,_SYSSMU8$,_SYSSMU9$,_SYSSMU10$)

,启动完之后,再删除UNDOTBS1,同时也再创建一下。完了之后,再根据pfile创建spfile,重启数据库。再次编译的时候没有报错,日志里面也没有。

drop tablespace UNDOTBS1 including contents and datafiles ;

create undo tablespace UNDOTBS1 datafile '/u01/oracle/oradata/ora10g/undotbs01.dbf' size 200m;


SQL>  select segment_name,status,tablespace_name from dba_rollback_segs;SEGMENT_NAME                   STATUS           TABLESPACE_NAME
------------------------------ ---------------- ------------------------------
SYSTEM                         ONLINE           SYSTEM
_SYSSMU2$                      ONLINE           UNDOTBS1
_SYSSMU3$                      ONLINE           UNDOTBS1
_SYSSMU4$                      ONLINE           UNDOTBS1
_SYSSMU5$                      ONLINE           UNDOTBS1
_SYSSMU6$                      ONLINE           UNDOTBS1
_SYSSMU7$                      ONLINE           UNDOTBS1
_SYSSMU8$                      ONLINE           UNDOTBS1
_SYSSMU9$                      ONLINE           UNDOTBS1
_SYSSMU10$                     ONLINE           UNDOTBS1
_SYSSMU1$                      ONLINE           UNDOTBS1SEGMENT_NAME                   STATUS           TABLESPACE_NAME
------------------------------ ---------------- ------------------------------
_SYSSMU22$                     OFFLINE          UNDOTBS02
_SYSSMU23$                     OFFLINE          UNDOTBS02
_SYSSMU24$                     OFFLINE          UNDOTBS02
_SYSSMU25$                     OFFLINE          UNDOTBS02
_SYSSMU26$                     OFFLINE          UNDOTBS02
_SYSSMU27$                     OFFLINE          UNDOTBS02
_SYSSMU28$                     OFFLINE          UNDOTBS02
_SYSSMU29$                     OFFLINE          UNDOTBS02
_SYSSMU30$                     OFFLINE          UNDOTBS02
_SYSSMU21$                     OFFLINE          UNDOTBS02
_SYSSMU11$                     OFFLINE          UNDOTBS01SEGMENT_NAME                   STATUS           TABLESPACE_NAME
------------------------------ ---------------- ------------------------------
_SYSSMU12$                     OFFLINE          UNDOTBS01
_SYSSMU13$                     OFFLINE          UNDOTBS01
_SYSSMU14$                     OFFLINE          UNDOTBS01
_SYSSMU15$                     OFFLINE          UNDOTBS01
_SYSSMU16$                     OFFLINE          UNDOTBS01
_SYSSMU17$                     OFFLINE          UNDOTBS01
_SYSSMU18$                     OFFLINE          UNDOTBS01
_SYSSMU19$                     OFFLINE          UNDOTBS01
_SYSSMU20$                     OFFLINE          UNDOTBS0131 rows selected.SQL> 






这篇关于ORA-00604: 和ORA-01548: 编译存储过程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/213747

相关文章

Java进程异常故障定位及排查过程

《Java进程异常故障定位及排查过程》:本文主要介绍Java进程异常故障定位及排查过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、故障发现与初步判断1. 监控系统告警2. 日志初步分析二、核心排查工具与步骤1. 进程状态检查2. CPU 飙升问题3. 内存

Python实现对阿里云OSS对象存储的操作详解

《Python实现对阿里云OSS对象存储的操作详解》这篇文章主要为大家详细介绍了Python实现对阿里云OSS对象存储的操作相关知识,包括连接,上传,下载,列举等功能,感兴趣的小伙伴可以了解下... 目录一、直接使用代码二、详细使用1. 环境准备2. 初始化配置3. bucket配置创建4. 文件上传到os

SpringBoot整合liteflow的详细过程

《SpringBoot整合liteflow的详细过程》:本文主要介绍SpringBoot整合liteflow的详细过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋...  liteflow 是什么? 能做什么?总之一句话:能帮你规范写代码逻辑 ,编排并解耦业务逻辑,代码

Java中调用数据库存储过程的示例代码

《Java中调用数据库存储过程的示例代码》本文介绍Java通过JDBC调用数据库存储过程的方法,涵盖参数类型、执行步骤及数据库差异,需注意异常处理与资源管理,以优化性能并实现复杂业务逻辑,感兴趣的朋友... 目录一、存储过程概述二、Java调用存储过程的基本javascript步骤三、Java调用存储过程示

Visual Studio 2022 编译C++20代码的图文步骤

《VisualStudio2022编译C++20代码的图文步骤》在VisualStudio中启用C++20import功能,需设置语言标准为ISOC++20,开启扫描源查找模块依赖及实验性标... 默认创建Visual Studio桌面控制台项目代码包含C++20的import方法。右键项目的属性:

MySQL之InnoDB存储引擎中的索引用法及说明

《MySQL之InnoDB存储引擎中的索引用法及说明》:本文主要介绍MySQL之InnoDB存储引擎中的索引用法及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录1、背景2、准备3、正篇【1】存储用户记录的数据页【2】存储目录项记录的数据页【3】聚簇索引【4】二

MySQL中的InnoDB单表访问过程

《MySQL中的InnoDB单表访问过程》:本文主要介绍MySQL中的InnoDB单表访问过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、环境3、访问类型【1】const【2】ref【3】ref_or_null【4】range【5】index【6】

MySQL之InnoDB存储页的独立表空间解读

《MySQL之InnoDB存储页的独立表空间解读》:本文主要介绍MySQL之InnoDB存储页的独立表空间,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、独立表空间【1】表空间大小【2】区【3】组【4】段【5】区的类型【6】XDES Entry区结构【

SQLite3 在嵌入式C环境中存储音频/视频文件的最优方案

《SQLite3在嵌入式C环境中存储音频/视频文件的最优方案》本文探讨了SQLite3在嵌入式C环境中存储音视频文件的优化方案,推荐采用文件路径存储结合元数据管理,兼顾效率与资源限制,小文件可使用B... 目录SQLite3 在嵌入式C环境中存储音频/视频文件的专业方案一、存储策略选择1. 直接存储 vs

浏览器插件cursor实现自动注册、续杯的详细过程

《浏览器插件cursor实现自动注册、续杯的详细过程》Cursor简易注册助手脚本通过自动化邮箱填写和验证码获取流程,大大简化了Cursor的注册过程,它不仅提高了注册效率,还通过友好的用户界面和详细... 目录前言功能概述使用方法安装脚本使用流程邮箱输入页面验证码页面实战演示技术实现核心功能实现1. 随机