升级步骤:

(1)    备份数据库

(2)    运行patchset,升级oracle 软件

(3)    准备新的ORACLE_HOME

(4)    运行dbua 或者脚本升级实例

(5)    检查升级后的版本信息和无效对象

备份数据库

升级数据库是一个十分危险的事情,在生产库上,升级之前最好做一个全库的备份,以便在升级失败时可以还原数据库。

停掉所有与这个数据库相关的业务系统,如中间件。确定没有业务在运行。在数据库正常关闭后,还需要备份Oracle主目录,目的还是为了升级失败时,能够还原出数据库软件到升级前的版本。备份如下:tar -xcvf oracle11201_bak.tar.gz $ORACLE_BASE。

我这里是测试环境,就不进行备份,如果是生产环境,切记要先备份,后操作。

如果是In-Place Upgrade,同时备份一下整个ORACLE_HOME目录。 如果升级有问题,还可以还原回来。

重点是如下目录:

ORACLE_HOME/dbs

ORACLE_HOME/network/admin

ORACLE_HOME/hostname_dbname

ORACLE_HOME/oc4j/j2ee/OC4J_DBConsole_hostname_dbname

授权:

chmod 777 p13390677_112040_Linux-x86-64_* p20996923_112040_Linux-x86-64.zip p6880880_112000_Linux-x86-64.zip

一、原始状态

(点小图查看大图)

SQL>set linesize 150

SQL>set pagesize 9999

SQL> col comp_name format a40

SQL> SELECT COMP_NAME, VERSION, STATUS FROM SYS.DBA_REGISTRY;

(点小图查看大图)

关闭监听、关闭数据实例

二、把所有补丁软件都拷贝到/tmp,补丁包一共7个,只需要前2个就成

解压:unzip p13390677_112040_Linux-x86-64_1of7.zip -d /tmp && unzip p13390677_112040_Linux-x86-64_2of7.zip -d /tmp

cd /tmp/database

运行Patchset 的runInstaller

(点小图查看大图)

(点小图查看大图)

注意这里,我们选择第三个选项,skip software update,因为我们的patchset已经下载过了,如果选择第二个选项,会遇到如下错误,

INS-20704 Thelocation provided is not in the expected directory structure

Oracle 给的解决方式是用如下命令来执行:

./runInstaller –downloadUpdates

但是这个命令需要收费的Metalink帐号。 MOS 的相关文档:

How To Download The Latest Updates AndPatches Using 11.2.0.2 OUI [ID 1295074.1]

Error: INS-20704 While Installing 11.2.0.2with "Use pre-downloaded software updates" Option [ID 1265270.1]

(点小图查看大图)

这里要注意,我们之前讲过11gR2的Patchset 可以直接用来安装。在这个界面就可以选择操作类型,这个功能比较方便,从而也导致patchset 越来越大,我们这里选择upgrade an existing database。

(点小图查看大图)

(点小图查看大图)

(点小图查看大图)

注意这里的安装位置,我之前的安装目录是11.2.0,我新目录是11.2.0.4 即将oracle 安装到其他位置,这样可以减少宕机时间,也是oracle 推荐的方法。

(点小图查看大图)

(点小图查看大图)

(点小图查看大图)

执行到76%的时候弹出如下窗口:

(点小图查看大图)

(点小图查看大图)

(点小图查看大图)

下面就是一个配置监听的过程

(点小图查看大图)

随后就是 会自动调用DBUA 来升级我们的实例(1---7步)

(点小图查看大图)

(点小图查看大图)

(点小图查看大图)

(点小图查看大图)

(点小图查看大图)

(点小图查看大图)

(点小图查看大图)

(点小图查看大图)

(点小图查看大图)

(点小图查看大图)

(点小图查看大图)

(点小图查看大图)

(点小图查看大图)

三、然后,再修改oracle用户的.bash_profile

ORACLE_HOME=$ORACLE_BASE/product/11.2.0.4/db_1

然后source ~/.bash_profile

四、查看 cat /etc/oratab   【内容应该是新目录】

五、登录查看,升级后版本

[oracle@DB200 ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Mon May 25 22:00:21 2015

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

六、11.2.0.4.0升级到11.2.0.4.7(打patch,关闭实例与监听)

1、解压安装包
自定义存放路径为/home/oracle/psu
cd /home/oracle/psu
mv p6880880_112000_04-SEP-2015_Linux-x86-64.zip p20760997_112030_15_Linux-x86-64.zip /home/oracle/psu
unzip p6880880_112000_04-SEP-2015_Linux-x86-64.zip
unzip p20760997_112030_15_Linux-x86-64.zip -d 112047

2、检查psu补丁是否有冲突
/home/oracle/psu/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /home/oracle/psu/112047/20996923

3、信息收集
--查看组件信息
set linesize 500 pagesize 600
col COMP_NAME for a30
select COMP_ID,COMP_NAME,VERSION,STATUS from DBA_REGISTRY;
--查看补丁情况
set linesize 500 pagesize 600
col ACTION_TIME for a30
col COMMENTS for a30
select ACTION_TIME, ACTION, COMMENTS from sys.DBA_REGISTRY_HISTORY;
--查看无效对象
select count(*) from dba_objects where status<>'VALID';

4、停止数据库
--停止数据库外部进程
ps -ef|grep -v grep |grep LOCAL=NO|awk '{print $2}'|xargs kill -9
--停库
alter system checkpoint
shutdown immediate
--停监听
lsnrctl stop

--查看启停日志
/home/oracle/diag/rdbms/sccp/sccp/trace/alert*.log

5、备份
使用root用户备份oracle_home (将#ORACLE_HOME上级目录整个备份)
tar -zcvpf db_20151103.tar.gz db_1

6、打PSU
su - oracle
cd /home/oracle/psu/112047/20996923/20760982 ---20760982为压缩包解压出的二级目录(不进入该目录apply会报错)
/home/oracle/psu/OPatch/opatch apply

----如果补丁过程中出现以下错误
OPatch报错 Prerequisite check "CheckActiveFilesAndExecutables" failed
Following executables are active :
/opt/oracle/product/10.2.0/bin/oracle
ApplySession failed during prerequisite checks: Prerequisite check "CheckActiveFilesAndExecutables" failed.

通过以下命令找到正在占用文件的进程,然后kill进程
fuser /opt/oracle/product/10.2.0/bin/oracle

7、检查数据库
su – oracle
$ORACLE_HOME/OPatch/opatch lsinv

8、更新数据字典、编译失效对象
su - oracle
cd $ORACLE_HOME/rdbms/admin
SQL> CONNECT / AS SYSDBA
SQL> STARTUP
SQL> @catbundle.sql psu apply
SQL> @utlrp.sql

9、重启数据库
shutdown immediate
startup

10、检查数据库状态
--查看组件信息
set linesize 500 pagesize 600
col COMP_NAME for a30
select COMP_ID,COMP_NAME,VERSION,STATUS from DBA_REGISTRY;
--查看补丁情况
set linesize 500 pagesize 600
col ACTION_TIME for a30
col COMMENTS for a30
select ACTION_TIME, ACTION, COMMENTS from sys.DBA_REGISTRY_HISTORY;
--查看无效对象
select count(*) from dba_objects where status<>'VALID';

11、启动监听
lsnrctl start
ps -ef|grep -v grep |grep LOCAL=NO|wc -l
SQL> CONNECT / AS SYSDBA
SQL>alter system register;

若监听启动失败
cd $ORACLE_HOME/network/admin
mv sqlnet.ora sqlnet.orabak
lsnrctl start
ps -ef|grep -v grep |grep LOCAL=NO|wc -l
SQL> CONNECT / AS SYSDBA
SQL>alter system regiter
SQL>exit
mv sqlnet.orabak sqlnet.ora

七、实验中遇到的报错

1、----如果补丁过程中出现以下错误
OPatch报错 Prerequisite check "CheckActiveFilesAndExecutables" failed
Following executables are active :
/opt/oracle/product/10.2.0.4/bin/oracle
ApplySession failed during prerequisite checks: Prerequisite check "CheckActiveFilesAndExecutables" failed.

通过以下命令找到正在占用文件的进程,然后kill进程
fuser /opt/oracle/product/10.2.0.4/bin/oracle

2、INS-32025报错
the chosen installation conflicted with software already installed in the given Oracle home.
所选安装与指定 Oracle 主目录中已安装的软件冲突

解决方法:
vi /home/oracle/oraInventory/ContentsXML/inventory.xml

[root@db 桌面]# more /home/oracle/oraInventory/ContentsXML/inventory.xml
<?xml version="1.0" standalone="yes" ?>
<!-- Copyright (c) 1999, 2013, Oracle and/or its affiliates.
All rights reserved. -->
<!-- Do not modify the contents of this file by hand. -->
<INVENTORY>
<VERSION_INFO>
<SAVED_WITH>11.2.0.4.0</SAVED_WITH>
<MINIMUM_VER>2.1.0.6.0</MINIMUM_VER>
</VERSION_INFO>
<HOME_LIST>
<HOME NAME="OraDb11g_home1" LOC="/home/oracle/app/oracle/product/11.2.0/dbhome_1
" TYPE="O" IDX="1"/>
</HOME_LIST>
<COMPOSITEHOME_LIST>
</COMPOSITEHOME_LIST>
</INVENTORY>
[root@db 桌面]#

删除其中的HOME_NAME信息
<HOME NAME="OraDb11g_home1" LOC="/home/oracle/app/oracle/product/11.2.0/dbhome_1
" TYPE="O" IDX="1"/>

三、ORA-00845: MEMORY_TARGET not supported on this system报错解决
在oracle 11g中新增的内存自动管理的参数MEMORY_TARGET,它能自动调整SGA和PGA,这个特性需要用到/dev/shm共享文件系统,而且要求/dev/shm必须大于MEMORY_TARGET,如果/dev/shm比MEMORY_TARGET小就会报错
解决方案

1.初始化参数MEMORY_TARGET或MEMORY_MAX_TARGET不能大于共享内存(/dev/shm),为了解决这个问题,可以增大/dev/shm

如:

# mount -t tmpfs shmfs -o size=7g /dev/shm

2.为了确保操作系统重启之后能生效,需要修改/etc/fstab文件

shmfs /dev/shm tmpfs size=7g 0

3.如果/dev/shm没有挂载也会报上面的错,所认需要确保已经挂载

oracle@aaaprod-db ~]$ df -h

……

tmpfs 16G 8.9G 7.2G 56% /dev/shm

……

oracle 11.2.0.1.0 升级 11.2.0.4.0 并 patch 到11.2.0.4.7的更多相关文章

  1. CENTOS 6.4 安装oracle 10g,手工建库及升级到10.2.0.5

    一. 数据库软件安装 参照官方手册 1.安装rpm包 注这里的yum直接用163的yum yum -y install binutils compat-libstdc++-33 compat-libs ...

  2. oracle数据库psu升级(本实验是将10.2.0.3.12升级到10.2.0.3.15)

    psu升级(本实验是将10.2.0.3.12升级到10.2.0.3.15) 一.解压安装包自定义存放路径为/home/oracle/yjb/psu/10.2.0.3.15cd /home/oracle ...

  3. Nginx1.8.0版本平滑升级新版本1.9.7

    原文:http://www.jb51.net/article/79878.htm 首先查看现在环境nginx的版本为1.8.0 编译的参数只指定了安装路径: 复制代码代码如下: [root@local ...

  4. 07 oracle 归档模式 inactive/current redo log损坏修复--以及错误ORA-00600: internal error code, arguments: [2663], [0], [9710724], [0], [9711142], [], [], [], [], [], [], []

    07 oracle 归档模式 inactive/current redo log损坏修复--以及错误ORA-00600: internal error code, arguments: [2663], ...

  5. 关于把.net 2.0的项目升级到.net4.0遇到的一些问题

    进入公司实习的的第一个项目又是是一个升级项目.这次升级的是一个c/s架构的项目. 大致介绍一下这个项目的结构客户端采用winform+devexpress商业控件开发的,数据库是用的oracle数据库 ...

  6. CMS .NET 程序框架 从2.0/3.5升级到4.0 版本后 需要调整的地方

    问题一: document.forms1.action 不可使用 需要修改程 document.forms[0] .NET 程序框架 从2.0/3.5升级到4.0 版本后,document.forms ...

  7. Android7.0 应用内升级

    Android7.0应用内升级 最近线上项目在7.0机器上出现应用内升级失败,原来是由于Android7.0权限问题导致. 如果项目的 targetSdkVersion>=24 在处理应用内升级 ...

  8. [Oracle维护工程师手记]一次升级后运行变慢的分析

    客户报告,当他从 Oracle 11.1.0.7 ,迁移到云环境,并且升级到12.1.0.2.运行客户的应用程序测试,发现比以前更慢了. 从AWR report 的"Top 10 Foreg ...

  9. 所使用的“EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”版本高于所引用的程序集“EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”的版本

    错误信息:所使用的"EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&qu ...

随机推荐

  1. selenium模拟淘宝登陆,过所有验证

    淘宝模拟登陆实现 由于淘宝使用了滑动验证码,需要进行模糊手动滑动,因此考虑使用selenium+chromedriver进行模拟登陆. 淘宝的登陆网址:https://login.taobao.com ...

  2. 项目实战:Qt多通道数据采集系统(通道配置、电压转换、采样频率、通道补偿值、定时采集、导出exel和图表、自动XY轴、隐藏XY轴、实时隐藏显示通道)

    需求   1.通道使能.选择.更改通道名称.设置显示颜色  2.采样率可设置(Sa/s/chj)  3.单位换算,按照给定的进行换算  4.对通道可进行设置补偿值  5.通道取消可动态显示和隐藏,并可 ...

  3. Nodepad++ 没有TextFX Characters插件

    Nodepad++ 没有TextFX Characters插件 原因:从6.5以上的某个版本开始,就没有了默认的这个插件. 我试了最新的版本下载插件也不行,只好下载一个6.4.5的版本,再更新插件管理 ...

  4. JApiDocs(自动生成接口文档神器)

    JApiDocs教程 前言 作为一名优秀的程序员来说,由于涉及到要与前端进行对接,所以避免不了的就是写接口文档.写完接口文档,一旦代码返回结果,参数等出现变动,接口文档还得随之改动,十分麻烦,违背了我 ...

  5. Chrome DevTools — Network -- 转载

    转载地址:https://segmentfault.com/a/1190000008407729 记录网络请求 默认情况下,只要DevTools在开启状态,DevTools会记录所有的网络请求,当然, ...

  6. Vue-组件化,父组件传子组件常见传值方式

    前言 我们都知道vue核心之一:组件化,vue中万物皆组件,组件化我认为应该来至于模块化的设计思想,比如在模块化开发中,一个模块就是一个实现特定功能的独立的文件,有了模块我们就更方便去阅读代码,更方便 ...

  7. 纯HTML + CSS制作个人资料卡

    总体预览: 材料:背景图与头像.jpg IDE:VS Code 外部链接:CDN加速的font-awesome图标 <link rel="stylesheet" href=& ...

  8. Taro 3.1 beta 发布: 开放式架构新增 4 端支持

    作者:凹凸曼-JJ 自 7 月初我们正式发布了 Taro 3,至今半年时间已然略去.期间我们不断地修复着问题,同时也在构想着下一个 minor 版本. 面对小程序平台越来越多的大环境,Taro 是选择 ...

  9. JavaSE14-集合·其一

    1.Collection集合 1.1 集合体系结构 集合 (接口)Collection:单列 (接口)List:可重复 (实现类)ArrayList (实现类)LinkedList (接口)Set:不 ...

  10. Springboot mini - Solon详解(七)- Solon Ioc 的注解对比Spring及JSR330

    Springboot min -Solon 详解系列文章: Springboot mini - Solon详解(一)- 快速入门 Springboot mini - Solon详解(二)- Solon ...