1. 程式人生 > >Linux安裝oracle12c的詳解

Linux安裝oracle12c的詳解

一 Linux下Oracle 12c資料庫的安裝  
1.1.1 作業系統軟硬體檢查  
1. 記憶體要求  
1) 最小值為1 GB 記憶體,建議值為2 GB of RAM 或者更多 

2) 查詢命令:# grep MemTotal /proc/meminfo 


計算出來有1.7968G記憶體,滿足Oracle 12c的記憶體安裝要求。 
2. 系統核心版本 
1) 查詢系統位數命令:# uname -m; 
2) 查詢系統版本命令:# cat /proc/version或# cat /etc/redhat-release或# lsb_release -id; 


3) 查詢系統核心版本:# uname -r。 


經查詢可知,本機系統版本和核心版本都在Oracle 12c支援的範圍內。 
3. 磁碟空間要求 
用來安裝的Oracle 12c對應版本的目錄硬碟保留量至少滿足上面的要求,一般情況下,這個都不是問題,如果有疑問,可以用df -h命令查詢一下目錄所在的硬碟空間使用情況。 

這裡寫圖片描述


4. /tmp空間至少1GB 
1) 查詢命令:# df -h /tmp,Oracle安裝目錄中的/oradata目錄用來存放資料檔案,/tmp目錄是根檔案系統的一部分,而圖中查詢結果顯示根目錄還剩餘48G,滿足條件。 


這裡寫圖片描述 
2) 通過命令:# df -h檢視各個磁碟的使用情況。 

這裡寫圖片描述 


1.1.2 安裝前系統配置 
1. RPM要求 
安裝前可先檢視需要的RPM包已安裝,查詢命令:# rpm -q package_name,另外,對於本系統版本Oracle 12c,要使用用於連線資料庫的Oracle ODBC Drivers,需要安裝unixODBC-2.3.1 or later,下載地址http://www.unixodbc.org。 
1) 檢查Oracle需要的rpm安裝情況 
rpm -q 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 


這裡寫圖片描述

2) 安裝缺失的rpm 

yum -y install binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33*.i686 elfutilslibelf-devel gcc gcc-c++ glibc*.i686 glibc glibc-devel glibc-devel*.i686 ksh libgcc*.i686 libgcc libstdc++ libstdc++*.i686 libstdc++-devel libstdc++-devel*.i686 libaio libaio*.i686 libaio-devel libaio-devel*.i686 make sysstat unixODBC unixODBC*.i686 unixODBC-devel unixODBCdevel*.i686 libXp


3)再次檢查rpm的安裝情況 

這裡寫圖片描述

4)建立wap分割槽

    

關於swap交換分割槽的設定:

    以前裝Linux伺服器系統的時候,系統有1G記憶體,swap交換分割槽分了2G,現在系統記憶體加到了8G,同事建議增加交換分割槽。我就增加16G swap分割槽介紹一下(新增一個交換檔案方式):

    1. 檢視swap 空間大小(總計):我的已經加完了,引用另外一臺機子的檢視內容。 
    free -m
             total       used       free     shared    buffers     cached
Mem:          7985        756       7228          0         98        263
-/+ buffers/cache:        394       7590
Swap:         8189          0       8189

    2.增加16G的交換空間

    dd if=/dev/zero of=/usr/swap bs=1024 count=4096000   #/usr/swap 檔案在的位置

    如果是增加2G,則count=2048000

    3.設定交換分割槽

    mkswap /usr/swap

    4.啟動交換分割槽

    swapon /usr/swap

    #此時Top命令看到交換分割槽增加了,此時重啟後發現 swap空間又變回2G了,怎麼辦呢?又查了下內容

   發現還有一步。

    5.修改/etc/fstab檔案,使得新加的16G交換空間在系統重新啟動後自動生效在檔案最後加入:
    vi /etc/fstab 增加下列內容 i進入修改模式

    /usr/swap  swap      swap defaults 0 0


    6.free -m 檢視swap分割槽大小


2. 建立使用者、使用者組以及安裝目錄 
安裝和執行Oracle資料庫軟體都需要使用指定使用者組內的指定使用者,使用者為Oracle,出於安全考慮,使用者組建為oinstall、dba,oinstall組中的成員用於管理Oracle資料庫物理軟體,dba組中的成員用於管理、操作資料庫,具有sysdba許可權。

[root@CentOS /]# groupadd oinstall ----建立oracle使用者組  

[root@CentOS /]# groupadd dba----建立oracle使用者組  

[root@CentOS /]# useradd -g oinstall -G dba oracle----oracle加入新建的2個使用者組  

[root@CentOS /]# passwd oracle   ----設定oracle使用者的密碼  

[root@CentOS /]# mkdir -p /usr/oracle ----建立oracle安裝目錄 

[root@CentOS /]# mkdir -p /opt/oracle/oracinstall  ---建立racle安裝檔案所在目錄

[root@CentOS /]# chown -R oracle:oinstall /usr/oracle ----更改oracle目錄使用者組  

[root@CentOS /]# chmod -R 775 /usr/oracle ----更改oracle目錄許可權  

[root@CentOS /]# chown -R oracle:oinstall /opt/oracle/oracinstall----更改oracle安裝檔案所在目錄的使用者組  

[root@CentOS /]# chmod -R 755 /opt/oracle/oracinstall----更改oracleracle安裝檔案所在目錄的操作許可權  

這裡寫圖片描述

3. 配置系統核心引數

1)共享記憶體核心引數

kernel.shmmax:每個記憶體段的最大值,等於或大於sga_max_size,不小於實體記憶體1/2或2G 
kernel.shmall:指定任意時刻,系統可以分配的所有共享記憶體段總和的最大值,不小於shmmax/page_size,如果伺服器執行的SGA<8G,可用預設值 
kernel.shmmni:系統可分配的共享記憶體段的最大數量,預設是4096

2)訊號量 
一種控制資源訪問的方法,Oracle例項主要使用訊號量來控制共享記憶體的訪問 
使用processes初始化引數分配訊號量,其值至少等於processes 
訊號量核心引數 
kernel.sem:如:kernel.sem = 250 32000 100 128,其中等號右邊4部分分別為semmsl、semmns、semopm、semmni值。 
semmsl指每個訊號量集合中的最大訊號量個數,其值或取其最小值100,或者為所有資料庫中最大的processes+10,選擇其中較大值者 
semmns值是指整個系統範圍內訊號量總數的最大值,預設是32000 
semopm用於指定每個semop()系統呼叫可以設定的訊號量操作的最大數量,預設為100 
semmni用於指定訊號量集合的最大數量,最小為100,Oracle建議取值128.

net.core.rmem_default、net.core.rmem_max、net.core.wmem_default、net.core.wmem_max,4個引數用於設定socket資料傳送緩衝區及接收緩衝區的預設大小與最大大小。

表示應用程式可使用的IPv4埠範圍。

net.core.rmem_default:

表示套接字接收緩衝區大小的預設值。

net.core.rmem_max:

表示套接字接收緩衝區大小的最大值。

net.core.wmem_default:

表示套接字傳送緩衝區大小的預設值。

net.core.wmem_max:

表示套接字傳送緩衝區大小的最大值。

對應Oracle 12c的系統核心引數要求參考如下: 
這裡寫圖片描述
3) 編輯系統的核心引數:[[email protected] /]# vi /etc/sysctl.conf,在檔案的末尾加入核心要求內容,編輯完成通過“ESC”和“:wq”儲存並退出編輯視窗

編輯核心
kernel.shmall = 2097152

kernel.shmmax = 2147483648

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

net.ipv4.ip_local_port_range = 9000 65500

net.core.rmem_default = 4194304

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max = 1048586

fs.file-max = 6815744

這裡寫圖片描述
4) 生效新配置的系統核心引數

sysctl -p

這裡寫圖片描述 
4. 配置Oracle使用者shell limit 
1)為了提高在linux系統上執行軟體的效能,必須對oracle使用者設定下列限定。 
這裡寫圖片描述 
修改 
vi /etc/security/limits.conf 
這裡寫圖片描述

noproc - 程序的最大數目
stack - 最大棧大小
nofile - 開啟檔案的最大數目
soft 指的是當前系統生效的設定值
hard 表明系統中所能設定的最大值
soft 的限制不能比har 限制高。用 - 就表明同時設定了 soft 和 hard 的值。
oracle:被限制的使用者名稱,組名前面加@和使用者名稱區別


oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 10240

5. 編輯登入配置檔案 
vi /etc/pam.d/login 
進行登入配置檔案的編輯,在文字最後新增:session required pam_limits.so或者session required /lib/security/pam_limits.so使shell limit生效。 
這裡寫圖片描述

6. Oracle使用者環境變數配置 
要成功安裝並使用Oracle資料庫軟體,必須在Oracle使用者的.bash_profile檔案中設定ORACLE_BASE、ORACLE_HOME、ORACLE_SID和PATH環境變數,其他的根據需要來設定。ORACLE_HOME可以在安裝前手動配置,另外,Oracle安裝過程中會根據ORACLE_BASE的值自動指定的ORACLE_HOME,所以也可以在安裝後將這個ORACLE_HOME寫入.bash_profile。

[[email protected] etc]# su - oracle 
[[email protected] ~]$ vi .bash_profile 
新增如下內容,並儲存退出

# use for oracle  

export  ORACLE_BASE=/usr/oracle  

export  ORACLE_HOME=$ORACLE_BASE/product  

export  ORACLE_SID=orcl  

export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin  

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib  
#防止Oracle安裝介面亂碼,先把語言環境改為英文
export LANG=en_US  

if [ $USER = "oracle" ];then   

 if [ $SHELL = "/bin/ksh" ];then   

     ulimit -p 16384   

     ulimit -n 65536   

   else   

    ulimit -u 16384 -n 65536   

fi   

 fi

這裡寫圖片描述
7 生效配置檔案 
[[email protected] ~]$ source .bash_profile 
8. 配置修改/etc/hosts檔案(切回用戶)root 
安裝RHEL的時候最好採用靜態IP地址, 
vi /etc/hosts 
新增IP地址和域名的對映關係,進入hosts檔案,在檔案末尾加上本機實際IP和主機使用者名稱

196.160.1.211 Centos dbserver
  • 1

9 xhost + 

這個問題比較噁心:

這裡寫圖片描述 
xhost: unable to open display “” 
解決 
yum install tigervnc-server 
vncserver 

export DISPLAY=localhost:1 

這裡寫圖片描述

xhost +

來進行操作。比如:

//切換到oracle使用者下
su - oracle

//檢視當前DISPLAY環境變數的值
echo $DISPLAY

//允許檢視介面投影到設定的ip下
export DISPLAY=192.168.112.31:0.0

//再次檢視DISPLAY環境變數的值
echo $DISPLAY

//啟動命令
xhost +
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

1 出現問題

使用Xmanager的Xshell連線linux,進行上述操作時會出現如下問題:

xhost: unable to open display “192.168.112.31:0.0”

如圖所示:

這裡寫圖片描述

2 解決辦法

Xmanager下出現這個問題,首先要保證linux伺服器上安裝了xterm,如果還未安裝xterm,可以執行yum來安裝:

yum install xterm
  • 1

其次解決辦法就是,先使用Xstart連線linux伺服器,如圖所示:

這裡寫圖片描述

注意在command命令列裡輸入:

/usr/bin/xterm -ls -display $DISPLAY
  • 1

如圖所示:

這裡寫圖片描述

連線成功後直接在Xstart命令列下,或者再次使用Xshell命令列嘗試命令:

xhost +

就會出現成功的響應:

access control disabled, clients can connect from any host

如圖所示:

這裡寫圖片描述

後面就可以正常使用遠端圖形介面的操作了。


10 安裝Oracle 12c資料庫 

1)使用xftp將oracle12c檔案放到linux中 
這裡寫圖片描述
2)解壓縮 
[[email protected] oracinstall]# unzip linuxx64_12201_database.zip 
-bash: unzip: 未找到命令 
[[email protected] oracinstall]#

解決方法 
[[email protected] oracinstall]# yum install -y unzip zip

重新解壓,成功 
3)安裝 
[[email protected] database]# ./runInstaller 
4)後面就視覺化安裝了。


11.

如果你彈出了以下介面,那麼恭喜你離成功只有一半的距離了。

1、第一步用來配置更新以及技術支援的,把勾去掉直接下一步就行


2、 配置安裝選項,這三個選項分別表示:①建立並配置一個新資料庫,適用於新安裝資料庫的使用者;②只安裝資料庫軟體,適用於已有Oracle資料庫資料用於資料遷移的;③升級已有資料庫,適用於將老資料庫升級成新資料庫的使用者。毫無疑問這裡選擇第一個選項。


3、第三步配置桌面版還是伺服器版,在linux伺服器選第二個。


4、第四步分散式網格配置,這裡選擇單例項伺服器配置,如果要配置分散式服務的話可以參考前面說的安裝文件,裡面有詳細的分散式服務安裝過程


5.

6.我的linux伺服器選不中第二個,就只能選第一個了


7,


8.執行這部會有問題,在這一步時,無法繼續,因為oracle賬戶無法建立oraInventory目錄,所以必須先建立該使用者並授權,執行如下操作即可

[[email protected] ~]# mkdir -p /usr/oraInventory

[[email protected] ~]# chown -R oracle:oinstall /usr/oraInventory

[[email protected] ~]# chmod -R 775 /usr/oraInventory



8.


9


10.


這裡注意編碼問題,要和自己伺服器編碼一致,要不然資料庫中文會亂碼,可以參考我的一個部落格看下







驗證引數時,aio-max-nr設定為1048576,配置檔案沒有的話要加上,編輯系統的核心引數:[[email protected] /]# vi /etc/sysctl.conf,執行sysctl -p使之生效。然後重新驗證通過



執行過程會提示讓你用root賬戶執行2個指令碼,你將指令碼的檔案拿下來,在root賬戶下執行即可。



到此就安裝完成 了