Oracle 10g 升级到11g实训项目
Oracle 10g UPDATE 11g实训项目
一、项目流程:
1、在Oracle 10.2.0.5数据库所在的服务器上安装11.2.0.3数据库软件
2、在11.2.0.3的环境变量下,执行dbua,执行图形化数据库升级操作
3、后续工作:修改spfile中的compatible等操作
二、修改linux内核参数及安装必备包(存储、具体参数和包可在安装软件时先看,再退出安装再改)
net.core.rmen_dafault=4194304
net.core.rmen_max=4194304
net.core.wmen_dafault=1048675
net.core.wmen_max=1048675
fs.aio-max-nr=1048576
三、安装软件
在此不累赘了
四、在11.2.0.3的环境变量下,执行dbua,执行图形化数据库升级操作
1)Vim /home/oracle/.bash_profile(修改ORACLE_HOME)
2)从11gR2的Oracle Home下拷贝以下文件至一个临时文件夹:
$ORACLE_HOME/rdbms/admin/utlu112i.sql
3)登陆数据库,运行:
$ sqlplus '/ as sysdba'
SQL> @utlu112i.sql
SQL> spool off
SQL>
4)检查Timezone版本,主要参考:
Actions For DST Updates When Upgrading To Or Applying The 11.2.0.2 Patchset [ID 1201253.1]
注意:11g的软件里已经自带了版本1-14的Timezone。
先检查一下当前timezone版本:
SQL> conn / as sysdba
Connected.
SQL>SELECT version FROM v$timezone_file;
根据当前timezone的版本,又分三种情况:
1)等于14:这已经是11g需要的版本了,所以升级前后都不需要做任何事,这种情况很罕见。
2)高于14:升级前,必须得给11g软件打上该timezone版本的DST补丁,这种情况也很罕见。
3)低于14:大多数都是这种情况,在升级前不需要在11g软件层面打补丁,在升级后需要再数据库层面将Timezone升级至14,具体看后面的步骤
Step 7.
检查国家字符集是否是UTF8或AL16UTF16:
select value from NLS_DATABASE_PARAMETERS where parameter = 'NLS_NCHAR_CHARACTERSET';
5)停止listener:
$ lsnrctl stop
停止其它可执行程序,如dbconsole, isqlplus等
$ emctl stop dbconsole
$ isqlplusctl stop
关闭数据库:
$ sqlplus "/as sysdba"
SQL> shutdown immediate;
接着对全库做个冷备。
6)以10g的pfile为模板,并根据Step 2生成的upgrade_info.log里的建议,为11g创建一个新的pfile。
7)升级前的检查步骤基本上已经完成了,在跑升级脚本之前,需要把相关参数改为指向新的11g软件:
$ export ORACLE_HOME=<location of Oracle 11.2>
$ export PATH=$ORACLE_HOME/bin:$PATH
$ export ORACLE_BASE=<Oracle_Base set during installation>