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

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

环境介绍

version CPU/内存 系统架构
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;
目录
相关文章
|
12月前
|
Oracle 关系型数据库 数据库
百度搜索:蓝易云【docker部署并配置oracle12c的cdb和pdb教程!】
以上是使用Docker部署和配置Oracle 12c CDB和PDB的简要教程。请注意,这只是一个概述,并且可能需要根据你的实际情况进行适当的调整和配置。建议参考Oracle官方文档和相关资源,以获得更详细和全面的指导。
133 2
|
2月前
|
Oracle 安全 关系型数据库
Oracle安装部署再也不用头疼了,分享一个实用的一键部署脚本,建议收藏!
Oracle安装部署再也不用头疼了,分享一个实用的一键部署脚本,建议收藏!
87 0
|
3月前
|
SQL Oracle 关系型数据库
MySQL、SQL Server和Oracle数据库安装部署教程
数据库的安装部署教程因不同的数据库管理系统(DBMS)而异,以下将以MySQL、SQL Server和Oracle为例,分别概述其安装部署的基本步骤。请注意,由于软件版本和操作系统的不同,具体步骤可能会有所变化。
190 3
|
5月前
|
Oracle 关系型数据库 数据库
Oracle 部署及基础使用,字节跳动资深面试官亲述
Oracle 部署及基础使用,字节跳动资深面试官亲述
|
Oracle 关系型数据库 数据库
Oracle 简介与 Docker Compose部署
Oracle 数据库是一款由 Oracle 公司开发的关系型数据库管理系统(RDBMS)。它被广泛应用于企业级应用程序,提供了可靠的数据存储和强大的数据管理功能。
412 1
Oracle 简介与 Docker Compose部署
|
4月前
|
SQL Oracle 关系型数据库
mysql和oracle 命令行执行sql文件 数据库执行sql文件 执行sql语句
mysql和oracle 命令行执行sql文件 数据库执行sql文件 执行sql语句
67 0
|
SQL Oracle 关系型数据库
PostgreSQL技术大讲堂 - 第27讲:Oracle-FDW部署
从零开始学PostgreSQL,PG技术大讲堂 - 第27讲:Oracle-FDW部署
212 2
|
5月前
|
Oracle 关系型数据库 Linux
RHEL7.9系统下一键脚本安装Oracle 11gR2单机版本
RHEL7.9系统下一键脚本安装Oracle 11gR2单机版本
247 1
|
10月前
|
Oracle 关系型数据库 数据安全/隐私保护
docker部署oracle12c以及 sqlserver2019
docker部署oracle12c以及 sqlserver2019
150 0
|
12月前
|
SQL Oracle 关系型数据库
Oracle数据库sqlplus命令行执行sql语句时,语句有中文报错解决
Oracle数据库sqlplus命令行执行sql语句时,语句有中文报错解决