联系:手机/微信(+86 17813235971) QQ(107644445)
标题:ORA-06553: PLS-801: internal error [56319]
作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]
开发那边有台Linux 32位服务器因为网卡问题,准备把数据库迁移到一台新服务器(Linux 64)上。因为是开发环境(对稳定性要求不是非常高,停机时间几乎没有要求),还有我比较懒,准备两边安装相同版本,打上相同的补丁,然后直接拷贝datafile/redo/controlfile/spfile的方法完成数据文件迁移
一、源端信息
--系统信息 [oracle@localhost ~]$ uname -a Linux localhost.localdomain 2.6.18-194.el5PAE #1 SMP Tue Mar 16 22:00:21 EDT 2010 i686 i686 i386 GNU/Linux --数据库信息 [oracle@localhost ~]$ sqlplus / as sysdba SQL*Plus: Release 10.2.0.4.0 - Production on Thu Dec 15 13:38:51 2011 Copyright (c) 1982, 2007, Oracle. All Rights Reserved. Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production With the Partitioning, OLAP, Data Mining and Real Application Testing options
二、目标端信息
--操作系统信息 [oracle@gongantest ~]$ uname -a Linux gongantest 2.6.18-194.el5 #1 SMP Fri Apr 2 14:58:14 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux --数据库信息 [oracle@gongantest ~]$ sqlplus / as sysdba SQL*Plus: Release 10.2.0.4.0 - Production on Thu Dec 15 13:43:14 2011 Copyright (c) 1982, 2007, Oracle. All Rights Reserved. Connected to an idle instance.
三、迁移数据库
1.修改目标库ORACLE_SID变量等环境变量
2.目标库建立相关目录(参考源库)
3.使用shutdown immediate关闭源库
4.拷贝spfile和oradata中文件
四、启动目标端数据库
[oracle@gongantest gaxt]$ sqlplus / as sysdba SQL*Plus: Release 10.2.0.4.0 - Production on Thu Dec 15 12:46:19 2011 Copyright (c) 1982, 2007, Oracle. All Rights Reserved. Connected to an idle instance. SQL> startup ORACLE instance started. Total System Global Area 1526726656 bytes Fixed Size 2084136 bytes Variable Size 369099480 bytes Database Buffers 1140850688 bytes Redo Buffers 14692352 bytes Database mounted. Database opened.
五、收集系统统计信息
SQL> exec dbms_stats.delete_system_stats(); BEGIN dbms_stats.delete_system_stats(); END; * ERROR at line 1: ORA-06553: PLS-801: internal error [56319]
六、重新编译对象
SQL> shutdown immediate; SQL> startup upgrade; SQL> @?/rdbms/admin/utlirp.sql SQL> @?/rdbms/admin/utlrp.sql SQL> shutdown immediate; SQL> startup;
七、出现ORA-07445[_intel_fast_memcpy.J()+250]错误
--alert日志 Thu Dec 15 13:07:22 2011 Errors in file /opt/oracle/admin/gaxt/udump/gaxt_ora_13898.trc: ORA-07445: exception encountered: core dump [_intel_fast_memcpy.J()+250] [SIGSEGV] [Address not mapped to object] [0x2BA0E731928F] [] [] --trace文件 *** 2011-12-15 12:58:49.883 SERVER COMPONENT id=UTLRP_BGN: timestamp=2011-12-15 12:58:49 *** 2011-12-15 13:07:22.063 Exception signal: 11 (SIGSEGV), code: 1 (Address not mapped to object), addr: 0x2ba0e731928f, PC: [0x2b9fdf587cd8, _intel_fast_memcpy.J()+250] *** 2011-12-15 13:07:22.063 ksedmp: internal or fatal error ORA-07445: exception encountered: core dump [_intel_fast_memcpy.J()+250] [SIGSEGV] [Address not mapped to object] [0x2BA0E731928F] [] [] Current SQL statement for this session: declare rc sys_refcursor; begin :1 := "SYS"."OLAPIMPL_T"."ODCITABLEDESCRIBE"(:2 ,'SYS.AWMD duration query','olapsys.ALL_OLAP2_AW_METADATA_T','ACTIVE_CATALOG ''ALL_CATALOGS'' ''ALL''',' MEASURE AWOWNER FROM sys.awmd!CAT_AWOWNER MEASURE AWNAME FROM sys.awmd!CAT_AWNAME MEASURE COL5 FROM sys.awmd!CAT_CATALOG_ID MEASURE COL1 FROM sys.awmd!CAT_MEASFOLDERNAME MEASURE COL2 FROM sys.awmd!CAT_MEASFOLDERDESC MEASURE COL4 FROM sys.awmd!CAT_PARENTFOLDERNAME DIMENSION AWMDKEY FROM sys.awmd!AWMDKEY_CAT'); end;
查看MOS,发现 Oracle OLAP AWs(Analytical Workspace)在迁移过程中没有正确处理导致,不过该功能该库中没有使用到,直接忽略
八、查询组件是否都正常
SQL> col comp_name for a40 SQL> SELECT COMP_NAME,STATUS FROM DBA_REGISTRY; COMP_NAME STATUS ---------------------------------------- ---------------------- Spatial VALID Oracle interMedia VALID OLAP Catalog VALID Oracle Enterprise Manager VALID Oracle XML Database VALID Oracle Text VALID Oracle Expression Filter VALID Oracle Rules Manager VALID Oracle Workspace Manager VALID Oracle Data Mining VALID Oracle Database Catalog Views VALID COMP_NAME STATUS ---------------------------------------- ---------------------- Oracle Database Packages and Types VALID JServer JAVA Virtual Machine VALID Oracle XDK VALID Oracle Database Java Packages VALID OLAP Analytic Workspace VALID Oracle OLAP API VALID
九、收集系统信息
SQL> exec dbms_stats.gather_system_stats(gathering_mode => 'START'); PL/SQL procedure successfully completed. --一段时间后 SQL> exec dbms_stats.gather_system_stats(gathering_mode => 'STOP'); PL/SQL procedure successfully completed.