请仔细阅读Oracle官方手册Database Installation Guide for Linux
安装操作系统之后如果想安装VBOX的增强功能可能出现的报错如下:
[root@oel73 log]# vi vboxadd-install.log /tmp/vbox.0/Makefile.include.header:97: *** Error: unable to find the sources of your current Linux kernel. Specify KERN_DIR=<directory> and run Make again. Stop.请执行以下命令安装软件包,重新安装增强功能,重启操作系统即可:
yum install -y gcc make kernel-headers kernel-devel机器性能差修改运行级别3(multi-user.target)或者5(graphical.target)
systemctl get-default systemctl set-default multi-user.targetAdd the following lines in /etc/rc.local and reboot the server (this still can be done on Redhat 7 although rc.local is being deprecated):
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重启操作系统验证
注意:如果生产系统,需要配置Hugepage,具体请参考MOS。
修改GRUB_CMDLINE_LINUX为如下的选项
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=ol/root rd.lvm.lv=ol/swap rhgb quiet transparent_hugepage=never"重新生成grub.cfg文件
grub2-mkconfig -o /boot/grub2/grub.cfg重启操作系统验证
cat /proc/cmdline cat /sys/kernel/mm/transparent_hugepage/enabled确保加载了最新版本的 PAM,然后在/etc/pam.d/login 文件中添加或编辑以下行(如果还没有这些内容):
session required pam_limits.so验证当前 ulimit,如果需要则增大。可以采用多种方式完成此操作,推荐方法是在 /etc/profile 中添加以下行:
if [ $USER = "oracle" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -u 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi fi如果系统给出的参数值比官方文档给出的大,则不需要更改!
Modify your kernel settings in /etc/sysctl.conf (RedHat) as follows. If the current value for any parameter is higher than the value listed in this table, do not change the value of that parameter. Range values (such as net.ipv4.ip_local_port_range) must match exactly.
vi /etc/sysctl.conf kernel.msgmax = 65536 kernel.shmmax = 68719476736 kernel.shmall = 4294967296 fs.file-max = 6815744 fs.aio-max-nr = 1048576 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 kernel.panic_on_oops=1使内核参数生效
sysctl -pOracle Linux可以直接安装下面一个安装包
yum install oracle-database-server-12cR2-preinstall相关日志:
/var/log/oracle-database-server-12cR2-preinstall/results/orakernel.logoracle-database-server-12cR2-preinstall这个软件包做了什么工作?
官方文档解释如下: 1. Automatically downloads and installs any additional RPM packages needed for installing Oracle Grid Infrastructure and Oracle Database, and resolves any dependencies
Creates an oracle user, and creates the oraInventory (oinstall) and OSDBA (dba) groups for that user
As needed, sets sysctl.conf settings, system startup parameters, and driver parameters to values based on recommendations from the Oracle RDBMS Pre-Install program
Sets hard and soft resource limits
Sets other recommended parameters, depending on your kernel version
可以看到主要做了自动安装依赖包,创建用户和组,设置内核参数,系统启动参数和一些驱动参数,设置用户资源限制,设置其他以及依赖的内核参数。 在日志中发现,他只会创建oracle用户,dba,oinstall两个组,如果已经存在则跳过。修改内核参数等文件之前会先自动备份。 定义用户资源限制的文件为/etc/security/limits.d/oracle-database-server-12cR2-preinstall.conf
# oracle-database-server-12cR2-preinstall setting for nofile soft limit is 1024 oracle soft nofile 1024 # oracle-database-server-12cR2-preinstall setting for nofile hard limit is 65536 oracle hard nofile 65536 # oracle-database-server-12cR2-preinstall setting for nproc soft limit is 16384 # refer orabug15971421 for more info. oracle soft nproc 16384 # oracle-database-server-12cR2-preinstall setting for nproc hard limit is 16384 oracle hard nproc 16384 # oracle-database-server-12cR2-preinstall setting for stack soft limit is 10240KB oracle soft stack 10240 # oracle-database-server-12cR2-preinstall setting for stack hard limit is 32768KB oracle hard stack 32768 # oracle-database-server-12cR2-preinstall setting for memlock hard limit is maximum of 128GB on x86_64 or 3GB on x86 OR 90 % of RAM oracle hard memlock 134217728 # oracle-database-server-12cR2-preinstall setting for memlock soft limit is maximum of 128GB on x86_64 or 3GB on x86 OR 90% of RAM oracle soft memlock 134217728可以看到上面设置比官方文档多了memlock的设置
系统引导参数的变化
Saving a copy of /etc/default/grub file in /etc/default/grub-initial.orabackup Saving a copy of /etc/default/grub in /var/log/oracle-database-server-12cR2-preinstall/backup/Mar-08-2017-19-22-39... Verifying kernel boot parameters as per Oracle recommendations... old boot params: "crashkernel=auto rd.lvm.lv=ol/root rd.lvm.lv=ol/swap rhgb quiet transparent_hugepage=never" new boot params: "crashkernel=auto rd.lvm.lv=ol/root rd.lvm.lv=ol/swap rhgb quiet transparent_hugepage=never numa=off"可以看到transparent_hugepage=never是我之前手工添加的,后面又多了关闭numa。其实他会自动添加这两个参数
Trying to add NOZEROCONF parameter... Taking a backup of existing file to /etc/sysconfig/network.orabackup Successfully added parameter NOZEROCONF to /etc/sysconfig/network Setting /etc/sysconfig/network parameters passed Disabling Transparent Hugepages. Refer Oracle Note:1557478.1 Disabling defrag. Refer Oracle Note:1557478.1上面又在网络配置里面加了NOZEROCONF=yes,关闭了Transparent Hugepages,defrag。
如果使用Oracle Enterprise Linux还是强烈建议安装这个软件包,能省去很多手工的工作,这些配置都是符合Oracle最佳实践的。
修改完之后重启机器