> 本小節教搭建在,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
```

## 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>

```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`

`結束`
- `出現[WARNING]可以無視,出現Successfully Setup Software說明安裝成功`

`結束`
**執行相應的文件**
根據剛才的成功的頁面有提示我們去執行相應的腳本
```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**

**通過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
- 第十章 云服務器
- 騰訊云
- 阿里云
- 其他
- 其他作品
- 簡歷內推
- 聯系我內推