1.1 版本说明
操作系统:CentOS 7.6
安装介质:CentOS-7-x86_64-DVD-1810.iso
Oracle版本:11.2.0.4
安装介质:p13390677_112040_Linux-x86-64_1of7.zip
p13390677_112040_Linux-x86-64_2of7.zip
2 准备工作
2.1 使用Root登录操作系统
a.配置IP地址,可以通过本地Xshell进行连接
# cat /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.0.2.20
NETMASK=255.255.255.0
GATEWAY=192.0.2.1
DNS1=8.8.8.8
DNS2=8.8.4.4
b.配置hosts文件
# vi /etc/hosts
192.0.2.20 test01 test01
c.关闭selinux
# setenforce 0
setenforce: SELinux is disabled
# vi /etc/selinux/config
SELINUX=disabled
d.关闭防火墙
# systemctl stop firewalld
# systemctl disable firewalld
e.配置yum
# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo
# yum clean all
# yum makecache
2.2 硬件检查
2.2.1 内存检查
a.至少需要1GB的RAM,建议2GB或以上
# grep MemTotal /proc/meminfo
MemTotal: 7990288 kB
b.SWAP空间要求
# grep SwapTotal /proc/meminfo
SwapTotal: 8388604 kB
2.2.2 系统架构
# uname -m
x86_64
2.2.3 磁盘要求
a.系统目录/tmp目录至少需要1GB空间
b.软件安装及数据文件占用空间
# df -h
2.3 软件检查
2.3.1操作系统检查
# cat /proc/version
Linux version 3.10.0-957.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) ) #1 SMP Thu Nov 8 23:39:32 UTC 2018
2.3.2 内核要求
# uname -r
3.10.0-957.el7.x86_64
2.3.3 软件包需求
yum install binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst make sysstat unixODBC unixODBC-devel -y
2.4 创建必要的用户和用户组
# groupadd -g 1001 oinstall
# groupadd -g 1002 dba
# groupadd -g 1003 oper
# useradd -u 1002 -g oinstall -G dba,oper oracle
2.5 配置内核参数及资源限制
2.5.1 配置内核参数
# vim /etc/sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 26214
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
# sysctl -p
参数说明:
fs.aio-max-nr:
文件句柄最大IO,此值限制并发未完成的请求,为避免I/O子系统故障,必须设置;
fs.file-max:
文件句柄的最大数量,文件句柄表示在Linux系统中可以打开的文件数量;
kernel.shmall:
可用共享内存的总量(单位为页,即可以使用共享内存页总数);
kernel.shmmax:
共享内存段的最大值,(单位为字节),一般为物理内存的一半;
kernel.shmmni:
共享内存段的最大数量,默认值为4096,通常无需更改;
kernel.sem:
Sem是semaphores(内核信号量的设置),4个参数的含义依次为:
Semmsl:内核用于限制每个信号机会的最大信号个数的参数
Semmns:内核用于限制整个Linux系统中的信号集的最大信号量的参数
Semopm:内核用于控制一次semop(函数)调用中的最大操作数的参数
Semmni:内核用于限制系统对信号标识符的最大数量限制的参数
net.ipv4.ip_local_port_range:
允许Oracle使用的本地端口范围;
net.core.rmem_default:
套接字接收缓冲区(窗口)大小的缺省值(字节)
net.core.rmem_max:
套接字接收缓冲区(窗口)大小的最大值(字节)
net.core.wmem_default:
套接字发送缓冲区(窗口)大小的缺省值(字节)
net.core.wmem_max:
套接字发送缓冲区(窗口)大小的最大值(字节)
2.5.2 配置资源限制
# vim /etc/security/limits.conf
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft stack 10240
2.6 配置安装路径
建议为安装路径单独做一个分区,大小为50-100G。
# fdisk /dev/sdb
# partprobe /dev/sdb
# mkfs.ext4 /dev/sdb1
# blkid /dev/sdb1
/dev/sdb1: UUID="d5cf9d78-a7b5-484f-a690-08e0c72ef54a" TYPE="ext4"
# vi /etc/fstab
UUID=d5cf9d78-a7b5-484f-a690-08e0c72ef54a /u01 ext4 defaults 0 0
# mount /dev/sdb1 /u01
# df -h /u01
Filesystem Size Used Avail Use% Mounted on
/dev/sdb1 99G 61M 94G 1% /u01
# mkdir /u01/app/oracle -pv
# chmod 775 /u01/app -R
# chown oracle:oinstall /u01 -R
2.7 配置Oracle用户环境变量
首先要切换到oracle用户,然后编辑.bash_profile文件。
# su – oracle
# vi /home/oracle/.bash_profile
export ORACLE_BASE=/u01/app/oracle
#ORACLE_BASE,根目录
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db
#ORACLE_HOME,产品目录
export TEMP=/tmp
export TEPDIR=/tmp
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_SID=orcl11g
$ source /home/oracle/.bash_profile
2.8 安装介质
将Oracle 11g安装介质通过root用户上传至/opt,并解压。
# ls -ltr
total 2487200
drwxr-xr-x. 2 root root 6 Oct 31 03:17 rh
-rw-r--r-- 1 root root 1151304589 Feb 18 17:51 p13390677_112040_Linux-x86-64_2of7.zip
-rw-r--r-- 1 root root 1395582860 Feb 18 17:51 p13390677_112040_Linux-x86-64_1of7.zip
# unzip p13390677_112040_Linux-x86-64_1of7.zip
# unzip p13390677_112040_Linux-x86-64_2of7.zip
# ll
total 2487200
drwxr-xr-x 7 root root 136 Aug 27 2013 database
-rw-r--r-- 1 root root 1395582860 Feb 18 17:51 p13390677_112040_Linux-x86-64_1of7.zip
-rw-r--r-- 1 root root 1151304589 Feb 18 17:51 p13390677_112040_Linux-x86-64_2of7.zip
drwxr-xr-x. 2 root root 6 Oct 31 03:17 rh
3 安装Database软件
首先将Xshell的转发X11设置连接到“Xmanager”,位置在Xshell的“文件”-“属性”-“连接”-“SSH”-“隧道”;利用X11转发功能,无需进行复杂的端口转发设置,通过安全的加密隧道在用户PC上使用远程的X11应用程序。
接下来使用root执行xhost +命令,然后切换至oracle用户设置DISPLAY变量,启动安装脚本。
# xhost +
access control disabled, clients can connect from any host
--xhost +:改命令是允许其他用户将图形显示到当前屏幕上,务必要执行。
# su – oracle
$ who am i
--显示登录用户的信息
root pts/0 2019-02-19 10:12 (192.0.2.222)
$ export DISPLAY=192.0.2.222:0.0
$ cd /opt/database/
$ ./runInstaller
Starting Oracle Universal Installer...
Checking Temp space: must be greater than 120 MB. Actual 72342 MB Passed
Checking swap space: must be greater than 150 MB. Actual 8191 MB Passed
Checking monitor: must be configured to display at least 256 colors. Actual 16777216 Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2019-02-19_10-13-47AM. Please wait ...[oracle@test01 database]$
此处提示缺少两个软件包,根据Oracle文档 ID 1962046.1确认可忽略。
以上报错为Oracle的Bug,文档ID 1965691.1,继续即可。
使用root用户依次执行提示的2个脚本。
# /u01/app/oraInventory/orainstRoot.sh
--目录相关的创建、授权操作,复制oraInst.loc文件
Changing permissions of /u01/app/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.
Changing groupname of /u01/app/oraInventory to oinstall.
The execution of the script is complete.
# /u01/app/oracle/product/11.2.0/db/root.sh
--调用脚本,设置必要权限等
Performing root user operation for Oracle 11g
The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /u01/app/oracle/product/11.2.0/db
Enter the full pathname of the local bin directory: [/usr/local/bin]: 此处回车即可
Copying dbhome to /usr/local/bin ...
Copying oraenv to /usr/local/bin ...
Copying coraenv to /usr/local/bin ...
Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
Finished product-specific root actions.
至此,数据库软件已安装完毕,将在下篇介绍监听及数据库的创建。
Tank
2019.7.26