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

相关文章

oracle 11g导入\导出(expdp impdp)之导入过程

《oracle11g导入导出(expdpimpdp)之导入过程》导出需使用SEC.DMP格式,无分号;建立expdir目录(E:/exp)并确保存在;导入在cmd下执行,需sys用户权限;若需修... 目录准备文件导入(impdp)1、建立directory2、导入语句 3、更改密码总结上一个环节,我们讲了

ShardingProxy读写分离之原理、配置与实践过程

《ShardingProxy读写分离之原理、配置与实践过程》ShardingProxy是ApacheShardingSphere的数据库中间件,通过三层架构实现读写分离,解决高并发场景下数据库性能瓶... 目录一、ShardingProxy技术定位与读写分离核心价值1.1 技术定位1.2 读写分离核心价值二

MyBatis-plus处理存储json数据过程

《MyBatis-plus处理存储json数据过程》文章介绍MyBatis-Plus3.4.21处理对象与集合的差异:对象可用内置Handler配合autoResultMap,集合需自定义处理器继承F... 目录1、如果是对象2、如果需要转换的是List集合总结对象和集合分两种情况处理,目前我用的MP的版本

Java Kafka消费者实现过程

《JavaKafka消费者实现过程》Kafka消费者通过KafkaConsumer类实现,核心机制包括偏移量管理、消费者组协调、批量拉取消息及多线程处理,手动提交offset确保数据可靠性,自动提交... 目录基础KafkaConsumer类分析关键代码与核心算法2.1 订阅与分区分配2.2 拉取消息2.3

使用SpringBoot+InfluxDB实现高效数据存储与查询

《使用SpringBoot+InfluxDB实现高效数据存储与查询》InfluxDB是一个开源的时间序列数据库,特别适合处理带有时间戳的监控数据、指标数据等,下面详细介绍如何在SpringBoot项目... 目录1、项目介绍2、 InfluxDB 介绍3、Spring Boot 配置 InfluxDB4、I

AOP编程的基本概念与idea编辑器的配合体验过程

《AOP编程的基本概念与idea编辑器的配合体验过程》文章简要介绍了AOP基础概念,包括Before/Around通知、PointCut切入点、Advice通知体、JoinPoint连接点等,说明它们... 目录BeforeAroundAdvise — 通知PointCut — 切入点Acpect — 切面

C++ STL-string类底层实现过程

《C++STL-string类底层实现过程》本文实现了一个简易的string类,涵盖动态数组存储、深拷贝机制、迭代器支持、容量调整、字符串修改、运算符重载等功能,模拟标准string核心特性,重点强... 目录实现框架一、默认成员函数1.默认构造函数2.构造函数3.拷贝构造函数(重点)4.赋值运算符重载函数

MySQ中出现幻读问题的解决过程

《MySQ中出现幻读问题的解决过程》文章解析MySQLInnoDB通过MVCC与间隙锁机制在可重复读隔离级别下解决幻读,确保事务一致性,同时指出性能影响及乐观锁等替代方案,帮助开发者优化数据库应用... 目录一、幻读的准确定义与核心特征幻读 vs 不可重复读二、mysql隔离级别深度解析各隔离级别的实现差异

Nginx添加内置模块过程

《Nginx添加内置模块过程》文章指导如何检查并添加Nginx的with-http_gzip_static模块:确认该模块未默认安装后,需下载同版本源码重新编译,备份替换原有二进制文件,最后重启服务验... 目录1、查看Nginx已编辑的模块2、Nginx官网查看内置模块3、停止Nginx服务4、Nginx

Jenkins的安装与简单配置过程

《Jenkins的安装与简单配置过程》本文简述Jenkins在CentOS7.3上安装流程,包括Java环境配置、RPM包安装、修改JENKINS_HOME路径及权限、启动服务、插件安装与系统管理设置... 目录www.chinasem.cnJenkins安装访问并配置JenkinsJenkins配置邮件通知