分割分区时遇到ORA-00604 ORA-00001错误

2011年11月2日
在做表分割的时候碰到如下错误:
SQL> alter table TBCS.CS_LOG_GPRS_ADJUST split partition P_R_955_MAX at (955,TO_DATE('2012-03-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')) into (partition P_R_955_201202,PARTITION P_R_955_MAX);
alter table TBCS.CS_LOG_GPRS_ADJUST split partition P_R_955_MAX at (955,TO_DATE('2012-03-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')) into (partition P_R_955_201202,PARTITION P_R_955_MAX)
*
ERROR at line 1:
ORA-00604: error occurred at recursive SQL level 1
ORA-00001: unique constraint (SYS.I_TABPART_BOPART$) violated

数据库版本是:
SQL> select * from v$version;

BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
PL/SQL Release 10.2.0.1.0 - Production
CORE 10.2.0.1.0 Production
TNS for Linux: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production

查看MOS,导致错误的原因是未公布的Bug 3748430
解决办法是打补丁Patch 3748430或者是升级到10.2.0.4版本,该版本已经修复了该Bug。

打好补丁以后,再次执行以上SQL语句,不会出现错误信息,问题解决了。

打补丁步骤:
1.再MOS上下载补丁包。

2.解压补丁包
[oracle@testmanaual patch]$ uzip p3748430_10201_LINUX.zip
[oracle@testmanaual patch]$ ls -l
总用量 76
drwxr-xr-x 4 oracle oinstall 4096 2006-01-19 3748430
-rw-r--r-- 1 root root 68866 10月 29 17:12 p3748430_10201_LINUX.zip

3.进入到补丁目录中
[oracle@testmanaual patch]$ cd 3748430/

4.执行以下命令,应用补丁
[oracle@testmanaual 3748430]$ opatch apply
Invoking OPatch 10.2.0.1.0
Oracle 中间补丁程序安装程序版本 10.2.0.1.0
版权所有 (c) 2005, Oracle Corporation。保留所有权利。。
Oracle 主目录 : /u01/oracle/product/10.2.0/db_1
主产品清单: /u01/oracle/oraInventory
从 : /u01/oracle/product/10.2.0/db_1/oraInst.loc
OPatch 版本 : 10.2.0.1.0
OUI 版本 : 10.2.0.1.0
OUI 位置 : /u01/oracle/product/10.2.0/db_1/oui
日志文件位置 : /u01/oracle/product/10.2.0/db_1/cfgtoollogs/opatch/opatch-2011_Oct_29_17-53-39-CST_Sat.log
ApplySession 将中间补丁程序 '3748430' 应用到 OH '/u01/oracle/product/10.2.0/db_1'
调用 fuser 来检查活动的进程。
Invoking fuser on "/u01/oracle/product/10.2.0/db_1/bin/oracle"
OPatch 从产品清单中检测到非集群 Oracle 主目录, 将仅对本地系统打补丁。
请关闭本地系统上在此 ORACLE_HOME 之外运行的 Oracle 实例。
(Oracle 主目录 = '/u01/oracle/product/10.2.0/db_1')
本地系统是否已准备打补丁?
是否继续? [y|n]
y
User Responded with: Y
为 Oracle 主目录备份文件和产品清单 (不是用于自动回退)
正在备份受补丁程序 '3748430' 影响的文件以用于恢复。此操作将需要一些时间...
正在备份受补丁程序 '3748430' 影响的文件以用于回退。此操作将需要一些时间...
正在为组件 oracle.rdbms, 10.2.0.1.0 打补丁...
用 "lib/libserver10.a/kkpo.o" 更新归档文件 "/u01/oracle/product/10.2.0/db_1/lib/libserver10.a"
正在对目标 ioracle 运行 make 命令
ApplySession 将中间补丁程序 '3748430' 添加到产品清单
本地系统已打补丁, 可以重新启动。
OPatch succeeded.

5.补丁已成功的打上了,查看打上的补丁:
[oracle@testmanaual 3748430]$ opatch lsinventory
Invoking OPatch 10.2.0.1.0
Oracle 中间补丁程序安装程序版本 10.2.0.1.0
版权所有 (c) 2005, Oracle Corporation。保留所有权利。。
Oracle 主目录 : /u01/oracle/product/10.2.0/db_1
主产品清单: /u01/oracle/oraInventory
从 : /u01/oracle/product/10.2.0/db_1/oraInst.loc
OPatch 版本 : 10.2.0.1.0
OUI 版本 : 10.2.0.1.0
OUI 位置 : /u01/oracle/product/10.2.0/db_1/oui
日志文件位置 : /u01/oracle/product/10.2.0/db_1/cfgtoollogs/opatch/opatch-2011_Oct_29_17-54-25-CST_Sat.log
Lsinventory Output file location : /u01/oracle/product/10.2.0/db_1/cfgtoollogs/opatch/lsinv/lsinventory-2011_Oct_29_17-54-25-CST_Sat.txt
--------------------------------------------------------------------------------
已安装的顶级产品 (1):
Oracle Database 10g 10.2.0.1.0
此 Oracle 主目录中已安装 1 个产品。
中间补丁程序 (1):
Patch 3748430 : applied on Sat Oct 29 17:54:17 CST 2011
Created on 18 Jan 2006, 11:40:01 hrs PST8PDT
Bugs fixed:
3748430
--------------------------------------------------------------------------------
OPatch succeeded.

6.如果打补丁过程中出现错误,需要回退操作的话,执行以下命令:
[oracle@testmanaual patch]$ cd 3748430
[oracle@testmanaual 3748430]$ opatch rollback -id 3748430

注意事项:在给系统打补丁之前最后先对数据库做一个完全备份。

[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26121829/viewspace-1056097/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/26121829/viewspace-1056097/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值