www.colben.cn/content/post/oracle11g-install.md
2021-11-14 14:32:08 +08:00

200 lines
5.7 KiB
Markdown

---
title: "CentOS7.4 静默安装 Oracle11g"
date: 2019-10-30T11:54:49+08:00
lastmod: 2019-10-30T11:54:49+08:00
tags: ["oracle"]
categories: ["database"]
---
# 环境
- CentOS7.4 最小安装
- 数据库软件
- linux.x64_11gR2_database_1of2.zip
- linux.x64_11gR2_database_2of2.zip
# 操作系统配置
- 关闭 SELinux
```bash
sed -i '/^SELINUX=/cSELINUX=disabled' /etc/selinux/config
```
- 关闭防火墙,或者放行 tcp 1521 端口
```bash
systemctl disable firewalld
systemctl stop firewalld
```
- 重启操作系统
```bash
reboot
```
# 安装依赖
- 安装可能用到的工具
```bash
yum install epel-release
yum clean all
yum makecache fast
yum install vim unzip rlwrap
```
- 安装 oracle 需要的包
```bash
yum install binutils compat-libcap1 compat-libstdc++-33 \
compat-libstdc++-33*i686 gcc gcc-c++ glibc glibc*.i686 \
glibc-devel glibc-devel*.i686 ksh libaio libaio*.i686 libaio-devel \
libgcc libgcc*.i686 libstdc++ libstdc++*.i686 libstdc++-devel \
libXi libXi*.i686 libXtst libXtst*.i686 make sysstat unixODBC \
unixODBC*.i686 unixODBC-devel unixODBC-devel*.i686
```
# 配置安装环境
- 创建 oracle 用户
```bash
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
```
- 创建 oracle 安装目录
```bash
mkdir -p /opt/oracle/app/product/11.2.0
mkdir -p /opt/oracle/app/oradata
mkdir -p /opt/oracle/app/fast_recovery_area
mkdir -p /opt/oracle/inventory
chown -R oracle:oinstall /opt/oracle
chmod -R 775 /opt/oracle
```
- 修改 sysctl.conf
```bash
cat << EOF >> /etc/sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744
#物理内存一半和4G中的较大者
kernel.shmmax = 4294967296
#shmmax / 4k (getconf PAGESIZE)
kernel.shmall = 1048576
kernel.shmmni = 4096
kernel.sem = 250 32000 200 200
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
net.core.rmem_max = 4194304
EOF
sysctl -p
```
- 修改 limits.conf
```bash
cat << EOF >> /etc/security/limits.conf
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
EOF
```
- 修改 login
```bash
cat << EOF >> /etc/pam.d/login
session required /lib64/security/pam_limits.so
session required pam_limits.so
EOF
```
- 修改 profile
```bash
cat << EOF >> /etc/profile
if [ \$USER = "oracle" ] ; then
if [ \$SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
EOF
```
- 修改 oracle 用户的 .bash_profile
```bash
cat << EOF >> /home/oracle/.bash_profile
export ORACLE_BASE=/opt/oracle/app
export ORACLE_HOME=\$ORACLE_BASE/product/11.2.0
export ORACLE_SID=orcl
export PATH=\$PATH:\$ORACLE_HOME/bin
#export NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8"
#export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
EOF
```
# 安装数据库
- 上传数据库软件到 /root 下,解压
```bash
unzip linux.x64_11gR2_database_1of2.zip -d /home/oracle/
unzip linux.x64_11gR2_database_2of2.zip -d /home/oracle/
chown -R oracle.oinstall /home/oracle/database
```
- 切换到 oracle 用户,后续操作都在该 oracle 用户下执行
```bash
su - oracle
```
- 创建 response 文件
```bash
cd /home/oracle
cp database/response/*.rsp ./
```
- 修改 db_install.rsp
```bash
sed -i \
-e '/^oracle.install.option=/s#=.*$#=INSTALL_DB_SWONLY#' \
-e '/^UNIX_GROUP_NAME=/s#=.*$#=oinstall#' \
-e '/^INVENTORY_LOCATION=/s#=.*$#=/opt/oracle/inventory#' \
-e '/^SELECTED_LANGUAGES=/s#=.*$#=en,zh_CN#' \
-e '/^ORACLE_HOME=/s#=.*$#=/opt/oracle/app/product/11.2.0#' \
-e '/^ORACLE_BASE=/s#=.*$#=/opt/oracle/app#' \
-e '/^oracle.install.db.InstallEdition=/s#=.*$#=EE#' \
-e '/^oracle.install.db.DBA_GROUP=/s#=.*$#=dba#' \
-e '/^oracle.install.db.OPER_GROUP=/s#=.*$#=dba#' \
-e '/^oracle.install.db.config.starterdb.type=/s#=.*$#=GENERAL_PURPOSE#' \
-e '/^DECLINE_SECURITY_UPDATES=/s#=.*$#=true#' \
/home/oracle/db_install.rsp
```
- 无需修改 netca.rsp
- 修改 dbca.rsp
```bash
sed -i \
-e '/^GDBNAME=/s#=.*$#=orcl#' \
-e '/^SID=/s#=.*$#=orcl#' \
-e '/^SYSPASSWORD=/s#=.*$#=111111#' \
-e '/^SYSTEMPASSWORD=/s#=.*$#=111111#' \
-e '/^CHARACTERSET=/s#=.*$#=ZHS16GBK#' \
/home/oracle/dbca.rsp
```
- 安装 oracle 软件
```bash
cd /home/oracle/database
./runInstaller -silent -responseFile /home/oracle/db_install.rsp -ignorePrereq
#安装成功后,系统提示需要在 root 下执行两个脚本
/opt/oracle/invertory/orainstRoot.sh
/opt/oracle/app/product/11.2.0/root.sh
```
- 配置监听
```bash
netca /silent /responseFile /home/oracle/netca.rsp
#配置成功后,监听启动,查看监听状态
lsnrctl status
```
- 创建数据库
```bash
dbca -silent -responseFile /home/oracle/dbca.rsp
#查看屏幕输出的创建进度
```
# 简单使用
- 登陆数据库
```
[oracle@localhost ~]$ rlwrap sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on 星期一 6月 25 14:46:58 2018
Copyright (c) 1982, 2009, Oracle. All rights reserved.
连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL>
```