> 本小节教搭建在,Linux系统下安装Oracle12c(静默安装与卸载Centos)
## 1.准备好两个Linux版本得Oracle安装上传到Linux
链接:https://pan.baidu.com/s/1qOvQ2OxwKciYN6N8TleZ3g
提取码:17np
网盘自提安装包或者官网自己下载
**系统要求**
内存:1G(官方最低要求1G)
硬盘:40G(企业版安装所需4.29G和1.7G数据文件)
检查的命令
内存
```
grep MemTotal /proc/meminfo
```
交换空间
```
grep SwapTotal /proc/meminfo
```
磁盘空间
```
df -ah
```
## 2.将两个压缩报解压在本地
```shell
[root@izuf672hlpds4xqw1om49iz toolZip]# unzip linuxamd64_12102_database_1of2.zip
[root@izuf672hlpds4xqw1om49iz toolZip]# unzip linuxamd64_12102_database_2of2.zip
```
![](http://dc.zjhcsoft.com:25680/mindoc/uploads/deliver/images/m_a282c3b32db512170dc8551280b5e093_r.png)
## 3.关闭selinux(安全模块)和防火墙
**关闭selinux:**
临时关闭(不用重启)
```shell
[root@izuf672hlpds4xqw1om49iz ~]# setenforce 0
```
修改配置文件(需要重启): 将SELINUX=enforcing改为SELINUX=disabled
```shell
[root@izuf672hlpds4xqw1om49iz ~]# vi /etc/selinux/config
```
<span style='color:red;font-size:8'>建议使用不用重启的方式,并修改/etc/selinux/config文件。(不要重启)</span>
**关闭防火墙:**
查看防火墙状态
```shell
[root@izuf672hlpds4xqw1om49iz ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: active (running) since Tue 2020-06-23 16:19:42 CST; 1 months 4 days ago
Docs: man:firewalld(1)
Main PID: 29413 (firewalld)
CGroup: /system.slice/firewalld.service
└─29413 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid
Jun 23 16:19:42 izuf672hlpds4xqw1om49iz systemd[1]: Starting firewalld - dynamic firewall daemon...
Jun 23 16:19:42 izuf672hlpds4xqw1om49iz systemd[1]: Started firewalld - dynamic firewall daemon.
```
开启和关闭防火墙
```shell
systemctl start firewalld
systemctl stop firewalld
```
防火墙开放端口(不关闭防火墙的情况下)
```shell
[root@izuf672hlpds4xqw1om49iz ~]# firewall-cmd --list-ports
3306/tcp 6379/tcp 18080/tcp
[root@izuf672hlpds4xqw1om49iz ~]# firewall-cmd --add-port=1521/tcp --zone=public --permanent
success
[root@izuf672hlpds4xqw1om49iz ~]# firewall-cmd --reload
success
[root@izuf672hlpds4xqw1om49iz ~]# firewall-cmd --list-ports
1521/tcp 3306/tcp 6379/tcp 18080/tcp
```
## 4.安装Oracle12c的依赖包
```shell
[root@izuf672hlpds4xqw1om49iz ~]# yum install 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
```
如果连接不了网络的话
```shell
ping www.baidu.com #如果连接不了网络的话,需要自己去下载相应的rpm依赖包,网址在下边,并找好自己系统对应的版本
[root@izuf672hlpds4xqw1om49iz ~]# cat /proc/version
Linux version 3.10.0-514.26.2.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC) ) #1 SMP Tue Jul 4 15:04:05 UTC 2017
[root@izuf672hlpds4xqw1om49iz ~]# lsb_release -a
LSB Version: :core-4.1-amd64:core-4.1-noarch
Distributor ID: CentOS
Description: CentOS Linux release 7.3.1611 (Core)
Release: 7.3.1611
Codename: Core
```
http://www.rpmfind.net/linux/rpm2html/search.php?query=gcc&submit=Search+...&system=Centos&arch=
## 5.创建Oracle用户和用户组
```shell
[root@izuf672hlpds4xqw1om49iz ~]# groupadd oinstall
[root@izuf672hlpds4xqw1om49iz ~]# groupadd dba
[root@izuf672hlpds4xqw1om49iz ~]# useradd -g oinstall -G dba oracle
[root@izuf672hlpds4xqw1om49iz ~]# passwd oracle
Changing password for user oracle.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
[root@izuf672hlpds4xqw1om49iz ~]# id oracle
uid=1001(oracle) gid=1001(oinstall) groups=1001(oinstall),1002(dba)
#可以看到用户建立并加入相应的用户组里面
```
## 6.修改内核参数配置文件
```
[root@izuf672hlpds4xqw1om49iz ~]# vi /etc/sysctl.conf
```
将下面的配置加入到**sysctl.conf**配置文件中
在文件最后加入
```reStructuredText
fs.aio-max-nr=1048576
fs.file-max=6815744
kernel.sem=250 32000 100 128
kernel.shmall=2097152
kernel.shmmax=2147483648
kernel.shmmni=4096
net.core.rmem_default=1048576
net.core.rmem_max=4194304
net.core.wmem_default=262144
net.core.wmem_max=1048576
net.ipv4.ip_local_port_range=9000 65500
```
```shell
[root@izuf672hlpds4xqw1om49iz ~]# sysctl -p #检查是否生效
```
## 7.修改oracle用户权限文件
```shell
[root@izuf672hlpds4xqw1om49iz ~]# vi /etc/security/limits.conf #将下面内容在文件最后加入
oracle soft nofile 65536
oracle hard nofile 65536
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft stack 10240
[root@izuf672hlpds4xqw1om49iz ~]# vi /etc/pam.d/login #将下面内容在文件最后加入
session required /lib64/security/pam_limits.so
session required pam_limits.so
[root@izuf672hlpds4xqw1om49iz ~]# vi /etc/profile #将下面内容在文件最后加入
#oracle config
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
[root@izuf672hlpds4xqw1om49iz ~]# source /etc/profile
```
## 8.创建安装目录和文件权限
**创建安装目录**
```shell
[root@izuf672hlpds4xqw1om49iz ~]# mkdir -p /data/soft/database/oracle/product/12.10.2 #-p 确保目录名称存在,不存在的就建一个。
[root@izuf672hlpds4xqw1om49iz ~]# mkdir /data/soft/database/oracle/oradata //数据文件存放目录
[root@izuf672hlpds4xqw1om49iz ~]# mkdir /data/soft/database/oracle/inventory //数据库创建及使用过程中的日志目录
[root@izuf672hlpds4xqw1om49iz ~]# mkdir /data/soft/database/oracle/fast_recovery_area //数据恢复目录
```
**配置文件权限**
```shell
[root@izuf672hlpds4xqw1om49iz ~]# chown -R oracle:oinstall /data/soft/database/oracle/
[root@izuf672hlpds4xqw1om49iz ~]# chmod -R 755 /data/soft/database/oracle/
```
## 9.配置Oracle环境变量
**此处必须与创建的数据库实例名称一致,否则数据库启动后无法访问。第一次配置完记得source一下。**
```shell
[root@izuf672hlpds4xqw1om49iz ~]# su oracle #在root用户下登入oracle用户的bash
[oracle@izuf672hlpds4xqw1om49iz root]$ vi ~/.bash_profile #将下面内容在文件最后加入
umask 022
ORACLE_BASE=/data/soft/database/oracle
ORACLE_HOME=$ORACLE_BASE/product/12.10.2/dbhome_1
ORACLE_SID=orcl
PATH=$PATH:$ORACLE_HOME/bin
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/12.10.2/lib:$LD_LIBRARY_PATH
LANG=C
export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH LD_LIBRARY_PATH LANG
[oracle@izuf672hlpds4xqw1om49iz root]$ source ~/.bash_profile #使生效
[oracle@izuf672hlpds4xqw1om49iz root]$ exit #退出oracle的bash,重新为root用户状态
exit
```
## 10.编辑静默安装文件
**解压出来的database目录的response文件夹复制到你知道的目录,我这里复制到跟我oracle包上传的目录**
***里面的三个文件作用分别是:***
db_install.rsp:安装应答
dbca.rsp:创建数据库应答
netca.rsp:建立监听、本地服务名等网络设置的应答
```shell
[root@izuf672hlpds4xqw1om49iz toolZip]# cp -r /data/toolZip/database/response/ /data/toolZip/
```
```shell
[root@izuf672hlpds4xqw1om49iz toolZip]# vi /data/toolZip/response/db_install.rsp #设置以下属性的值,不是在文件末尾加入
****************************************************
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=CentOS
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/data/soft/database/oracle/inventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/data/soft/database/oracle/product/12.10.2/dbhome_1
ORACLE_BASE=/data/soft/database/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=dba
oracle.install.db.BACKUPDBA_GROUP=dba
oracle.install.db.DGDBA=dba
oracle.install.db.KMDBA=dba
DECLINE_SECURITY_UPDATES=true
```
## 11.根据响应文件安装Oracle
**然后再执行安装,在oracle用户下**
```shell
[oracle@izuf672hlpds4xqw1om49iz database]$ ./runInstaller -silent -responseFile /data/toolZip/response/db_install.rsp -ignorePrereq
```
- `如果在按照执行过程中出现下图错误,在root用户下依次执行以下命令在安装`<span style='color:red;font-size:8'>无此错误请略过</span>
![](http://dc.zjhcsoft.com:25680/mindoc/uploads/deliver/images/m_e138d0828ec4f3f5dd8870e6a7e6c084_r.png)
```shell
[root@izuf672hlpds4xqw1om49iz database]# dd if=/dev/zero of=/swapfile bs=1024 count=512k
[root@izuf672hlpds4xqw1om49iz database]# mkswap /swapfile
Setting up swapspace version 1, size = 524284 KiB
no label, UUID=053ecc2a-eb1a-4e6c-b9f0-03c14dfff257
[root@izuf672hlpds4xqw1om49iz database]# swapon /swapfile
swapon: /swapfile: insecure permissions 0644, 0600 suggested.
```
对这些命令感兴趣的话可以看看https://blog.csdn.net/qq_35893120/article/details/80655645这个博客
`结束`
- `如果在按照执行过程中出现下图错误请删除相应的文件夹,重复步骤8`
![](http://dc.zjhcsoft.com:25680/mindoc/uploads/deliver/images/m_3bff2948236e4118f258608e27a04fd9_r.png)
`结束`
- `出现[WARNING]可以无视,出现Successfully Setup Software说明安装成功`
![](http://dc.zjhcsoft.com:25680/mindoc/uploads/deliver/images/m_9af0fe09afd0ab0f2ce6a4d359421782_r.png)
`结束`
**执行相应的文件**
根据刚才的成功的页面有提示我们去执行相应的脚本
```shell
[oracle@izuf672hlpds4xqw1om49iz database]$ exit
exit
[root@izuf672hlpds4xqw1om49iz ~]# sh /data/soft/database/oracle/inventory/orainstRoot.sh
Changing permissions of /data/soft/database/oracle/inventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.
Changing groupname of /data/soft/database/oracle/inventory to oinstall.
The execution of the script is complete.
[root@izuf672hlpds4xqw1om49iz ~]# sh /data/soft/database/oracle/product/12.10.2/dbhome_1/root.sh
Check /data/soft/database/oracle/product/12.10.2/dbhome_1/install/root_izuf672hlpds4xqw1om49iz_2020-07-28_11-23-14.log for the output of root script
[root@izuf672hlpds4xqw1om49iz ~]#
```
## 12.以静默的方式配置监听
- <span style='color:red;font-size:8'>再次进入oracle,注意下面脚本的-符号,两种方式</span>
**带-的登录oracle,可以直接使用netca命令**
```shell
[oracle@izuf672hlpds4xqw1om49iz root]$ su - oracle
Password:
Last login: Tue Jul 28 11:27:20 CST 2020 on pts/1
[oracle@izuf672hlpds4xqw1om49iz ~]$ netca /silent /responseFile /data/toolZip/response/netca.rsp
Parsing command line arguments:
Parameter "silent" = true
Parameter "responsefile" = /data/toolZip/response/netca.rsp
Done parsing command line arguments.
Oracle Net Services Configuration:
Profile configuration complete.
Oracle Net Listener Startup:
Running Listener Control:
/data/soft/database/oracle/product/12.10.2/dbhome_1/bin/lsnrctl start LISTENER
Listener Control complete.
Listener started successfully.
Listener configuration complete.
Oracle Net Services configuration successful. The exit code is 0
```
**不带-的bash登录oracle,需要到相应的目录文件夹下执行netca**
```shell
[root@izuf672hlpds4xqw1om49iz ~]# su oracle
[oracle@izuf672hlpds4xqw1om49iz database]$ /data/soft/database/oracle/product/12.10.2/dbhome_1/bin/netca /silent /responseFile /data/toolZip/response/netca.rsp
```
**成功运行后在/data/soft/database/oracle/product/12.10.2/dbhome_1/network/admin生成 sqlnet.ora和listener.ora**
![](http://dc.zjhcsoft.com:25680/mindoc/uploads/deliver/images/m_0d9e1074fd5f99f74bd698f1cf90ad38_r.png)
**通过netstat命令可以查看1521端口正在监听**
<span style='color:red;font-size:8'>安装和监听需要回到root用户下</span>
```shell
[root@izuf672hlpds4xqw1om49iz ~]# yum install net-tools
[root@izuf672hlpds4xqw1om49iz ~]# netstat -tunlp | grep 1521
tcp 0 0 0.0.0.0:1521 0.0.0.0:* LISTEN 19460/tnslsnr
```
## 13.以静默的方式建立新库,同时建立一的oracle实例
```shell
[root@izuf672hlpds4xqw1om49iz toolZip]# vi /data/toolZip/response/dbca.rsp #设置以下属性的值,不是在文件末尾加入
SID = "orcl"
SYSPASSWORD = "sys"
SYSTEMPASSWORD = "system"
DBSNMPPASSWORD = "dbsnmp"
DATAFILEDESTINATION =/data/soft/database/oracle/oradata
RECOVERYAREADESTINATION=/data/soft/database/oracle/fast_recovery_area
CHARACTERSET = "UTF8"
TOTALMEMORY = "1638"
[root@izuf672hlpds4xqw1om49iz ~]# su oracle
[oracle@izuf672hlpds4xqw1om49iz root]$ /data/soft/database/oracle/product/12.10.2/dbhome_1/bin/dbca -silent -responseFile /data/toolZip/response/dbca.rsp #安装实例时间会比较长耐心等待
```
建库后进行实例进程检查
```
ps -ef | grep ora_ | grep -v grep
```
监听查看
```
lsnrctl start
lsnrctl status
lsnrctl stop
```
监测sql
sqlplus / as sysdba
1.实例名:
```mysql
select instance_name from v$instance; sid
```
2.服务名:
```mysql
select global_name from global_name; 服务名称
```
## 14.命令行模式静默删除
1、首先查看dbca的帮助信息
dbca -help
修改/home/oracle/response/dbca.rsp文件里以下几个参数,下面三个参数根据建库实际情况进行修改:
OPERATION_TYPE = “deleteDatabase”
SOURCEDB = “orcl”
SYSDBAUSERNAME = “sys”
SYSDBAPASSWORD = “sys”
然后运行:
dbca -silent -responseFile /home/oracle/response/dbca.rsp
各参数含义如下:
-silent 表示以静默方式删除
-responseFile 表示使用哪个响应文件,必需使用绝对路径
RESPONSEFILE_VERSION 响应文件模板的版本,该参数不要更改
OPERATION_TYPE 安装类型,该参数不要更改
SOURCEDB 数据库名,不是全局数据库名,即不包含db_domain
很简单数据库卸载完成了,请注意,只是数据库卸载完了,数据库软件还是在的。
2、使用DBCA卸载数据库
dbca -silent -delete Database -responseFile dbca.rsp
a.选项-silent表示静默安装,免安装交互,大部分安装信息也不输出
b.选项-responseFile指定应答文件,要求用绝对路径
**以下错误请无视,笔者自己的笔记**
```shell
The Oracle system identifier(SID) "orcl" already exists. Specify another SID.
[root@izuf672hlpds4xqw1om49iz ~]# rm -rf /etc/oratab #看到以上错误
```
```
#如果出现startup;
ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/data/oracle/product/11.1.0/db_1/dbs/initoctl.ora'
/data/soft/database/oracle/admin/orcl12c/pfile/init.ora.7979373847448
#拷贝一份过去
```
- ✍写在前面
- 部署管理思想
- 更新说明
- ⛳第一章 基础环境部署
- 1-1 linux防火墙管理
- 1-2 服务器初始化
- 1-3 存储管理
- 文件删除空间释放问题
- 定时清理日志
- 1-4 JDK安装
- 1-5 无外网环境部署
- 1-6 切换阿里云yum源
- 1-7 使用ssh隧道解决网络问题
- 1-8 使用Axure+svn+httpd搭建自己的在线画图工具
- linux svn环境搭建
- 1-9 编译环境安装
- 🚀第二章 快速部署篇
- 2-1 一个命令快速安装mysql
- mysql windows版本安装
- mysql源码版的一键部署
- mysql配置
- 自动化失败
- mysql异常处理
- Oracle表结构转mysql表结构
- 修改字段注释没那么简单!
- 2-2 基于linux脚本的基础环境发布
- 2-3 docker
- 2-4 nodejs部署
- 2-5 基于Alibaba Cloud Toolkit的Springboot发布脚本
- 2-6 elasticsearch部署
- es6.x部署
- es7.x部署
- ik分词器部署
- 内存调优
- 回收空间
- 2-7 Oracle生产安装
- 💥第三章 系统APM
- 3-1 Zabbix安装
- 修改默认端口
- 踩坑记录
- 3-2 Grafana部署
- 3-3 Kibana部署
- 🔨第四章 中间件部署
- 4-1 nginx
- nginx安装部署
- nginx动静分离配置,这个雷你踩过吗?
- 图解nginx304缓存策略
- nginx日志切割
- 4-2 activemq升级
- 4-3 redis安装
- 4-4 Canal部署
- 报错解决
- Canal+Rabbitmq实现同步
- canal数据同步到es
- 4-5 SpringCloud Alibaba
- nacos
- 新建项目
- seata
- 4-6 rabbitmq安装
- 第五章 高可用架构
- 5-1 mysql主从复制
- 主从复制配置
- 5-2 mysql数据自动备份
- 🌊第六章 数据ETL
- 6-1 dataX
- 第七章 持续集成
- 7-1 基于Docker+Jekins+Git实现企业持续集成、部署
- 7-2 安装jekins
- 安装maven
- 7-3 jvm-sandbox自动化测试
- jvm-sandbox-repeater Windows开发环境安装
- 第八章 JVM调优
- jps:查询正在运行的虚拟机进程
- jstat:查看JVM统计信息
- jinfo:实时查看和修改JVM配置参数
- 第七章 域名申请与管理
- SSL证书申请
- 第九章 业务插件部署
- 6-1 ffmpeg
- 第十章 云服务器
- 腾讯云
- 阿里云
- 其他
- 其他作品
- 简历内推
- 联系我内推