Centos 7.x 静默安装Oracle12C R2

5 篇文章 0 订阅
1 篇文章 0 订阅

一、查看是否安装Oracle

ps -ef | grep ora

没有安装oracle的结果 ↓
没有安装oracle结果

二、安装前准备

1. 关闭防火墙
  1. 查看防火墙状态
systemctl status firewalld

在这里插入图片描述
上图的状态是已经关闭状态,如果出现Active: active (running)且高亮显示则表示是启动状态,则需要关闭

  1. 关闭防火墙
systemctl stop firewalld.service

或者

service firewalld stop

上面两个命令都可以关闭防火墙

  1. 禁止防火墙开机自启动
systemctl disable firewalld.service
2. 关闭selinux

编辑 /etc/selinux/config 文件,修改其中的 SELINUX=disabled

vi /etc/selinux/config

在这里插入图片描述

3. 内存要求

最小值为1 GB 内存,建议值为2 GB of RAM 或者更多

grep MemTotal /proc/meminfo

在这里插入图片描述

4. 内核要求
  1. 查询系统位数命令
uname -m

在这里插入图片描述

  1. 查询系统版本命令
cat /proc/version

在这里插入图片描述

  1. 查询系统内核版本
uname -r
  1. 查看磁盘可用空间大小,/tmp目录至少需要1GB
df -h
df -h /tmp
5. 检查Oracle需要的rmp依赖
  1. 检查Oracle需要的rmp安装情况
rpm -q binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXext libXtst libX11 libXau libxcb libXi make sysstat

结果如下:
在这里插入图片描述
显示xxx is not installed的,说明缺少该依赖包,可以使用yum命令同时安装多个,包与包之间使用空格隔开

  1. 缺少哪个包就用如下命令安装哪个
yum -y install binutils xxx xxx ... xxx

幸运的话很顺利就安装完了,安装好后重新执行上一步的命令,复查有没有遗漏的包没有安装。

而本运维小白就很不幸的开始了填坑之路(╥╯^╰╥):(可直接跳过,愿大家都不会遇到坑)
【坑1】显示163-oracle.repo文件再第一行有问题
在这里插入图片描述
解决方式:打开了163-oracle.repo,发现第一行少了一个“[”,这是哪个大仙的杰作啊啊啊啊啊啊啊(注:服务器是甲方提供的)

【坑2】再次下载缺少的包,发现服务器不能联网(是网速问题),啊啊啊啊啊啊啊,有网了以后也是龟速,而且服务器连接不稳定,经常无缘无故中断
在这里插入图片描述
【坑3】继续忍耐,继续下载,哇哦,报错了
在这里插入图片描述
解决方式:修改了文件,把gpgcheck=1全部改成gpgcheck=0,再重新安装一遍,成功!

【坑4】后来又给其他甲方安装Oracle,由于他们的机器干脆不能联网,所以需要在其他服务器下载所需要的依赖包,但不安装,然后传给需要依赖的服务器,执行安装命令
下载到/tmp/oraclesrc目录但不安装:

yum install libXi-1.7.9-1.el7.x86_64.rpm  --downloadonly --downloaddir=/tmp/oraclesrc

将安装包传输到Oracle服务器的/tmp目录,注意修改服务器ip

scp -v -r /tmp/oraclesrc root@192.xx.xx.x:/tmp

在Oracle机器上的对应目录安装依赖包

rpm -ivh libXi-1.7.9-1.el7.x86_64.rpm

全部安装好后复查是否还缺少相关依赖包,如果没有出现“xxx is not installed”就大功告成了

rpm -q binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXext libXtst libX11 libXau libxcb libXi make sysstat

【坑5】继坑4而来,本以为有网的情况下yum命令会比较顺利,我真是太天真了orz,这镜像找不到啊!
在这里插入图片描述
网上的大佬说,这些报错的意思就是我的centos系统网络不通,使用命令 ping 114.114.114.114 测试果然如此
在这里插入图片描述
注: 114.114.114.114是国内移动、电信和联通通用的DNS,手机和电脑端都可以使用,干净无广告,解析成功率相对来说更高,国内用户使用的比较多,而且速度相对快、稳定,是国内用户上网常用的DNS。
类似的,8.8.8.8是GOOGLE公司提供的DNS,该地址是全球通用的,相对来说,更适合国外以及访问国外网站的用户使用

由于每个机器的情况不同,解决方法请参考如下这几篇(都有过帮助):
1)centos 无法连接网络 yum安装无法使用 报错could not resolve host: mirrorlist.centos.org
2)yum安装时出现错误Errno 14 Couldn’t resolve host的解决办法
3)yum install 出现 Couldn’t resolve host

三、安装前用户及用户组配置

1. 创建用户、用户组、安全目录
groupadd oinstall #创建Oracle用户组oinstall
groupadd dba #创建Oracle用户组dba
useradd -g oinstall -G dba oracle #将oracle用户加入到新建的2个用户组
passwd oracle #修改oracle用户密码
mkdir -p /usr/oracle #创建oracle安装目录
mkdir -p /opt/oracle/orainstall #创建oracle安装文件目录
chown -R oracle:oinstall /usr/oracle/ #更改oracle安装目录用户组
chmod -R 775 /usr/oracle/ #更改oracle安装目录权限
chown -R oracle:oinstall /opt/oracle/orainstall/ #更改oracle安装文件目录用户组
chmod -R 755 /opt/oracle/orainstall/ #更改oracle安装文件目录操作权限
2. 修改内核参数
  1. 内核参数修改
vi /etc/sysctl.conf

在文件中加入如下内容:

kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
fs.file-max = 6815744
fs.aio-max-nr=1048576
  1. 生效新配置的系统内核参数
sysctl -p
3. 修改用户配置
  1. 配置Oracle用户shell limit
vi /etc/security/limits.conf

添加如下内容:

# noproc - 进程的最大数目
# stack - 最大栈大小
# nofile - 打开文件的最大数目
# soft 指的是当前系统生效的设置值
# hard 表明系统中所能设定的最大值
# soft 的限制不能比hard限制高。用 - 就表明同时设置了 soft 和 hard 的值。
# oracle:被限制的用户名,组名前面加@和用户名区别
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 10240
  1. 编辑登录配置文件
vi /etc/pam.d/login

在文件末尾加入如下内容,使shell limit生效:

session required pam_limits.so
4. 切换用户 配置oracle用户
  1. 切换oracle用户
su - oracle
  1. 修改环境变量文件
vi .bash_profile

将文件改成如下内容:

# use for oracle
export  ORACLE_BASE=/usr/oracle  
export  ORACLE_HOME=/usr/oracle/product  
export  ORACLE_SID=orcl  
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin  
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib  
#防止Oracle安装界面乱码,先把语言环境改为英文
export LANG=en_US  
if [ $USER = "oracle" ];then   
 if [ $SHELL = "/bin/ksh" ];then   
     ulimit -p 16384    
     ulimit -n 65536    
   else   
    ulimit -u 16384 -n 65536   
fi    
 fi
  1. 生效配置文件
source .bash_profile
  1. 切换为root用户
su - root

四、开始静默安装

提前把oracle安装包上传到/tmp目录下

1. 解压安装包
unzip linuxx64_12201_database.zip
mv database /home/database
2. 移动解压后的文件夹到/home/database
mv database /home/database
3. 创建/etc/oraInst.loc文件(root下操作)
vi /etc/oraInst.loc

在文件中写入如下内容,按下:wq退出保存

inventory_loc=/opt/oracle/orainstall

inst_group=oinstall
4. 设定该文件的用户组及权限
chown oracle:oinstall /etc/oraInst.loc
chmod 664 /etc/oraInst.loc
5. 将oracle静默安装所需应答文件全部拷贝至 /usr/oracle文件夹下
cp /home/database/response/* /usr/oracle/
6. 修改安装所需的所有应答文件的所属组及权限
chown oracle:oinstall /usr/oracle/*.rsp
chmod 755 /usr/oracle/*.rsp

修改db_install.rsp文件

vi /usr/oracle/db_install.rsp

在文件中修改如下配置

oracle.install.option=INSTALL_DB_SWONLY      //安装类型,只装数据库软件
ORACLE_HOSTNAME=oracledb        //主机名称(在命令行输入hostname查询)
UNIX_GROUP_NAME=oinstall               // 安装组
INVENTORY_LOCATION=/usr/local/oraInventory   //INVENTORY目录(**不填就是默认值,因个人创建安装目录而定)
SELECTED_LANGUAGES=en,zh_CN         // 选择语言
ORACLE_HOME=/usr/oracle/product   // oracle_home *路径根据目录情况注意修改 本例安装路径/usr/oracle
ORACLE_BASE=/usr/oracle                  // oracle_base *注意修改
oracle.install.db.InstallEdition=EE            // oracle版本
oracle.install.db.isCustomInstall=false        //自定义安装,否,使用默认组件
oracle.install.db.OSDBA_GROUP=dba                  //dba用户组
oracle.install.db.OSOPER_GROUP=oinstall           //oper用户组
oracle.install.db.OSBACKUPDBA_GROUP=oinstall       //数据库备份和恢复
oracle.install.db.OSDGDBA_GROUP=oinstall         //数据保护管理
oracle.install.db.OSKMDBA_GROUP=oinstall         //加密密钥管理
oracle.install.db.OSRACDBA_GROUP=oinstall        //实际应用程序群集管理
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE   //数据库类型
oracle.install.db.config.starterdb.globalDBName=orcl      //globalDBName
oracle.install.db.config.starterdb.SID=orcl       //SID(**此处注意与环境变量内配置SID一致)
oracle.install.db.config.starterdb.memoryLimit=81920      //自动管理内存的内存(M)
oracle.install.db.config.starterdb.password.ALL=ZAQ12wsx  //设定所有数据库用户使用同一个密码
SECURITY_UPDATES_VIA_MYORACLESUPPORT=         //(手动写了false,或者默认不填)
DECLINE_SECURITY_UPDATES=true          // 注意此参数 设定一定要为true
7. 切换oracle用户开始安装
su - oracle
cd /home/database
./runInstaller -silent -force -ignorePrereq -responseFile /usr/oracle/db_install.rsp

安装成功如下图所示:
在这里插入图片描述
注:如果安装出现问题,可以根据log地址查看详情,本例中log存放地址: /opt/oracle/orainstall/logs/installActions2021-07-19_06-38-42AM.log,
(安装期间可以使用tail -f /opt/oracle/orainstall/logs/installActions2021-07-19_06-38-42AM.log查看日志)

再根据提示切换root用户,执行root.sh脚本

su - root
sh /usr/oracle/product/root.sh

![在这里插入图片描述](https://img-blog.csdnimg.cn/20210719110021583.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2NhdGZpc2hseWY=,size_16,color_FFFFFF,t_7z

执行结果如下:
在这里插入图片描述

8. 新建数据库实例

修改如下几个参数,如果这几个参数被注释了,要取消注释(这个文件一定要修改,否则会造成数据库创建后无法挂载)

gdbName=orcl
sid=orcl
numberOfPDBs=0
templateName=General_Purpose.dbc
emConfiguration=LOCAL
emExpressPort=5500
characterSet=ZHS16GBK
nationalCharacterSet=ZHS16GBK
totalMemory=8192

修改完成后保存退出

dbca -silent -createDatabase -responseFile dbca.rsp

按照提示输入SYS和SYSTEM的密码
在这里插入图片描述
如果顺利的话,就可以看到1%~100%
在这里插入图片描述
如果不幸的话,就根据日志中的错误提示对症下药吧
在这里插入图片描述
【坑6】查看错误日志时报了“系统参数错误”,重新检查系统参数
在这里插入图片描述
根据这篇文章的修改了配置Oracle的kernel.shmmax和kernel.shmall设置
我的机器是64G的,所以变动如下:

kernel.shmall = 16777216
kernel.shmmax = 68719476735

修改后生效系统参数

sysctl -p

切换oracle用户,重新执行建库命令,这次没有指定responseFile,直接在命令行设置参数(一个大佬教的)

su - oracle
dbca -silent -createDatabase -templateName General_Purpose.dbc -gdbname orcl -sid orcl -numberOfPDBs 0 -responseFile NO_VALUE -characterSet ZHS16GBK -totalMemory 8192 -emConfiguration LOCAL -dbsnmpPassword oracle -sysPassword oracle -systemPassword oracle

结果成功了!大佬说数据库建成功以后参数都可以调整,只要字符集对就可以了

9. 设置监听
netca -silent -responseFile /usr/oracle/netca.rsp

在这里插入图片描述

netstat -tnpl | grep 1521

在这里插入图片描述
查看监听状态

lsnrctl status

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值