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

229 lines
6.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: "CentOS7 静默安装 Oracle12c"
date: 2019-10-30T11:11:13+08:00
lastmod: 2019-10-30T11:11:13+08:00
keywords: []
tags: ["oracle"]
categories: ["database"]
---
# 环境
- CentOS7.5 最小安装
- 数据库软件
- linuxx64_12201_database.zip
# 操作系统配置
- 关闭 SELinux
```bash
sed -i '/^SELINUX=/cSELINUX=disabled' /etc/selinux/config
```
- 关闭防火墙
```bash
systemctl disable firewalld
systemctl stop firewalld
```
- 禁用 NetworkManager
```bash
systemctl disable NetworkManager
systemctl stop NetworkManager
```
- 重启操作系统
```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
groupadd oper
useradd -g oinstall -G dba,oper oracle
```
- 创建 oracle 安装目录
```bash
mkdir -p /opt/oracle/app/product/12.2.0
mkdir -p /opt/oracle/app/oradata
mkdir -p /opt/oracle/app/fast_recovery_area
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中的较大者当前服务器16G
kernel.shmmax = 8589934592
#shmmax / 4k (getconf PAGESIZE)
kernel.shmall = 2097152
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
oracle soft stack 10240
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/12.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 linuxx64_12201_database.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/oraInventory#' \
-e '/^ORACLE_HOME=/s#=.*$#=/opt/oracle/app/product/12.2.0#' \
-e '/^ORACLE_BASE=/s#=.*$#=/opt/oracle/app#' \
-e '/^oracle\.install\.db\.InstallEdition=/s#=.*$#=EE#' \
-e '/^oracle\.install\.db\.OSDBA_GROUP=/s#=.*$#=dba#' \
-e '/^oracle\.install\.db\.OSOPER_GROUP=/s#=.*$#=oper#' \
-e '/^oracle\.install\.db\.OSBACKUPDBA_GROUP=/s#=.*$#=dba#' \
-e '/^oracle\.install\.db\.OSDGDBA_GROUP=/s#=.*$#=dba#' \
-e '/^oracle\.install\.db\.OSKMDBA_GROUP=/s#=.*$#=dba#' \
-e '/^oracle\.install\.db\.OSRACDBA_GROUP=/s#=.*$#=dba#' \
-e '/^oracle.install.db.config.starterdb.type=/s#=.*$#=GENERAL_PURPOSE#' \
-e '/^oracle\.install\.db\.config\.starterdb\.characterSet=/s#=.*$#=ZHS16GBK#' \
-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 '/^createAsContainerDatabase=/s#=.*$#=true#' \
-e '/^numberOfPDBs=/s#=.*$#=1#' \
-e '/^pdbName=/s#=.*$#=pdborcl#' \
-e '/^templateName=/s#=.*$#=General_Purpose.dbc#' \
-e '/^pdbAdminPassword=/s#=.*$#=P@sswo2d#' \
-e '/^sysPassword=/s#=.*$#=P@sswo2d#' \
-e '/^systemPassword=/s#=.*$#=P@sswo2d#' \
/home/oracle/dbca.rsp
```
- 安装 oracle 软件
```bash
cd /home/oracle/database
./runInstaller -silent -responseFile /home/oracle/db_install.rsp -ignorePrereq
#安装成功后,系统提示需要在 root 下执行两个脚本
/opt/oracle/oraInventory/orainstRoot.sh
/opt/oracle/app/product/12.2.0/root.sh
```
- 配置监听
```bash
netca /silent /responseFile /home/oracle/netca.rsp
#配置成功后,监听启动,查看监听状态
lsnrctl status
```
- 创建数据库
```bash
dbca -silent -createDatabase -responseFile /home/oracle/dbca.rsp
#查看屏幕输出的创建进度
```
# 简单使用
- 登陆数据库,切换到 pdb 数据库
```
[oracle@fpManager2 ~]$ rlwrap sqlplus / as sysdba
SQL*Plus: Release 12.2.0.1.0 Production on 星期一 6月 25 14:41:16 2018
Copyright (c) 1982, 2016, Oracle. All rights reserved.
连接到:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
SQL> show con_name
CON_NAME
------------------------------
CDB$ROOT
SQL> alter session set container=pdborcl;
会话已更改。
SQL> show con_name
CON_NAME
------------------------------
PDBORCL
SQL> select file_name from dba_data_files;
FILE_NAME
--------------------------------------------------------------------------------
/opt/oracle/app/oradata/orcl/pdborcl/system01.dbf
/opt/oracle/app/oradata/orcl/pdborcl/sysaux01.dbf
/opt/oracle/app/oradata/orcl/pdborcl/undotbs01.dbf
/opt/oracle/app/oradata/orcl/pdborcl/users01.dbf
SQL>
```