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
内核参数调整
- 关闭selinux
/etc/selinux/config
# 修改配置文件参数 SELINUX=disabled
setenforce 0
- 修改系统参数(可选)
/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
- 修改用户限制(可选)
/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
配置用户环境
- 创建软件安装路径
# 目录与配置文件相关,请按需修改
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
- 配置用户环境变量
.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
常见问题处理
- 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)
)
)