手把手教你在命令行(静默)部署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}
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;