Linux安装Oracle
# 一、安装前准备
# 1. 创建运行数据库的 oracle 系统用户和用户组(root账户下操作)
su root #切换至 root 账户
groupadd oinstall #创建用户组 oinstall
groupadd dba #创建用户组 dba
groupadd oper # 创建oper用户组
useradd oracle #创建系统用户 oracle
passwd oracle #设置系统用户 oracle 的登陆密码,用于在CentOS登陆
usermod -g oinstall -G dba,oper oracle #将系统用户 oracle 加入到 oinstall 和 dba 用户组
# -g 主用户组、-G 附加组
2
3
4
5
6
7
8
id oracle #查看新建的系统用户 oracle
groups oracle #查询用户组是否授权成功
2
# 2. 创建 oracle 安装目录并授权(root账户下操作)
创建目录
mkdir /home/oracle/app #用户的应用目录
mkdir /home/oracle/app/oracle #数据库的基目录
mkdir /home/oracle/app/oracle/oradata #数据库文件存放目录
mkdir /home/oracle/app/oracle/product #数据库软件存放目录
mkdir /home/oracle/app/oraInventory #安装oracle或创建数据库时,日志会在oraInventory目录下
#注意:oraInventory不应在基目录/oracle之下
2
3
4
5
6
ls /home/oracle/app/ #创建完毕检查一下
ls /home/oracle/app/oracle #创建完毕检查一下
2
授权目录
chown -R oracle:oinstall /home/oracle/app #更改目录属主为系统用户 oracle
chmod 777 -R /home/oracle/app #修改目录对应用户权限为777 权限(读、写、执行)
2
# 3. 配置 oracle 系统用户的环境变量(oracle账户下操作)
编辑 bash_profile ,输入命令:vi .bash_profile,添加如下环境变量。
su oracle #切换至 oracle 账户
vim /home/oracle/.bash_profile #打开编辑
2
export ORACLE_BASE=/home/oracle/app/oracle #数据库安装目录
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1 #数据库目录
export ORACLE_SID=orcl #数据库启动的实例唯一标识
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin #添加系统环境变量
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib #添加系统环境变量
export ORACLE_TERM=xterm #窗口模式安装(xterm)
export LANG=en_US.UTF-8 #防止安装过程出现乱码
export NLS_LANG="SIMPLIFIED CHINESE_CHINA".AL32UTF8 #设置Oracle客户端字符集,必须与安装时设置的字符集保持一致
2
3
4
5
6
7
8
- LANG是针对Linux系统的语言、地区、字符集的设置,对linux下的应用程序有效。
- NLS_LANG是针对Oracle语言、地区、字符集的设置,对oracle中的工具有效。
source .bash_profile #使配置生效
# 4. 添加用户资源限制(root账户下操作)
编辑 /etc/profile
,将下列内容加入该文件。为oracle用户在bash和ksh中设定资源限制
su root #切换至 root 账户
vim /etc/profile #打开编辑
2
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
2
3
4
5
6
7
8
source /etc/profile #使配置生效
# 5. 修改操作系统内核参数(root账户下操作)
内核调优,参数说明:Linux内核调优部分参数说明 (opens new window)。
编辑 /etc/sysctl.conf
文件,将下列内容加入该文件。
su root #切换至 root 账户
vim /etc/sysctl.conf #打开编辑
2
fs.file-max = 6815744 #设置最大打开文件数
fs.aio-max-nr = 1048576 #限制并发未完成的异步请求数,应设置避免I/O子系统故障
kernel.shmall = 2097152 #共享内存的总量,8G内存设置:2097152*4k/1024/1024
kernel.shmmax = 2147483648 #最大共享内存的段大小
kernel.shmmni = 4096 #整个系统共享内存端的最大数
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500 #可使用的IPv4端口范围
net.core.rmem_default = 262144 #接收套接字缓冲区大小的默认值
net.core.rmem_max= 4194304 #接收套接字缓冲区大小的最大值
net.core.wmem_default= 262144 #发送套接字缓冲区大小的默认值
net.core.wmem_max= 1048576 #发送套接字缓冲区大小的最大值
2
3
4
5
6
7
8
9
10
11
/sbin/sysctl -p #使配置生效
# 6. 修改操作系统核心参数(root账户下操作)
对 oracle 用户设置限制,限制 oracle 用户的shell权限,提高软件运行性能。
编辑 /etc/security/limits.conf
,将下列内容加入该文件。
su root #切换至 root 账户
vim /etc/security/limits.conf #打开编辑
2
oracle soft nproc 2047 #设置进程数软限制
oracle hard nproc 16384 #设置进程数硬限制
oracle soft nofile 1024 #设置文件数软限制
oracle hard nofile 65536 #设置文件数硬限制
2
3
4
# 7. 修改用户登陆认证(root账户下操作)
进程会话限制,采用pam_limits认证模块来实现,通过修改登录程序login的PAM设置以启用该认证。
编辑 /etc/pam.d/login
,将下列内容加入该文件。
su root #切换至 root 账户
vim /etc/pam.d/login #打开编辑
2
//64位系统
session required /lib64/security/pam_limits.so
session required pam_limits.so
2
3
//32位系统
session required /lib/security/pam_limits.so
session required pam_limits.so
2
3
注意:32位系统、64位系统为/lib64/security/pam_limits.so,千万别写错,否则会导致重启后无法进入系统命令行界面,设置前可检查目录下是否有该文件。
# 8. 关闭防火墙和selinux
关闭 firewall
Centos 7
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
2
Centos 6
service iptables stop #停止firewall
chkconfig --del iptables #禁止firewall开机启动
2
关闭 SELINUX
vim /etc/selinux/config
#SELINUX=enforcing #注释掉
#SELINUXTYPE=targeted #注释掉
SELINUX=disabled #增加
:wq! #保存退出
setenforce 0 #使配置立即生效
2
3
4
5
6
# 9. 修改OS系统标识
oracle默认不支持CentOS系统安装, 修改文件 /etc/RedHat-release 内容为RedHat-7
vim /etc/redhat-release
将 CentOS Linux release 7.5.1511 (Core) 修改为 redhat-7
# 10.配置hostname(本机IP映射)
安装 oracle 时,一定要保证主机名出现在 /etc/hosts
中。
编辑 /etc/hosts
,将下列内容加入该文件。
su root #切换至 root 账户
vim /etc/hosts #打开编辑
2
127.0.0.1 localhost
192.168.2.101 server.accother.com
2
ping -c 3 server.accother.com #测试hostname
/etc/sysconfig/network
中的 hostname 要与 /etc/hosts
中的一致。
编辑 /etc/sysconfig/network
,将下列内容加入该文件。
su root #切换至 root 账户
vim /etc/sysconfig/network #打开编辑
2
NETWORKING=yes
HOSTNAME=server.accother.com
2
# 二、软件包依赖
安装oracle之前需要许多软件包依赖,如果可用外网,使用如下命令安装。
yum install binutils compat-libstdc++ elfutils-libelf elfutils-libelf-devel elfutils-libelf-devel-static gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers kernel-headers ksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel
查看这些软件包版本,可使用如下命令,如有未安装的会有提示。
rpm -q binutils compat-libstdc++ elfutils-libelf elfutils-libelf-devel elfutils-libelf-devel-static gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers kernel-headers ksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel
如果 compat-libstdc++ 安装提示No package compat-libstdc++ available.,请使用命令yum install compat-libstdc++-33安装。 使用rpm -qa | grep "compat-libstdc"可查看。
yum install compat-libstdc++-33