RMAN还原32位数据库到64位实例的错误处理

将ORACLE 10g 32bit数据库还原到测试机ORACLE 10g 64bit的数据库实例上, 还原、恢复数据库后,使用open resetlogs打开数据库后,发现警告日志里面有ORA-12012以及ORA-06553错误:

Sun Mar  8 13:31:08 2015
LOGSTDBY: Validation complete

Starting control autobackup

Control autobackup written to DISK device

        handle ‘/u03/flash_recovery_area/backup/backupsets/ora_cfc-2179993557-20150308-00‘

Completed: alter database open resetlogs

Sun Mar  8 13:31:09 2015

Errors in file /u01/app/oracle/admin/epps/bdump/epps_j000_14891.trc:

ORA-12012: error on auto execute of job 41

ORA-06553: PLS-801: internal error [56319]

Sun Mar  8 13:31:09 2015

Errors in file /u01/app/oracle/admin/epps/bdump/epps_j001_14893.trc:

ORA-12012: error on auto execute of job 21

ORA-06553: PLS-801: internal error [56319]

Sun Mar  8 13:31:09 2015

Errors in file /u01/app/oracle/admin/epps/bdump/epps_j006_14903.trc:

ORA-12012: error on auto execute of job 42567

ORA-06553: PLS-ORA-06553: PLS-801: internal error [56319]

出现这个错误,是因为32bit和64bit数据库的wordsize不同,需要执行以下步骤完成wordsize的转换。具体可以参考How to Convert a 32-bit Database to 64-bit Database on Linux? (文档 ID 341880.1)

SQL> shutdown immediate;
Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> startup upgrade;

ORACLE instance started.

 

Total System Global Area 3590324224 bytes

Fixed Size                  2084296 bytes

Variable Size            1607467576 bytes

Database Buffers         1966080000 bytes

Redo Buffers               14692352 bytes

Database mounted.

Database opened.

SQL> @?/rdbms/admin/utlip.sql

SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> startup

ORACLE instance started.

 

Total System Global Area 3590324224 bytes

Fixed Size                  2084296 bytes

Variable Size            1607467576 bytes

Database Buffers         1966080000 bytes

Redo Buffers               14692352 bytes

Database mounted.

Database opened.

SQL>  @?/rdbms/admin/utlrp.sql

在执行脚本时,会报下面错误,官方解释为Note:If you are changing wordsize for Oracle release10.1.x/10.2.x/11.1/11.2 32-Bit to 64-bit with OLAP enabled for DB then you may likely to see the error

Fri Jan 23 17:24:05 2015

Errors in file /u01/app/oracle/admin/epps/bdump/epps_smon_9027.trc:

ORA-00604: error occurred at recursive SQL level 1

ORA-00607: Internal error occurred while making a change to a data block

ORA-00600: internal error code, arguments: [4194], [18], [13], [], [], [], [], []

Fri Jan 23 17:25:55 2015

Error 0 in kwqmnpartition(), aborting txn

Fri Jan 23 17:25:55 2015

Errors in file /u01/app/oracle/admin/epps/bdump/epps_mmon_9113.trc:

ORA-00600: internal error code, arguments: [4194], [38], [38], [], [], [], [], []

ORA-06544: PL/SQL: internal error, arguments: [56319], [], [], [], [], [], [], []

ORA-06553: PLS-801: internal error [56319]

Flush retried for xcb 0x12c114e20, pmd 0x12cca2d30

Doing block recovery for file 122 block 939

No block recovery was needed

Fri Jan 23 17:25:56 2015

Errors in file /u01/app/oracle/admin/epps/bdump/epps_mmon_9113.trc:

ORA-00600: internal error code, arguments: [4194], [38], [38], [], [], [], [], []

ORA-00600: internal error code, arguments: [4194], [38], [38], [], [], [], [], []

ORA-06544: PL/SQL: internal error, arguments: [56319], [], [], [], [], [], [], []

ORA-06553: PLS-801: internal error [56319]

ORA-600 encountered when generating server alert SMG-3503

Flush retried for xcb 0x12c114e20, pmd 0x12cca2d30

Doing block recovery for file 122 block 939

No block recovery was needed

Fri Jan 23 17:25:57 2015

Errors in file /u01/app/oracle/admin/epps/bdump/epps_mmon_9113.trc:

ORA-00600: internal error code, arguments: [4194], [38], [38], [], [], [], [], []

Flush retried for xcb 0x12c114e20, pmd 0x12cca2d30

Doing block recovery for file 122 block 939

No block recovery was needed

参考资料:

http://blog.itpub.net/23135684/viewspace-757172

https://support.oracle.com/epmos/faces/SearchDocDisplay?_adf.ctrl-state=wo3y0s6qj_9&_afrLoop=209150676970938#GOAL

时间: 2024-08-08 13:48:07

RMAN还原32位数据库到64位实例的错误处理的相关文章

64位 Windows 8/7 系统下的 32位PLSQL 联接 64 位 Oracle 11g

64位 Windows 8/7 系统下的 32位PL/SQL 联接 64 位 Oracle 11g 说明:安装完后Oracle的 oci.dll 是64位的,而32位应用程序 PL/SQL Developer 无法加载 解决方案 步骤一:下载Instant Client for Microsoft Windows (32-bit) 包  地址:http://www.oracle.com/technetwork/topics/winsoft-085727.html 步骤二:解压文件 步骤三:配置系

32位程序下调用64位函数——进程32位模式与64位模式切换

之前学习的32位进程中调用64位进程函数的知识整理一下,也就是32位模式与64位模式之间的切换. 相关博客:http://www.cnblogs.com/lanrenxinxin/p/4821152.html 这个博客中提到了github上的开源库,我在另一份开源项目中也看到了个库,可以切换32位至64位. 如果对这个功能具体实现比较感兴趣的朋友可以看看下面的内容. 我阅读了源码并进行了注释,算是对这个具体方法的分析和学习. 关键: 1.在x64下的进程,不管是32位或者是64位,实际上都映射了

C# 32位程序在64位系统下注册表操作

在64位的Windows操作系统中,为了兼容32位程序的运行,64位的Windows操作系统采用重定向机制.目的是为了能让32位程序在64位的操作系统不仅能操作关键文件文夹和关键的注册表并且又要避免与64位程序冲突 相关资料请查看32位程序在64位系统下运行的重定向机制 下面是以获取操作系统安装密匙KEY的案例: using System; using System.Collections.Generic; using System.Linq; using System.Text; using

32位程序移植64位经验

最近移植了一个32位程序到64位,原本以为简单的事,折腾了好几天,现在记录下来过程,供有相关问题的人参考:程序是一个输入法,源代码来自盒子 http://www.2ccc.com/article.asp?articleid=2850,再此感谢刘麻子大侠,输入法大量的使用了windows定义的结构体或记录类型,涉及的数据类型很多,在32到64转换的过程中参考了http://blog.csdn.net/hpjx1987/article/details/51453586,首先感谢作者共享知识,但这里有

关于32位程序在64位系统下运行中需要注意的重定向问题(有图,很清楚)

0x00 前言 最近学习了[email protected]的文章<Persistence Architecture Matters>,恰巧解决了我之前遇到过的一个问题,理清了文件和注册表重定向中需要注意的细节 大家在学习的过程中难免也会碰到,所以在此分享一下. <Persistence Architecture Matters>的链接:https://labs.mwrinfosecurity.com/blog/persistence-architecture-matters/ 0

32位程序在64位系统上获取系统安装时间(要使用KEY_WOW64_64KEY标记)

众所周知,取系统的安装时间可取注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion的子项InstallDate,此值是个DWORD类型的UnixStamp.  但是在64位系统上有所不同(仅测试了win7.win8),默认情况下32程序在64位机器上访问的是下面这个地址HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion

32位机和64位机的区别及基本数据类型占字节数

一)64位系统和32位有什么区别? 1.64bit CPU拥有更大的寻址能力,最大支持到16GB内存,而32bit只支持4G内存 2.64位CPU一次可提取64位数据,比32位提高了一倍,理论上性能会提升1倍.但这是建立在64bit操作系统,64bit软件的基础上的. 什么是64位处理器? 之所以叫做“64位处理器”,是因为电脑内部都是实行2进制运算,处理器(CPU)一次处理数据的能力也是2的倍数.8位处理器.16位处理器.32位处理器和64位处理器,其计数都是2的倍数.一次处理的数据越大,该电

iOS上应用如何兼容32位系统和64位系统

在苹果推出iPhone5S时,64位的应用就走到了眼前.当时就看见苹果官方资料宣布iOS7.x的SDK支持了64位的应用,而且内置的应用都已经是64位. 我记得自己刚刚接触电脑时还有16位的系统,指针的寻址范围还是16位的.当年用TurboC时,还要根据应用的大小选择是tiny模式还是其他.后来很长一段时间使用32位的模型编程,4G是牢牢记住的一个边界条件.而现在,64位走到了眼前. 就如同16位转向32位一样,硬件肯定是最先推出的,SDK也会跟进,然后各种第三方的应用才会逐步跟进,这个过程一般

32位机与64位机数据大小

32位机与64位机数据大小 32位编译器: char :1个字节       char*(即指针变量): 4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节.同理64位编译器) short int : 2个字节 int:  4个字节 unsigned int : 4个字节 float:  4个字节 double:   8个字节 long:   4个字节 long long:  8个字节 unsigned long:  4个字节 64位编译器: char :1个字节 char*