手工将oracle9i升到11g

时间:2022-03-13 22:31:30

环境说明:

生产机:A机,solaris10,oralce9.2.0.8     db_name:nf

目标机:B机,solaris10,oralce11.2.0.1 db_name:nf

1、迁移数据文件:

A机上:

SQL>shutdown immediate

$tar cvf  data.tar  /data1

说明:这个包里包括了控制文件,数据文件,和日志文件。

将压好的包ftp到B机上相同的位置(不同也可以,相同省事),解压相应的文件。

$tar xvf data.tar

2、设置环境变量

stty istrip
PATH=/usr/bin:/usr/ucb:/etc:.
export PATH

ORACLE_BASE=/data1/oracle/u01
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
#ORACLE_SID=NF
export ORACLE_BASE
export ORACLE_HOME
PATH=$ORACLE_HOME/bin:$PATH
export PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH LD_LIBRARY_PATH


if [ -f $HOME/.profile-EIS ]
then
    echo "Sourcing $HOME/.profile-EIS....."
    . $HOME/.profile-EIS
fi

#
#       Remove #NOHEAD from next section for cluster node or domain
#       If you do not use a vt100 change it to your terminal type.
#
if [ "`tty`" != "not a tty" ]
then         
     if [ "`tty`" = "/dev/console" ]
     then
         TERM=vt100
         export TERM
         echo ""
         echo "TERM=$TERM"
         echo ""
     else
         LOGINFROM=`who am i | cut -f2 -d"(" | cut -f1 -d")"`
         DISPLAY=${LOGINFROM}
         export LOGINFROM DISPLAY
         echo ""
         echo "DISPLAY=$DISPLAY"
         echo ""
     fi
fi

3、生成并修改pfile文件

$cat init.ora|grep -v ^#|grep -v ^$ > initNF.ora

参照原来的机器的相关参数修改相关参数即可

4.修改oratab,这儿要注意的是路径应该还是9i的,否则后面的DBUA会报错的

5.执行dbua

此过程及其漫长,大约1个半小时,甚至更多

6.重启数据库

7.检查invalid项

SQL>select count(*) from dba_invalid_objects;