一、关闭防火墙
(1)[[email protected] ~]# vim /etc/selinux/config
[[email protected] ~]# setenforce 0
[[email protected] ~]# getenforce
(2)[[email protected] ~]# systemctl stop firewalld.service
[[email protected] ~]# systemctl status firewalld.service
二、创建用户和组及安装目录,安装依赖包
(1)创建用户和组
[[email protected] ~]# groupadd oinstall
[[email protected] ~]# groupadd dba
[[email protected] ~]# useradd -g oinstall -G dba -m oracle
[[email protected] ~]# passwd oracle
(2)创建安装目录,上传oracle压缩包,并解压,给新建的目录设置权限
[[email protected] ~]# mkdir -p /ora/oracle
[[email protected] database]# chown -R oracle:oinstall /ora/
[[email protected] database]# chmod -R 755 /ora/
[[email protected] database] unzip -d /ora/ linux.x64_11gR2_database_1of2.zip
[[email protected] database] unzip -d /ora/ linux.x64_11gR2_database_2of2.zip
目录介绍
database---oracle压缩软件包解压后的目录
oracle----数据库的安装目录
oraInventory ----默认安装日志存放目录(安装后自动生成)
(3)安装依赖包
[[email protected] oracle]# yum -y install binutils compat compat-libstdc gcc gcc-c glibc glibc-devel ksh libaio libaio-devel libgcc libstdc libstdc -devel libXi libXtst make sysstat unixODBC unixODBC-devel
[[email protected] oracle]# yum -y install binutils compat-libstdc -33 elfutils-libelf elfutils-libelf-devel expat gcc gcc-c glibc glibc-common glibc-devel glibc-headers libaio libaio-devel libgcc libstdc libstdc -devel make pdksh sysstat unixODBC unixODBC-devel
三、修改内核参数
(1)修改/etc/hosts文件
(2)修改/etc/sysctl.conf
引用:https://blog.csdn.net/csgd2000/article/details/100224722
内核参数需要注意,shmall 和shmmax 的值由服务器内存决定。
(不过这个参数设置博主我现在也是一知半解,没完全搞明白,查了半天意思如下:)
kernel.shmall :
该参数控制可以使用的共享内存的总页数。Linux共享内存页大小为4KB,共享内存段的大小都是共享内存页大小的整数倍。一个共享内存段的最大大小是16G,那么需要共享内存页数是16GB/4KB=16777216KB/4KB=4194304(页),也就是64Bit系统下16GB物理内存,设置kernel.shmall = 4194304 符合要求。
kernel.shmmax:
是核心参数中最重要的参数之一,用于定义单个共享内存段的最大值。64位linux系统:可取的最大值为物理内存值-1byte,建议值为多于物理内存的一半,例如,如果为16GB物理内存,可取16*1024*1024*1024-1=17179869183。
kernel.shmmni:
该参数是共享内存段的最大数量。shmmni缺省值4096,一般肯定是够用了。
kernel.sem = 250 32000 100 128 的意思是:
250是参数semmsl的值,表示一个信号量集合中能够包含的信号量最大数目。
32000是参数semmns的值,表示系统内可允许的信号量最大数目。
100是参数semopm的值,表示单个semopm()调用在一个信号量集合上可以执行的操作数量。
128是参数semmni的值,表示系统信号量集合总数。
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 4294967295
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
修改完后需要使用sysctl -p 生效
(3)修改认证模块
[[email protected] oracle]# vim /etc/pam.d/login
session required /lib64/security/pam_limits.so
session required pam_limits.so
(4)修改环境变量 root用户下
[[email protected] oracle]# vim /etc/profile
# oracle
export ORACLE_HOME=/ora/oracle/product/11.2.0/db_1
export ORACLE_SID=orcl
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
oracle用户下
[[email protected] oracle]# vim /home/oracle/.bash_profile
export PATH
export ORACLE_BASE=/ora/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.4/db_1
export ORACLE_SID=orcl
export ORACLE_TERM=xterm
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
四、安装
登录到oracle用户下
如图会有一个这样的报错
解决办法:https://blog.csdn.net/dba_monkey/article/details/60142645
[[email protected] ~]# export DISPLAY=:0.0
[[email protected] ~]# echo $DISPLAY
:0.0
[[email protected] ~]# cd /usr/bin/
[[email protected] bin]# ./xhost
access control enabled, only authorized clients can connect
[[email protected] bin]# ./xhost
access control disabled, clients can connect from any host
[[email protected] bin]# su - oracle
[[email protected] ~]$ export DISPLAY=:0.0
[[email protected] ~]$ echo $DISPLAY
:0.0
重新执行
这时在虚拟机中就会出现如下界面:
安装过程可能会出现错误
解决办法:http://blog.itpub.net/29475508/viewspace-2120836/
root用户下,根据提示,运行两个脚本即可:
安装结束
安装数据库
使用命令:dbca
注意总是出现DISPLAY的问题
在安装数据库之前,需要配置一下监听,使用的是netca
点击finish,结束配置
这里需要根据实际的需求进行设置
点击finish后会出现一个整体的数据库参数配置的界面,可以进行核对。
点击ok后就可以等待数据库的安装了
这里有一个EM数据库管理器的地址,https://oracle:1158/em
访问这个地址
使用刚刚设置的用户名和密码就可以登录查看数据库运行情况了。
在命令行界面,oracle用户下,使用sqlplus可以登录到数据库中;