手把手教你在命令行(静默)部署oracle 11gR2

 

 

环境介绍

versionCPU/内存系统架构
CentOS Linux release 7.7.1908   X86_64

注意检查磁盘空间,安装目录可用空间不要低于20G [df -h命令可以查看目录空间使用情况]

注意检查系统架构,下载安装包的时候要对应自己的系统架构

注意检查/tmp目录大小,oracle要求/tmp目录不小于1G,如果没有单独挂载/tmp目录,注意查看根目录可用空间

注意检查内存大小,不要低于2G

oracle安装包
链接:https://pan.baidu.com/s/1vUQ9Slp5VVXyj9414kZ0UA
提取码:imkb

linux发行版

使用下面的命令,可以看到自己的发行版以及子版本号

cat /etc/centos-release

cpu、内存以及磁盘空间

cpu物理个数

grep 'physical id' /proc/cpuinfo | uniq | wc -l

cpu核心数量

grep 'core id' /proc/cpuinfo | uniq | wc -l

内存大小

free -h

系统架构

uname -a

敲黑板

关闭防火墙以及selinux

查看selinux状态,最好是disabled

sestatus

如果不是disabled,执行下面的命令,重启系统后才会生效

sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config

查看firewalld状态,确认已经关闭,并且开机不会自启

systemctl status firewalld.service | egrep -i 'active|load'

如果没有关闭,执行下面的命令

systemctl disable firewalld.service --now

操作系统配置

使用阿里的yum源提速

centos安装完成后,默认是官方的yum源,速度会比较慢,切换到国内yum源解决依赖更快[毕竟oracle的依赖很多]

cd /etc/yum.repos.d/
mkdir bak
mv *.repo bak/
vim Centos-7.repo

最小化安装的centos是没有wget命令的,可以直接复制下面的内容

# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client.  You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
#
#

[base]
name=CentOS-$releasever - Base - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
        http://mirrors.aliyuncs.com/centos/$releasever/os/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

#released updates
[updates]
name=CentOS-$releasever - Updates - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/
        http://mirrors.aliyuncs.com/centos/$releasever/updates/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/
        http://mirrors.aliyuncs.com/centos/$releasever/extras/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/centosplus/$basearch/
        http://mirrors.aliyuncs.com/centos/$releasever/centosplus/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/contrib/$basearch/
        http://mirrors.aliyuncs.com/centos/$releasever/contrib/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

清空yum缓存,生成元数据

yum clean all && yum makecache

安装依赖软件

yum -y install gcc gcc-c++ elfutils-libelf libaio libaio-devel ksh

设置用户最大进程数以及最大文件打开数

cat << EOF >> /etc/security/limits.conf

####### start for oracle #######
oracle          soft    nproc           2048
oracle          hard    nproc           16384
oracle          soft    nofile          1024
oracle          hard    nofile          65536
oracle          soft    stack           10240
oracle          hard    stack           10240
####### end  for  oracle #######

EOF

soft xxx 代表警告的设定,可以超过这个设定值,但是超过后会有警告。

hard xxx 代表严格的设定,不允许超过这个设定的值。

  • soft nproc 单个用户可用的最大进程数量(超过会警告)
  • hard nproc 单个用户可用的最大进程数量(超过会报错)
  • soft nofile 可打开的文件描述符的最大数(超过会警告)
  • hard nofile 可打开的文件描述符的最大数(超过会报错)

内核参数优化

cat << EOF >> /etc/sysctl.conf

####### start for oracle #######
fs.aio-max-nr=1048576
fs.file-max=6815744
kernel.shmall=2097152
kernel.shmmax=536870912
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=1048586
####### end  for  oracle #######

EOF

fs.aio-max-nr同时可以拥有的的异步IO请求数量

fs.file-max最大句柄数

kernel.shmall可以使用的共享内存的总量

kernel.shmmax最大共享内存段大小

kernel.shmmni整个系统共享内存段的最大数目

kernel.sem每个信号对象集的最大信号对象数;系统范围内最大信号对象数;每个信号对象支持的最大操作数;系统范围内最大信号对象集数

net.ipv4.ip_local_port_range应用程序可使用的IPv4端口范围

net.core.rmem_default套接字接收缓冲区大小的缺省值(以字节为单位)

net.core.rmem_max套接字接收缓冲区大小的最大值(以字节为单位)

net.core.wmem_default套接字发送缓冲区大小的缺省值(以字节为单位)

net.core.wmem_max套接字发送缓冲区大小的最大值(以字节为单位)

执行下面的命令,使配置立即生效

sysctl -p

开启swap分区

oracle是需要开启swap分区的,可以通过free -h命令查看swap分区的大小,如果没有开启swap分区,会有如下的报错:

Checking swap space: 0 MB available, 150 MB required. Failed <<<<

dd if=/dev/zero of=/swapfile bs=1024 count=512k
mkswap /swapfile
swapon /swapfile
echo '/swapfile          swap            swap    defaults        0 0' >> /etc/fstab

创建用户及用户组

创建用户组

for i in oinstall dba oper;do groupadd $i;done

验证一下,是否创建成功

egrep 'oinstall|dba|oper' /etc/group

创建用户

-G参数:给用户指定附加组

-g参数:给用户指定基本组

useradd -g oinstall -G dba,oper oracle
echo 'oracle' | passwd --stdin oracle

验证一下,是否创建成功

id oracle

预期会有如下输出:

uid=1001(oracle) gid=1001(oinstall) groups=1001(oinstall),1002(dba),1003(oper)

赋权及目录创建

chown oracle.oinstall linux.x64_11gR2_database_*

注意自的目录,不要直接复制黏贴,我的app目录是单独挂载的一个分区,有80G的空间

mkdir -p /app/oracle/{11gR2,backup,oraInventory} -m 775
chown oracle.oinstall /app/oracle -R

设置环境变量

切换到oracle用户

su - oracle

编辑用户的环境变量配置文件,当前所在目录:/home/oracle

vim .bash_profile

注意修改ORACLE_BASE的路径,和自己创建的路径要一样

DISPLAY这里的ip为本机ip注意修改

export ORACLE_BASE=/app/oracle
export DISPLAY=192.168.70.48:1.0
export ORACLE_HOME=${ORACLE_BASE}/11gR2
export ORACLE_SID=oracle11g
export PATH=$PATH:$HOME/.local/bin:$HOME/bin:${ORACLE_HOME}/bin
export LD_LIBRARY_PATH=/usr/lib:${ORACLE_HOME}/lib
source .bash_profile

安装oracle

注意使用的用户是oracle用户

解压安装包

unzip linux.x64_11gR2_database_1of2.zip -d /app/oracle/
unzip linux.x64_11gR2_database_2of2.zip -d /app/oracle/

备份配置文件

cd /app/oracle
cp -r database/response{,.template}

Oracle 11g 静默安装-db_install.rsp详解

cat <<EOF > database/response/db_install.rsp
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=bigdata06
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/app/oracle/oraInventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/app/oracle/11gR2
ORACLE_BASE=/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.isCustomInstall=false
oracle.install.db.customComponents=oracle.server:11.2.0.1.0,oracle.sysman.ccr:10.2.7.0.0,oracle.xdk:11.2.0.1.0,oracle.rdbms.oci:11.2.0.1.0,oracle.network:11.2.0.1.0,oracle.network.listener:11.2.0.1.0,oracle.rdbms:11.2.0.1.0,oracle.options:11.2.0.1.0,oracle.rdbms.partitioning:11.2.0.1.0,oracle.oraolap:11.2.0.1.0,oracle.rdbms.dm:11.2.0.1.0,oracle.rdbms.dv:11.2.0.1.0,orcle.rdbms.lbac:11.2.0.1.0,oracle.rdbms.rat:11.2.0.1.0
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=oinstall
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
oracle.install.db.config.starterdb.globalDBName=oracle11g
oracle.install.db.config.starterdb.SID=oracle11g
oracle.install.db.config.starterdb.characterSet=AL32UTF8
oracle.install.db.config.starterdb.memoryOption=true
oracle.install.db.config.starterdb.memoryLimit=1500
oracle.install.db.config.starterdb.installExampleSchemas=false
oracle.install.db.config.starterdb.enableSecuritySettings=true
oracle.install.db.config.starterdb.password.ALL=oracle
oracle.install.db.config.starterdb.control=DB_CONTROL
oracle.install.db.config.starterdb.gridcontrol.gridControlServiceURL=
oracle.install.db.config.starterdb.dbcontrol.enableEmailNotification=false
oracle.install.db.config.starterdb.automatedBackup.enable=false
oracle.install.db.config.starterdb.storageType=FILE_SYSTEM_STORAGE
DECLINE_SECURITY_UPDATES=true
EOF

开始安装

cd database/
./runInstaller -silent -responseFile /app/oracle/database/response/db_install.rsp -ignorePrereq

执行成功后,会有下面的输出(这里给一个免费的建议,新开一个终端去查看日志情况)

You can find the log of this install session at:
 /app/oracle/oraInventory/logs/installActions2021-09-26_02-23-09PM.log

出现如下的回显,表示安装已经完成了

这里需要新开一个终端,以root用户执行下面给出的两个脚本

两个脚本执行完成后,回到oracle用户安装的这个终端敲回车就可以了

The following configuration scripts need to be executed as the "root" user.
 #!/bin/sh
 #Root scripts to run

/app/oracle/oraInventory/orainstRoot.sh
/app/oracle/11gR2/root.sh
To execute the configuration scripts:
         1. Open a terminal window
         2. Log in as "root"
         3. Run the scripts
         4. Return to this window and hit "Enter" key to continue

Successfully Setup Software.

配置oracle监听文件

注意:后面的操作,都是使用oracle用户

cd /app/oracle/database/response
netca /silent /responsefile /app/oracle/database/response/netca.rsp

执行完成后,在/app/oracle/11gR2/network/admin目录下会生成两个文件

listener.ora

sqlnet.ora

ss -nltp | grep 1521

能过滤得到信息,说明监听器已经正常工作了

LISTEN     0      128       [::]:1521                  [::]:*                   users:(("tnslsnr",pid=10836,fd=11))

如果监听器没有启动,则需要手动启动,启动方式如下

/app/oracle/11gR2/bin/lsnrctl start LISTENER

配置oracle数据库

修改建库配置文件

vim /app/oracle/database/response/dbca.rsp
78行(SID+主机域名):
GDBNAME = "oracle11g.myoracle"

149行(SID):# 与环境变量里面的设置的SID要一致
SID = "oracle11g"

190行:
SYSPASSWORD = "oracle"

200行:
SYSTEMPASSWORD = "oracle"

415行:
CHARACTERSET = "AL32UTF8"

425行:
NATIONALCHARACTERSET= "UTF8"

创建dbca数据库

$ORACLE_HOME/bin/dbca -silent -responseFile /app/oracle/database/response/dbca.rsp

启动oracle数据库

进入oracle

sqlplus / as sysdba
start

验证oracle

select * from tab;
posted @ 2022-02-19 23:33  月巴左耳东  阅读(196)  评论(0编辑  收藏  举报