下载:ftp://updates.oracle.com/6810189/p6810189_10204_Linux-x86-64.zip

首先停掉原有的oracle所有服务

sqlplus / as sysdba
>shutdown immediate
>exit
$ isqlplusctl stop
$ emctl stop dbconsole
$ lsnrctl stop

unzip p6810189_10204_Linux-x86-64.zip
cd Disk1
./runInstall

用root权限执行/data/oracle/product/10.2.0/db_1/root.sh,全部选择yes

Enter the full pathname of the local bin directory: [/usr/local/bin]:
The file "dbhome" already exists in /usr/local/bin.  Overwrite it? (y/n)
[n]:
The file "oraenv" already exists in /usr/local/bin.  Overwrite it? (y/n)
[n]: y
   Copying oraenv to /usr/local/bin ...
The file "coraenv" already exists in /usr/local/bin.  Overwrite it? (y/n)
[n]: y
   Copying coraenv to /usr/local/bin ...

然后启动服务
$lsnrctl start
$emctl start dbconsole
$sqlplus / as sysdba
SQL> startup upgrade
ORACLE instance started.

Total System Global Area 1207959552 bytes
Fixed Size                  2083528 bytes
Variable Size             318768440 bytes
Database Buffers          872415232 bytes
Redo Buffers               14692352 bytes
Database mounted.
Database opened.
SQL> @/data/oracle/product/10.2.1/rdbms/admin/utlu102i.sql        //升级数据字典
SQL> @/data/oracle/product/10.2.1/rdbms/admin/catupgrd.sql
SQL> shutdown immediate;
SQL> startup
SQL> @/data/oracle/product/10.2.1/rdbms/admin/utlrp.sql
SQL> select * from v$version;

BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi
PL/SQL Release 10.2.0.4.0 - Production
CORE    10.2.0.4.0      Production
TNS for Linux: Version 10.2.0.4.0 - Production
NLSRTL Version 10.2.0.4.0 - Production

升级过程基本完成