天天看點

linux下安裝oracle11g詳解

    周二小夥伴問笨小蔥有沒有在linux下安裝過oracle11g,我回想了一下我短暫又折騰的工作經曆後,天真的搖了搖頭。于是回去後果斷研究了一下如何安裝(當然是不停地百度教程0.0),可能是百度過于強大了,網上的教程多的一塌糊塗。無奈之下,笨小蔥找了一個篇看上去比較像樣的教程,打算走一步看一步。

    因為在學hadoop,是以已經在vm虛拟機裡裝好了linux32位系統。下面就開始了資料庫安裝前的準備。(這裡主要内容是轉載的教程:http://www.jb51.net/article/53769.htm)

,為了以後能有所參考,是以笨小蔥這裡無恥的複制了一下。(當然,我會在裡面完善我實際的安裝過程和遇到的問題)

(配置前需要說明一下的是關于系統的基礎配置。笨小蔥一開始是配置設定的1g記憶體,硬碟空間也不夠大。是以第一次安裝到50%時報錯:存儲空間已滿. 擴充後,發現安裝資料庫執行個體時竟然花了3個多小時,等得我花兒都謝了。是以這裡建議大家配置設定2g記憶體,然後挂載的時候/home空間大一點,至少5G。使用: df -ah 檢視挂載資訊)  

一、修改作業系統核心參數

(如果運作shell指令時碰到權限問題,可以使用:chmod 744 xxx(目标檔案)  來更改權限,具體可以檢視一下chmod指令)

在Root使用者下執行以下步驟:

1)修改使用者的SHELL的限制,修改/etc/security/limits.conf檔案

輸入指令:vi /etc/security/limits.conf,按i鍵進入編輯模式,将下列内容加入該檔案。

<span style="font-size:18px;"><span style="background-color: rgb(153, 255, 255);">oracle soft nproc 2047
 
oracle hard nproc 16384
 
oracle soft nofile 1024
 
oracle hard nofile 65536</span></span>
           

編輯完成後按Esc鍵,輸入“:wq”存盤退出

2)修改/etc/pam.d/login 檔案,輸入指令:vi /etc/pam.d/login,按i鍵進入編輯模式,将下列内容加入該檔案。

編輯完成後按Esc鍵,輸入“:wq”存盤退出

<span style="font-size:18px;"><span style="background-color: rgb(153, 255, 255);">session required /lib/security/pam_limits.so
 
session required pam_limits.so</span></span>
           

3)修改linux核心,修改/etc/sysctl.conf檔案,輸入指令: vi /etc/sysctl.conf ,按i鍵進入編輯模式,将下列内容加入該檔案

<span style="font-size:18px;"><span style="background-color: rgb(153, 255, 255);">fs.file-max = 6815744
 
fs.aio-max-nr = 1048576
 
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 = 1048576</span></span>
           

編輯完成後按Esc鍵,輸入“:wq”存盤退出

4)要使 /etc/sysctl.conf 更改立即生效,執行以下指令。 輸入:sysctl -p 顯示如下:

<span style="font-size:18px;"><span style="background-color: rgb(153, 255, 255);">linux:~ # sysctl -p
 
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
 
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 = 1048576</span></span>
           

5)編輯 /etc/profile ,輸入指令:vi /etc/profile,按i鍵進入編輯模式,将下列内容加入該檔案。

<span style="font-size:18px;"><span style="background-color: rgb(153, 255, 255);"><span style="font-size:14px;">if [ $USER = "oracle" ]; then
 
if [ $SHELL = "/bin/ksh" ]; then
 
ulimit -p 16384
 
ulimit -n 65536
 
else
 
ulimit -u 16384 -n 65536
 
fi
 
fi</span></span></span>
           

編輯完成後按Esc鍵,輸入“:wq”存盤退出

6)建立相關使用者群組,作為軟體安裝和支援組的擁有者。

(這裡如果添加使用者的時候報錯,組找不到。那麼你需要先建立兩個組: ) 

<span style="font-size:18px;"><span style="background-color: rgb(153, 255, 255);">groupadd oinstall

groupadd dba
</span></span>
           

建立Oracle使用者和密碼,輸入指令:

<span style="font-size:18px;"><span style="background-color: rgb(153, 255, 255);">useradd -g oinstall -G dba -m oracle     
 
passwd oracle</span></span>
           

然後會讓你輸入密碼,密碼任意輸入2次,但必須保持一緻,回車确認。

7)建立資料庫軟體目錄和資料檔案存放目錄,目錄的位置,根據自己的情況來定,注意磁盤空間即可,這裡我把其放到oracle使用者下,例如:

<span style="font-size:18px;"><span style="background-color: rgb(153, 255, 255);">mkdir /home/oracle/app
 
mkdir /home/oracle/app/oracle
 
mkdir /home/oracle/app/oradata
 
mkdir /home/oracle/app/oracle/product


</span></span>
           

8)更改目錄屬主為Oracle使用者所有,輸入指令:

<span style="font-size:18px;"><span style="background-color: rgb(153, 255, 255);">chown -R oracle:oinstall /home/oracle/app</span></span>
           

9)配置oracle使用者的環境變量,首先,切換到新建立的oracle使用者下,

輸入:su – oracle ,然後直接在輸入 : vi .bash_profile

按i編輯 .bash_profile,進入編輯模式,增加以下内容:

<span style="font-size:18px;"><span style="background-color: rgb(153, 255, 255);">export ORACLE_BASE=/home/oracle/app
 
export ORACLE_HOME=$ORACLE_BASE/oracle/product/11.2.0/dbhome_1
 
export ORACLE_SID=orcl
 
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
 
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib</span></span>
           

編輯完成後按Esc鍵,輸入“:wq”存盤退出

好啦,到這裡配置資訊都搞定了。

二、安裝過程

1)當上述系統要求操作全部完成後,登出系統,在圖形界面以Oracle使用者登陸

首先,我們需要從oracle官網上下載下傳oracle 11g 32位,然後可以通過winscp軟體,在本機與虛拟機中的linux系統間傳送檔案。

(當然前提是要保證網絡暢通),如果小夥伴不知道如何配置網絡,可以參考如下步驟:

<1>在vm中選擇host-only連接配接方式:

linux下安裝oracle11g詳解

<2>設定linux的ip位址(具體步驟在百度下吧),網關填寫虛拟機虛拟網卡VMware Virtual Ethernet Adapter for VMnet1設定的ip 設定完了運作指令:service network restart      (可以通過ifconfig檢視linux系統的ip位址,然後:ping xxx(r VMnet1設定的ip))

這樣你就可以在兩個系統間通過winscp傳遞檔案啦。

傳遞完成後,使用unzip指令解壓縮。

<span style="font-size:18px;"><span style="background-color: rgb(153, 255, 255);">unzip linux.x64_11gR2_database_1of2.zip
 
unzip linux.x64_11gR2_database_2of2.zip</span></span>
           

解壓完成後進入到database目錄下,運作指令: ./runInstaller然後就進入到了和window下一樣的安裝界面。

簡單的選擇後,進入到了如下界面:

linux下安裝oracle11g詳解

這裡會檢查系統中所缺少的架包,你需要去下載下傳這些rpm架包,安裝到linux系統中。

執行:rpm  -ivh  xxxx.rpm 安裝。

執行: rpm -qa xxx  檢視是否安裝。

文章最後會分享一個我安裝時候的一些rpm包。安裝後,點選上面界面的“再次檢測”,通過後,繼續安裝。

安裝完成後,系統會提示你需要用root權限執行2個shell腳本。按照其提示的路徑,找到其所在的位置,如:我的就在/home/oracle/app/oracle/product/11.2.0/dbhome_1/root.sh和 /home/oracle/oraInventory/orainstRoot.sh

三、資料庫建庫

1) 還是在oracle使用者的圖形界面oracle使用者中,新開啟一個終端,直接輸入指令:dbca   會彈出如下界面。

依舊和windows下安裝一樣。這裡不再贅述。

四、配置監聽及本地網絡服務

1)在oracle使用者的圖形界面oracle使用者中,新開啟一個終端,輸入指令:netca  。

依舊和windows下安裝一樣。這裡不再贅述。

這樣oracle伺服器安裝配置基本就完成了。下面進入orcl中

ORACLE啟動監聽器

(使用:lsnrctl  status檢視監聽器狀态,此時如果報錯:error while loading shared libraries: /home/oracle/app/oracle/product/11.2.0/dbhome_1/lib/libclntsh.so.11.1: cannot restore segment prot,可能是系統啟動了SELINUX,關掉它:)

1,root使用者登入

2,使用cd指令切換目前目錄到 /etc/selinux

3.  vi config  x修改内容如下:

# SELINUX= can take one of these three values:

#       enforcing - SELinux security policy is enforced.

#       permissive - SELinux prints warnings instead of enforcing.

#       disabled - SELinux is fully disabled.

SELINUX=disabled

# SELINUXTYPE= type of policy in use. Possible values are:

#       targeted - Only targeted network daemons are protected.

#       strict - Full SELinux protection.

SELINUXTYPE=targeted

4.重新開機系統

(1)切換至oracle安裝使用者(一般為oracle)

su  -  oracle

(2)啟動監聽器

lsnrctl start

(3)停止監聽器

lsnrctl stop

啟動後,執行指令:sqlplus

然後輸入使用者名: sys as sysdba

密碼:xxxx

進入到sqlplus界面:sql>

此時可以寫一個查詢語句:select 2 from dual;

注意,如果重新開機後,上面查詢語句報錯:

ERROR at line 1:

ORA-01034: ORACLE not available

Process ID: 0

Session ID: 0 Serial number: 0

那麼是你沒有啟動資料庫服務。在sqlplus中執行:sql> startup;

然後測試一下主機上的plsql能否連接配接:

在oracle的tnsnames.ora檔案中添加配置:

ORCL_VM=

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.11.129)(PORT = 1521))

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = orcl)

    )

  )

這樣在plsql中就可以連接配接上啦。

linux下安裝oracle11g詳解

其他問題:

5、Linux開放1521端口允許網絡連接配接Oracle Listener

症狀:

(1)TCP/IP連接配接是通的。可以用ping 指令測試。

(2)伺服器上Oracle Listener已經啟動。

lsnrctl status 檢視listener狀态

lsnrctl start 啟動Oracle listener

(3)用戶端得到的錯誤資訊通常是:ORA-12170: TNS:連接配接逾時

這時,我們基本可以肯定是伺服器沒有開放1521端口(假設你用預設設定)

解決方法:

(1)假如你是在一個區域網路環境,配置了防火牆。那麼可以關閉Linux的防火牆。

sudo service iptables stop

(2)編輯iptables, 開放1521端口:

sudo vi /etc/sysconfig/iptables

-A INPUT -p tcp -m state --state NEW -m tcp --dport 1521 -j ACCEPT

:wq

重新開機防火牆

sudo service iptables restart

儲存配置,以便linux重新開機後依然有效

sudo service iptables save

檢視防火牆規則:

sudo iptables -L –n

rpm包下載下傳位址:http://pan.baidu.com/s/1eQ70sFK