下圖為oracle數據庫安裝導圖:
安裝步驟:
1、下載oracle 11g 安裝包
因為我centos7為64位操作系統,所以這里下載的也是64位版本的oracle。
下載地:http://www.oracle.com/technetwork/indexes/downloads/index.html#database
下載后:
2、安裝前的准備
2.1、創建組與用戶
[root@localhost zhuzi]# groupadd oinstall #創建oinstall組
[root@localhost zhuzi]# groupadd dba #創建dba組
[root@localhost zhuzi]# useradd -g oinstall -g dba -m oracle #創建oracle用戶並將用戶加入到dba組與oinstall組
[root@localhost zhuzi]# passwd oracle #設置oracle用戶密碼

2.2、創建oracle安裝目錄
[root@localhost zhuzi]# mkdir -p /data/oracle #oracle根目錄
[root@localhost zhuzi]# mkdir -p /data/database #用於存放Oracle解壓后的安裝包
[root@localhost zhuzi]# mkdir -p /data/oraInventory #數據庫配置文件目錄
[root@localhost zhuzi]# chown -R oracle:oinstall /data #修改目錄所有者為oracle
2.3、關閉防火牆
1)、首先關閉selinux,修改/etc/selinux/config文件,將SELINUX=disabled。修改好后如下圖所示,這個如果修改好后,需要重啟才能生效:
2)、關閉防火牆,並設置開機不啟動防火牆。設置好后不需要重啟,會立即生效。
[root@localhost zhuzi]# systemctl stop firewalld.service #關閉防火牆
[root@localhost zhuzi]# systemctl disable firewalld.service #設置開機不啟動防火牆
2.4、優化系統內核參數
1)、編輯/etc/sysctl.conf文件,在文件尾添加如下內容:
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.conf.all.rp_filter = 1
fs.file-max = 6815744 #設置最大打開文件數
fs.aio-max-nr = 1048576
kernel.shmall = 2097152 #共享內存的總量,8G內存設置:2097152*4k/1024/1024
kernel.shmmax = 2147483648 #最大共享內存的段大小
kernel.shmmni = 4096 #整個系統共享內存端的最大數
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= 1048576
2)、使配置修改內核的參數生效:
[root@localhost zhuzi]# sysctl -p
2.5、對oracle用戶設置限制
[root@localhost zhuzi]# vi /etc/security/limits.conf
在文件后半部分,添加如下內容中斜體部分內容,保存退出。
@student - maxlogins 4
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
End of file
2.6、設置用戶變量
[root@localhost ~]# vi /home/oracle/.bash_profile
在文件末尾添加如下內容:
export ORACLE_BASE=/data/oracle #oracle數據庫安裝目錄
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1 #oracle數據庫路徑
export ORACLE_SID=orcl #oracle啟動數據庫實例名
export ORACLE_UNQNAME=orcl
export ORACLE_TERM=xterm #xterm窗口模式安裝
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH #添加系統環境變量
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib #添加系統環境變量
export LANG=C #防止安裝過程出現亂碼
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK #設置Oracle客戶端字符集,必須與Oracle安裝時設置的字符集保持一致

使配置的環境變量生效:
[root@localhost ~]# source /home/oracle/.bash_profile
2.6、配置yum源
1). 備份
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
2).下載新的 CentOS-Base.repo 到 /etc/yum.repos.d/,這里使用阿里的yum源。
CentOS 7命令為:
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
3)、yum clean all #清空yum緩存
4)、yum makecache #重建緩存
5)、yum repolist #查看配置目錄資源數
2.7、安裝依賴包
[root@localhost ~]# yum -y install binutils* compat-libcap1* compat-libstdc++* gcc* gcc-c++* glibc* glibc-devel* ksh* libaio* libaio-devel* libgcc* libstdc++* libstdc++-devel* libXi* libXtst* make* sysstat* elfutils* unixODBC*
centos7需要的安裝包,可以在Oracle上查看:https://docs.oracle.com/cd/E11882_01/install.112/e47689/pre_install.htm#LADBI1085
我的版本當然對應的是這個版本:Oracle Linux 7 and Red Hat Enterprise Linux 7
它沒有要求說要安裝elfutils和unixODBC包,但是等安裝Oracle檢查安裝前准備時,會提示說缺少這兩個包,所以一並安裝
3、開始安裝Oracle
前面設置很多內容,保險起見,重啟一次系統。
[root@localhost ~]# reboot
將步驟1中下載的兩個oracle安裝文件,上傳至/usr/local/src目錄中。我使用的xshell工具,root用戶直接在命令窗口cd /usr/local/src ,然后鼠標拖住那兩個安裝包至命令窗口就可以自動上傳。
用root用戶解壓這兩個文件到/data/database 目錄下,設置所屬用戶與組,再切換至oracle用戶加載一下環境變量,開始安裝。
[root@localhost src]# unzip linux.x64_11gR2_database_1of2.zip -d /data/database/ #解壓第一個壓縮包
[root@localhost src]# unzip linux.x64_11gR2_database_2of2.zip -d /data/database/ #解壓第二個壓縮包
[root@localhost src]# chown -R oracle:oinstall /data #指定文件夾及子目錄的所屬用戶與組
[root@localhost src]# su oracle #切換至oracle用戶
[oracle@localhost src]$ cd #進入家目錄
[oracle@localhost ~]$ source .bash_profile #加載環境變量
[oracle@localhost ~]$ cd /data/database/database/ #進入oracle安裝程序存放的目錄
[oracle@localhost database]$ ./runInstaller #執行oracle安裝命令,然后彈出下圖安裝窗口。
下面為貼圖部分,修改后與下面圖保持一致即可。
1)、將勾去掉,這樣就不自動更新軟件了。
2)、提示你沒有提供電子郵件,這里選擇yes,繼續就行。
3)、這里選擇第二項,僅安裝數據庫軟件。
4)、這里選擇第一個選項,單實例數據庫。第二個為安裝集群的意思。
5)、選擇語言,默認下一步。
6)、第一個為企業版,默認直接下一步。
7)、前面咱們准備階段,已經在環境變量里配置好了路徑,這里就是讀取咱們前面配置的路徑,所以直接下一步。不用修改。
8)、指定配置文件存放路徑,這個也不需要修改,也是讀取了咱們前面配置到環境變量里的路徑。所以直接下一步。
9)、關於權限的問題,這里直接都是默認就行。下一步。
10)、這里會檢查系統資源與依賴包是否都滿足,第一個提示swap大小不符合,這里擴展一下swap大小,可以參考https://www.cnblogs.com/find-syc/p/12615991.html,其他問題,選中缺失的依賴包,如果下方詳情欄里Expected value中有括號中標注(i386)或(i686),是在提示缺少32位的依賴包,但是實際上已經安裝了64位的依賴包,忽略它們,pdksh包已經安裝,就是之前安裝的ksh依賴包。
11)、點擊finish完成。
報錯解決:
修改/data/oracle/product/11.2.0/db_1/ctx/lib/ins_ctx.mk,將
ctxhx: $(CTXHXOBJ)
$(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK)
修改為:
ctxhx: $(CTXHXOBJ)
-static $(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK) /usr/lib64/libc.a
點擊Retry繼續安裝。
修改/data/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk,將
$(MK_EMAGENT_NMECTL)修改為:$(MK_EMAGENT_NMECTL) -lnnz11
點擊Retry繼續安裝。
[root@localhost zhuzi]# /data/oraInventory/orainstRoot.sh [root@localhost zhuzi]# /data/oracle/product/11.2.0/db_1/root.sh #這條命令執行后需要再按一次回車鍵才會結束。
點擊右下角close按鈕,完成安裝。
4、配置監聽,在oracle用戶下執行命令。
[oracle@localhost database]$ netca #創建監聽
在不修改端口的情況下,第一個監聽程序,一路回車,就配置好了。
5、創建數據庫
[oracle@localhost database]$ dbca #創建數據庫
選擇第二項,意思是自定義數據庫。
下面為輸入想要創建數據庫的名字,這里我輸入的為orcl,你可以隨意,但是上下內容要一致。
第二項為對所有賬戶使用相同的管理密碼,這里需要填寫一下想設置的密碼。
這里提示我密碼太簡單,我們直接yes忽略他的提示。
指定新建數據庫的存放位置,這里我們選第二項,填寫上之前建立的目錄。
這里取消閃回功能,你也可以打開,看需求。
下面為一些數據庫組件的選擇,這里就全部清空選擇。直接下一步。
一些配置參數,內存,字符集等等,直接默認下一步。
接下來,等待安裝結束,測試一下,有沒有安裝成功。
安裝結束,點擊Exit按鈕。
~~~~~~~~~~~~~~~~~~~~進入測試環節~~~~~~~~~~~~~~~~~~~~~~~~
[oracle@localhost database]$ sqlplus / as sysdba
上圖可以看出,sqlplus已經成功登陸進來了。
SQL> select status from v$instance;
上圖可以看出,數據庫已經是打開狀態的了。輸入exit回車,可以退出sqlplus。
上圖可以看出監聽狀態,至此,oracle數據庫安裝結束。
安裝完成后的兩個小問題
1.Linux下sqlplus不能使用光標箭頭
解決辦法:安裝rlwrap包
1)下載rlwrap壓縮包(我下載的是rlwrap-0.37.tar.gz);
2)yum安裝readline
[root@localhost oracle]#yum -y install readline*
3)解壓,安裝
[root@localhost oracle]#tar -xzvf rlwrap-0.37.tar.gz [root@localhost oracle]#cd rlwrap-0.37.tar.gz [root@localhost oracle]#./configure [root@localhost oracle]#make [root@localhost oracle]#make install
4)切換到oracle用戶下,編輯bash_profile文件
[oracle@localhost ~]vi .bash_profile
在最后添加
alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'
保存退出,執行source .bash_profile使其生效。
或者直接不修改bash_profile文件,直接在輸入sqlplus命令前加上rlwrap即可(我修改了bash_profile文件,重啟系統還是要重新輸入source命令使其生效,我之后直接在sqlplus命令前加rlwrap)。
這樣在sqlplus中就可以使用上下左右鍵來查看歷史紀錄了。
2.vim中文亂碼
設置~下或者oracle用戶下的.vimrc文件,加上fileencodings、enc、fencs,代碼如下:
vim ~/.vimrc #或者vim /home/oracle(用戶名)/.vimrc
#添加如下代碼
set fileencodings=utf-8,gb2312,gb18030,gbk,ucs-bom,cp936,latin1
set enc=utf8
set fencs=utf8,gbk,gb2312,gb18030