Linux 安装 Oracle软件

环境准备

创建用户和用户组

groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
passwd oracle

安装依赖

yum install gcc make binutils gcc-c++ \
compat-libstdc++-33elfutils-libelf-devel \
elfutils-libelf-devel-static ksh libaio \
libaio-develnumactl-devel sysstat unixODBC \
unixODBC-devel pcre-devel –y

内核参数调整

  1. 关闭selinux

/etc/selinux/config

# 修改配置文件参数 SELINUX=disabled
setenforce 0
  1. 修改系统参数(可选)

/etc/sysctl.conf

fs.aio-max-nr = 1048576
fs.file-max = 6815744
#若安装数据库有ORA-27102报错,可调大kernel.shmall、kernel.shmmax值
kernel.shmall = 4294967296
#shmall 是全部允许使用的共享内存大小
kernel.shmmax = 68719476736 
#shmmax 是单个段允许使用的大小,为本机物理内存的一半,单位为byte。
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
  1. 修改用户限制(可选)

/etc/security/limits.conf

# 末尾添加
oracle           soft    nproc           2047
oracle           hard    nproc           16384
oracle           soft    nofile          1024
oracle           hard    nofile         65536
oracle           soft    stack           10240 

/etc/pam.d/login

# 末尾添加
session required  /lib64/security/pam_limits.so
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 

配置用户环境

  1. 创建软件安装路径
# 目录与配置文件相关,请按需修改
mkdir -p /data/oracle/product/11.2.0
mkdir /data/oracle/oradata
mkdir /data/oracle/inventory
mkdir /data/oracle/fast_recovery_area

chown -R oracle:oinstall /data/oracle
chmod -R 775 /data/oracle
  1. 配置用户环境变量

.bash_profile

# 末尾添加
ORACLE_BASE=/data/oracle
ORACLE_HOME=$ORACLE_BASE/product/11.2.0
ORACLE_SID=orcl # 实例名与配置文件相关,请按需修改
PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH
source .bash_profile

配置信息

数据库响应文件

db_install.rsp

# 静默安装,无需图形界面
oracle.install.option=INSTALL_DB_SWONLY
#主机名修改
ORACLE_HOSTNAME=centos36181
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/data/oracle/inventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/data/oracle/product/11.2.0
ORACLE_BASE=/data/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=dba
# 客户端字符串
oracle.install.db.config.starterdb.characterSet=ZHS16GBK
DECLINE_SECURITY_UPDATES=true

库实例响应文件

dbca.rsp

# 选择创建数据库模式
[CREATEDATABASE]

# 全局数据库的名字=SID+主机域名
GDBNAME = "orcl.test"
# 对应的实例名字
SID = "orcl"
# 建库用的模板文件
TEMPLATENAME = "General_Purpose.dbc"
# SYS管理员密码
SYSPASSWORD = "123456"
# SYSTEM管理员密码
SYSTEMPASSWORD = "123456"

# 数据文件存放目录
DATAFILEDESTINATION =/data/oracle/oradata
# 恢复数据存放目录
RECOVERYAREADESTINATION=/data/oracle/fast_recovery_area
# 字符集,重要!!! 建库后一般不能更改,所以建库前要确定清楚。
# (CHARACTERSET = "AL32UTF8" NATIONALCHARACTERSET= "UTF8")
CHARACTERSET = "ZHS16GBK"
# oracle使用物理内存80%(可选)
TOTALMEMORY = "1638" 

软件安装与卸载

安装数据库

# 使用oracle用户
./runInstaller -silent -responseFile /database/response/db_install.rsp -ignorePrereq

以 root 用户的身份执行以下脚本:
1. /data/oracle/inventory/orainstRoot.sh
2. /data/oracle/product/11.2.0/root.sh

配置监听

# 使用oracle用户
netca /silent /responseFile /database/response/netca.rsp

安装库实例

# 使用oracle用户
dbca -silent -responseFile /database/response/dbca.rsp

卸载数据库

dbca -silent -deleteDatabase -responseFile /database/response/dbca.rsp

常见问题处理

  1. ORA-12514: TNS:listener does not currently know of service requested in connect
    修改文件/data/oracle/product/11.2.0/network/admin/listener.ora
SID_LIST_LISTENER =  
(SID_LIST =  
  (SID_DESC =  
  (GLOBAL_DBNAME = orcl)
  (SID_NAME = orcl)
  )
)