oralce 10g(10.2.0.1) 冷备份从64位恢复到32位

环境描述:windows 2003 企业版 64位

oracle版本:oracle 10g 10.2.0.1 64位

冷备恢复到 windows XP    

               oracle 10g 10.2.0.1 32位(我自己原来的版本,原来的版本已经没有了)

1.首先先停正式库服务器的oracle服务,备份拷贝oradata下的所有文件,数据文件,控制文件等;

2.安装oracle 10g 32位的oracle,安装路径,数据库名,数据文件等盘符路径都与正式库一致;

3.cmd下重建口令文件,路径:f:oracleproduct10.2.0db_1databasepwdoracle.ora;

4.cmd下>orapwd file=f:oracleproduct10.2.0db_1databasepwdoracle.ora password = manager entries =5;

(如果不知道命令,可以直接输入orapwd回车,看帮助文档;)

把拷贝到原数据文件都拷贝到新的数据库下;

5. cmd 下sqlplus /nolog;

sql>conn  /as sysdba;

sql>startup;

6.服务如果能够正常起来,说明数据库启动,可以连接数据库,查看一下表;

7.因为是64位ORACLE恢复到32位,在查询表的时候,会报:ORA-06553: PLS-801: internal error

8.查询ORACLE日志:f:oracleproduct10.2.0admindumpalert_oracle.log;

看那个日志报错:

ORA-12012: 自动执行作业 1 出错

ORA-06553: PLS-801: 内部错误 [56319]

通过网上查询错误:http://docs.oracle.com/html/B13831_01/ap_64bit.htm#CHDCDAGE

解决方案:运行脚本用32位系统重新编译一下内核参数即可

具体步骤:SQL> conn / as sysdba;

SQL> shutdown immediate;
SQL> startup upgrade;

SQL> @f:oracleproduct10.2.0db_1 dbmsadminutlirp.sql

SQL> @f:oracleproduct10.2.0db_1/rdbmsadminutlrp.sql

SQL> shutdown immediate;

SQL> startup;

 时间比较长,要耐心等待;

顺利启动以后,用PL/SQL 查询表,看是否还报错,不报错,降级成功!

原文地址:https://www.cnblogs.com/qipilang/p/3193572.html