環境說明:
生產機: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;