Linux安裝Oracle12C全過程
更新時間:2025年10月21日 10:18:41 作者:TKang8912
本文詳細介紹了在Linux系統(tǒng)上安裝Oracle數據庫的步驟,包括環(huán)境準備、依賴安裝、用戶和目錄配置、內核參數與文件限制調整、環(huán)境變量設置、交換空間創(chuàng)建、數據庫安裝與配置、字符集和進程數調整及密碼策略優(yōu)化
一、關閉防火墻
# 查看防火墻狀態(tài) systemctl status firewalld # 關閉防火墻 systemctl stop firewalld # 開啟防火墻 systemctl disable firewalld
二、安裝補丁
先更新環(huán)境依賴庫,看有沒有報錯
yum update
(三選一即可)
1. 在線安裝(需連接外網)
執(zhí)行命令:
yum -y install binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33*.i686 elfutils-libelf-devel gcc gcc-c++ gcc-c++glibc*.i686 glib c glibc-devel glibc-devel*.i686 ksh libgcc*.i686 libgcclibstdc++ libstdc++*.i686 libstdc++-devel libstdc++-devel*.i686 libaiolibaio*.i686 libaio-devel libaio-devel*.i686 make sysstat unixODBC unixODBC*.i686 unixODBC-devel unixODBC-devel*.i686 libXp libXtst
檢查是否安裝成功(31個安裝包)
rpm -q binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst make sysstat unixODBC unixODBC-devel
2. 離線安裝(內網環(huán)境推薦)
網上下載對應操作系統(tǒng)版本的rpm依賴包,執(zhí)行下述命令
rpm -ivh *.rpm --nodeps --force
3. 掛載鏡像后執(zhí)行1命令
- 修改yum鏡像
cd /etc/yum.repos.d/ vim iso.repo
#### [base] name=iso #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra baseurl=file:///mnt gpgcheck=0 #gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 enable=1 #######
- 每次重啟都要,執(zhí)行掛載命令:
mount -o loop /home/software/rhel-server-7.7-x86_64-dvd.iso /mnt #iso.repo里的baseurl
- 測試
yum repolist
- 清理
yum makecache yum clean all
二、建立用戶和組:
groupadd oinstall groupadd dba groupadd oper useradd -g oinstall -G dba,oper oracle #oracle用戶的密碼設置,后面會用到 echo "您的密碼" | passwd --stdin oracle
三、創(chuàng)建安裝目錄
mkdir -p /app/oracle/product/12c/dbhome chown -R oracle:oinstall /app chmod -R 775 /app
四、修改內核參數
(先看下方參數聲明,根據服務器參數對配置文件的插入語句做適當修改)
vi /etc/sysctl.conf
fs.aio-max-nr = 1048576 fs.file-max = 6815744 #設置最大打開文件數 kernel.shmall = 2097152 # 共享內存總量,以頁為單位。 kernel.shmmax = 4294967295 # 共享內存段的最大尺寸(以字節(jié)為單位) kernel.shmmni = 4096 # 整個系統(tǒng)共享內存段的最大數量 kernel.sem = 250 32000 100 128 net.ipv4.ip_local_port_range = 9000 65500 # 應用程序可使用的IPv4端口范圍 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048586
改好后,使之生效:
sysctl -p
參數說明
kernel.shmall = 6580668 # 可以使用的共享內存的總頁數(Linux共享內存頁大小為4kb) kernel.shmmni=4096 # 設置系統(tǒng)范圍內共享內存段的最大數量(默認4096) kernel.shmmax = 33693024256 # 單個共享內存段的最大值(字節(jié));一個共享內存段應容納下整個SGA(>=sga_max_size) 32位linux系統(tǒng):推薦值 4294967295 64位linux系統(tǒng):推薦值 內存|kernel.shmmax|kernel.shmall 12G | 12884901887 | 3145728 16G | 17179869183 | 4194304 32G | 34359738367 | 8388608 64G | 68719476735 | 16777216 128G | 137438953471 | 33554432 # 計算公式如下 kernel.shmmax = 內存*1024*1024*1024 kernel.shmall = kernel.shmmax/1024/4
五、改文件限制:
vim /etc/security/limits.conf #(沒有前面這個文件,則 vi /etc/security/limits.d/20-nproc.conf )
oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 oracle soft stack 10240 #oracle soft memlock unlimited #oracle hard memlock unlimited
六、修改Oracle用戶的環(huán)境變量
su - oracle vim .bash_profile
export ORACLE_BASE=/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/12c/dbhome export ORACLE_SID=orcl export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
# 加載環(huán)境變量 source .bash_profile
七、創(chuàng)建交換空間
dd if=/dev/zero of=/home/swap bs=1024 count=8000000 mkswap /home/swap swapon /home/swap
八、安裝軟件
1.修改/etc/profile
vim /etc/profile
#添加以下內容
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
#使配置生效
source /etc/profile
2.修改/etc/selinux/config里SELINUX的值
vim /etc/selinux/config SELINUX=disabled
3.安裝數據庫軟件
su - oracle cd /app/database ./runInstaller -silent -responseFile /app/database/db_install.rsp
完成數據庫軟件安裝,切到root用戶,運行以下腳本。
sh /app/oraInventory/orainstRoot.sh sh /app/oracle/product/12c/dbhome/root.sh
4.創(chuàng)建監(jiān)聽
su - oracle cd /app/database/ netca -silent -responsefile /app/database/netca.rsp
5.創(chuàng)建數據庫
su - oracle dbca -silent -createDatabase -responseFile /app/database/dbca.rsp
設置密碼: ***
6.專用模式改為共享模式
--沒有返回值,說明處于專用模式: SQL>select * from v$dispatcher; SQL>show parameter shared_ser --在線修改共享服務器進程的數量 --(若執(zhí)行下方SQL出現亂碼,可執(zhí)行“十二、修改字符集”,修改數據庫字符集) SQL> alter system set shared_servers=5 scope=both; --配置dispatchersDispatchers參數用于配置共享模式架構中dispatcher進程,共享模式只少需要一個dispatcher進程。 SQL> alter system set dispatchers='(PROTOCOL=TCP) (dispatchers=3)' scope=both; -- 啟動數據庫 SQL> startup; -- 關閉數據庫 SQL> shutdown immediate;
九、測試oracle是否安裝成功
#先啟動監(jiān)聽 [oracle@ etlsrv ~]$ lsnrctl start #連接sqlplus [oracle@ etlsrv ~]$ sqlplus /nolog
--連接dba SQL> conn / as sysdba --啟動服務 SQL> startup -- 啟動startup,停止 shutdown / shutdown immediate SQL> alter system register; SQL> select status from v$instance; --查看狀態(tài) SQL> desc dba_tablespaces; --測試:顯示表空間 SQL> quit
# 查看監(jiān)聽狀態(tài) [oracle@ etlsrv ~]$ lsnrctl status
十、修改字符集
#系統(tǒng)字符集 [root@localhost /root]$ vim ~oracle/.bash_profile export NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8" #使設置生效 [root@localhost /root]$source ~oracle/.bash_profile
#linux下查看oracle字符集 # 切換oracle用戶 su - oracle # 進入SQL plus控制臺 sqlplus / as sysdba
SQL>select * from v$nls_parameters; --AL32UTF8
SQL>select * from nls_database_parameters where parameter ='NLS_CHARACTERSET'; --AL32UTF8
SQL>select userenv('language') from dual; --SIMPLIFIED CHINESE_CHINA.AL32UTF8
十一、調整process(進程數)
# 查看ORACLE最大進程數: su - oracle # 先查看現在情況 sqlplus / as sysdba
SQL> select count(*) from v$session; #當前連接數 SQL> Select count(*) from v$session where status='ACTIVE'; #當前并發(fā)連接數 SQL> show parameter processes; #最大連接 SQL> show parameter sessions; # 在Linux系統(tǒng)中, 1個用戶session 對應一個操作系統(tǒng) process ,而 windows體現在線程 # 修改ORACLE最大進程數:sessions=(1.1*processes+5) SQL> alter system set processes = 4000 scope = spfile; #修改連接 SQL> alter system set sessions= 4405 scope = spfile; # 系統(tǒng)已更改。 SQL> show parameter processes; SQL>shutdown immediate; # 數據庫已經關閉。 # 已經卸載數據庫。 # ORACLE 例程已經關閉。 SQL> startup # ORACLE 例程已經啟動。 # 看提示信息,database open后,則表明該數據庫全部啟動完畢,啟動完畢后,再查看一下。 SQL> show parameter processes;
十二、修改密碼過期策略
# 設置密碼永不過期 SQL> alter profile default limit password_life_time unlimited;
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
windows安裝openssh并通過生成SSH密鑰登錄Linux服務器
本文為大家詳細講解了在windows系統(tǒng)下安裝openssh并通過生成SSH密鑰登錄Linux服務器2018-10-10
運維工程師必備:Linux系統(tǒng)監(jiān)控與故障排查的命令大全
文章整理了Linux系統(tǒng)監(jiān)控命令,按功能分類并附使用示例,涵蓋了系統(tǒng)概覽、CPU、內存、磁盤、網絡、進程與服務、高級監(jiān)控工具等多個方面,需要的朋友可以參考下2025-12-12
Linux使用zip壓縮命令壓縮文件實現方式(排除不需要的文件)
Linux中使用zip命令壓縮文件的方法,包括-r參數指定壓縮包名,-x參數排除特定文件,-j只保存文件內容不保存目錄結構等選項2026-04-04
Ubuntu20的tzselect設置時間失效的問題,樹莓派服務器(推薦)
這篇文章主要介紹了Ubuntu20的tzselect設置時間失效的問題,樹莓派服務器,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-05-05

