CentOS7安裝Oracle11G完整版圖文教程


系統環境:CentOS Linux release 7.4.1708 (Core)
Oracle版本:Oracle Database 11g R2

注意事項:安裝的過程可能遇到假死現象,直接回車即可

如果遇到中文亂碼:

新建一個目錄,上傳字體包zysong.ttf到新建的目錄,命令如下:

#mkdir –p /usr/share/fonts/zh_CN/TrueType

#cd /usr/share/fonts/zh_CN/TrueType

#chmod –R  75 zysong.ttf

配置系統變量為zh_CN.UTF-8,如下圖所示:

一:准備工作

1、關閉selinux

查看selinux狀態:getenforce 或者sestatus -v
臨時關閉:setenforce 0
永久關閉:vim /etc/selinux/config 設置SELINUX=disabled

2、關閉firewalld 安裝iptables

systemctl stop firewalld.service
systemctl disable firewalld.service

yum -y install iptables-services
systemctl restart iptables.service
systemctl enable iptables.service

二:創建用戶及安裝目錄,安裝依賴包

1、創建用戶

[root@oracledb ~] groupadd oinstall
[root@oracledb ~] groupadd dba
[root@oracledb ~] useradd -g oinstall -G dba -m oracle
[root@oracledb ~] passwd oracle

2、創建安裝目錄,解壓文件

[root@oracledb ~] mkdir -p /ora/oracle
[root@oracledb ~] unzip -d /ora/ linux.x64_11gR2_database_1of2.zip
[root@oracledb ~] unzip -d /ora/ linux.x64_11gR2_database_2of2.zip
[root@oracledb ~] chown -R oracle:oinstall /ora
[root@oracledb ~] chmod 755 -R /ora

上面是准備安裝到根下ora目錄,網上很多說要給777權限,但是個人總感覺777權限過高,測試發現755就足夠。

3、各個目錄的作用

[root@oracledb ora] ll
total 16
drwxr-xr-x 8 oracle oinstall 4096 Aug 21 2009 database #解壓安裝程序后自動生成的安裝包目錄
drwxr-xr-x 9 oracle oinstall 4096 Apr 26 16:43 oracle #oracle數據庫安裝目錄
drwxrwx--- 5 oracle oinstall 4096 Apr 26 16:29 oraInventory #默認安裝日志存放目錄(安裝后生成)

3、安裝oracle所需依賴和桌面組件,桌面組件有700多MB

[root@oracledb ~] yum -y install binutils compat compat-libstdc gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst make sysstat unixODBC unixODBC-devel
[root@oracledb ~] yum -y groupinstall "GNOME Desktop" "Graphical Administration Tools"

三:修改系統內核等設置

1、將服務器名寫入到hosts文件,可以測試ping sername 是否返回127.0.0.1

[root@oracledb ~] echo '127.0.0.1 oracledb localhost localhost.localdomain' >> /etc/hosts
[root@oracledb ~] ping -c 3 oracledb
PING oracledb (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.030 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.043 ms
64 bytes from localhost (127.0.0.1): icmp_seq=3 ttl=64 time=0.041 ms
--- oracledb ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1999ms
rtt min/avg/max/mdev = 0.030/0.038/0.043/0.005 ms

2、修改內核(/etc/sysctl.conf),增加或修改以下內容

內核參數需要注意,shmall 和shmmax 的值由服務器內存決定。(不過這個參數設置博主我現在也是一知半解,沒完全搞明白,查了半天意思如下:)
kernel.shmall :
該參數控制可以使用的共享內存的總頁數。Linux共享內存頁大小為4KB,共享內存段的大小都是共享內存頁大小的整數倍。一個共享內存段的最大大小是16G,那么需要共享內存頁數是16GB/4KB=16777216KB/4KB=4194304(頁),也就是64Bit系統下16GB物理內存,設置kernel.shmall = 4194304 符合要求。
kernel.shmmax:
是核心參數中最重要的參數之一,用於定義單個共享內存段的最大值。64位linux系統:可取的最大值為物理內存值-1byte,建議值為多於物理內存的一半,例如,如果為16GB物理內存,可取16*1024*1024*1024-1=17179869183。
kernel.shmmni:
該參數是共享內存段的最大數量。shmmni缺省值4096,一般肯定是夠用了。
kernel.sem = 250 32000 100 128 的意思是:
250是參數semmsl的值,表示一個信號量集合中能夠包含的信號量最大數目。
32000是參數semmns的值,表示系統內可允許的信號量最大數目。
100是參數semopm的值,表示單個semopm()調用在一個信號量集合上可以執行的操作數量。
128是參數semmni的值,表示系統信號量集合總數。

3、以下適用於8G內存左右服務器配置,12G或者16G以上建議調整

[root@oracledb ~] vim /etc/sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 4294967295
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576

4、完成后使用命令

[root@oracledb ~] sysctl -p

5、修改認證模塊

[root@oracledb ~] vim /etc/security/limits.conf
oracle soft nproc 131072
oracle hard nproc 131072
oracle soft nofile 131072
oracle hard nofile 131072
oracle soft core unlimited
oracle hard core unlimited
oracle soft memlock 50000000
oracle hard memlock 50000000

6、修改用戶登錄認證

[root@oracledb ~] vim /etc/pam.d/login
session required /lib64/security/pam_limits.so
session required pam_limits.so

注意了,很多博文都是照搬抄襲,都是寫的/lib/security/pam_limits.so 一般咱都是64位系統,64位系統需要設置為/lib64/security/pam_limits.so 否則重啟服務器后就會出現命令行無法登錄,但是通過桌面方式能登錄的情況。

 

 

7、設置環境變量(ORACLE_HOME 設置為安裝目錄product下默認目錄)

[root@oracledb ~] vim /etc/profile
#oracle
export ORACLE_HOME=/ora/oracle/product/11.2.0/db_1
export ORACLE_SID=orcl
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi

8、修改Oracle用戶環境變量

[root@oracledb ~] vim /home/oracle/.bash_profile
export ORACLE_BASE=/ora/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID=orcl
export ORACLE_TERM=xterm
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

四:通過桌面方式安裝Oracle

 

 

1、使用oracle用戶登錄桌面,打開終端運行安裝程序

[root@oracledb ~] cd /ora/database
[root@oracledb ~] ./runInstaller

注意:oracle中文語言會出現亂碼,所以系統最好設置為en 英文,如果系統安裝的時候選擇了中文,那么oracle用戶登錄的時候也要修改用戶語言為英文才能正常安裝。

 

2、安裝過程是都有相應提示的,並且鼠標直接點就完了

1):訂閱郵件這些就直接跳過不填了。

CentOS7安裝Oracle11G完整版圖文教程一(基礎安裝)

2):這里選擇忽略更新(11.2.0.1.0 好像沒這個選項,而是讓選擇桌面版還是服務器版,如果有當然選擇服務器版咯)。

CentOS7安裝Oracle11G完整版圖文教程一(基礎安裝)

3):這里選擇僅安裝數據庫,稍后再配置初始化數據。

CentOS7安裝Oracle11G完整版圖文教程一(基礎安裝)

4):選擇單實例安裝。

CentOS7安裝Oracle11G完整版圖文教程一(基礎安裝)

5):語言,linux服務器上就別想什么中文這些了,就默認英文完事。

CentOS7安裝Oracle11G完整版圖文教程一(基礎安裝)

6):默認

CentOS7安裝Oracle11G完整版圖文教程一(基礎安裝)

7):這里就出現最開始創建的相應目錄信息了,會自動讀取。

CentOS7安裝Oracle11G完整版圖文教程一(基礎安裝)

8):下一步

CentOS7安裝Oracle11G完整版圖文教程一(基礎安裝)

9):選擇group 組為之前創建好的oinstall

CentOS7安裝Oracle11G完整版圖文教程一(基礎安裝)

10):安裝的過程中可能會出現如下的一些警告信息,如提示semmni為0 的問題,該問題一直沒有找到原因,我們在上面修改內核的過程中就已經調整了kernel.sem = 250 32000 100 128 但是檢測無法通過(暫時無解)、其他的一些依賴組件提示,其實我們已經安裝好了,只是centos7上yum安裝的依賴包要比oracle 11g 所需的包更新,版本更高,所以可以直接忽略這些提示(勾選 ignore all)。

CentOS7安裝Oracle11G完整版圖文教程一(基礎安裝)

3、安裝到最后的時候會出現一個提示:需要用root權限執行2個shell腳本,那么我們在之前的root用戶終端下運行提示中的對應腳本文件即可。
  這里或者更早前的步驟就可能會出現一個很神奇(zhizhang)的問題,對話框可能無法正常彈出,測試在VM虛擬機或者雲服務器,如阿里雲等都這樣,但是用鼠標可以拖開。是的,你沒有看錯,直接拖出對話框。這個問題不知道原因,有知道的朋友請留言告知,萬分感謝。

CentOS7安裝Oracle11G完整版圖文教程一(基礎安裝)

還有可能出現一個壓根兒就不能拖得對話框(阿里雲上反復測試,就是會出現)最后沒轍了,本地跑虛擬機一步步的模擬安裝,發現是一個警告提示,一般按4次tab鍵即可切換到下一步選項回車即可。

CentOS7安裝Oracle11G完整版圖文教程一(基礎安裝)

4、安裝完成后還需要創建數據庫,還是同樣在Oracle用戶桌面環境下,重新打開一個終端,輸入 dbca 命令即可彈出相應的數據庫創建向導。

CentOS7安裝Oracle11G完整版圖文教程一(基礎安裝)

如果提示沒有這個命令,那么請詳細檢查一下上述的依賴包是否正確安裝,另外創建過程中如果出現提示oracle not available 檢查是否已添加主機名到hosts文件中。

[Oracle@localhost ~]$ netca //配置監聽
[Oracle@localhost ~]$ lsnrctl status //查看監聽狀態
[Oracle@localhost ~]$ dbca //創建數據庫實例orcl

 

數據庫啟動錯誤:無法啟動ORA-01034: ORACLE not available

數據庫未啟動,查詢v$instance報錯:

1 SQL> select status from v$instance;
2 select status from v$instance
3 *
4 ERROR at line 1:
5 ORA-01034: ORACLE not available
6 Process ID: 0
7 Session ID: 0 Serial number: 0

v$instance視圖都不能查詢(該視圖在nomount狀態即可查詢),意味着數據庫沒啟動

2、啟動數據庫報錯

1 SQL> startup nomount;
2 ORA-01078: failure in processing system parameters
3 LRM-00109: could not open parameter file '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/initdg_standby.ora'

報錯找不到參數文件initdg_standby.ora,意味着找不到spfile,在參數文件目錄查看:

 1 [oracle@zml-rhel6 ~]$ cd /u01/app/oracle/product/11.2.0/dbhome_1/dbs/
 2 [oracle@zml-rhel6 dbs]$ ll
 3 total 32
 4 -rw-rw---- 1 oracle oinstall 1544 Dec 22 15:53 hc_DBUA0.dat
 5 -rw-rw---- 1 oracle oinstall 1544 Dec 22 15:55 hc_dg01.dat
 6 -rw-rw---- 1 oracle oinstall 1544 Dec 22 16:10 hc_test.dat
 7 -rw-r--r-- 1 oracle oinstall 2851 May 15  2009 init.ora
 8 -rw-r----- 1 oracle oinstall   24 Dec 22 15:54 lkDG_01
 9 -rw-r----- 1 oracle oinstall 1536 Dec 22 15:55 orapwdg01
10 -rw-r----- 1 oracle oinstall 2560 Feb  4 10:05 spfiledg01.ora
11 -rw-r----- 1 oracle oinstall 3584 Dec 22 16:10 spfiletest.ora
12 [oracle@zml-rhel6 dbs]$

可以看到該目錄下有兩個參數文件,sid分別為dg01,test,應該是環境變量ORACLE_SID設置的有問題

3、查看環境變量ORACLE_SID

   1 [oracle@zml-rhel6 ~]$ cat .bash_profile

 2 # .bash_profile
 3 
 4 # Get the aliases and functions
 5 if [ -f ~/.bashrc ]; then
 6     . ~/.bashrc
 7 fi
 8 
 9 # User specific environment and startup programs
10 unset DISPLAY
11 PATH=$PATH:$HOME/bin
12 
13 export PATH
14 umask 022
15 
16 export TMP=/u01/app/tmp
17 export TMPDIR=/u01/app/tmp
18 export ORACLE_BASE=/u01/app/oracle
19 export ORACLE_SID=dg_standby
20 export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
21 export PATH=$ORACLE_HOME/bin:$PATH
22 export LD_LIBRARY_PATH=$ORACLE_HOME/lib

環境變量中的ORACLE_SID為dg_standby,應該是靜默安裝時部分參數含義未弄清楚導致設置錯誤

解決


 

1、修改ORACLE_SID環境變量為dg01

export ORACLE_SID=dg01 
source .bash_profile

 

 2、啟動數據庫

 1 SQL> startup open
 2 ORACLE instance started.
 3 
 4 Total System Global Area 1603411968 bytes
 5 Fixed Size            2213776 bytes
 6 Variable Size          989857904 bytes
 7 Database Buffers      603979776 bytes
 8 Redo Buffers            7360512 bytes
 9 Database mounted.
10 Database opened.



參考

CentOS7安裝Oracle11g一次性通過詳細圖文教程及安裝過程中可能遇到的坑




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM