Oracle Linux6.9下安装Oracle 11.2.0.4.0及psu补丁升级

为方便截图,本文操作都在vmware虚拟机上完成。

目录:

1.操作系统安装

2.数据库安装

3.PSU补丁升级卸载

part1 操作系统安装

Oracle (Enterprise) Linux 是一个基于 Red Hat Enterprise Linux 源码构建的 Linux 发行版,由 Oracle 公司打包并免费分发。相较于后者,Oracle 对内核等组件进行了修改,并包含了一些新的特性。下载地址:V860937-01.iso

新建虚拟机,开始安装orace linux6.9

选择第一项

跳过检测

next

选择安装时的语言,下一步

下一步

下一步

选择忽略所有数据

自定义主机名

编辑网络参数,设置ip等信息

选择时区,去除UTC时间,下一步

输入密码,忽略告警,下一步

选择创建自定义布局,下一步

虚拟机添加了两块盘,sda用于系统分区,sdb用于数据分区

选择驱动器并创建标准分区

boot分区500M

创建物理卷sda2

使用全部剩余空间

pv sd2创建完成,准备创建卷组和逻辑卷

新建vg,名称为system,PE选择默认的4M(PE越小硬盘利于率越高),此时vg最大大小为256G(每个vg块的PE最大数量是65534,4M*65534=256G),可根据实际情况选择PE大小;逻辑卷大小可根据实际情况赋值;swap也位于逻辑卷中以方便扩容;由于虚拟机内存是2G,此时swap设置为4G,对于虚拟内存设置,有个参考:

4G以内的物理内存,SWAP 设置为内存的2倍;
4-8G的物理内存,SWAP 等于内存大小;
8-64G 的物理内存,SWAP 设置为8G;
64-256G物理内存,SWAP 设置为16G。

swap不是越大越好,随着 RAM 数量的增加,超过某一点增加更多交换空间只会导致在交换空间几乎被全部使用之前就发生频繁交换。

同理在另一块盘sdb上新建pv sdb1、vg data和逻辑卷,逻辑卷oracle用于安装数据库软件,orasvr用于存放数据库文件。

分区总览,下一步

选择‘格式化’

选择‘将修改写入磁盘’

下一步

选择‘Database Server’和‘Oracle Linux Server’

启动安装

完成安装,重新引导

进入系统

part2 数据库安装

系统环境参数配置

1.安装依赖包

由于生产上很多时候服务器是连不了外网的,所以本文的yum源选择本地源

挂载光盘,制作本地yum源

[root@linux-oracle6 ~]# mount /dev/cdrom /mnt
mount: block device /dev/sr0 is write-protected, mounting read-only
[root@linux-oracle6 ~]# cd /etc/yum.repos.d/
[root@linux-oracle6 yum.repos.d]# mv public-yum-ol6.repo public-yum-ol6.repo.bak

新建源文件cdrom.repo

[root@linux-oracle6 yum.repos.d]# more cdrom.repo 
[CDROM]
name=isofile
baseurl=file:///mnt
enabled=1
gpgcheck=0
gpgkey=file:///mnt/RPM-GPG-KEY-oracle

清理过期缓存,新建缓存

[root@linux-oracle6 yum.repos.d]# yum clean all
[root@linux-oracle6 yum.repos.d]# yum makecache

安装依赖包:

[root@linux-oracle6 ~]# yum -y install compat-libcap1 compat-libstdc++-33-3.2.3 libstdc++-devel-4.4.4 gcc gcc-c++ ksh libaio-devel

2.新建用户组

[root@linux-oracle6 ~]# groupadd -g 511 oinstall
[root@linux-oracle6 ~]# groupadd -g 510 dba
[root@linux-oracle6 ~]# useradd -u 2000 -g 511 -d /oracle oracle

由于/oracle已经存在,会有告警信息

useradd:警告:此主目录已经存在。
不从 skel 目录里向其中复制任何文件。

且切换至oracle用户时提示符异常:

[root@linux-oracle6 oracle]# su - oracle
-bash-4.1$

解决该问题可从/etc/skel复制文件即可

[root@linux-oracle6 oracle]# cp /etc/skel/.* /oracle

更改oracle用户密码

[root@linux-oracle6 oracle]# passwd oracle

3.修改oracle用户资源使用限制

[root@linux-oracle6 ~]# more /etc/security/limits.conf|grep oracle
oracle  soft    nproc   2047
oracle  hard    nproc   16384
oracle  soft    nofile  1024
oracle  hard    nofile  65536

4.修改linux内核参数

修改和新增如下内核参数,并及时生效

[root@linux-oracle6 ~]# vim /etc/sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
[root@linux-oracle6 ~]# sysctl -p

kernel.shmall和kernel.shmmax需根据实际的物理内存大小做出更改,其它为缺省值

各参数说明如下:

fs.aio-max-nr
同时拥有的异步IO请求数
fs.file-max
同时打开的文件数最大值
kernel.shmall
该参数是控制共享内存页数。Linux 共享内存页大小为4KB, 共享内存段的大小都是共享内存页大小的整数倍。公式:4G*1024*1024/4K = 1048576(页),查看内存页大小方法#getconf PAGESIZE,内存8G以上,可设置为内存总数/页大小,内存8G内可设置为2097152
kernel.shmmax
单个内存共享段的最大值,需要比规划的SGA容量大,建议大于物理内存的一半,本文设置为物理内存大小,即:2G*1024*1024*1024=2147483648(字节)
kernel.shmmni
共享内存段总数
kernel.sem
信号量的相关的4个参数设置
net.ipv4.ip_local_port_range
表示端口的范围
net.core.rmem_default
表示接收套接字缓冲区大小的缺省值
net.core.rmem_max
表示接收套接字缓冲区大小的最大值
net.core.wmem_default
表示发送套接字缓冲区大小的缺省值
net.core.wmem_max
表示发送套接字缓冲区大小的最大值

内核参数设置参考链接:https://docs.oracle.com/cd/E11882_01/install.112/e24324/toc.htm#BABFGGIE

ORACLE环境参数配置

1.上传安装介质

上传安装介质至/oracle目录

[root@linux-oracle6 ~]# ll /oracle/
总用量 2487224
drwx------. 2 oracle oinstall      16384 8月  24 14:37 lost+found
-rw-r--r--. 1 root   root     1395582860 8月  15 16:53 p13390677_112040_Linux-x86-64_1of7.zip
-rw-r--r--. 1 root   root     1151304589 8月  15 16:52 p13390677_112040_Linux-x86-64_2of7.zip

2.修改属主

[root@linux-oracle6 ~]# chown -R oracle:oinstall /oracle

3.解压安装包

使用oracle解压安装包

[oracle@linux-oracle6 ~]$ unzip p13390677_112040_Linux-x86-64_1of7.zip
[oracle@linux-oracle6 ~]$ unzip p13390677_112040_Linux-x86-64_2of7.zip

4.新建profile文件

[oracle@linux-oracle6 ~]$ view .bash_profile
umask 022
export ORACLE_BASE=/oracle/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export ORACLE_SID=oradb
export LD_LIBRARY_PATH=$ORACLE_HOME/lib64:$ORACLE_HOME/lib:/usr/lib
export ORACLE_DOC=$ORACLE_HOME/doc
export TNS_NAMES=$ORACLE_HOME/network/admin
export TNS_ADMIN=$ORACLE_HOME/network/admin
export LANG=C
export TEMP=/tmp
export TMPDIR=/tmp
export PATH=/sbin:/usr/sbin:/usr/local/sbin:/root/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/X11R6/bin:/usr/games:/usr/lib/mit/bin:/usr/lib/mit/sbin:$ORACLE
_HOME/bin
[oracle@linux-oracle6 ~]$ chmod u+x .bash_profile
[oracle@linux-oracle6 ~]$ source .bash_profile

5.修改主机名

[root@linux-oracle6 ~]# hostname oracle-linux6.9
[root@linux-oracle6 ~]# more /etc/hosts
172.27.9.56 oracle-linux6.9
[root@linux-oracle6 ~]# vim /etc/sysconfig/network 
HOSTNAME=oracle-linux6.9

数据库软件安装

1.启动并配置Xmanager

启动Xmanager - Passive,设置DISPLAY

[oracle@linux-oracle6 ~]$ export DISPLAY=172.27.9.246:0.0

DISPLAY为本地的windows客服端主机ip

2.启动数据库软件安装

[oracle@linux-oracle6 ~]$ cd database
[oracle@linux-oracle6 database]$ ./runInstaller

如遇报错: Could not execute auto check for display colors using command /usr/bin/xdpyinfo. Check if the DISPLAY variable is set.

则执行xdpyinfo安装:

[root@linux-oracle6 ~]# yum -y install xdpyinfo

再次执行安装命令,弹框正常

去除邮件登记,next,忽略告警

忽略软件更新,next

只安装数据库软件,next

单实例,next

选择默认的English,next

选择默认的安装版本,next

配置oracle数据库目录,由于安装程序已读取环境变量里的配置,此处无需修改,next

选择oraInventory安装目录,安装程序已读取,无需修改,next

选择OSDBA所属组,保持默认,next

安装要求检查,一般会报内核参数设置和缺包的告警,修复后check again就行,由于之前的准备工作已完成参数配置和包的安装,此处无告警,预览无问题后点击install安装

执行安装配置脚本

[root@linux-oracle6 ~]# /oracle/app/oraInventory/orainstRoot.sh
[root@linux-oracle6 ~]# /oracle/app/oracle/product/11.2.0/db_1/root.sh

local bin directory选择默认的/usr/local/bin,回车就行

返回安装界面,安装完成

配置监听

打开监听配置程序

[oracle@oracle-linux6 ~]$ netmgr

新建listener

选择类型为Listening Locations,Add Address后输入Host(主机名或者ip),Port默认

选择Database Services标签页,输入global database name和sid

保存配置,关闭窗口,监听配置完成

创建数据库

1.修改/orasvr属主

[root@linux-oracle6 ~]# chown -R oracle:oinstall /orasvr

2.在oracle用户下输入dbca,弹出oracle图形化欢迎界面

[oracle@oracle-linux6 ~]$ dbca

next

选择创建数据库

选择自定义模板

输入global database name和sid,next

将configure enterprise manager前面的勾去掉,不使用图形化管理工具

输入用户名和密码,确定

选择数据库存放目录,next

禁用快速恢复,不启用归档,数据库创建完之后再开启归档

去掉所有组件,加快数据库创建速度

自定义系统内存区的大小,还可以单独指定PGA和SGA的大小,此数值根据应用需求而定

设置数据库大小,保持默认的8K。进程数根据应用的实际需求而定,一般数量在600以上

选择字符集,此处应选择ZHS16GBK,不然不能正常显示中文

选择默认的独占模式,next

配置数据文件,包括控制文件,表空间,数据文件和重做日志文件

数据文件数量为3个

控制文件能够决定数据库中数据文件和重做日志文件的最大数量,数据文件最大值选300,重做日志最大值选30,最大日志成员数选5

表空间管理选择选择默认值:扩展管理选为本地管理模式并选择automatic allocation;段空间管理选择自动管理模式,选择automatic;日志选项选择yes,启用重做日志

数据文件配置项,可更改数据文件大小

系统表空间大小设置如图

设置5个日志文件组,每组各一个日志文件,文件大小为512MB

配置完成,next

保存为模板和脚本为可选项,这里不选

预览配置信息,单击Ok开始建库

安装完成

part3 PSU补丁升级

psu简介

PSU(Patch Set Update)简单讲就是多个补丁的集合,它减轻了小版本周期长而带来的不能及时更新的影响,解决了多个个别补丁冲突和相互影响的问题,同时减轻DBA安装补丁的负担,减少补丁安装次数。

OPatch工具升级

在升级PSU补丁之前,必须要先升级oracle opatch工具,opatch升级工具为11.2.0.3.5以上版本才能使用

1.修改oracle用户环境变量

[oracle@oracle-linux6 ~]$ vim .bash_profile
export PATH=$PATH:$ORACLE_HOME/OPatch

oracle退出重新登录加载环境变量

2.查看opatch版本

[oracle@oracle-linux6 ~]$ opatch version
OPatch Version: 11.2.0.3.4

opatch版本过低,需升级

3.opatch最新软件包上传解压并替换原Opatch目录

[oracle@oracle-linux6 ~]$ unzip p6880880_112000_Linux-x86-64.zip
[oracle@oracle-linux6 ~]$ mv $ORACLE_HOME/OPatch $ORACLE_HOME/OPatch.bak
[oracle@oracle-linux6 ~]$ cp -R OPatch $ORACLE_HOME

4.检查上传后的opatch版本

[oracle@oracle-linux6 ~]$ opatch version
OPatch Version: 11.2.0.3.6

opatch升级完成

PSU补丁安装

1.关闭应用

2.关闭数据库

[oracle@oracle-linux6 ~]$ lsnrctl stop
SQL> shutdown immediate;

3.查看数据库补丁情况

[oracle@oracle-linux6 ~]$ opatch lsinventory

发现没有安装补丁包

4.上传补丁包并解压

oracle@oracle-linux6 ~$ unzip p26392168_112040_Linux-x86-64.zip

5.补丁安装前预先验证

进入解压后目录,进行补丁安装前的预先验证

[oracle@oracle-linux6 ~]$ cd 26392168/
[oracle@oracle-linux6 26392168]$ opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir ./

验证无误

6.补丁安装

在补丁包解压后目录执行补丁安装命令

[oracle@oracle-linux6 26392168]$ opatch apply

按提示输入y或者回车

补丁安装时退出需退出sqlplus,不然会报错

7.验证安装的补丁

[oracle@oracle-linux6 26392168]$ opatch lsinventory

8.开启数据库更新数据字典

[oracle@oracle-linux6 ~]$ cd $ORACLE_HOME/rdbms/admin
[oracle@oracle-linux6 admin]$ sqlplus / as sysdba
SQL> startup
SQL> @catbundle.sql psu apply

查看日志是否有error报错

9.查看升级记录

select * from dba_registry_history;

PSU补丁卸载

1.关闭监听和数据库

[oracle@oracle-linux6 ~]$ lsnrctl stop
SQL> shutdown immediate;

2.查看补丁包

[oracle@oracle-linux6 ~]$ opatch lsinventory

3.卸载补丁集26392168

进入26392168目录

[oracle@oracle-linux6 ~]$ cd 26392168/
[oracle@oracle-linux6 26392168]$ opatch rollback -id 26392168

4.启动数据库更新数据字典

[oracle@oracle-linux6 ~]$ cd $ORACLE_HOME/rdbms/admin
[oracle@oracle-linux6 admin]$ sqlplus / as sysdba
SQL> startup;
SQL> @catbundle_PSU_ORADB_ROLLBACK.sql

5.查看补丁卸载

[oracle@oracle-linux6 ~]$ opatch lsinventory

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏运维经验分享

ZABBIX4.2+Grafana6.1部署

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。

23840
来自专栏九州牧云

搭建高可用mongodb集群(三)—— 深入副本集内部机制

在上一篇文章《搭建高可用mongodb集群(二)—— 副本集》 介绍了副本集的配置,这篇文章深入研究一下副本集的内部机制。还是带着副本集的问题来看吧!

10340
来自专栏互联网技术栈

美团分布式ID生成服务

Leaf是美团基础研发平台推出的一个分布式ID生成服务,名字取自德国哲学家、数学家莱布尼茨的一句话“There are no two identical lea...

14410
来自专栏一个会写诗的程序员的博客

MySQL 整体架构与 SQL 执行原理,数据库事务原理

1.调用 InnoDB 引擎接口取这个表的第一行,判断 id 值是不是 1,如果不是则跳过,如果是则将这行存在结果集中; 2.调用引擎接口取“下一行”,重复相...

20740
来自专栏姚红专栏

Zabbix3.0学习笔记

  在软件系统的高可靠性(也称为可用性,英文描述为HA,High Available)里有个衡量其可靠性的标准——X个9,这个X是代表数字3~5。X个9表示在软...

19110
来自专栏九州牧云

搭建高可用mongodb集群(二)—— 副本集

在上一篇文章《搭建高可用MongoDB集群(一)——配置MongoDB》 提到了几个问题还没有解决。

8320
来自专栏杨建荣的学习笔记

升级到MySQL 5.7的几个理由

今天刚到工位,就收到了一大堆的报警邮件。提示有两个实例内存存在瓶颈,目前内存使用率已经超过85%,需要尽快调整。

18040
来自专栏九州牧云

搭建高可用mongodb集群(四)—— 分片

按照上一节中《搭建高可用mongodb集群(三)—— 深入副本集》搭建后还有两个问题没有解决:

6710
来自专栏达达前端

微信小程序敏捷开发实战

构建直播小程序 申请腾讯云直播服务 获取加密私钥 部署自己的业务后台 生成开播,播放端地址 开启小程序

14130
来自专栏九州牧云

分布式系统中的定时任务全解(二)

上一篇分布式系统中的定时任务全解(一)中对定时任务和定时任务的基础使用方式进行了说明。这一小节,把分布式场景下的定时任务进行一个大致的讲解。

10130

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励