> 今天整理一下oracle11g for centos7.9的安装方案,其中包括如何规划设计,虚拟机配置,操作系统安装,,最新的PSU升级过程,数据库图形安装和静默安装方式,同时有大量安装完成后的配置,最后是运维工具的测试等
目录
- **第 1 章** 整体规划
- **1.1** 软件规划
- **1.2** 虚拟机规划
- **1.3** 主机规划
- **1.3.1** **硬件配置**
- **1.3.2** **操作系统**
- **1.3.3** **目录划分**
- **1.3.4** **SWAP规划**
- **1.3.5** **软件包规划**
- **1.3.6** **IP规划**
- **1.4** Oracle规划
- **第 2 章** **虚拟机安装**
- **2.1** windows配置
- **2.2** 新建虚拟机
- 2.3 硬件兼容性
- 2.4 选择操作系统ISO
- 2.5 命名虚拟机
- 2.6 CPU配置
- 2.7 内存配置
- 2.8 网络配置
- 2.9 控制器配置
- 2.10 磁盘配置
- 2.11 完成配置
- **第 3 章** **安装操作系统**
- 3.1 选择安装语言
- **3.2** 设置时间
- **3.3** 设置语言支持
- **3.4** 选择安装范围
- **3.5** 选择分区
- **3.6** 关闭kdump
- **3.7** 配置网卡
- **3.8** 配置root密码和开始安装
- **第 4 章** ***安装前准备工作***
- **4.1** 设置主机名
- 4.2 检查操作系统
- **4.3** 检查内存,CPU
- **4.4** 检查/tmp和/dev/shm
- **4.5** 关闭防火墙和selinux
- **4.6** 关闭avahi-daemon服务
- **4.7** 关闭其他服务
- **4.8** 关闭THP
- **4.9** 安装软件包
- **4.10** 设置核心参数
- **4.11** 创建用户和组
- **4.12** 创建目录
- **4.13** 设置用户环境变量
- **4.14** 上传和解压缩软件
- **第 5 章** **安装Oracle11g软件**
- **第 6 章** **创建数据库**
- **第 7 章** **卸载数据库和软件**
- **第 8 章** **静默安装数据库**
- **8.1** 静默安装oracle软件
- **8.1.1** ***切换到Oracle用户,复制响应文件模板***
- **8.1.2** ***文件说明***
- **8.1.3** ***编辑响应文件***
- 8**.1.4** ***静默安装oracle软件***
- **8.1.5** ***静默安装oracle软件-命令行方式***
- **8.2** 静默安装数据库
- **8.3** 静默创建监听
- **第 9 章** **升级Oracle PSU**
- 9.1 PSU安装流程
- 9.2 PSU概要
- **9.3** 添加环境变量
- **9.4** 检查和升级OPATCH版本
- **9.5** 检查当前版本
- **9.6** 检查冲突
- **9.7** 安装PSU
- **9.8** 升级数据库并编译失效对象
- 9.9 检查
- **第 10 章** **安装后配置**
- **10.1** readline and rlwrap
- **10.2** 连接数调整
- **10.3** 内存大小调整
- **10.4** redo
- **10.5** undo
- **10.6** temp
- **10.7** dump大小
- **10.8** 控制文件参数和复用
- **10.9** 关闭审计
- **10.10** 关闭密码大小写和延迟登录
- **10.11** 调整用户profile策略
- **10.12** 关闭不必要的任务
- **10.13** 老版本客户端连接
- **10.14** AWR调整
- **1.15** 其他参数
- **10.16** Adaptive Log File Sync关闭
- **10.17** Adaptive Cursor Sharing关闭
- **10.18** 优化器的基数反馈
- **第 11 章** **配置Oracle系统自启动**
- **第 12 章** **总结**
第 1 章 整体规划
1.1 软件规划
| 软件 | 版本 |
|---|---|
| 虚拟化软件 | VMware®Workstation15 Pro15.0.0 build-10134415 |
| OS软件 | Centos7.9:CentOS-7-x86_64-DVD-2009 |
| Oracle软件 | Oracle11.2.0.4.0 p13390677_112040_Linux-x86-64_1of7p13390677_112040_Linux-x86-64_2of7 |
1.2 虚拟机规划
| 配置 | |
|---|---|
| CPU | 2core |
| MEM | 6G |
| DISK | 60G |
| 网卡 | 单一网卡 |
| ISO | Centos7.9:CentOS-7-x86_64-DVD-2009.iso |
1.3 主机规划
1.3.1 硬件配置
| CPU | 2 |
|---|---|
| MEM | 4G |
| disk | 3G |
| 网卡 | 1 NAT |
1.3.2 操作系统
CentOS Linux release 7.9.2009 (Core)
1.3.3 目录划分
| 分区 | 大小 |
|---|---|
| /boot | 1024Mb |
| /swap | 4096Mb |
| / | 35G |
1.3.4 SWAP规划
swap划分为4G
1.3.5 软件包规划
binutils
compat-libstdc++-33
elfutils-libelf
elfutils-libelf-devel
gcc gcc-c++
glibc
glibc-common
glibc-devel
glibc-headers
ksh
libaio
libaio-devel
libgcc
libstdc++
libstdc++-devel
make
numactl-devel
sysstat
unixODBC
unixODBC-devel
1.3.6 IP规划
| 名称 | 配置 |
|---|---|
| 主机名 | oracle11g |
| IP | 192.168.245.129/24 |
| gateway | 192.168.245.2 |
| DNS1 | 192.168.245.1 |
| 网卡 | NAT |
1.4 Oracle规划
1.4.1 Oracle软件规划
| 数据库软件 | 11.2.0.4.0 | Patch:13390677 |
|---|---|---|
| PSU版本 DB | 11.2.0.4.8 (Oct 2015) | Patch:21352635 |
| OPATCH工具版本 | You must use the OPatch utility version 11.2.0.3.6 or later | 6880880 |
| Installation Type | Zip File |
|---|---|
| Oracle Database (includes Oracle Database and Oracle RAC)Note: you must download both zip files to install Oracle Database. | p13390677_112040_platform_1of7.zipp13390677_112040_platform_2of7.zip |
| Oracle Grid Infrastructure (includes Oracle ASM, Oracle Clusterware, and Oracle Restart) | p13390677_112040_platform_3of7.zip |
| Oracle Database Client | p13390677_112040_platform_4of7.zip |
| Oracle Gateways | p13390677_112040_platform_5of7.zip |
| Oracle Examples | p13390677_112040_platform_6of7.zip |
| Deinstall | p13390677_112040_platform_7of7.zip |
1.4.2 Oracle用户规划
1.4.2.1 Oracle用户组
| GroupName | GroupID | 说明 |
|---|---|---|
| oinstall | 1000 | Oracle清单和软件所有者 |
| asmadmin | 1001 | Oracle自动存储管理组 |
| asmdba | 1002 | ASM数据库管理员组 |
| asmoper | 1003 | ASM操作员组 |
| dba | 1004 | 数据库管理员 |
| oper | 1005 | DBA操作员组 |
1.4.2.2 Oracle用户
| 用户UID | OS用户 | 主组 | 辅组 | 用户目录 | 默认shell |
|---|---|---|---|---|---|
| 1101 | oracle | oinstall | dba | /home/oracle | bash |
1.4.3 Oracle目录规划
| 目录名称 | 路径 | 说明 |
|---|---|---|
| ORACLE_BASE (oracle) | /u01/app/oracle | oracle基目录 |
| ORACLE_HOME (oracle) | /u01/app/oracle/product/11.2.0/db_1 | oracle用户HOME目录 |
1.4.4 Oracle数据库规划
| 规划内容 | 规划描述 |
|---|---|
| 内存规划 | SGA PGA |
| processes | 1000 |
| 字符集 | ZHS16GBK |
| 归档模式 | 非 |
| redo | 5组 每组200M |
| undo | 2G 自动扩展 最大4G |
| temp | 4G |
| 闪回配置 | 4G大小 |
第 2 章 虚拟机安装
2.1 windows配置

2.2 新建虚拟机

2.3 硬件兼容性

2.4 选择操作系统ISO

2.5 命名虚拟机

2.6 CPU配置
设置CPU为2

2.7 内存配置
选择网络类型为桥接网络,下一步

选择网络类型为桥接网络,下一步
2.8 网络配置

2.9 控制器配置
选择I/O控制器类型为LSI Logic,下一步

选择磁盘类型为SCSI,下一步

2.10 磁盘配置

配置磁盘大小,并选择将虚拟磁盘拆分多个文件,下一步

指定磁盘文件,下一步

2.11 完成配置

第 3 章 安装操作系统
3.1 选择安装语言

3.2 设置时间


3.3 设置语言支持

3.4 选择安装范围

3.5 选择分区


3.6 关闭kdump

3.7 配置网卡



3.8 配置root密码和开始安装

第 4 章 安装前准备工作
4.1 设置主机名
[root@oracle11g ~]# hostname oracle11g [root@oracle11g ~]# hostnamectl status Static hostname: oracle11g Icon name: computer-vm Chassis: vm Machine ID: 76e317567a0d410088ac93c983a2577e Boot ID: 1ceb58550eaa4a20aff3ce3da7cdc6c0 Virtualization: vmware Operating System: CentOS Linux 7 (Core) CPE OS Name: cpe:/o:centos:centos:7 Kernel: Linux 3.10.0-1160.el7.x86_64 Architecture: x86-64 [root@oracle11g ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.245.129 oracle11g
4.2 检查操作系统
[root@oracle11g ~]# uname -a Linux oracle11g 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux [root@oracle11g ~]# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) [root@oracle11g ~]# getconf LONG_BIT 64 [root@oracle11g ~]#
4.3 检查内存,CPU
[root@oracle11g ~]# dmidecode |grep Name Product Name: VMware Virtual Platform Product Name: 440BX Desktop Reference Platform Manufacturer Name: Intel [root@oracle11g ~]# [root@oracle11g ~]# dmidecode |grep -i cpu|grep -i version|awk -F ':' '{print $2}' Intel(R) Core(TM) i5-10210U CPU @ 1.60GHz [root@oracle11g ~]# cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c 2 Intel(R) Core(TM) i5-10210U CPU @ 1.60GHz [root@oracle11g ~]# dmidecode|grep -A5 "Memory Device"|grep Size|grep -v No Size: 4096 MB [root@oracle11g ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 40G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 39G 0 part ├─centos-root 253:0 0 35G 0 lvm / └─centos-swap 253:1 0 4G 0 lvm /swap sr0 11:0 1 1024M 0 rom
4.4 检查/tmp和/dev/shm
[root@oracle11g ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 2.0G 0 2.0G 0% /dev
tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs 2.0G 14M 2.0G 1% /run
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/mapper/centos-root 35G 6.6G 29G 19% /
/dev/sda1 1014M 172M 843M 17% /boot
/dev/mapper/centos-swap 4.0G 33M 4.0G 1% /swap
tmpfs 394M 40K 394M 1% /run/user/1000
tmpfs 394M 0 394M 0% /run/user/0
[root@oracle11g ~]# df -h /tmp
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 35G 6.6G 29G 19% /
##调整/dev/shm大小为4G
Linux OL7/RHEL7: PRVE-0421 : No entry exists in /etc/fstab for mounting /dev/shm (文档 ID 2065603.1)
root@oracle11g ~]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Tue Jul 13 16:19:54 2021
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root / xfs defaults 0 0
UUID=e6bb10ee-08fd-44d1-bc21-36e1a27d1469 /boot xfs defaults 0 0
/dev/mapper/centos-swap /swap xfs defaults 0 0
tempfs /dev/shm tempfs defaults,size=4G 0 0
[root@oracle11g ~]# mount -o remount /dev/shm
[root@oracle11g ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 2.0G 0 2.0G 0% /dev
tmpfs 4.0G 0 4.0G 0% /dev/shm
tmpfs 2.0G 14M 2.0G 1% /run
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/mapper/centos-root 35G 6.6G 29G 19% /
/dev/sda1 1014M 172M 843M 17% /boot
/dev/mapper/centos-swap 4.0G 33M 4.0G 1% /swap
tmpfs 394M 40K 394M 1% /run/user/1000
tmpfs 394M 0 394M 0% /run/user/0
4.5 关闭防火墙和selinux
--关闭防火墙 systemctl stop firewalld systemctl disable firewalld systemctl status firewalld --关闭Selinux [root@oracle11g ~]# sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config setenforce 0 [root@oracle11g ~]# sestatus SELinux status: enabled SELinuxfs mount: /sys/fs/selinux SELinux root directory: /etc/selinux Loaded policy name: targeted Current mode: permissive Mode from config file: disabled Policy MLS status: enabled Policy deny_unknown status: allowed Max kernel policy version: 31
4.6 关闭avahi-daemon服务
必须关闭 avahi-daemon 服务(如果在系统中存在) systemctl status avahi-daemon.socket avahi-daemon.service systemctl stop avahi-daemon.socket avahi-daemon.service systemctl disable avahi-daemon.socket avahi-daemon.service
4.7 关闭其他服务
即便不是最小化服务方式配置 Linux,下面一些系统服务仍然强烈建议关闭: NetworkManager、auditd、trace-cmd、cpuspeed,rhsmcertd 关闭NetworkManager服务(与network服务冲突) systemctl disable NetworkManager systemctl stop NetworkManager.service 其他待定。 linux 6上建议关闭的服务有: chkconfig --level 2345 iptables off chkconfig --level 2345 rhnsd off chkconfig --level 2345 isdn off chkconfig --level 2345 avahi-daemon off chkconfig --level 2345 avahi-dnsconfd off chkconfig --level 2345 bluetooth off chkconfig --level 2345 hcid off chkconfig --level 2345 capi off chkconfig --level 2345 hidd off chkconfig --level 2345 irqbalance off chkconfig --level 2345 mcstrans off chkconfig --level 2345 pcscd off chkconfig --level 2345 gpm off chkconfig --level 2345 portmap off chkconfig --level 2345 rpcgssd off chkconfig --level 2345 rpcidmapd off chkconfig --level 2345 rpcsvcgssd off chkconfig --level 2345 portmap off chkconfig --level 2345 sendmail off chkconfig --level 2345 xend off chkconfig --level 2345 cups off chkconfig --level 2345 iptables off chkconfig --level 2345 ip6tables off chkconfig --level 2345 blk-availability off chkconfig --level 2345 abrt-ccpp off chkconfig --level 2345 abrtd off chkconfig --level 2345 certmonger off chkconfig --level 2345 cpuspeed off chkconfig --level 2345 irqbalance off chkconfig --level 2345 trace-cmd off chkconfig --level 2345 NetworkManager off chkconfig --level 2345 yum-updatesd off chkconfig --level 2345 xfs off chkconfig --level 2345 rawdevices off chkconfig --level 2345 iscsid off chkconfig --level 2345 acpid off chkconfig --level 2345 auditd off chkconfig --level 2345 firstboot off chkconfig --level 2345 haldaemon off chkconfig --level 2345 microcode_ctl off chkconfig --level 2345 restorecond off chkconfig --level 2345 setroubleshoot off chkconfig --level 2345 lvm2-monitor off chkconfig --level 2345 mdmonitor off
4.8 关闭THP
根据上述文中标红处,简单来说就是 Oracle Linux team 在测试的过程中发现,如果 linux开启透明巨页THP,则 I/O 读写性能降低 30%;如果关闭透明巨页 THP,I/O 读写性能则恢复正常。另,建议在 Oracle Database 中不要使用 THP,具体的MOS文档:文 档 ID 1606759.1
# cat /sys/kernel/mm/transparent_hugepage/enabled
# cat /sys/kernel/mm/transparent_hugepage/defrag
[root@oracle11g ~]# cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never
[root@oracle11g ~]# cat /sys/kernel/mm/transparent_hugepage/defrag
[always] madvise never
vi /etc/rc.d/rc.local
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
赋予 rc.local 文件可执行权限:
# chmod +x /etc/rc.d/rc.local
重启操作系统,使配置生效,检查 THP 状态,应该是被禁用的
# reboot
# cat /sys/kernel/mm/transparent_hugepage/enabled
# cat /sys/kernel/mm/transparent_hugepage/defrag
4.9 安装软件包
4.9.1 设置YUN源
#mount cdrom
mount /dev/cdrom /mnt
#编辑repo
cd /etc/yum.repos.d/
[root@oracle11g yum.repos.d]# mkdir bak
[root@oracle11g yum.repos.d]# mv *.repo ./bak/
[root@oracle11g yum.repos.d]# vi CentOS-Media.repo
[root@oracle11g yum.repos.d]# cat CentOS-Media.repo
[c7-media]
name=centosrepo
baseurl=file:///mnt
enabled=1
gpgckeck=0
[root@oracle11g yum.repos.d]# yum makecache
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
c7-media | 3.6 kB 00:00:00
(1/4): c7-media/group_gz | 153 kB 00:00:00
(2/4): c7-media/filelists_db | 3.3 MB 00:00:00
(3/4): c7-media/primary_db | 3.3 MB 00:00:00
(4/4): c7-media/other_db | 1.3 MB 00:00:00
元数据缓存已建立
[root@oracle11g yum.repos.d]# yum repolist
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
c7-media centosrepo 4,070
repolist: 4,070
[root@oracle11g yum.repos.d]#
4.9.2 安装软件包
yum -y install \ binutils \ compat-libcap1 \ compat-libstdc++-33 \ elfutils-libelf-devel \ gcc \ gcc-c++ \ glibc \ glibc-devel \ ksh \ libgcc \ libstdc++ \ libstdc++-devel \ libaio \ libaio-devel \ make \ sysstat \ unixODBC \ unixODBC-devel \ libXp \ parted \ vim \ xorg-x11-utils \ xorg-x11-xauth \ unzip \ tigervnc
4.9.3 验证安装包
[root@oracle11g ~]# rpm -q \
> binutils \
> compat-libcap1 \
> compat-libstdc++-33 \
> elfutils-libelf-devel \
> gcc \
> gcc-c++ \
> glibc \
> glibc-devel \
> ksh \
> libgcc \
> libstdc++ \
> libstdc++-devel \
> libaio \
> libaio-devel \
> make \
> sysstat \
> unixODBC \
> unixODBC-devel \
> libXp \
> parted \
> xorg-x11-utils \
> xorg-x11-xauth \
> unzip \
> tigervnc
binutils-2.27-44.base.el7.x86_64
compat-libcap1-1.10-7.el7.x86_64
compat-libstdc++-33-3.2.3-72.el7.x86_64
elfutils-libelf-devel-0.176-5.el7.x86_64
gcc-4.8.5-44.el7.x86_64
gcc-c++-4.8.5-44.el7.x86_64
glibc-2.17-317.el7.x86_64
glibc-devel-2.17-317.el7.x86_64
ksh-20120801-142.el7.x86_64
libgcc-4.8.5-44.el7.x86_64
libstdc++-4.8.5-44.el7.x86_64
libstdc++-devel-4.8.5-44.el7.x86_64
libaio-0.3.109-13.el7.x86_64
libaio-devel-0.3.109-13.el7.x86_64
make-3.82-24.el7.x86_64
sysstat-10.1.5-19.el7.x86_64
unixODBC-2.3.1-14.el7.x86_64
unixODBC-devel-2.3.1-14.el7.x86_64
libXp-1.0.2-2.1.el7.x86_64
parted-3.1-32.el7.x86_64
xorg-x11-utils-7.5-23.el7.x86_64
xorg-x11-xauth-1.0.9-1.el7.x86_64
unzip-6.0-21.el7.x86_64
tigervnc-1.8.0-21.el7.x86_64
4.10 设置核心参数
4.10.1 修改核心参数
[root@oracle11g ~]# sysctl -p
kernel.shmmax = 2147483648
kernel.shmall = 2097152
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
fs.aio-max-nr = 1048576
fs.file-max = 6815744
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.conf.all.rp_filter = 1
[root@oracle11g ~]#
[root@oracle11g ~]#
[root@oracle11g ~]# cat /etc/sysctl.conf
# sysctl settings are defined through files in
# /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
#
# Vendors settings live in /usr/lib/sysctl.d/.
# To override a whole file, create a new file with the same in
# /etc/sysctl.d/ and put new settings there. To override
# only specific settings, add a file with a lexically later
# name in /etc/sysctl.d/ and put new settings there.
#
# For more information, see sysctl.conf(5) and sysctl.d(5).
kernel.shmmax = 2147483648
kernel.shmall = 2097152
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
fs.aio-max-nr = 1048576
fs.file-max = 6815744
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.conf.all.rp_filter = 1
[root@oracle11g ~]#
4.10.2 修改用户限制
# vi /etc/security/limits.conf
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
4.10.3 修改/etc/profile
编辑 /etc/profile ,输入命令:vi /etc/profile,按i键进入编辑模式,将下列内容加入该文件。(注意在 = 号两边有空格,如果没有可能出错)
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
4.10.4 验证模块
vi /etc/pam.d/login session required /lib/security/pam_limits.so session required pam_limits.so
4.11 创建用户和组
添加组
groupadd oinstall
groupadd dba
添加用户
useradd -g oinstall -G dba oracle
修改密码
passwd oracle
echo oracle |passwd --stdin oracle
4.12 创建目录
mkdir -p /u01/app/oracle 分配权限 chown -R oracle.oinstall /u01/app chmod -R 755 /u01/app
4.13 设置用户环境变量
cat >> /home/oracle/.bash_profile << "EOF"
################ enmo add#########################
umask 022
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.3.0/dbhome_1
export ORACLE_SID=orcl
export PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH
export TNS_ADMIN=$ORACLE_HOME/network/admin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/lib32:/lib/usr/lib:/usr/local/lib
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
export NLS_OS_CHARSET=AL32UTF8
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'
alias ggsci='rlwrap /u01/ogg/ggsci'
stty erase ^h
EOF
添加完成后执行 source /home/oracle/.bash_profile 命令使配置生效
4.14 上传和解压缩软件
[oracle@oracle11g sw]$ du -sh database 2.5G database
第 5 章 安装Oracle11g软件
这里只安装数据库软件,之后再用dbca命令建立集群数据库。
export DISPLAY=192.168.245.117:0.0
[oracle@oracle11g database]$ ./runInstaller
正在启动 Oracle Universal Installer...
检查临时空间: 必须大于 120 MB。 实际为 26173 MB 通过
检查交换空间: 可用的交换空间为 0 MB, 所需的交换空间为 150 MB。 未通过 <<<<
检查监视器: 监视器配置至少必须显示 256 种颜色
\>>> 无法使用命令 /usr/bin/xdpyinfo 自动检查显示器颜色。请检查是否设置了 DISPLAY 变量。 未通过 <<<<
未通过某些要求检查。必须先满足这些 要求,
然后才能继续安装,
是否继续? (y/n) [n] y
\>>> 忽略未通过的必需先决条件。继续...
准备从以下地址启动 Oracle Universal Installer /tmp/OraInstall2021-07-14_10-53-12AM. 请稍候...
DISPLAY 尚未设置。请设置 DISPLAY 后重试。
根据所使用的 Unix Shell, 您可以使用以下命令之一作为设置 DISPLAY 环境变量的示例:
\- 对于 csh: % setenv DISPLAY 192.168.1.128:0.0
\- 对于 sh, ksh 和 bash: $ DISPLAY=192.168.1.128:0.0; export DISPLAY
使用以下命令来查看所使用的 shell:
echo $SHELL
使用以下命令来查看 DISPLAY 环境变量的当前设置:
echo $DISPLAY\n- 确保客户机用户具有连接到 X 服务器的权限。
要允许客户机用户访问 X 服务器, 请以启动该会话的用户身份打开 xterm, dtterm 或 xconsole, 并键入以下命令:
% xhost +
要测试 DISPLAY 环境变量是否设置正确, 请运行本机操作系统自带的基于 X11 的程序, 例如 'xclock':
% <xclock 的完整路径.. 参见下文>
如果无法成功运行 xclock, 请与您的 PC-X 服务器或操作系统供应商联系以获得帮助。
xclock 的典型路径为: /usr/X11R6/bin/xclock









但是实际上这两个包是不需要的,可以忽略继续安装。但是有Warning总归是让人不舒服的。
解决方法:
1、解压安装包目录下
2、cd /stage/cvu/cv/admin
该目录下有个cvu_config的配置文件,编辑这个配置文件,将其中的:
CV_ASSUME_DISTID=OEL4 改成 CV_ASSUME_DISTID=OEL6
保存后重新执行runInstaller,这两个包缺少的Warning就没有了。


报错处理
解决方案
在makefile中添加链接libnnz11库的参数
修改$ORACLE_HOME/sysman/lib/ins_emagent.mk,将
$(MK_EMAGENT_NMECTL)修改为:$(MK_EMAGENT_NMECTL) -lnnz11
建议修改前备份原始文件

执行相关脚本即可
第 6 章 创建数据库
使用oracle用户,通过xmanager登录运行DBca来建立RAC集群数据库。建库时可以先不配置企业管理器(Enterprise Manager),等建库完成后,执行脚本配置EM。原因是在安装过程中配置EM导致建库时间很长,如果RAC节点的主机性能不好,可能导致安装程序的界面停止响应。





如果配置EM需要监听,需要另一个窗口netca










第 7 章 卸载数据库和软件
本文档为了继续测试静默安装,因此需要卸载数据库oracle软件。
7.1 dbca删除数据库




7.2 卸载oracle软件
[oracle@localhost /]$ cd /u01/app/oracle/product/11.2.0/db_1/deinstall
[oracle@localhost deinstall]$ export LANG=en
[oracle@localhost deinstall]$ ./deinstall
[oracle@oracle11g deinstall]$ ./deinstall
Checking for required files and bootstrapping ...
Please wait ...
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LANG = "en"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LANG = "en"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
Location of logs /tmp/deinstall2021-07-14_11-29-00AM/logs/
\############ ORACLE DEINSTALL & DECONFIG TOOL START ############
\######################### CHECK OPERATION START #########################
\## [START] Install check configuration ##
Checking for existence of the Oracle home location /u01/app/oracle/product/11.2.0/db_1
Oracle Home type selected for deinstall is: Oracle Single Instance Database
Oracle Base selected for deinstall is: /u01/app/oracle
Checking for existence of central inventory location /u01/app/oraInventory
Checking for sufficient temp space availability on node(s) : 'oracle11g'
\## [END] Install check configuration ##
Network Configuration check config START
Network de-configuration trace file location: /tmp/deinstall2021-07-14_11-29-00AM/logs/netdc_check2021-07-14_11-29-09-AM.log
Network Configuration check config END
Database Check Configuration START
Database de-configuration trace file location: /tmp/deinstall2021-07-14_11-29-00AM/logs/databasedc_check2021-07-14_11-29-09-AM.log
Use comma as separator when specifying list of values as input
Specify the list of database names that are configured in this Oracle home []:
Database Check Configuration END
Enterprise Manager Configuration Assistant START
EMCA de-configuration trace file location: /tmp/deinstall2021-07-14_11-29-00AM/logs/emcadc_check2021-07-14_11-29-18-AM.log
Enterprise Manager Configuration Assistant END
Oracle Configuration Manager check START
OCM check log file location : /tmp/deinstall2021-07-14_11-29-00AM/logs//ocm_check4173.log
Oracle Configuration Manager check END
\######################### CHECK OPERATION END #########################
\####################### CHECK OPERATION SUMMARY #######################
Oracle Home selected for deinstall is: /u01/app/oracle/product/11.2.0/db_1
Inventory Location where the Oracle home registered is: /u01/app/oraInventory
No Enterprise Manager configuration to be updated for any database(s)
No Enterprise Manager ASM targets to update
No Enterprise Manager listener targets to migrate
Checking the config status for CCR
Oracle Home exists with CCR directory, but CCR is not configured
CCR check is finished
Do you want to continue (y - yes, n - no)? [n]: y
A log of this session will be written to: '/tmp/deinstall2021-07-14_11-29-00AM/logs/deinstall_deconfig2021-07-14_11-29-08-AM.out'
Any error messages from this session will be written to: '/tmp/deinstall2021-07-14_11-29-00AM/logs/deinstall_deconfig2021-07-14_11-29-08-AM.err'
\######################## CLEAN OPERATION START ########################
Enterprise Manager Configuration Assistant START
EMCA de-configuration trace file location: /tmp/deinstall2021-07-14_11-29-00AM/logs/emcadc_clean2021-07-14_11-29-18-AM.log
Updating Enterprise Manager ASM targets (if any)
Updating Enterprise Manager listener targets (if any)
Enterprise Manager Configuration Assistant END
Database de-configuration trace file location: /tmp/deinstall2021-07-14_11-29-00AM/logs/databasedc_clean2021-07-14_11-29-32-AM.log
Network Configuration clean config START
Network de-configuration trace file location: /tmp/deinstall2021-07-14_11-29-00AM/logs/netdc_clean2021-07-14_11-29-32-AM.log
De-configuring backup files...
Backup files de-configured successfully.
The network configuration has been cleaned up successfully.
Network Configuration clean config END
Oracle Configuration Manager clean START
OCM clean log file location : /tmp/deinstall2021-07-14_11-29-00AM/logs//ocm_clean4173.log
Oracle Configuration Manager clean END
Setting the force flag to false
Setting the force flag to cleanup the Oracle Base
Oracle Universal Installer clean START
Detach Oracle home '/u01/app/oracle/product/11.2.0/db_1' from the central inventory on the local node : Done
Delete directory '/u01/app/oracle/product/11.2.0/db_1' on the local node : Done
Delete directory '/u01/app/oraInventory' on the local node : Done
Failed to delete the directory '/u01/app/oracle/cfgtoollogs/netca'. The directory is in use.
Failed to delete the directory '/u01/app/oracle/cfgtoollogs'. The directory is not empty.
Failed to delete the directory '/u01/app/oracle/cfgtoollogs/netca'. The directory is in use.
Failed to delete the directory '/u01/app/oracle/cfgtoollogs'. The directory is not empty.
Failed to delete the directory '/u01/app/oracle'. The directory is not empty.
Delete directory '/u01/app/oracle' on the local node : Failed <<<<
Oracle Universal Installer cleanup completed with errors.
Oracle Universal Installer clean END
\## [START] Oracle install clean ##
Clean install operation removing temporary directory '/tmp/deinstall2021-07-14_11-29-00AM' on node 'oracle11g'
\## [END] Oracle install clean ##
\######################### CLEAN OPERATION END #########################
\####################### CLEAN OPERATION SUMMARY #######################
Cleaning the config for CCR
As CCR is not configured, so skipping the cleaning of CCR configuration
CCR clean is finished
Successfully detached Oracle home '/u01/app/oracle/product/11.2.0/db_1' from the central inventory on the local node.
Successfully deleted directory '/u01/app/oracle/product/11.2.0/db_1' on the local node.
Successfully deleted directory '/u01/app/oraInventory' on the local node.
Failed to delete directory '/u01/app/oracle' on the local node.
Oracle Universal Installer cleanup completed with errors.
Run 'rm -rf /etc/oraInst.loc' as root on node(s) 'oracle11g' at the end of the session.
Run 'rm -rf /opt/ORCLfmap' as root on node(s) 'oracle11g' at the end of the session.
Run 'rm -rf /etc/oratab' as root on node(s) 'oracle11g' at the end of the session.
Oracle deinstall tool successfully cleaned up temporary directories.
\#######################################################################
\############# ORACLE DEINSTALL & DECONFIG TOOL END #############
7.3 其他方法卸载
第二种方法:通过删除文件的方式卸载;(即:删除Oracle安装目录下的所有文件和文件夹)
1.使用SQL*PLUS停止数据库
[oracle@OracleTest oracle]$ sqlplus /nolog
SQL> connect / as sysdba
SQL> shutdown [immediate]
SQL> exit
2.停止Listener
[oracle@OracleTest oracle]$ lsnrctl stop
3.停止HTTP服务
[root@OracleTest /root]# service httpd stop
4.用su或者重新登录到root(如想重新安装可以保留oracle用户,省得输入环境变量了)
5.将安装目录删除
[root@OracleTest /root]# rm -rf /u01/app/oracle/
6.将/usr/bin下的文件删除
[root@OracleTest /root]# rm /usr/local/bin/dbhome
[root@OracleTest /root]# rm /usr/local/bin/oraenv
[root@OracleTest /root]# rm /usr/local/bin/coraenv
7.将/etc/oratab删除
[root@OracleTest /root]# rm /etc/oratab
8.将/etc/oraInst.loc删除
[root@OracleTest /root]# rm /etc/oraInst.loc
9.将oracle用户删除(若要重新安装,可以不删除)
[root@OracleTest /root]# userdel –r oracle
10.将用户组删除(若要重新安装,可以不删除)
[root@OracleTest /root]# groupdel oinstall
[root@OracleTest /root]# groupdel dba
11.将启动服务删除
[root@OracleTest /root]# chkconfig --del dbora
到此为止重启后,你的Linux系统下的Oracle数据库已完全删除了!!
第 8 章 静默安装数据库
8.1 静默安装oracle软件
8.1.1 切换到Oracle用户,复制响应文件模板
[oracle@oracle11g database]$ ls
install response runInstaller stage
readme.html rpm sshsetup welcome.html
[oracle@oracle11g database]$ cd response/
[oracle@oracle11g response]$ ls
db_install.rsp dbca.rsp netca.rsp
[oracle@oracle11g response]$ cp *.rsp /home/oracle/etc/
[oracle@oracle11g response]$
8.1.2 文件说明
less db_install.rsp |grep -v "#"|grep -v "^$"
[oracle@oracle11g etc]$ less db_install.rsp |grep -v "#"|grep -v "^$"
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0
oracle.install.option=
ORACLE_HOSTNAME=
UNIX_GROUP_NAME=
INVENTORY_LOCATION=
SELECTED_LANGUAGES=en
ORACLE_HOME=
ORACLE_BASE=
oracle.install.db.InstallEdition=
oracle.install.db.EEOptionsSelection=false
oracle.install.db.optionalComponents=oracle.rdbms.partitioning:11.2.0.4.0,oracle.oraolap:11.2.0.4.0,oracle.rdbms.dm:11.2.0.4.0,oracle.rdbms.dv:11.2.0.4.0,oracle.rdbms.lbac:11.2.0.4.0,oracle.rdbms.rat:11.2.0.4.0
oracle.install.db.DBA_GROUP=
oracle.install.db.OPER_GROUP=
oracle.install.db.CLUSTER_NODES=
oracle.install.db.isRACOneInstall=
oracle.install.db.racOneServiceName=
oracle.install.db.config.starterdb.type=
oracle.install.db.config.starterdb.globalDBName=
oracle.install.db.config.starterdb.SID=
oracle.install.db.config.starterdb.characterSet=AL32UTF8
oracle.install.db.config.starterdb.memoryOption=true
oracle.install.db.config.starterdb.memoryLimit=
oracle.install.db.config.starterdb.installExampleSchemas=false
oracle.install.db.config.starterdb.enableSecuritySettings=true
oracle.install.db.config.starterdb.password.ALL=
oracle.install.db.config.starterdb.password.SYS=
oracle.install.db.config.starterdb.password.SYSTEM=
oracle.install.db.config.starterdb.password.SYSMAN=
oracle.install.db.config.starterdb.password.DBSNMP=
oracle.install.db.config.starterdb.control=DB_CONTROL
oracle.install.db.config.starterdb.gridcontrol.gridControlServiceURL=
oracle.install.db.config.starterdb.automatedBackup.enable=false
oracle.install.db.config.starterdb.automatedBackup.osuid=
oracle.install.db.config.starterdb.automatedBackup.ospwd=
oracle.install.db.config.starterdb.storageType=
oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=
oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=
oracle.install.db.config.asm.diskGroup=
oracle.install.db.config.asm.ASMSNMPPassword=
MYORACLESUPPORT_USERNAME=
MYORACLESUPPORT_PASSWORD=
SECURITY_UPDATES_VIA_MYORACLESUPPORT=
DECLINE_SECURITY_UPDATES=
PROXY_HOST=
PROXY_PORT=
PROXY_USER=
PROXY_PWD=
PROXY_REALM=
COLLECTOR_SUPPORTHUB_URL=
oracle.installer.autoupdates.option=
oracle.installer.autoupdates.downloadUpdatesLoc=
AUTOUPDATES_MYORACLESUPPORT_USERNAME=
AUTOUPDATES_MYORACLESUPPORT_PASSWORD=
8.1.3 编辑响应文件
主要修改的参数:
oracle.install.option=INSTALL_DB_SWONLY // 安装类型
ORACLE_HOSTNAME=oracle11g // 主机名称(hostname查询)
UNIX_GROUP_NAME=oinstall // 安装组
INVENTORY_LOCATION=/u01/app/oraInventory //INVENTORY目录(不填就是默认值)
SELECTED_LANGUAGES=en,zh_CN,zh_TW // 选择语言
ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1 //oracle_home
ORACLE_BASE=/u01/app/oracle //oracle_base
oracle.install.db.InstallEdition=EE // oracle版本
oracle.install.db.EEOptionsSelection=false //自定义安装,否,使用默认组件
oracle.install.db.DBA_GROUP=dba / / dba用户组
oracle.install.db.OPER_GROUP=oinstall // oper用户组
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE //数据库类型
oracle.install.db.config.starterdb.globalDBName=orcl //globalDBName
oracle.install.db.config.starterdb.SID=orcl //SID
oracle.install.db.config.starterdb.memoryLimit=2048 //自动管理内存的内存(M)
oracle.install.db.config.starterdb.password.ALL=oracle //设定所有数据库用户使用同一个密码
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false //(手动写了false)
DECLINE_SECURITY_UPDATES=true //设置安全更新(貌似是有bug,这个一定要选true,否则会无限提醒邮件地址有问题,终止安装。PS:不管地址对不对)
8**.1.4** 静默安装oracle软件
./runInstaller -silent -ignoreSysPrereqs -showProgress -responseFile /home/oracle/db_install.rsp
8.1.5 静默安装oracle软件-命令行方式
/soft/database/runInstaller -silent -force -noconfig -IgnoreSysPreReqs -ignorePrereq -showProgress \oracle.install.option=INSTALL_DB_SWONLY \DECLINE_SECURITY_UPDATES=true \UNIX_GROUP_NAME=oinstall \INVENTORY_LOCATION=/u01/app/oraInventory \SELECTED_LANGUAGES=en \ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 \ORACLE_BASE=/u01/app/oracle \oracle.install.db.InstallEdition=EE \oracle.install.db.isCustomInstall=false \oracle.install.db.DBA_GROUP=dba \oracle.install.db.OPER_GROUP=dba \oracle.install.db.isRACOneInstall=false \oracle.install.db.config.starterdb.type=GENERAL_PURPOSE \SECURITY_UPDATES_VIA_MYORACLESUPPORT=false \oracle.installer.autoupdates.option=SKIP_UPDATES
8.2 静默安装数据库
dbca -silent -createDatabase -templateName General_Purpose.dbc -gdbname orcl -sid orcl -sysPassword oracle -systemPassword oracle -responseFile NO_VALUE -datafileDestination /u01/app/oracle/oradata/ -redoLogFileSize 500 -recoveryAreaDestination /u01/app/oracle/flash_recovery_area -storageType FS -characterSet ZHS16GBK -nationalCharacterSet AL16UTF16 -sampleSchema true -memoryPercentage 30 -totalMemory 200 -databaseType OLTP -emConfiguration NONE
8.3 静默创建监听
less db_install.rsp |grep -v "#"|grep -v "^$"
[oracle@oracle11g etc]$ less netca.rsp |grep -v "#"|grep -v "^$"
[GENERAL]
RESPONSEFILE_VERSION="11.2"
CREATE_TYPE="CUSTOM"
[oracle.net.ca]
INSTALLED_COMPONENTS={"server","net8","javavm"}
INSTALL_TYPE=""typical""
LISTENER_NUMBER=1
LISTENER_NAMES={"LISTENER"}
LISTENER_PROTOCOLS={"TCP;1521"}
LISTENER_START=""LISTENER""
NAMING_METHODS={"TNSNAMES","ONAMES","HOSTNAME"}
NSN_NUMBER=1
NSN_NAMES={"EXTPROC_CONNECTION_DATA"}
NSN_SERVICE={"PLSExtProc"}
NSN_PROTOCOLS={"TCP;HOSTNAME;1521"}
netca -silent -responsefile /home/oracle/etc/netca.rsp
第 9 章 升级Oracle PSU
9.1 PSU安装流程

9.2 PSU概要
p31718723_112040_Linux-x86-64.zip : OCT2020 (11.2.0.4.201020)
最新PSU,这里用的是GI 包含DB的PSU
**Table 1-2 Patch Numbers Getting Installed as Part of this GI PSU Patch**
| *Patch Number* | *Description* | *Applicable Homes* |
|---|---|---|
| 31537677 | DB PSU 11.2.0.4.201020 | Both DB homes and Grid home |
| 29938455 | OCW PATCH SET UPDATE 11.2.0.4.191015 | Both DB homes and Grid home |
| 29509309 | ACFS PATCH SET UPDATE 11.2.0.4.190716 href="#fnsrc_d355e322" Footnote 1 | Only Grid home |
9.3 添加环境变量
[oracle@oracle11g ~]$ 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_BASE=/u01/app/oracle
export ORACLE_SID=orcl
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/lib32
export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH
export PATH=$PATH:$ORACLE_HOME/OPatch
9.4 检查和升级OPATCH版本
How To Download And Install The Latest OPatch(6880880) Version (文档 ID 274526.1)
最新的版本是 OPatch patch of version 11.2.0.3.29
[oracle@oracle11g ~]$ opatch version
OPatch Version: 11.2.0.3.4
OPatch succeeded.
[oracle@oracle11g ~]$
[oracle@oracle11g db_1]$ mv OPatch/ OPatchbak
[oracle@oracle11g db_1]$ unzip /home/oracle/sw/p6880880_112000_Linux-x86-64.zip -d $ORACLE_HOME
[oracle@oracle11g db_1]$ opatch version
OPatch Version: 11.2.0.3.29
OPatch succeeded.
[oracle@oracle11g db_1]$
9.5 检查当前版本
[oracle@oracle11g db_1]$ opatch lsinventory -detail -oh /u01/app/oracle/product/11.2.0/db_1 | grep -i patch
OPatch 版本 :11.2.0.3.29
日志文件位置:/u01/app/oracle/product/11.2.0/db_1/cfgtoollogs/opatch/opatch2021-07-14_16-26-04下午_1.log
Lsinventory Output file location : /u01/app/oracle/product/11.2.0/db_1/cfgtoollogs/opatch/lsinv/lsinventory2021-07-14_16-26-04下午.txt
Oracle One-Off Patch Installer 11.2.0.3.4
OPatch succeeded.
[oracle@oracle11g db_1]$
SQL> set linesize 300
SQL> col action_time for a30
SQL> col action for a10
SQL> col namespace for a20
SQL> col version for a20
SQL> col bundle_series for a30
SQL> col comments for a30
SQL> select * from dba_registry_history;
ACTION_TIME ACTION NAMESPACE VERSION ID BUNDLE_SERIES COMMENTS
------------------------------ ---------- -------------------- -------------------- ---------- ------------------------------ ------------------------------
24-AUG-13 12.03.45.119862 PM APPLY SERVER 11.2.0.4 0 PSU Patchset 11.2.0.2.0
14-JUL-21 03.30.48.950123 PM APPLY SERVER 11.2.0.4 0 PSU Patchset 11.2.0.2.0
9.6 检查冲突
[oracle@oracle11g 31718723]$ pwd
/home/oracle/sw/31718723
[oracle@oracle11g 31718723]$ opatch prereq CheckConflictAgainstOHWithDetail -ph ./
Oracle 临时补丁程序安装程序版本 11.2.0.3.29
版权所有 (c) 2021, Oracle Corporation。保留所有权利。
PREREQ session
Oracle 主目录 :/u01/app/oracle/product/11.2.0/db_1
主产品清单:/u01/app/oraInventory
来自 :/u01/app/oracle/product/11.2.0/db_1/oraInst.loc
OPatch 版本 :11.2.0.3.29
OUI 版本 :11.2.0.4.0
日志文件位置:/u01/app/oracle/product/11.2.0/db_1/cfgtoollogs/opatch/opatch2021-07-14_16-28-47下午_1.log
Invoking prereq "checkconflictagainstohwithdetail"
Prereq "checkConflictAgainstOHWithDetail" passed.
OPatch succeeded.
[oracle@oracle11g 31718723]$
9.7 安装PSU
单实例的数据库按如下方法打patch就可以了,如果是RAC则需要详细查看README.html:
[oracle@oracle11g 31718723]$ cd 31537677/
[oracle@oracle11g 31537677]$ opatch apply
Oracle 临时补丁程序安装程序版本 11.2.0.3.29
版权所有 (c) 2021, Oracle Corporation。保留所有权利。
Oracle 主目录 :/u01/app/oracle/product/11.2.0/db_1
主产品清单:/u01/app/oraInventory
来自 :/u01/app/oracle/product/11.2.0/db_1/oraInst.loc
OPatch 版本 :11.2.0.3.29
OUI 版本 :11.2.0.4.0
日志文件位置:/u01/app/oracle/product/11.2.0/db_1/cfgtoollogs/opatch/opatch2021-07-14_16-32-58下午_1.log
Verifying environment and performing prerequisite checks...
Prerequisite check "CheckActiveFilesAndExecutables" failed.
The details are:
Following active executables are not used by opatch process :
/u01/app/oracle/product/11.2.0/db_1/bin/oracle
Following active executables are used by opatch process :
/u01/app/oracle/product/11.2.0/db_1/lib/libclntsh.so.11.1
UtilSession 失败: Prerequisite check "CheckActiveFilesAndExecutables" failed.
Log file location: /u01/app/oracle/product/11.2.0/db_1/cfgtoollogs/opatch/opatch2021-07-14_16-32-58下午_1.log
OPatch failed with error code 73
需要关闭数据库和监听
重新执行
[oracle@oracle11g 31718723]$ cd 31537677/
[oracle@oracle11g 31537677]$ opatch apply
Oracle 临时补丁程序安装程序版本 11.2.0.3.29
版权所有 (c) 2021, Oracle Corporation。保留所有权利。
Oracle 主目录 :/u01/app/oracle/product/11.2.0/db_1
主产品清单:/u01/app/oraInventory
来自 :/u01/app/oracle/product/11.2.0/db_1/oraInst.loc
OPatch 版本 :11.2.0.3.29
OUI 版本 :11.2.0.4.0
日志文件位置:/u01/app/oracle/product/11.2.0/db_1/cfgtoollogs/opatch/opatch2021-07-14_16-32-58下午_1.log
Verifying environment and performing prerequisite checks...
Prerequisite check "CheckActiveFilesAndExecutables" failed.
The details are:
Following active executables are not used by opatch process :
/u01/app/oracle/product/11.2.0/db_1/bin/oracle
Following active executables are used by opatch process :
/u01/app/oracle/product/11.2.0/db_1/lib/libclntsh.so.11.1
UtilSession 失败: Prerequisite check "CheckActiveFilesAndExecutables" failed.
Log file location: /u01/app/oracle/product/11.2.0/db_1/cfgtoollogs/opatch/opatch2021-07-14_16-32-58下午_1.log
OPatch failed with error code 73
[oracle@oracle11g 31537677]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Wed Jul 14 16:39:01 2021
Copyright (c) 1982, 2013, 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
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
[oracle@oracle11g 31537677]$ lsnrctl stop
LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 14-JUL-2021 16:39:19
Copyright (c) 1991, 2013, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
The command completed successfully
[oracle@oracle11g 31537677]$ opatch apply
Oracle 临时补丁程序安装程序版本 11.2.0.3.29
版权所有 (c) 2021, Oracle Corporation。保留所有权利。
Oracle 主目录 :/u01/app/oracle/product/11.2.0/db_1
主产品清单:/u01/app/oraInventory
来自 :/u01/app/oracle/product/11.2.0/db_1/oraInst.loc
OPatch 版本 :11.2.0.3.29
OUI 版本 :11.2.0.4.0
日志文件位置:/u01/app/oracle/product/11.2.0/db_1/cfgtoollogs/opatch/opatch2021-07-14_16-39-47下午_1.log
Verifying environment and performing prerequisite checks...
OPatch continues with these patches: 17478514 18031668 18522509 19121551 19769489 20299013 20760982 21352635 21948347 22502456 23054359 24006111 24732075 25869727 26609445 26392168 26925576 27338049 27734982 28204707 28729262 29141056 29497421 29913194 30298532 30670774 31103343 31537677
是否继续? [y|n]
y
User Responded with: Y
All checks passed.
请关闭本地系统上在此 ORACLE_HOME 之外运行的 Oracle 实例。
(Oracle 主目录 = '/u01/app/oracle/product/11.2.0/db_1')
本地系统是否已准备打补丁? [y|n]
y
User Responded with: Y
。。。。。。
9.8 升级数据库并编译失效对象
cd $ORACLE_HOME/rdbms/admin
sqlplus /nolog
SQL> CONNECT / AS SYSDBA
SQL> STARTUP
SQL> @catbundle.sql psu apply
SQL> QUIT
编译失效对象
cd $ORACLE_HOME/rdbms/admin
sqlplus /nolog
SQL> CONNECT / AS SYSDBA
SQL> @utlrp.sql
检查日志
Check the following log files in $ORACLE_BASE/cfgtoollogs/catbundle for any errors:
catbundle_PSU_<database SID>_APPLY_<TIMESTAMP>.log
catbundle_PSU_<database SID>_GENERATE_<TIMESTAMP>.log
9.9 检查
SQL> set linesize 300
SQL> col action_time for a30
SQL> col action for a10
SQL> col namespace for a20
SQL> col version for a20
SQL> col bundle_series for a30
SQL> col comments for a30
SQL> select * from dba_registry_history;
ACTION_TIME ACTION NAMESPACE VERSION ID BUNDLE_SERIES COMMENTS
------------------------------ ---------- -------------------- -------------------- ---------- ------------------------------ ------------------------------
24-AUG-13 12.03.45.119862 PM APPLY SERVER 11.2.0.4 0 PSU Patchset 11.2.0.2.0
14-JUL-21 03.30.48.950123 PM APPLY SERVER 11.2.0.4 0 PSU Patchset 11.2.0.2.0
14-JUL-21 04.50.44.315067 PM APPLY SERVER 11.2.0.4 201020 PSU PSU 11.2.0.4.201020
SQL>
[oracle@oracle11g admin]$ opatch lsinventory -detail -oh /u01/app/oracle/product/11.2.0/db_1 | grep -i patch
OPatch 版本 :11.2.0.3.29
日志文件位置:/u01/app/oracle/product/11.2.0/db_1/cfgtoollogs/opatch/opatch2021-07-14_16-54-09下午_1.log
Lsinventory Output file location : /u01/app/oracle/product/11.2.0/db_1/cfgtoollogs/opatch/lsinv/lsinventory2021-07-14_16-54-09下午.txt
Oracle One-Off Patch Installer 11.2.0.3.4
Patch 31537677 : applied on Wed Jul 14 16:42:36 CST 2021
Unique Patch ID: 23828543
Patch description: "Database Patch Set Update : 11.2.0.4.201020 (31537677)"
Sub-patch 31103343; "Database Patch Set Update : 11.2.0.4.200714 (31103343)"
Sub-patch 30670774; "Database Patch Set Update : 11.2.0.4.200414 (30670774)"
Sub-patch 30298532; "Database Patch Set Update : 11.2.0.4.200114 (30298532)"
Sub-patch 29913194; "Database Patch Set Update : 11.2.0.4.191015 (29913194)"
Sub-patch 29497421; "Database Patch Set Update : 11.2.0.4.190716 (29497421)"
Sub-patch 29141056; "Database Patch Set Update : 11.2.0.4.190416 (29141056)"
Sub-patch 28729262; "Database Patch Set Update : 11.2.0.4.190115 (28729262)"
Sub-patch 28204707; "Database Patch Set Update : 11.2.0.4.181016 (28204707)"
Sub-patch 27734982; "Database Patch Set Update : 11.2.0.4.180717 (27734982)"
Sub-patch 27338049; "Database Patch Set Update : 11.2.0.4.180417 (27338049)"
Sub-patch 26925576; "Database Patch Set Update : 11.2.0.4.180116 (26925576)"
Sub-patch 26392168; "Database Patch Set Update : 11.2.0.4.171017 (26392168)"
Sub-patch 26609445; "Database Patch Set Update : 11.2.0.4.170814 (26609445)"
Sub-patch 25869727; "Database Patch Set Update : 11.2.0.4.170718 (25869727)"
Sub-patch 24732075; "Database Patch Set Update : 11.2.0.4.170418 (24732075)"
Sub-patch 24006111; "Database Patch Set Update : 11.2.0.4.161018 (24006111)"
Sub-patch 23054359; "Database Patch Set Update : 11.2.0.4.160719 (23054359)"
Sub-patch 22502456; "Database Patch Set Update : 11.2.0.4.160419 (22502456)"
Sub-patch 21948347; "Database Patch Set Update : 11.2.0.4.160119 (21948347)"
Sub-patch 21352635; "Database Patch Set Update : 11.2.0.4.8 (21352635)"
Sub-patch 20760982; "Database Patch Set Update : 11.2.0.4.7 (20760982)"
Sub-patch 20299013; "Database Patch Set Update : 11.2.0.4.6 (20299013)"
Sub-patch 19769489; "Database Patch Set Update : 11.2.0.4.5 (19769489)"
Sub-patch 19121551; "Database Patch Set Update : 11.2.0.4.4 (19121551)"
Sub-patch 18522509; "Database Patch Set Update : 11.2.0.4.3 (18522509)"
Sub-patch 18031668; "Database Patch Set Update : 11.2.0.4.2 (18031668)"
Sub-patch 17478514; "Database Patch Set Update : 11.2.0.4.1 (17478514)"
bug16595641.sql --> ORACLE_HOME/patch/scripts/bug16595641.sql
bug17088068.sql --> ORACLE_HOME/patch/scripts/bug17088068.sql
bug17381384.sql --> ORACLE_HOME/patch/scripts/bug17381384.sql
bug19289642.sql --> ORACLE_HOME/patch/scripts/bug19289642.sql
bug22380919.sql --> ORACLE_HOME/patch/scripts/bug22380919.sql
catmacpatch.sql --> ORACLE_HOME/rdbms/admin/catmacpatch.sql
catmacpatch_rb.sql --> ORACLE_HOME/rdbms/admin/catmacpatch_rb.sql
ins_rdbms.mk --> ORACLE_HOME/rdbms/lib/patchset_opt_all jox_refresh_knlopt ioracle
sdopatch.sql --> ORACLE_HOME/md/admin/sdopatch.sql
xmlpatch --> ORACLE_HOME/bin/xmlpatch
Patch Location in Inventory:
Patch Location in Storage area:
/u01/app/oracle/product/11.2.0/db_1/.patch_storage/31537677_Sep_24_2020_06_02_11
OPatch succeeded.
第 10 章 安装后配置
10.1 readline and rlwrap
--安装readline
yum -y install readline*
--安装rlwrap
tar-xvf rlwrap-0.41.tar.gz
编译安装
[root@localhost Downloads]#./configure
[root@localhost Downloads]#make
[root@localhost Downloads]#make install
#最后配置使用rlwrap sqlplus,在oracle环境变量文件中添加:
[oracle@standby1 rlwrap-0.30]# vi /home/oracle/.bash_profile
#添加
alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'
alias ggsci='rlwrap /u01/ogg/ggsci'
#立即生效
[oracle@standby1 rlwrap-0.30]# source /home/oracle/.bash_profile
10.2 连接数调整
--查看进程及会话数
show parameter process;
show parameter sessions;
--修改进程及会话数
alter system set processes=1200 scope=spfile;
alter system set sessions=1325 scope=spfile;
--查看游标数
show parameter open_cursors;
--查看当前打开的游标数目
select count(*) from v$open_cursor;
--修改最大游标数
alter system set open_cursors=1000 scope=both
10.3 内存大小调整
oltp系统参考(要设置好,防止内存抖动): sga=内存*80%*80% pga=内存*80%*20%
show parameter memory;
show parameter sga;
show parameter pga;
--如果要防止高并发情况下的内存抖动,考虑固定内存
alter system set memory_target=4096m scope=spfile;
alter system set memory_max_target=4096m scope=spfile;
alter system set sga_target=3027m scope=spfile;
alter system set sga_max_size=3027m scope=spfile;
alter system set pga_aggregate_target=3027m scope=spfile;
alter system set pga_aggregate_target=1024m scope=spfile;
10.4 redo
--查看相关设置
select member from v$logfile;
select group#,members,bytes/1024/1024,status from v$log;
--增加日志组
alter database add logfile group 4 ('/home/u01/app/oracle/oradata/nwppdb/redo04.log') size 100M;
alter database add logfile group 5 ('/home/u01/app/oracle/oradata/nwppdb/redo05.log') size 100M;
alter database add logfile group 6 ('/home/u01/app/oracle/oradata/nwppdb/redo06.log') size 100M;
--redo每组默认3组每组一个成员,建议每组两个成员以上
alter database add logfile member '/home/u01/app/oracle/oradata/nwppdb/redo04_2.log' to group 4;
alter database add logfile member '/home/u01/app/oracle/oradata/nwppdb/redo05_2.log' to group 5;
alter database add logfile member '/home/u01/app/oracle/oradata/nwppdb/redo06_2.log' to group 6;
--切换
alter system switch logfile;
--删除之前小的日志组
alter database drop logfile group 1;
alter database drop logfile group 2;
alter database drop logfile group 3;
10.5 undo
--设置undo_retention 参数,默认是900s ,推荐设置为设置为10800,即3个小时
show parameter undo_retention;
alter system set undo_retention=10800 scope=spfile;
--查看undo表空间大小
select sum(bytes)/1024/1024 "current undo size(M)" from dba_data_files where tablespace_name='UNDOTBS1';
SQL> select file_name from dba_data_files where tablespace_name='UNDOTBS1';
FILE_NAME
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/orcl/undotbs01.dbf
--增大undo表空间大小
SQL> alter database datafile '/u01/app/oracle/oradata/orcl/undotbs01.dbf' resize 2048M;
Database altered.
SQL> alter database datafile '/u01/app/oracle/oradata/orcl/undotbs01.dbf' autoextend on maxsize 4g;
Database altered.
--查看现在undo表空间大小
select sum(bytes)/1024/1024 "current undo size(M)" from dba_data_files where tablespace_name='UNDOTBS1';
10.6 temp
-查看临时表空间大小、是否自动扩展
select file_name,bytes/1024/1024 "MB",autoextensible,tablespace_name from dba_temp_files;
--增大临时表空间文件的大小,把20M 调整成10240 M
alter database tempfile '/u01/app/oracle/oradata/ytzx/temp01.dbf' resize 10240M autoextend on next 100M maxsize 10G;
--增加临时文件
alter tablespace temp add tempfile '/u01/app/oracle/oradata/ytzx/temp02.dbf' size 10240M aitpextemd pm mext 100M maxsize 10G;
10.7 dump大小
alter system set MAX_DUMP_FILE_SIZE='200M';
MAX_DUMP_FILE_SIZE 定义了跟踪文件的最大大小。设置过大会导致使用大量空间,过小导致有问题时无
法记录下跟踪文件。
如果只是一个数值,则定义的是操作系统块数。
如果数值后跟K或者M,则直接定义大小。
如果定义大小时,需要加引号。
alter system set MAX_DUMP_FILE_SIZE='200M';
否则
alter system set MAX_DUMP_FILE_SIZE=200M;
报错
ora-02065:非法选项。
10.8 控制文件参数和复用
show parameter control;
alter system set control_files="/oracle/redolog/RFDB/controlfile/o1_mf_gjrb59v8_.ctl","/u01/a
shutdown immediate;
!cp /oracle/redolog/RFDB/controlfile/o1_mf_gjrb59v8_.ctl /u01/app/oracle/product/11.2.0/db_1
startup;
show parameter control;
10.9 关闭审计
-考虑关闭审计(oracle 11g 默认打开审计)
alter system set audit_trail=none sid='*' scope=spfile;
--说明:11g 默认打开数据库审计,为了避免审计带来的 SYSTEM 表空间的过多占用,可以关闭
--最近一年审计记录
select * from aud$ where substr(sysdate-NTIMESTAMP#,2,9)<360;
--清理数据库审计
truncate table sys.aud$ reuse storage;
alter table sys.aud$ deallocate unused keep 25000m;
alter table sys.aud$ deallocate unused keep 20000m;
alter table sys.aud$ deallocate unused keep 15000m;
alter table sys.aud$ deallocate unused keep 10000m;
alter table sys.aud$ deallocate unused keep 5000m;
alter table sys.aud$ deallocate unused keep 2000m;
alter table sys.aud$ deallocate unused keep 500m;
alter table sys.aud$ deallocate unused keep 250m;
alter table sys.aud$ deallocate unused keep 10m;
--查看SYSTEM表空间占用空间排名前10的段是否有AUD以及FGA_LOG
SELECT *
FROM (SELECT BYTES, segment_name, segment_type, owner
FROM dba_segments
WHERE tablespace_name = ‘SYSTEM’
ORDER BY BYTES DESC)
WHERE ROWNUM < 10;
10.10 关闭密码大小写和延迟登录
--关闭密码大小写敏感:
alter system set sec_case_sensitive_logon=false scope=spfile sid='*';
--延迟登录
在 Oracle 11g 中,为了提升安全性,Oracle 引入了『密码延迟验证』的新特性。这个特性的作用是,如果用户输入了错误的密码尝试登录,那么随着登录错误次数的增加,每次登录前验证的时间也会增加,以此减缓可能对于数据库重复的口令尝试攻击。
但是对于正常的系统,由于口令的更改,可能存在某些被遗漏的客户端,不断重复尝试,从而引起数据库内部长时间的 Library Cache Lock的等待,这种情形非常常见。
如果遇到这一类问题,可以通过Event 28401关闭这个特性,从而消除此类影响,以下命令将修改设置在参数文件中:
ALTER SYSTEM SET EVENT =
'28401 TRACE NAME CONTEXT FOREVER, LEVEL 1' SCOPE = SPFILE;
在Oracle的11g中是常见和确定的,在MOS上可以找到相应的记录:High 'library cache lock' Wait Time Due to Invalid Login Attempts(1309738.1)此外Oracle 11g开启了密码大小写验证,如果从Oracle 10g升级过来,需要特别的当心这个变化,通过初始化参数SEC_CASE_SENSITIVE_LOGON 可以来控制这个特性
10.11 调整用户profile策略
alter profile "DEFAULT" limit PASSWORD_GRACE_TIME UNLIMITED;
alter profile "DEFAULT" limit PASSWORD_LIFE_TIME UNLIMITED;
alter profile "DEFAULT" limit PASSWORD_LOCK_TIME UNLIMITED;
alter profile "DEFAULT" limit FAILED_LOGIN_ATTEMPTS UNLIMITE;
10.12 关闭不必要的任务
exec dbms_scheduler.disable( 'ORACLE_OCM.MGMT_CONFIG_JOB' ); exec dbms_scheduler.disable( 'ORACLE_OCM.MGMT_STATS_CONFIG_JOB' );
10.13 老版本客户端连接
10.14 AWR调整
SQL> col SNAP_INTERVAL for a20
SQL> col RETENTION for a20
SQL> select * from dba_hist_wr_control;
DBID SNAP_INTERVAL RETENTION TOPNSQL
---------- -------------------- -------------------- ----------
1605676415 +00000 01:00:00.0 +00008 00:00:00.0 DEFAULT
SQL> BEGIN
2 DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(
3 interval => 30,
4 retention => 14*24*60);
5 END;
6 /
PL/SQL procedure successfully completed.
SQL> select * from dba_hist_wr_control;
DBID SNAP_INTERVAL RETENTION TOPNSQL
---------- -------------------- -------------------- ----------
1605676415 +00000 00:30:00.0 +00014 00:00:00.0 DEFAULT
SQL>
1.15 其他参数
SQL> show parameter control
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
control_file_record_keep_time integer 7
control_files string /u01/app/oracle/oradata/orcl/c
ontrol01.ctl, /u01/app/oracle/
flash_recovery_area/orcl/contr
ol02.ctl
control_management_pack_access string DIAGNOSTIC+TUNING
SQL> alter system set control_file_record_keep_time=365 scope=spfile;
System altered.
SQL> show parameter db_files
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_files integer 200
SQL> alter system set db_files=1000 scope=spfile;
System altered.
SQL> show parameter ddl
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
ddl_lock_timeout integer 0
enable_ddl_logging boolean FALSE
SQL> alter system set enable_ddl_logging=true scope=spfile;
System altered.
10.16 Adaptive Log File Sync关闭
关于 Log File Sync 等待的优化,在Oracle数据库中一直是常见问题,LOG FILE的写出性能一旦出现波动,该等待就可能十分突出。
在Oracle 11.2.0.3 版本中,Oracle 将隐含参数 _use_adaptive_log_file_sync 的初始值设置为 TRUE,由此带来了很多 Log File Sync 等待异常的情况,这个问题虽然由来已久,但是仍然有很多Oracle的用户并不知情。
11.2.0.3 版本里面,这个参数默认为 true,LGWR 会自动选择两种方法来通知其他进程 commit 已经写入:post/wait、polling。前者 LGWR 负担较重,后者等待时间会过长,特别是高负载的 OLTP 系统中。在 10g 及之前的版本中是 post/wait 方式,将这个参数设置为 false恢复到以前版本方式。
_use_adaptive_log_file_sync该参数在提交次数,系统的位置,发布/等待和轮询特性对性能的影响是明显的,主要是在上一次等待上影响了事务的提交速度。建议在11g中关闭(设置为false)。
_use_adaptive_log_file_sync造成性能下降的原因可能是其导致LGWR使用了轮询方式来取代post / wait,并且轮询的间隔是10ms,这个间隔是在代码里写死的。
alter system set "_use_adaptive_log_file_sync"=false sid='*' scope=spfile;
10.17 Adaptive Cursor Sharing关闭
Oracle数据库的SQL使用的是共享机制,通过绑定变量可以使Oracle DB 可以为多条SQL 语句共享单个游标,以减少分析SQL 语句所使用的共享内存和CPU资源等。
然而一个执行计划并不总是适用于所有绑定值,为了尽可能生成准确的执行计划,Oracle Database 11g 引入了自适应游标共享的新特性,在执行共享SQL时考虑更多的因素,如果与资源开销相比,使用多个执行计划所带来的收益更重要,则会为使用绑定变量的每条SQL 语句生成多个执行计划。
Adaptive Cursor Sharing 通过自适应游标共享,可以仅针对使用绑定变量的语句智能地共享游标。但是有时候这个特性会使得确定的执行计划变得不稳定,如果你确定系统中无需额外自适应的分析和变更执行计划,或者可能被不稳定的执行计划影响。那么可能需要调整这个特性的使用。
关闭这个特性,可以设置隐含参数:
SQL> alter session set"_optimizer_extended_cursor_sharing_rel"=none;
SQL> alter session set"_optimizer_extended_cursor_sharing"=none;
SQL> alter session set"_optimizer_adaptive_cursor_sharing"=false;
10.18 优化器的基数反馈
optimizer_use_feedback - 优化器的基数反馈
Cardinality Feedback - 基数反馈,是Oracle 11.2中引入的新特性,这个新特性利用SQL执行过程中的信息采集,动态的调整执行计划,以解决统计信息陈旧、无直方图或基于直方图基数计算不准确等情况。
Oracle希望由此提升执行计划的准确性,但是在某些情况下,我们可能遇到SQL 第一次执行性能最好,之后再运行其性能变差的情况。
初始化参数 _optimizer_use_feedback 可以控制这个特性的启用,设置为False关闭了这个特性:
alter system set “_optimizer_use_feedback”=false;
alter system set "_optimizer_adaptive_cursor_sharing"=false sid='*' scope=spfile;
alter system set "_optimizer_extended_cursor_sharing"=none sid='*' scope=spfile;
alter system set "_optimizer_extended_cursor_sharing_rel"=none sid='*' scope=spfile;
alter system set "_optimizer_use_feedback"=false sid ='*' scope=spfile;
说明:这几个参数都是用于关闭 11g 的 adaptive cursor sharing、cardinality feedback 特性,避免出现 SQL 性能不稳定、SQL 子游标过多的问题。
第 11 章 配置Oracle系统自启动
11.1 方法一,使用/etc/rc.local系统开机启动脚本,启动oracle
配置系统使dbstart和dbshut脚本起作用:
1)、首先修改/etc/oratab文件
#vi /etc/oratab
找到orcl:/u01/app/oracle/product/11.2.0/db_1:N这一行
改为:
orcl=/u01/app/oracle/product/11.1.0/db_1:Y
也就是将最后的N改为Y,意思是将不允许自动启动改为允许自动启动。
2)、修改oracle的dbstart文件
将ORACLE_HOME_LISTNER=$1
修改为ORACLE_HOME_LISTNER=$ORACLE_HOME
3)、将dbstart加入开机自启动,修改/etc/rc.d/rc.local文件
vi /etc/rc.d/rc.local
su - oracle -lc /u01/app/oracle/product/11.2.0/db_1/bin/dbstart
4)、给/etc/rc.d/rd.local文件添加可执行权限(centos7中为了安全默认取消了该文件的可执行权限)
[root@xydykt-1 ~]# chmod u+x /etc/rc.d/rc.local
5)、重启服务器后,oracle数据库及监听均已成功启动
1.2 方法二,编写启动脚本
1、修改/etc/oratab文件
root权限执行
[root@localhost oracle]# vim /etc/oratab
找到: orcl:/usr/oracle/product/11.2.0/db_1:N
修改为: orcl:/usr/oracle/product/11.2.0/db_1:Y
(这个路径跟安装路径有关,$ORACLE_SID:$ORACLE_HOME:<N|Y>)
2、新建Oracle服务自启动脚本
#!/bin/sh
# chkconfig: 2345 61 61
# description: Oracle 11g R2 AutoRun Servimces
# /etc/init.d/oracle
#
# Run-level Startup script for the Oracle Instance, Listener, and
# Web Interface
export ORACLE_BASE=/usr/oracle #oracle安装位置
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1 #Oracle安装路径
export ORACLE_SID=orcl
export PATH=$PATH:$ORACLE_HOME/bin
ORA_OWNR="oracle"
# if the executables do not exist -- display error
if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]
then
echo "Oracle startup: cannot start"
exit 1
fi
# depending on parameter -- startup, shutdown, restart
# of the instance and listener or usage display
case "$1" in
start)
# Oracle listener and instance startup
su $ORA_OWNR -lc $ORACLE_HOME/bin/dbstart
echo "Oracle Start Succesful!OK."
;;
stop)
# Oracle listener and instance shutdown
su $ORA_OWNR -lc $ORACLE_HOME/bin/dbshut
echo "Oracle Stop Succesful!OK."
;;
reload|restart)
$0 stop
$0 start
;;
*)
echo $"Usage: `basename $0` {start|stop|reload|reload}"
exit 1
esac
exit 0
3、检查脚本能否执行
[root@localhost oracle]# /etc/init.d/oracle start #启动oracle脚本
[root@localhost oracle]# /etc/init.d/oracle stop #关闭oracle脚本
[root@localhost oracle]# /etc/init.d/oracle restart #重启oracle脚本
4、添加执行权限并建立链接
更改oracle脚本的执行权限
[root@localhost oracle]# chmod a+x /etc/init.d/oracle
建立链接
将启动脚本添加到系统服务并设置自启动
[root@localhost oracle]# chkconfig --add oracle
当这个命令被执行的时候,会去脚本文件oracle中寻找# chkconfig: 2345 61 61这行注释,并解析这行注释,根据解析结果分别在
/etc/rc.d/rc2.d
/etc/rc.d/rc3.d
/etc/rc.d/rc4.d
/etc/rc.d/rc5.d
中创建符号连接文件S61oracle,此文件在系统启动时根据运行级别执行,此文件是指向/etc/init.d/oracle文件。启动时系统向此文件发送一个start参数,执行oracle文件中的start分支。另外还会在
/etc/rc.d/rc0.d
/etc/rc.d/rc1.d
/etc/rc.d/rc6.d
中创建符号连接文件K61oracle,此文件在系统关闭时执行,此文件也指向/etc/init.d/oracle文件,关闭时系统向此文件发送一个stop参数,执行oracle文件中的stop分支。
# chkconfig: 2345 61 61
# 表明脚本应该在运行级 2, 3, 4, 5 启动,启动优先权为61,停止优先权为 61。
修改服务运行等级(虽然脚本里写过,但还是重新设置一下),可以自行设置oracle脚本的运行级别
[root@localhost oracle]# chkconfig --level 2345 oracle on
说明:设置oracle脚本在运行级别为2、3、4、5时,都是on(开启)状态,off为关闭
查看oracle自动启动设置
[root@localhost oracle]# chkconfig –list oracle
Oracle 0:off 1:off 2:on 3:on 4:on 5:on 6:off
复制代码
等级0表示:表示关机
等级1表示:单用户模式
等级2表示:无网络连接的多用户命令行模式
等级3表示:有网络连接的多用户命令行模
等级4表示:不可用
等级5表示:带图形界面的多用户模式
等级6表示:重新启动
手动创建符号链接文件(执行效果和执行chkconfig --add oracle是一样,作为知识笔记记录,可以不执行)
[root@localhost oracle]# ln –s /etc/rc.d/init.d/oracle /etc/rc0.d/K61oracle
[root@localhost oracle]# ln –s /etc/rc.d/init.d/oracle /etc/rc1.d/K61oracle
[root@localhost oracle]# ln –s /etc/rc.d/init.d/oracle /etc/rc2.d/S61oracle
[root@localhost oracle]# ln –s /etc/rc.d/init.d/oracle /etc/rc3.d/S61oracle
[root@localhost oracle]# ln –s /etc/rc.d/init.d/oracle /etc/rc4.d/S61oracle
[root@localhost oracle]# ln –s /etc/rc.d/init.d/oracle /etc/rc5.d/S61oracle
[root@localhost oracle]# ln –s /etc/rc.d/init.d/oracle /etc/rc6.d/K61oracle
5、oracle的启动或关闭管理
启动
[root@localhost oracle]# service oracle start
停止
[root@localhost oracle]# service oracle stop
重启
[root@localhost oracle]# service oracle restart
第 12 章 总结
RAC and Oracle Clusterware Best Practices and Starter Kit (AIX)(文档 ID 811293.1)
RAC and Oracle Clusterware Best Practices and Starter Kit (Linux) (文档 ID 811306.1)
Oracle? Real Application Clusters
Installation Guide
11g Release 2 (11.2) for Linux and UNIX
E24660-03
Oracle Grid Infrastructure
Installation Guide
11g Release 2 (11.2) for IBM AIX on POWER Systems (64-Bit)
E24614-03
Oracle Grid Infrastructure Installation Guide
11g Release 2 (11.2) for Linux
E22489-08




