一、查看是否安装Oracle
ps -ef | grep ora
没有安装oracle的结果 ↓
二、安装前准备
1. 关闭防火墙
- 查看防火墙状态
systemctl status firewalld
上图的状态是已经关闭状态,如果出现Active: active (running)且高亮显示则表示是启动状态,则需要关闭
- 关闭防火墙
systemctl stop firewalld.service
或者
service firewalld stop
上面两个命令都可以关闭防火墙
- 禁止防火墙开机自启动
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. 内核要求
- 查询系统位数命令
uname -m
- 查询系统版本命令
cat /proc/version
- 查询系统内核版本
uname -r
- 查看磁盘可用空间大小,/tmp目录至少需要1GB
df -h
df -h /tmp
5. 检查Oracle需要的rmp依赖
- 检查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
命令同时安装多个,包与包之间使用空格隔开
- 缺少哪个包就用如下命令安装哪个
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. 修改内核参数
- 内核参数修改
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
- 生效新配置的系统内核参数
sysctl -p
3. 修改用户配置
- 配置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
- 编辑登录配置文件
vi /etc/pam.d/login
在文件末尾加入如下内容,使shell limit生效:
session required pam_limits.so
4. 切换用户 配置oracle用户
- 切换oracle用户
su - oracle
- 修改环境变量文件
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
- 生效配置文件
source .bash_profile
- 切换为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

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