记录一下,毕竟第一次安装这货的时候踩了好多坑花了几天的时间呐~
说明
环境
- 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用户的密码。
|
|
将oracle用户添加到sudoers中
|
|
安装相关的工具:vim和X11以及字体等
|
|
创建需要的文件夹:
|
|
配置启动参数
编辑/etc/sysctl.conf
文件,追加如下行:
|
|
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
文件,追加如下行:
|
|
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
安装
安装依赖 以避免后续的警告,先安装好这些依赖
|
|
准备安装文件
将下载好的安装文件传输到服务器上并进行解压缩文件操作
unzip -d /tmp linuxx64_12201_database.zip
更改临时文件夹的用户和组权限
chown -R oracle:oinstall /tmp/database
配置环境变量
vim /home/oracle/.bashrc
|
|
启动安装脚本
安装前,请务必以oracle用户登录!
su - oracle
推荐直接使用oracle登录系统安装以避免一些不必要的麻烦!
|
|
然后屏幕会打印类似下面的信息完成后就可以开始安装了
|
|
接下来就是图形化界面,按照提示来就可以了~