WIN2008 R2 64位下的ORACLE 10.2.0.3 32位迁移到ORACLE 10.2.0.4 64位
因为Alter_sid.log 在无限增长不到2年时间已经到1.3G,都是
OER 7451 in Load Indicator : Error Code = OSD-04500:指定了非法选项
Sun Apr 22 11:15:51 2012OER 7451 in Load Indicator :
Error Code = OSD-04500: 指定了非法选项O/S-Error: (OS 1) 函数不正确。
!OER 7451 in Load Indicator : Error Code = OSD-04500: 指定了非法选项O/S-Error: (OS 1) 函数不正确。
原因:32位 ORACLE 运行于64位操作系统。
计划:将32位ORACLE 升级到64位。
参考:http://blog.csdn.net/robinson_0612/article/details/6396783
因为现有版本的ORACLE 10.2.0.3 32位运行于64位操作系统导致,而且有偶然的当机现象(打不开本地数据库),于是想把ORACLE 升级为64位版本,查看了大量文档,因为运行系统不能长时间停机,于是把一台PAS服务器做试验。
一、原PAS未装ORACLE,新安装ORACLE 10.2.0.4 64位版本,新建与正常系统同名的实例数据库,配置好监听。
二、停止新系统的ORACLE服务和监听服务
三、把32位ORACLE 数据文件复制到新系统同样位置(原来把32位系统的相关服务也停了复制,后来发现可以在不影响原ORACLE的情况下直接复制出来,用千兆网卡对拷,可以达到近100M/S的速度,历史库使用了11G,但分配了70G空间,第一次时间有点长。第二次试验时先用ORACLE客户端把表空间缩小至30G左右,再复制就快多了。)
四、开启新系统的ORACLE服务和监听服务
五、开始用SQLPLUS升级。
C:\>SQLPLUS / as sysdba
1.关闭需要升级的实例
停止实例
SQL> shutdown immediate
2.修改字长位数,更新数据字典
SQL> startup upgrade
SQL> @c:\oracle\product\10.2\db_1\rdbms\admin\utlirp.sql 从32位升级64位必须,该项为把32位字长改为64位
SQL> shutdown immediate
SQL> startup upgrade
SQL> spool patch.log
SQL> @c:\oracle\product\10.2\db_1\rdbms\admin\catupgrd.sql 跨版本必须,该项运行时间长,可达几十分钟,需耐心
SQL> spool off
3.重编译失效对象:
sql>shutdown immediate
sql>startup
SQL> @c:\oracle\product\10.2\db_1\rdbms\admin\utlrp.sql 该项运行时间不长
4.升级后的检测
SQL>select comp_name,version,status from sys.dba_registry;
显示三个部分都是“VALID”
5.检查组件的升级情况
SQL>select * from utl_recomp_errors;
无
6.修改兼容参数(可选)
SQL> alter system set compatible='10.2.0.4.0' scope=spfile
7.重新启动数据库:
SQL> shutdown
SQL> startup
六、配置相关软件环境。经测试访问数据库正常。描述库与历史库都能正常访问。
通过试验,数据库系统不能直接从32位10.2.0.3 升级至64位10.2.0.4,
1、停止32位ORACLE实例和监听服务。
2、冷备份数据库(经试验,可以直接将ORADATA文件夹改名)。
3、卸载原32位低版本ORACLE,再新安装64位高版本ORACLE到同一位置(把原db_1和admin文件夹改名)。
4、用数据库配置助手新建与原名称一致的实例
5、停止ORACLE实例和监听服务
6、还原备份数据库(将新建的ORADATA改名或删除,将原备份的改为ORADATA)
7、在SQLPLUS进行命令行升级(步骤见上述)。
8、运行脚本前修改相关参数,可以减少运行时间。 show parameter shared_pool_size
SQL> alter system set java_pool_size=512M
SQL> altel system set shared_pool_size=800M