前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ORACLE 11g 静默安装

ORACLE 11g 静默安装

原创
作者头像
用户8006012
修改2022-04-27 14:50:27
1.1K0
修改2022-04-27 14:50:27
举报
文章被收录于专栏:DATABASEDATABASE

一、配置环境变量

1、主机名配置

代码语言:javascript
复制
hostnamectl set-hostname orcl

2、网络配置

代码语言:javascript
复制
nmcli connection show
nmcli connection modify ens33 ipv4.addresses 192.168.30.80/24 ipv4.gateway 192.168.30.254 ipv4.method manual autoconnect yes
nmcli connection up ens33

3、配置Hosts文件

代码语言:javascript
复制
cat <<EOF >>/etc/hosts
192.168.30.80     orcl
##OracleEnd##
EOF

4、防火墙配置

代码语言:javascript
复制
systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld.service

5、Selinux配置

selinux修改后需要重启主机生效:

代码语言:javascript
复制
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

6、ISO镜像源配置

需要先挂载主机镜像:

代码语言:javascript
复制
mount /dev/cdrom /mnt

cat <<EOF>/etc/yum.repos.d/local.repo
[local]
name=local
baseurl=file:///mnt
gpgcheck=0
enabled=1
EOF

yum repolist all

7、安装Oracle依赖包

如下依赖包从Oracle官方文档推荐获取:

代码语言:javascript
复制
yum install -y bc \
binutils \
compat-libcap1 \
compat-libstdc++-33 \
gcc \
gcc-c++ \
elfutils-libelf \
elfutils-libelf-devel \
glibc \
glibc-devel \
ksh \
libaio \
libaio-devel \
libgcc \
libstdc++ \
libstdc++-devel \
libxcb \
libX11 \
libXau \
libXi \
libXtst \
libXrender \
libXrender-devel \
make \
net-tools \
nfs-utils \
smartmontools \
sysstat \
e2fsprogs \
e2fsprogs-libs \
fontconfig-devel \
expect \
unzip \
openssh-clients \
readline* \
psmisc --skip-broken

检查是否安装成功:

代码语言:javascript
复制
rpm -q bc binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ elfutils-libelf elfutils-libelf-devel glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libxcb libX11 libXau libXi libXtst libXrender libXrender-devel make net-tools nfs-utils smartmontools sysstat e2fsprogs e2fsprogs-libs fontconfig-devel expect unzip openssh-clients readline

Linux7需要手动安装compat-libstdc++依赖包:

代码语言:javascript
复制
mkdir /soft
上传rpm包 compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm

rpm -ivh compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm

8、配置ZeroConf

代码语言:javascript
复制
##关闭Zeroconf service的服务守护进程
systemctl stop avahi-daemon.socket
systemctl stop avahi-daemon.service
systemctl disable avahi-daemon.service
systemctl disable avahi-daemon.socket

##关闭NOZEROCONF
cat <<EOF >>/etc/sysconfig/network
#OracleBegin
NOZEROCONF=yes
#OracleEnd
EOF

9、关闭透明大页和numa

代码语言:javascript
复制
sed -i 's/quiet/quiet transparent_hugepage=never numa=off/' /etc/default/grub
grub2-mkconfig -o /boot/grub2/grub.cfg

10、配置系统参数文件

代码语言:javascript
复制
##计算shmall和shmmax值
memTotal=$(grep MemTotal /proc/meminfo | awk '{print $2}')
totalMemory=$((memTotal / 2048))
shmall=$((memTotal / 4))
if [ $shmall -lt 2097152 ]; then
  shmall=2097152
fi
shmmax=$((memTotal * 1024 - 1))
if [ "$shmmax" -lt 4294967295 ]; then
  shmmax=4294967295
fi
echo $shmall
echo $shmmax

##配置系统参数
cat <<EOF >>/etc/sysctl.conf
#OracleBegin
##shmmal's Calculation formula: physical memory 8G:(8*1024*1024*1024)/4096=2097152
##shmmax's Calculation formula: physical memory 8G:(8/2)*1024*1024*1024 -1=4294967295
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = $shmall
kernel.shmmax = $shmmax
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
EOF

##系统参数生效
sysctl -p

11、配置系统资源限制

代码语言:javascript
复制
cat <<EOF >>/etc/security/limits.conf
#OracleBegin
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768
oracle soft nproc 2047
oracle hard nproc 16384
oracle hard memlock 134217728
oracle soft memlock 134217728
#OracleEnd
EOF

cat <<EOF >>/etc/pam.d/login
#OracleBegin
session required pam_limits.so 
session required /lib64/security/pam_limits.so
#OracleEnd
EOF

12、创建用户和组

代码语言:javascript
复制
/usr/sbin/groupadd -g 54321 oinstall
/usr/sbin/groupadd -g 54322 dba
/usr/sbin/groupadd -g 54323 oper

/usr/sbin/useradd -u 54321 -g oinstall -G dba,oper oracle
echo oracle | passwd --stdin oracle

id oracle

13、创建Oracle安装目录

代码语言:javascript
复制
mkdir -p /u01/app/oracle/product/11.2.0/db
mkdir -p /u01/app/oraInventory
mkdir -p /oradata
chown -R oracle:oinstall /oradata
chown -R oracle:oinstall /u01/app
chmod -R 775 /u01/app

14、配置用户环境变量

代码语言:javascript
复制
cat <<EOF >>/home/oracle/.bash_profile
################OracleBegin#########################
umask 022
export TMP=/tmp
export TMPDIR=\$TMP
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db
export ORACLE_HOSTNAME=orcl
export ORACLE_TERM=xterm
export TNS_ADMIN=\$ORACLE_HOME/network/admin
export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib
export ORACLE_SID=orcl
export PATH=/usr/sbin:\$PATH
export PATH=\$ORACLE_HOME/bin:\$ORACLE_HOME/OPatch:\$PATH
alias sas='sqlplus / as sysdba'
export PS1="[\`whoami\`@\`hostname\`:"'\$PWD]\$ '
EOF

15、检查参数

代码语言:javascript
复制
cat /etc/selinux/config
cat /sys/kernel/mm/transparent_hugepage/enabled
cat /proc/cmdline

二、Oracle软件安装

1、Oracle软件包上传

代码语言:javascript
复制
[root@orcl soft]# ll
total 2487392
-rw-r--r--. 1 root root     195388 Apr 25 15:51 compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm
-rw-r--r--  1 root root 1395582860 Apr 25 16:06 p13390677_112040_Linux-x86-64_1of7.zip
-rw-r--r--  1 root root 1151304589 Apr 25 16:06 p13390677_112040_Linux-x86-64_2of7.zip

2、解压Oracle软件安装包

需要按顺序解压1,2安装包:

代码语言:javascript
复制
cd /soft
unzip -q p13390677_112040_Linux-x86-64_1of7.zip
unzip -q p13390677_112040_Linux-x86-64_2of7.zip

3 、编辑响应文件

代码语言:javascript
复制
## 首先需要授予 /soft 目录权限
chown -R oracle.oinstall /soft
## 连接 oracle 用户
su - oracle cd /soft
source /home/oracle/.bash_profile
## 配置 oracle 软件安装目录
ENV_BASE_DIR=/u01/app
## 创建响应文件
cat <<EOF >>/soft/db_install.rsp
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=$(hostname)
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=${ENV_BASE_DIR}/oraInventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=$ORACLE_HOME
ORACLE_BASE=$ORACLE_BASE
oracle.install.db.InstallEdition=EE
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=oper
DECLINE_SECURITY_UPDATES=true
oracle.installer.autoupdates.option=SKIP_UPDATES
EOF

4、静默安装 Oracle 软件

配置好响应文件之后,就可以开始静默安装 Oracle 软件了,很简单的一行命令:

代码语言:javascript
复制
su - oracle
cd /soft/database
./runInstaller -silent -force -showProgress -ignoreSysPrereqs -waitForCompletion -responseFile /soft/db_install.rsp -ignorePrereq

整个静默安装过程很快,安装完后需要切换到 root 用户下执行以下 root.sh 脚本:

代码语言:javascript
复制
/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/product/11.2.0/db/root.sh

Oracle 软件安装成功啦!

三、Oracle 安装补丁

1、更新 OPatch 包

首先,我们需要更新升级 OPatch 包,注意权限:

代码语言:javascript
复制
## 切换到 oracle 用户
su - oracle
cd /soft
## 直接静默覆盖解压 p6880880 到 ORACLE_HOME 目录,前面解压是为了给大家看 README 文档,一般都是直接解压到 ORACLE_HOME 目录下
unzip -o -q /soft/p6880880_112000_Linux-x86-64.zip -d $ORACLE_HOME
## 检查 OPatch 版本
opatch version

2、PSU 补丁安装前环境检查

防止安装时由于磁盘空间不够等等情况导致失败,建议先进行检查:

代码语言:javascript
复制
cd /soft
unzip -q p31537677_112040_Linux-x86-64.zip
cd 31537677 
opatch prereq CheckConflictAgainstOHWithDetail -ph ./

3、安装 PSU 补丁

一切准备工作都做完了就可以正式安装补丁了:

代码语言:javascript
复制
cd /soft/31537677 
opatch apply

安装成功后可以检查一下补丁版本:

代码语言:javascript
复制
opatch lspatches

四. 静默安装监听

编辑netca.rsp文件

代码语言:javascript
复制
netca -silent -responsefile $ORACLE_HOME/assistants/netca/netca.rsp
## 检查监听状态
lsnrctl status

五、创建数据库实例

代码语言:javascript
复制
## 实例名称
ORACLE_SID=orcl
## 数据文件目录
ORADATADIR=/oradata
## 数据库字符集
CHARACTERSET=AL32UTF8
## 国家字符集
NCHARACTERSET=AL16UTF16
## 数据库内存这里取物理内存的 50%
totalMemory=$((memTotal / 2048))

静默创建数据库实例:

代码语言:javascript
复制
dbca -silent -createDatabase \
-templateName General_Purpose.dbc \
-responseFile NO_VALUE \
-gdbname ${ORACLE_SID} \
-sid ${ORACLE_SID} \
-sysPassword oracle \
-systemPassword oracle \
-redoLogFileSize 1024 \
-storageType FS \
-datafileDestination ${ORADATADIR} \
-characterSet ${CHARACTERSET} \
-nationalCharacterSet ${NCHARACTERSET} \
-emConfiguration NONE \
-automaticMemoryManagement false \
-totalMemory ${totalMemory} \
-databaseType OLTP

五、删除数据库

代码语言:javascript
复制
dbca -silent -deleteDatabase -sourcedb orcl -sysDBAUserName oracle -sysDBAPassword oracle

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、配置环境变量
  • 二、Oracle软件安装
    • 4、静默安装 Oracle 软件
    • 三、Oracle 安装补丁
      • 1、更新 OPatch 包
        • 2、PSU 补丁安装前环境检查
          • 3、安装 PSU 补丁
          • 四. 静默安装监听
          • 编辑netca.rsp文件
          • 五、创建数据库实例
          相关产品与服务
          数据库
          云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档