记录一下,毕竟第一次安装这货的时候踩了好多坑花了几天的时间呐~
说明
环境
- CentOS 7.4 最小化安装
- Oracle 12c
- ssh客户端MobaXterm(免配置的支持X11-forward)
安装包
Oracle Database 12c Release 2 (12.2.0.1.0)安装包大小3.21G,可以从下面的路径获取下载
Oracle Database Software Downloads
记得校验hash。
扩展阅读
Oracle安装指南
Oracle数据库安装清单
本文参考文章Ubuntu 16.04 安装 Oracle 12c 踩坑记
准备工作
使用 root 权限创建所需用户组和用户,并修改oracle用户的密码。
1
2
3
4
5
6
|
sudo groupadd -g 510 oinstall
sudo groupadd -g 511 dba
sudo groupadd -g 512 oper
sudo groupadd -g 513 asmadmin
sudo useradd -u 510 -g oinstall -G dba,asmadmin,oper -s /bin/bash -m oracle
sudo passwd oracle
|
将oracle用户添加到sudoers中
1
|
sed -i '/root\tALL=(ALL)/aoracle\tALL=(ALL)\tALL' /etc/sudoers
|
安装相关的工具:vim和X11以及字体等
1
2
3
|
yum install vim unzip -y
yum groupinstall "X Window System" -y
yum groupinstall "fonts" -y
|
创建需要的文件夹:
1
2
3
|
mkdir -p /u01/app/oracle/product/12/dbhome_1
chown -R oracle:oinstall /u01
chmod -R 775 /u01
|
配置启动参数
编辑/etc/sysctl.conf
文件,追加如下行:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
#### Oracle 12c Kernel Parameters ####
fs.suid_dumpable = 1
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 483183
kernel.shmmax = 1932735283
kernel.shmmni = 4096
# semaphores: semmsl, semmns, semopm, semmni
kernel.sem = 250 32000 100 128
net.ipv4.tcp_rmem = 4096 87380 6291456
net.ipv4.tcp_wmem = 4096 16384 4194304
net.core.rmem_default=262144
net.core.rmem_max=4194304
net.core.wmem_default=262144
net.core.wmem_max=1048586
|
file-max表示文件句柄的最大数量。文件句柄设置表示在linux系统中可以打开的文件数量。
shmall是全部允许使用的共享内存大小,shmmax 是单个段允许使用的大小。这两个可以设置为内存的 90%。例如 16G 内存,16 x 1024 x 102 4x 1024 x 90% = 15461882265,shmall 的大小为 15461882265/4k(getconf PAGESIZE可得到) = 3774873。
kernel.sem对应4个值
SEMMSL、SEMMNS、SEMOPM、SEMMNI
SEMMSL每个信号集的最大信号数量 预期值: 250
SEMMNS用于控制整个 Linux 系统中信号(而不是信号集)的最大数。
Oracle 建议将 SEMMNS 设置为:系统中每个数据库的 PROCESSES 实例参数设置值的总和,加上最大 PROCESSES 值的两倍,最后根据系统中 Oracle 数据库的数量,每个加 10 。
使用以下计算式来确定在 Linux 系统中可以分配的信号的最大数量。它将是以下两者中较小的一个值:SEMMNS 或 (SEMMSL * SEMMNI)
SEMOPM内核参数用于控制每个 semop 系统调用可以执行的信号操作的数量。semop 系统调用(函数)提供了利用一个 semop 系统调用完成多项信号操作的功能。预期值: 100
SEMMNI :内核参数用于控制整个 Linux 系统中信号集的最大数量。 预期值: 128
检查当前的TCP缓冲区大小:
sysctl -a |grep -e net.ipv4.tcp_[rw]mem
编辑/etc/security/limits.conf
文件,追加如下行:
1
2
3
4
5
6
|
#### oracle User Settings 4 Oracle 12c ####
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
|
soft表示软限制,hard表示硬限制,软限制要小于等于硬限制。
noproc - 进程的最大数目
nofile - 打开文件的最大数目
stack - 最大栈大小
然后载入新内核参数:
/sbin/sysctl -p
确保缓存空间足够大
使用free -h
查看Swap空间。Oracle预期值: 2.6708GB (2800572.0KB)
如果缓存空间很小的话,需要通过以下方法进行增加。
临时扩大Swap方法
创建大小为2048M的交换文件
dd if=/dev/zero of=/u01/swapfile bs=1M count=2048 status=progress conv=fsync
更改swapfile的权限
chmod 0600 /u01/swapfile
使用mkswap命令来设置交换文件
mkswap /u01/swapfile
启用交换分区
swapon /u01/swapfile
写入/etc/fstab
以便在引导时启用
/u01/swapfile swap swap defaults 0 0
如后续需禁用
swapoff /u01/swapfile
安装
安装依赖
以避免后续的警告,先安装好这些依赖
1
|
yum install compat-libcap1 libstdc++-devel sysstat gcc-c++ ksh libaio-devel smartmontools
|
准备安装文件
将下载好的安装文件传输到服务器上并进行解压缩文件操作
unzip -d /tmp linuxx64_12201_database.zip
更改临时文件夹的用户和组权限
chown -R oracle:oinstall /tmp/database
配置环境变量
vim /home/oracle/.bashrc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
# ORACLE_HOSTNAME=后面为主机地址,本机为 127.0.0.1
# ORACLE_SID=SID 名,例如:MYDBSID
# Oracle Settings
TMP=/tmp;
export TMP TMPDIR=$TMP;
export TMPDIR ORACLE_HOSTNAME=127.0.0.1;
export ORACLE_HOSTNAME
ORACLE_UNQNAME=DB12C;
export ORACLE_UNQNAME
ORACLE_BASE=/u01/app/oracle;
export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/12/dbhome_1;
export ORACLE_HOME
ORACLE_SID=MYDBSID;
export ORACLE_SID
PATH=$PATH:$ORACLE_HOME/bin:/usr/sbin;
export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/lib64;
export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib;
export CLASSPATH
|
启动安装脚本
安装前,请务必以oracle用户登录!
su - oracle
推荐直接使用oracle登录系统安装以避免一些不必要的麻烦!
1
2
|
chmod -R +x /tmp/database
/tmp/database/runInstaller
|
然后屏幕会打印类似下面的信息完成后就可以开始安装了
1
2
3
4
5
6
|
正在启动 Oracle Universal Installer...
检查临时空间: 必须大于 500 MB。 实际为 42834 MB 通过
检查交换空间: 必须大于 150 MB。 实际为 4095 MB 通过
检查监视器: 监视器配置至少必须显示 256 种颜色。 实际为 16777216 通过
准备从以下地址启动 Oracle Universal Installer /tmp/OraInstallyyyy-mm-dd_03-39-13PM. 请稍候...
|
接下来就是图形化界面,按照提示来就可以了~