mkdir -p /u01/app/oracle/product/11.2.0/db_home2
chown oracle:oinstall /u01/app/oracle/product/11.2.0/db_home2
注意:在安装前一定要取消Oracle用户的ORACLE_BASE,ORACLE_HOME,ORACLE_SID等环境变量设置。
(.bash_profile 文件中注释相关的行)
cat .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/.local/bin:$HOME/bin
export PATH
#export ORACLE_SID=orcl
#export ORACLE_BASE=/u01/app/oracle
#export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_home
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/lib64:$ORACLE_HOME/rdbms/lib:/lib:/usr/lib
#PATH=$ORACLE_HOME/bin:$PATH:$HOME/bin
umask 022
export PATH
现在只是安装新版本软件,对运行的数据库没有影响,数据库是启动还是关闭都行。
unzip p13390677_112040_Linux-x86-64_1of7.zip -d /tmp/
unzip p13390677_112040_Linux-x86-64_2of7.zip -d /tmp/
./runInstaller
(具体安装步骤略)
su - oracle
(这里是旧目录)
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_home
export ORACLE_SID=orcl
如果前面关闭了数据库,需启动,没有则忽略。
执行新目录下的utlull2i.sql来进行升级前的检查:
$ORACLE_HOME/bin/sqlplus / as sysdba
@/u01/app/oracle/product/11.2.0/db_1/rdbms/admin/utlu112i.sql
PURGE DBA_RECYCLEBIN;
execute dbms_stats.gather_dictionary_stats;
SQL> ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE='5120m';
System altered.
SQL> alter system set db_recovery_file_dest='/recovery';
System altered.
SQL> CREATE RESTORE POINT dbua01 GUARANTEE FLASHBACK DATABASE;
Restore point created.
失败时恢复:
SQL> shutdown immediate
SQL> startup mount
SQL> flashback database to restore point dbua01;
SQL> alter database open resetlogs;
Oracle用户执行:
/u01/app/oracle/product/11.2.0/db_1/bin/dbua
SQL> shutdown immediate
vi /etc/oratab
orcl:/u01/app/oracle/product/11.2.0/db_home2:N
cp /u01/app/oracle/product/11.2.0/db_home/dbs/* /u01/app/oracle/product/11.2.0/db_home2/dbs/
cp -r /u01/app/oracle/product/11.2.0/db_home/network/admin/* /u01/app/oracle/product/11.2.0/db_home2/network/admin/
SQL> startup upgrade;
SQL> set echo on
SQL> spool /home/oracle/upgrade01.log
SQL> set time on;
SQL> @?/rdbms/admin/catupgrd.sql
SQL> startup
SQL> @?/rdbms/admin/catuppst.sql
升级完成后,修改Oracle用户的ORACLE_HOME,PATH等到新路径。
col comp_name for a45
col version for a15
col status for a10
col schema for a15
set line 200
set pagesize 999
select comp_name,version,status,schema from dba_registry;
select * from v$version;
col object_name for a30
col object_type for a20
col status for a10
select owner,object_name,object_type,status from dba_objects where status<>'VALID';
清理无效对象
SQL> @?/rdbms/admin/utlrp.sql
SELECT version FROM v$timezone_file;
VERSION
----------
14
SQL> drop RESTORE POINT dbua01;
至此,升级工作完成。