分类: Oracle
2011-10-17 21:33:29
1.1. 检查操作系统的版本, 补丁, JDK版本是否符合要求,修改内核参数.
vmo -p -o minperm%=3 vmo -p -o maxperm%=90 vmo -p -o maxclient%=90 vmo -p -o lru_file_repage=0 vmo -p -o strict_maxclient=1 vmo -p -o strict_maxperm=0 chdev -l sys0 -a maxuproc=10000 chdev -l sys0 -a ncargs='128' no -r -o ipqmaxlen=512 no -p -o rfc1323=1 no -p -o sb_max=41943040 no -p -o tcp_recvspace=1048576 no -p -o tcp_sendspace=1048576 no -p -o udp_recvspace=10485760 no -p -o udp_sendspace=1048576 |
1.2. 检查安装ORACLE产品的用户及组:
创建grid用户,并修改oraprod用户的相关属性
/usr/bin/chuser capabilities=CAP_NUMA_ATTACH,CAP_BYPASS_RAC_VMM,CAP_PROPAGATE oraprod /usr/bin/chuser capabilities=CAP_NUMA_ATTACH,CAP_BYPASS_RAC_VMM,CAP_PROPAGATE grid |
1.3. 设置grid用户的环境变量
umask 022 export ORACLE_BASE=/app/grid/grid_base export ORACLE_HOME=/app/grid/11.2.0 export ORACLE_SID=+ASM1 export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK export NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss" export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin export ORACLE_PATH=${PATH}:$ORACLE_BASE/common/oracle/sql:.:$ORACLE_HOME/rdbms/admin export ORACLE_TERM=xterm export TNS_ADMIN=$ORACLE_HOME/network/admin export ORA_NLS10=$ORACLE_HOME/nls/data export LD_LIBRARY_PATH=$ORACLE_HOME/lib export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib export CLASSPATH=$ORACLE_HOME/JRE export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib export THREADS_FLAG=native export TEMP=/tmp export TMPDIR=/tmp export PS1=`hostname`:'$PWD'"$" |
1.4. 配置grid用户在两节点的等效性
1.5. Grid Infrastructure安装
使用grid用户进行安装,安装目录/app/grid/11.2.0
./runInstaller
安装过程略,请参考安装手册
1.6. Database安装
使用oraprod用户进行安装。使用11g的profile文件。安装目录/app/oracle/11.2.0
./runInstaller
安装过程略,请参考安装手册
1.7. 安装PSU UPDATE3补丁
分别对GRID_HOME和ORACLE_HOME打PSU补丁
二.9i数据库升级前准备
2.1.执行pre-upgrade脚本utlu112i.sql
以下部分需要在参数文件中修改:
WARNING: --> "compatible" must be set to at least 10.1.0 . ********************************************************************** Renamed Parameters: [Update Oracle Database 11.2 init.ora or spfile] ********************************************************************** -- No renamed parameters found. No changes are required. . ********************************************************************** Obsolete/Deprecated Parameters: [Update Oracle Database 11.2 init.ora or spfile] ********************************************************************** --> optimizer_max_permutations 10.1 OBSOLETE --> row_locking 10.1 OBSOLETE --> undo_suppress_errors 10.1 OBSOLETE --> max_enabled_roles 10.1 DEPRECATED --> enqueue_resources 10.2 OBSOLETE --> sql_trace 10.2 DEPRECATED --> background_dump_dest 11.1 DEPRECATED replaced by "diagnostic_dest" --> user_dump_dest 11.1 DEPRECATED replaced by "diagnostic_dest" |
2.2. 确认数据库中没有无效对象
2.3. 检查具有connect角色的用户
由于升级后,connect角色只具有create session权限,因此要单独给这些用户附权限。
SQL> SELECT grantee FROM dba_role_privs 2 WHERE granted_role = 'CONNECT' and 3 grantee NOT IN ( 4 'SYS', 'OUTLN', 'SYSTEM', 'CTXSYS', 'DBSNMP', 5 'LOGSTDBY_ADMINISTRATOR', 'ORDSYS', 6 'ORDPLUGINS', 'OEM_MONITOR', 'WKSYS', 'WKPROXY', 7 'WK_TEST', 'WKUSER', 'MDSYS', 'LBACSYS', 'DMSYS', 8 'WMSYS', 'EXFSYS', 'SYSMAN', 'MDDATA', 9 'SI_INFORMTN_SCHEMA', 'XDB', 'ODM');
GRANTEE ------------------------------ OLAPSYS OLAP_USER |
2.4. 检查db_link
9i数据库中的db_link在升级后会失效,记录一下现有的db_link,升级后需要重建
升级后需要重建的db_link
SQL> l 1 SELECT 'CREATE '||DECODE(U.NAME,'PUBLIC','public ')||'DATABASE LINK '||CHR(10) 2 ||DECODE(U.NAME,'PUBLIC',Null, 'SYS','',U.NAME||'.')|| L.NAME||chr(10) 3 ||'CONNECT TO ' || L.USERID || ' IDENTIFIED BY "'||L.PASSWORD||'" USING 4 '''||L.HOST||'''' 5 ||chr(10)||';' TEXT 6 FROM SYS.LINK$ L, SYS.USER$ U 7* WHERE L.OWNER# = U.USER# SQL> /
TEXT ------------------------------------------------------------------------------------------------------------------------------------ |
2.5. 确认没有需要恢复或正在备份的数据文件
SELECT * FROM v$recover_file;
SELECT * FROM v$backup WHERE status != 'NOT ACTIVE'; |
2.6. 关闭9i数据库
如果可能最好做一个冷备,包括ORACLE_HOME,所有数据文件,控制文件和参数文件。
三.升级
3.1. 准备新的profile文件
umask 022 export ORACLE_BASE=/app/oracle export ORACLE_HOME=$ORACLE_BASE/11.2.0 export ORACLE_SID=prod export NLS_LANG=American_America.ZHS16GBK export NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss" export PATH=${PATH}:$HOME/bin:$ORACLE_HOME/bin:/app/grid/11.2.0/bin/:$ORACLE_HOME/OPatch export ORACLE_TERM=xterm export TNS_ADMIN=$ORACLE_HOME/network/admin export ORA_NLS10=$ORACLE_HOME/nls/data export LD_LIBRARY_PATH=$ORACLE_HOME/lib export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib export CLASSPATH=$ORACLE_HOME/JRE export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib export THREADS_FLAG=native export TEMP=/tmp export TMPDIR=/tmp export PS1=`hostname`:'$PWD'"$" |
3.2. 修改initprod.ora文件
注意需要保留_kghdsidx_count=1参数,否则upgrade的时候会出错
3.3. startup UPGRADE方式启动数据库
3.4. 创建sysaux表空间
CREATE TABLESPACE SYSAUX DATAFILE '/oracle/proddata/sysaux01.dbf' SIZE 2048M REUSE EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO ONLINE; |
3.5. 执行catupgrd.sql脚本
3.6. 执行utlu112s.sql脚本
确认数据库中的所有组件都升级有效
3.7. 执行catuppst.sql脚本完成升级
3.8. 执行utlrp.sql脚本编译无效对象
四.单实例转换为RAC
采用oracle自带的rconfig工具进行转换,配置文件rconfig.xml内容如下:
xmlns:xsi="" xsi:schemaLocation=" rconfig.xsd">
|
注意修改红色标注的部分,使符合本系统转换需要,需要实例在OPEN状态。
执行下面的命令开始转换
#rconfig rconfig.xml
根据数据文件大小,IO性能的不同,该操作时间也不确定。