oracle拨云见日第9篇之Oracle10.2.0.1升级11.2.0.4.3
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle拨云见日第9篇之Oracle10.2.0.1升级11.2.0.4.3相关的知识,希望对你有一定的参考价值。
引言
不知不觉中,人气竟然50W+了。真是荣幸之至,何德何能有这么多兄弟来看我的文章。我今天整个狠活,再带来一篇非常非常非常干货的文章。
在前面的文章中,我们写过:Oracle10.2.0.1升级10.2.0.5.19、Oracle11.2.0.1.0升级11.2.0.4.3。网上Oracle升级的文章非常多,而本篇文章带来的是Oracle升级终结篇:Oracle10.2.0.1升级11.2.0.4.3。
一、oracle升级知识点
1、版本说明
a、主的数据库版本号
b、数据库的维护版本号
c、应用服务器版本号
d、和特定组件相关的不同版本号
e、特定平台的版本号
2、名词解释
CPU(Critical Patch Update)升级关键补丁
和安全相关的漏洞补丁的集合,补丁更新补丁通常是累积的,每一个CPU包中包含着从上一个CPU包之后到现在所有修补的补丁,当你安装CPU之前,应该查看一下之前的CPU补丁情况。
PSU(Patch Set Update)更新补丁集
它是一个累积的补丁包,包含了自上一次PSU之后到现在所有的补丁包。PSU10.2.0.4.4 包含了PSU10.2.0.4.3的全部及10.2.0.4.3到10.2.0.4.4之间新的。
Tools
升级的过程全把一个已经存在的oracle数据库系统(包括相关的应用程序),升级到11G,这个升级的过程在所有操作系统上都类似,在某些操作系统可能有一些特定的操作细节,每个升级包中的readme中都会有说明,所以当我们拿一个新的CPU或PSU去进行升级的话,首先你要看readme的内容,这个补丁多了,我们可能按照同样一个步骤去做吗?不一定,但大体上类似。
(1)、Database Upgrade Assistant (DBUA)
提供图形界面操作方式,辅助我们升级。在安装oracle时图形界面中调用DBUA,也可以随时启动DBUA图形界面。对于主版本升级或patch release upgrade升级时,我们都建议用DBUA来操作。
(2)、Manual upgrade using SQL scripts and utilities(手动执行脚本升级,怎么打补丁,怎么Upgrade)
(3)、Export and Import utilities
(4)、CREATE TABLE AS SQL statement
3、更新和升级路线图
4、My Oracle Support下载升级包
从11g开始,它的PatchSet包含了一个完整的安装版和补丁,不像9i、10g的PatchSet中只包含补丁。
5、我们的升级路线
从升级路线图中,我们可以看出来,Oracle10.2.0.1无法直接升级11.2.0.4.3。所以,我们的升级路线如下:
10.2.0.1.0->10.2.0.5.0->10.2.0.5.19->11.2.0.4.0->11.2.0.4.3
二、安装Oracle10.2.0.1
1、软件环境
操作系统:redhat5.5(32位)
oracle版本:10.2.0.10(32位)
2、oracle安装
2.1、linux准备工作
1、root用户编辑本地yum源配置文件
vi /etc/yum.repos.d/base.repo #追加如下内容
2、将本地光般连接到虚拟机中
3、root用户挂载光盘到/mnt目录下
4、root用户使用yum解决安装oracle需要的依赖包(安装源码包,必须要用到gcc编译)
yum install -y binutils compat-db control-center gcc* glibc libXp libstdc++ libstdc++-devel make openmotif sysstat control-center
5、root用户修改/etc/hosts
6、root用户修改主机名称
注解:
(1)、hostname DB(临时修改主机名)
(2)、vi /etc/sysconfig/network(永久修改主机名)
7、root用户设置内核参数(vi /etc/sysctl.conf)
kernel.shmall = 2097152
/*共享内存,单位是页面数,每个页面数是4K,就是块大小,操作系统ext3的,一个块是4K,咱们设置共享内存8G ,官方推荐值,生产中可以自行改大 8GB/4KB=8388608KB /4KB=2097152(页) */
kernel.shmmax = 2147483648
/*单个共享内存段的最大尺寸,单位字节,单次提取最多2G,不是数据仓库完全够用 2G=2*1024*1024*1024(byte)*/
#插入下面信息
kernel.sem = 250 32000 100 128 #信号量
fs.file-max = 65536 #文件句柄的最大数量
net.ipv4.ip_local_port_range = 1024 65000 #端口范围
net.core.rmem_default = 262144 #默认读内存大小
net.core.rmem_max = 262144 #读内存最大值
net.core.wmem_default = 262144 #默认写存大小
net.core.wmem_max = 262144 #写内存最大值
8、root用户修改操作系统版本号(vi /etc/redhat-release)
Red Hat Enterprise Linux Server release 3 (Tikanga)
/*修改版本号,oracle10g只支持到redhat版本4,如果不修改,检测安装环境会报错*/
9、root用户操作使内核生效
10、root用户操作限制oracle用户的策略(vi /etc/security/limits.conf #追加)
参数说明:
core - 限制内核文件的大小
date - 最大数据大小
fsize - 最大文件大小
memlock - 最大锁定内存地址空间
nofile - 打开文件的最大数目
rss - 最大持久设置大小
stack - 最大栈大小
cpu - 以分钟为单位的最多 CPU 时间
noproc - 进程的最大数目
as - 地址空间限制
maxlogins - 此用户允许登录的最大数目
实际是 Linux PAM,插入式认证模块,用来限制用户的策略
11、root用户操作将上面的策略每次登录生效(vi /etc/pam.d/login #追加)
/* limits.conf是pam_limits.so的配置文件,将上面的策略每次登录生效 */
12、root用户操作增加组、oracle用户及设置密码
13、oracle用户设置环境变量
14、让环境变量生效
15、创建目录并授权
2.2、上传解压oracle包
1、上传oracle安装包到/tmp下(我使用的是FileZilla工具)
2、oracle用户解压缩oracle安装包
2.3、图形化安装
使用Oracle用户安装oracle库(图形界面)
安装oracle软件详细步骤
选择 高级安装
自动识别安装目录,因为在前面配置了环境变量
选择 安装企业版
默认识别Oracle_home目录,因为在前面配置了环境变量
检查依赖条件
选择 仅安装软件
安装信息汇总
开始安装
操作授权脚本
根据提示,切换到root用户执行脚本,操作截图如下:
安装结束
创建数据库详细步骤
在命令行下直接输入dbca
欢迎界面
选择创建数据库(如果是第一次创建数据库,只能创建数据库和管理模板可以使用)
类型选择 一般用途
填写全局数据库名及SID(注意大小写)
不用配置OEM管理工具(后面可以手工单独配置)
设置数据库用户帐号的口令(所有用户设置同一个密码)
设置数据库的存储(默认文件系统)
设置数据库文件的存放位置(默认选项)
设置数据库的恢复选项(后面可以手工单独配置)
快速恢复:区用于恢复数据,以免系统发生故障时丢失数据; 启用归档用于将数据库设置为ARCHIVELOG模式,使得当数据库出现失败时可以完全恢复数据库数据
指定是否安装示例方案,并运行自定义脚本(不用安装)
初始化参数配置(初始化参数、数据库字符集和连接模式)
数据库存储(用指定控制文件、数据文件、重做日志文件、名称和尺寸)
创建选项(指定建立数据库,还是保存为数据库模板)
开始数据库的建立
数据库建立完成后,就会出现如下对话框
系统会锁定除SYS、SYSTEM、DBSNMP、SYSMAN之外的所有其他用户,咱们解锁SCOTT用户
单击“确定”按钮,最后单击“退出”按钮完成数据库建立的全部过程
3、验证oracle安装结果
登录到oracle数据库环境下,查看当前库状态
从上图的查询结果,我们可以看出来,当前数据库是可读可写状态,oracle已经成功的安装了。
三、Oracle10.2.0.1升级10.2.0.5.19
环境描述
1、操作系统
rhel-server-5.5-x86_64
2、现在已有Oracle版本
Oracle 10.2.0.1.0
3、升级之后Oracle版本
Oracle 10.2.0.5.19
准备工作
1、上传并解压补丁包
[oracle@db8 tmp]$ unzip p8202632_10205_Linux-x86-64.zip
2、查看安装补丁情况
[oracle@db8 ]$ cd $ORACLE_HOME/OPatch/
[oracle@db8 OPatch]$ ./opatch lsinventory
3、检查数据库的时区版本
SQL>select version from v$timezone_file;
4、关闭所有Oracle服务进程
关闭OEM
[oracle@db8 ~]$ emctl stop dbconsole
关闭isqlplus应用服务器
[oracle@db8 ~]$ isqlplusctl stop
关闭监听
[oracle@db8 ~]$ lsnrctl stop
关闭实例
5、进行数据备份
此处我使用的是冷备份,这样保险一些。热备份需要数据库正常运行,难免会有占用。
Oracle相关的全部配置都位于$ORACLE_BASE目录
[oracle@db8 ~]$ tar -zcvPf `date +%F`_oracle.tar.gz $ORACLE_BASE
查看生成的备份文件
创建备份目录
[oracle@db8 ~]$ mkdir ora_backup
备份:日志文件、数据文件、控制文件
[oracle@db8 ~]$ cp $ORACLE_BASE/oradata/$ORACLE_SID/* ora_backup/
备份:参数文件
[oracle@db8 ~]$ cp $ORACLE_HOME/dbs/spfile$ORACLE_SID.ora ora_backup
6、确认显示终端
换成oracle用户,登录图形化界面操作系统
升级Oracle
1、升级Oracle软件
解压安装介质
[oracle@db8 tmp]$ unzip p8202632_10205_Linux-x86-64.zip
解压后文件详情
[oracle@db8 tmp]$ cd Disk1/
[oracle@db8 Disk1]$ ll
解压后生成Disk1目录,里面patch_note.htm 有详细的升级补丁的介绍,建议升级补丁前,应该好好看看patch_note.htm,里面介绍了Oracle Database、Oracle Real Application Clusters、Oracle Database Client、Oracle Database Vault等各类情况升级。
oracle用户图形化安装
欢迎界面
从环境变量中自动识别oracle_home目录
不接收Oracle的安全更新(大部分兄弟都没有oracle帐号)
升级操作之前检查依赖条件
汇总信息
开始安装升级
换成root用户操作
换回oracle用户图形界面操作
手工升级oracle数据库
1、升级数据库字典
[oracle@db8 ~]$ sqlplus / as sysdba
SQL> STARTUP UPGRADE
SQL> @?/rdbms/admin/catupgrd.sql
中间内容较多,此处省略.................
由于catupgrd.sql重建过程中,可能造成一些对象失效,需要运行utlrp.sql,重新编译PL/SQL packages。
2、编译无译对象
SQL> SHUTDOWN IMMEDIATE
SQL> STARTUP
SQL> @?/rdbms/admin/utlrp.sql
3、升级后检查
SQL>set line 200
SQL>col ACTION_TIME for a30
SQL>col ACTION for a20
SQL>col NAMESPACE for a10
SQL>col VERSION for a10
SQL>col BUNDLE_SERIES for a5
SQL>col COMMENTS for a25
SQL>select * from dba_registry_history;
4、查看组件有效性
SQL> COL COMP_NAME FOR A50
SQL> COL VERSION FOR A12
SQL> COL STATUS FOR A12
SQL> SELECT COMP_NAME, VERSION, STATUS FROM SYS.DBA_REGISTRY;
使用OPatch安装小补丁
1、关闭所有Oracle服务进程
关闭OEM
[oracle@db8 ~]$ emctl stop dbconsole
关闭isqlplus应用服务器
[oracle@db8 ~]$ isqlplusctl stop
关闭监听
[oracle@db8 ~]$ lsnrctl stop
关闭实例
2、使用OPatch安装小补丁
解压安装介质
[oracle@db8 tmp]$ unzip p20299014_10205_Linux-x86-64.zip
oracle拨云见日第8篇之Oracle11.2.0.1.0升级11.2.0.4.3