官方文档:http://docs.oracle.com/cd/E11882_01/install.112/e24326/toc.htm
公司内部资源:ftp://192.168.10.70/pub/oracle/
前期准备
项 | 内容 |
---|---|
OS | CentOS 7 |
IP address | 172.16.0.247/16 |
hostname | dbserver1 |
USER | root |
PASSWD | ABCabc123 |
设置主机名
hostnamectl set-hostname dbserver1
设置IP地址
修改 /etc/sysconfig/network-scripts/ifcfg-eth0
文件如下:
BOOTPROTO=none ONBOOT=yes IPADDR=172.16.0.247 NETMASK=255.255.0.0 GATEWAY=172.16.0.1 DNS1=202.96.128.86
注意点:Hostname 必须与下面设置的主机名一致,否则 oracle 的安装将无法启动。
配置 /etc/hosts
文件,添加如下参数:
172.16.0.247 dbserver1
设置软件源
rm -f /etc/yum.repos.d/*
新建 /etc/yum.repos.d/centos-dvd.repo
文件
[centos-dvd] name=CentOS DVD baseurl=http://192.168.10.70/cdrom gpgcheck=0
刷新 yum cache
yum clean all && yum repolist
检查依赖包
rpm -q binutils gcc glibc libstdc++-devel libaio-devel make sysstat mksh unixODBC compat-libstdc++-33 gcc-c++ elfutils-libelf-devel | grep 'not installed'
缺哪个就装哪个,例如:
yum -y install gcc libstdc++-devel libaio-devel sysstat unixODBC compat-libstdc++-33 gcc-c++ elfutils-libelf-devel
创建 oracle 用户
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba -m oracle
passwd oracle
修改内核参数
修改 /etc/sysctl.conf
文件,加上如下参数
fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 2097152 kernel.shmmax = 1987944448 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 = 1048586
为使上述配置生效而不重启系统,执行如下命令:
sysctl -p
内核参数代表的意思可见下表:
内核参数 | 意义 | 参数值 | 参数存在位置 |
---|---|---|---|
semmsl | 每个信号集最多可有几个信号 | 250 | /proc/sys/kernel/sem |
semmns | 整个系统最多可有几个信号 | 32000 | |
semopm | 每个semopm所能呼叫的操作数 | 100 | |
semmni | 整个系统最多可有几个信号集 | 128 | |
shmall | 一个共享内存段所能容纳的内存数量(page) | 2097152 | /proc/sys/kernel/shmall |
shmmax | 一个共享内存段所能容纳的内存数量(byte) | 4GB-1B | /proc/sys/kernel/shmmax |
shmmni | 整个系统最多可有几个共享内存段 | 4096 | /proc/sys/kernel/shmmni |
file-max | 整个系统同时可以开启的文件数量 | 6553600 | /proc/sys/fs/file-max |
ip_local_port_range | 应用程序可自由使用的端口范围 | 1024-65000 | /proc/sys/net/ipv4/ip_local_port_range |
rmen_default | 接收TCP封包的预设缓存空间 | 4194304 | /proc/sys/net/core/rmen_default |
rmen_max | 接收TCP封包的最大缓存空间 | 4194304 | /proc/sys/net/core/rmen_max |
wmen_default | 发送TCP封包的预设缓存空间 | 262144 | /proc/sys/net/wmem_default |
wmen_max | 发送TCP封包的最大缓存空间 | 262144 | /proc/sys/net/wmem_max |
修改用户限制
修改 /etc/security/limits.conf
文件,加上如下参数
oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536
修改用户验证选项
修改 /etc/pam.d/login
文件,加上如下参数:
session required pam_limits.so
修改用户配置文件
修改 /etc/profile
文件,加上如下参数:
if [ $USER = "oracle" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi fi
安装目录配置
mkdir /opt/oracle
mkdir /opt/oraInventory
chown oracle:oinstall /opt/oracle
chown oracle:oinstall /opt/oraInventory
chmod 775 /opt/oracle
chmod 775 /opt/oraInventory
修改 oracle 用户 .bashrc
修改 /home/oracle/.bashrc
文件,加入如下参数:
export ORACLE_BASE=/opt/oracle export ORACLE_HOME=$ORACLE_BASE/oracle export ORACLE_SID=orcl export ORACLE_UNQNAME=$ORACLE_SID export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK export PATH=$ORACLE_HOME/bin:$PATH:$HOME/bin
完成后执行:
# su - oracle
$ env | grep ORA
检查环境变量是否完成
安装 Oracle 11g
tar -xzvf database.tar.gz
cd database
chmod -R +x .
./runInstaller
安装过程中的字符集选择
步骤 13/22,在字符集的标签页点选“从以下字符集列表中选择”,在“选择数据库字符集”列表中选择"简体中文ZHS16GBK"。
安装过程中的编译错误
安装过程中会出现以下的编译错误
Error in invoking target 'agent nmhs' of makefile
解决过程:
vi $ORACLE_HOME/sysman/lib/ins_emagent.mk
找到下面这一行
$(MK_EMAGENT_NMECTL)
将它修改成:
$(MK_EMAGENT_NMECTL) -lnnz11
然后点击 "retry",接着往下执行。
注意:如果是中途选择了忽略,也可以在安装完成之后以oracle用户执行:
make -f $ORACLE_HOME/sysman/lib/ins_emagent.mk agent nmhs
Oracle 开机启动
修改 /etc/oratab
文件最后一行的 N 为 Y,置为开机启动
# This file is used by ORACLE utilities. It is created by root.sh # and updated by either Database Configuration Assistant while creating # a database or ASM Configuration Assistant while creating ASM instance. # A colon, ':', is used as the field terminator. A new line terminates # the entry. Lines beginning with a pound sign, '#', are comments. # # Entries are of the form: # $ORACLE_SID:$ORACLE_HOME:: # # The first and second fields are the system identifier and home # directory of the database respectively. The third filed indicates # to the dbstart utility that the database should , "Y", or should not, # "N", be brought up at system boot time. # # Multiple entries with the same $ORACLE_SID are not allowed. # # oracleSi:/opt/oracle/oracle:Y
拷贝 scripts/oracle
到 /etc/init.d/
文件夹下
cp scripts/oracle /etc/init.d
配置 oracle 服务
chkconfig oracle on