重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
本篇内容主要讲解“静默升级oracle的方法步骤是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“静默升级oracle的方法步骤是什么”吧!
创新互联建站始终坚持【策划先行,效果至上】的经营理念,通过多达十余年累计超上千家客户的网站建设总结了一套系统有效的网络营销推广解决方案,现已广泛运用于各行各业的客户,其中包括:PE包装袋等企业,备受客户赞扬。
SQL> select * from v$version; BANNER -------------------------------------------------------------------------------- Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production PL/SQL Release 11.2.0.1.0 - Production CORE11.2.0.4.0Production TNS for Linux: Version 11.2.0.1.0 - Production NLSRTL Version 11.2.0.1.0 - Production
[root@localhost ~]# su - oracle [oracle@localhost ~]$ cat .bash_profile export ORACLE_SID=orcl export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1 export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib export PATH=$ORACLE_HOME/bin:$PATH:$HOME/bin alias sqlplus='rlwrap sqlplus'
升级数据库是一个有风险的过程,需要仔细规划和慎重处理。首先要做数据库的完全备份,备份的内容包括数据文件,控制文件,归档文件,日志文件,参数文件,密码文件等。可以备份一下整个ORACLE_HOME目录,如果升级有问题,还可以还原回来。备份的方法可以使用dump数据泵,tar,rman等。
如:RMAN全备
[oracle@localhost ~]$ export ORACLE_SID=orcl [oracle@localhost ~]$ rman target / RMAN>backup database format '/home/oracle/rmanbak/df_%t_%s_%p.bak';
备份老的ORACLE_HOME和oraInventory
[oracle@localhost ~]$tar –cvfp product.tar.gz /u01/app/oracle/ [oracle@localhost ~]$tar –cvfp oraInventory.tar.gz /u01/app/oraInventory/
SQL> shutdown immediate;
在数据库的升级中,会对数据库的监听文件做重新的配置,建议正常的关闭监听,如下:
[oracle@localhost ~]$ lsnrctl stop [oracle@localhost ~]$ netstat -an |grep 1521
在升级中需要关闭EM,
[oracle@localhost ~]$emctl stop dbconsole [oracle@localhost ~]$netstat -an |grep 1158
本人在升级中,编辑数据库的监听文件,导致配置监听和EM错误,故不对数据库的任何原有文件做操作。
把oracle 11.2.0.4的安装包上传到/home/oracle目录下,解压后得到database目录。
[oracle@localhost ~]$ ls p13390677_112040_Linux-x86-64_1of7.zip p13390677_112040_Linux-x86-64_2of7.zip [oracle@localhost ~]$ unzip p13390677_112040_Linux-x86-64_1of7.zip [oracle@localhost ~]$ unzip p13390677_112040_Linux-x86-64_2of7.zip [oracle@localhost ~]$ ls database
开始安装数据库软件11.2.0.4。
[oracle@localhost ~]$ cd database [oracle@localhost ~]$./runInstaller -silent -debug -force -ignorePrereq \ DECLINE_SECURITY_UPDATES=true \ oracle.install.option=INSTALL_DB_SWONLY \ UNIX_GROUP_NAME=oinstall \ INVENTORY_LOCATION=/u01/app/oraInventory \ ORACLE_HOME=/u01/app/oracle/product/11.2.0.4/dbhome_1 \ ORACLE_BASE=/u01/app/oracle \ oracle.install.db.InstallEdition=EE \ oracle.install.db.DBA_GROUP=dba \ oracle.install.db.OPER_GROUP=oinstall
说明:INVENTORY_LOCATION可以和老版本共用一个目录。ORACLE_BASE和老版本保持一样,ORACLE_HOME指向了一个新的目录11.2.0.4/dbhome_1(以前是11.2.0/db_1)。
不过,这些目录都是可以随意指定,我上面做是只是为了版本管控方便。
安装过程大概需要15分钟左右(根据机型配置时间也不同),安装过程中有警告[WARNING] 时需要安装一些i386 的包。查看log安装即可。
出现以下字样表示升级成功。
As a root user, execute the following script(s): 1. /u01/oracle/app/product/11.2.0.4/dbhome_1/root.sh Successfully Setup Software.
切换到root
用户执行脚本。
[root@localhost ~]# /u01/oracle/app/product/11.2.0.4/dbhome_1/root.sh
[oracle@localhost ~]$ whoami oracle [oracle@localhost ~]$ cat .bash_profile export ORACLE_SID=orcl export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/11.2.0.4/dbhome_1 export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib export PATH=$ORACLE_HOME/bin:$PATH:$HOME/bin alias sqlplus='rlwrap sqlplus'
上面看到,新环境变量和老环境变量相比,我只修改了一个参数:
新参数:ORACLE_HOME=$ORACLE_BASE/product/11.2.0.4/dbhome_1 老参数:ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
注意:在10g以后,一般情况下环境变量中没有必要设置LD_LIBRARY_PATH,但是一旦将ORACLE_HOME迁移到其他目录,则环境变量中还需要添加这个变量。
source一下后,环境变量就指向新安装的11.2.0.4位置了。
[oracle@localhost ~]$ source .bash_profile [oracle@localhost ~]$ env |grep ORA ORACLE_SID=orcl ORACLE_BASE=/u01/app/oracle ORACLE_HOME=/u01/app/oracle/product/11.2.0.4/dbhome_1
/etc/oratab
内容为最新位置[oracle@localhost ~]$ vim /etc/oratab orcl:/u01/app/oracle/product/11.2.0.4/db_1:N
[oracle@localhost ~]$ cd /u01/app/oracle/product/11.2.0/db_1/dbs/ [oracle@localhost dbs]$ cp -a * /u01/app/oracle/product/11.2.0.4/dbhome_1/dbs/
[oracle@localhost admin]$ cd /u01/app/oracle/product/11.2.0/db_1/network/admin/ [oracle@localhost dbs]$ cp -a * /u01/app/oracle/product/11.2.0.4/dbhome_1/network/admin
先修改新位置下的listener.ora里面的路径,然后启动监听。
[oracle@localhost admin]$ lsnrctl start
要注意退出oracle用户重新su - oracle下,然后sqlplus能看到11.2.0.4.0字样才行。
[oracle@19_MySQL-slave ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.4.0 Production on Mon Mar 30 12:10:30 2020 Copyright (c) 1982, 2013, Oracle. All rights reserved. Connected to an idle instance. SQL> startup upgrade ORACLE instance started. Total System Global Area 1603411968 bytes Fixed Size 2253664 bytes Variable Size 1006636192 bytes Database Buffers 587202560 bytes Redo Buffers 7319552 bytes Database mounted. Database opened. SQL> @$ORACLE_HOME/rdbms/admin/catupgrd.sql ---该脚本会运行30分钟左右
以上catupgrd.sql脚本整整运行了30分钟,执行完之后会shutdown immediate数据库。这个时候我们重启数据库即可。
[oracle@localhost admin]$ sqlplus /nolog SQL> conn / as sysdba SQL> startup SQL> select * from v$version; BANNER -------------------------------------------------------------------------------- Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production PL/SQL Release 11.2.0.4.0 - Production CORE 11.2.0.4.0 Production TNS for Linux: Version 11.2.0.4.0 - Production NLSRTL Version 11.2.0.4.0 - Production
检查无效对象:
SQL> select * from dba_objects where status !='VALID'; SQL> SELECT count(*) FROM dba_objects WHERE status='INVALID';
运行utlrp.sql编译失效对象。
SQL> @?/rdbms/admin/utlrp
该脚本耗时约为3分钟左右。至此数据库已经升级完成。
最后,重启数据库没有问题就是升级成功了。
将/u01/app/oracle/product/11.2.0.4/dbhome_1/bin/
下的dbstart
和dbshut
,ORACLE_HOME_LISTNER=$1
改为$ORACLE_HOME
。
#ORACLE_HOME_LISTNER=$1 ORACLE_HOME_LISTNER=$ORACLE_HOME
SQL> select status from v$instance; STATUS ------------ OPEN #注意,成功打开数据库后,这里将是OPEN,而非OPEN MIGRATE
SQL> select * from v$version; BANNER -------------------------------------------------------------------------------- Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production PL/SQL Release 11.2.0.4.0 - Production CORE 11.2.0.4.0 Production TNS for Linux: Version 11.2.0.4.0 - Production NLSRTL Version 11.2.0.4.0 - Production
手工创建EM资料库:
####emca -repos drop [oracle@localhost admin]$ emca -reposdrop ####emca -repos create [oracle@localhost admin]$ emca -reposcreate ###emca -config dbcontrol db [oracle@localhost admin]$ emca-config dbcontrol db
到此,相信大家对“静默升级oracle的方法步骤是什么”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!