1. 程式人生 > >linux下安裝oracle11gR2

linux下安裝oracle11gR2

Linux上安裝oracle11gR2

一 作業系統

機器: 192.168.5.191

檢視作業系統核心版本

以root使用者登入,輸入# cat /proc/version,可以看到當前系統是:Red Hat 4.4.6-3


二oracle相關軟體

oracle11g下載地址:

oracle 即時客戶端(instant client)下載地址:

oracle11gR2 官方安裝嚮導for Linux x86-64:

三 硬體要求

1. 最小記憶體 1 GB of RAM

可用命令# grep MemTotal/proc/meminfo檢視RAM大小


2. 虛擬記憶體容量

下表描述了RAM和交換空間的關係

Available RAM

Swap Space Required

Between 1 GB and 2 GB

1.5 times the size of RAM

Between 2 GB and 16 GB

Equal to the size of RAM

More than 16 GB

16 GB

可用命令# grep SwapTotal/proc/meminfo檢視交換空間的大小


結合1和2可以看出,RAM約等於2GB,交換空間約等於4GB,滿足條件。

ps:用# free命令可以看出RAM和交換空間的使用情況


3. 硬碟空間要求(Linux x86-64

資料庫軟體硬碟空間需求:

Installation Type

Requirement for Software Files (GB)

Enterprise Edition(企業版)

4.7

Standard Edition(標準版)

4.6

資料檔案硬碟空間需求:

Installation Type

Requirement for Data Files (GB)

Enterprise Edition(企業版)

1.7

Standard Edition(標準版)

1.5

可用命令# df –ah檢視磁碟空間使用情況(df命令的功能是用來檢查linux伺服器的檔案系統的磁碟空間佔用情況,命令引數a表示全部檔案系統列表,h 表示以方便閱讀方式顯示)


四 軟體要求

1. 作業系統要求


可用命令# cat/proc/version檢視當前已安裝版本


2. 核心要求



可用命令# uname –r檢視當前核心版本


3. 軟體包支援

根據官方安裝文件中說明,不同的平臺需要不同的軟體包,這裡僅以Oracle Linux 4and Red Hat Enterprise Linux 4為例(192.168.5.191是Red Hat 4):

當前作業系統是64位的,括號內備註32位的package無需安裝。

可以用命令:yum install 軟體包名稱 進行安裝

以第一個package為例,輸入命令:# yum install binutils   (注:無需yum install binutils-2.15.92.0.2,檢測到哪個版本就安裝哪個版本即可)


可以看到binutils已經安裝了最新的版本,如果沒有安裝根據提示選擇y安裝即可。

五 建立oracle組、使用者

以root使用者登入,建立oracle安裝組oinstall,資料庫管理員組dba,及oracle使用者

1. 建立組

# groupaddoinstall

# groupadd dba

建立組後在/etc/group檔案中可以看到:


2. 建立使用者

# useradd -goinstall -G dba oracle

(主組oinstall,其它組:dba 。g表示使用者組,指定使用者所屬的使用者組;G表示使用者組,指定使用者所屬的附加組)

建立使用者後在/etc/passwd中可以看到:

其中:oracle表示使用者;x表示口令,Linux使用shadow技術,真正的加密後的使用者口令字存放到/etc/shadow檔案中,passwd中只存放一個特殊字元,x或者*;501是使用者標識號;503是組標識號;/home/oracle表示使用者的起始工作目錄,它是使用者在登入到系統之後所處的目錄;/bin/bash是使用者登入到系統後執行的命令直譯器或某個特定的程式。


oracle使用者登入後可以看到處在/home/oracle目錄下。

3. 為oracle使用者建立密碼

使用命令# passwd oracle ,根據提示輸入密碼:


加密口令在/etc/shadow中可以看到:

六 配置核心引數和資源限制

1. 修改核心引數

以root使用者登入,修改/etc/sysctl.conf檔案,加上如下內容:

fs.aio-max-nr = 1048576

fs.file-max = 6815744

kernel.shmall = 2097152

kernel.shmmax = 536870912

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

為使上述配置生效而不重啟系統,執行如下命令:

# /sbin/sysctl –p (sysctl在/sbin目錄下,執行命令時要知道命令的路徑,若有配置環境變數可以不加路徑直接執行。 -p表示從指定的檔案載入系統引數,如不指定即從/etc/sysctl.conf中載入)

2. 修改使用者限制

以root使用者登入:修改 /etc/security/limits.conf 檔案,加上如下引數:

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

3.修改使用者驗證選項

以root使用者登入:修改/etc/pam.d/login檔案,加上如下引數:

session   required     pam_limits.so

4.修改使用者配置檔案

以root使用者登入:修改/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

七 安裝目錄配置

建立oracle安裝目錄:

# mkdir -p /u01/app/

# mkdir -p /u01/oraInventory

建立oracle資料庫存放目錄:

# mkdir-p /u01/oradata

建立oracle備份目錄:

# mkdir -p /backup/oracle/

賦予各個目錄許可權:

# chown-R oracle:oinstall  /u01/oradata

# chown–R oracle:oinstall  /u01/oraInventory

# chmod-R 775 /u01/app/

# chmod-R 775 /u01/oradata

# chmod–R 775 /u01/oraInventory

# chown-R oracle:oinstall  /backup/oracle/

# chmod-R 775 /backup/oracle/

說明:chown將指定檔案的擁有者改為指定的使用者或組,-R表示處理指定目錄以及其子目錄下的所有檔案。以chown -R oracle:oinstall /u01/oradata為例,表示將/u01/oradata及其目錄下的所有檔案改為oracle使用者,oinstall組


可以看到u01目錄下的三個資料夾都已改成所屬oracle使用者,oinstall組。

八 安裝oracle11gR2

1. 安裝包準備

將oracle11g兩個zip檔案上傳至192.168.5.191  /home/oracle目錄下(注意,兩個zip檔案要放在同一目錄下,方便解壓):

 

用命令# unzip ***.zip對這兩個zip檔案解壓縮,解壓縮後會自動生成database資料夾,兩個zip檔案都在database中。


看到官網文件上,安裝前還需要配置環境變數。第一次安裝對這個不太懂,需要的時候再配置環境變數。

2. 安裝oracle資料庫

切換至oracle使用者(若已登入root使用者,可使用# su – oracle命令切換至oracle使用者)。

第一步:進入/home/oracle/database目錄下,執行$ ./runInstaller


報錯,提示:無法使用命令/usr/bin/xdpyinfo自動檢查顯示器顏色。請檢查是否設定了DISPLAY變數。

解決方案:下載Xmanager,執行下面的 ,然後輸入命令$ export DISPLAY=192.168.4.122:0.0(注:192.168.4.122是我本機ip,本機防火牆一定要關閉),再執行$ ./runInstaller就可以了。(附上參考資料連結:http://blog.csdn.net/xionglang7/article/details/12716823


再次執行$ ./runInstaller可以看到,文字顯示成亂碼了。

解決方案:輸入命令$ export LANG=en_US。原來顯示的是中文,現在改成英文。

設定export DISPLAY=192.168.4.122:0.0和export LANG=en_US都是臨時的,為了防止再次輸入這兩個,切換到root使用者($ su - root)在/etc/profile中加入環境變數。(oracle使用者對/etc/profile檔案只有讀的許可權,無法修改,要切換到root使用者)


新增之後用命令# source /etc/profile使其立即生效。修改之後再切換回oracle繼續安裝。

第二步:安裝時彈出瞭如下錯誤:


解決方案:出現這種錯誤是因為主機名和/etc/hosts 檔案中不一致,只需要把主機名和其IP 寫入/etc/hosts 檔案,就ok了。(附上參考資料連結:

檢視主機名和和ip 地址關係:


主機名是1.yqrsyn.com

檢視/etc/hosts檔案:


這裡我們修改一下主機名,Linux 下修改/etc/sysconfig/network 裡的hostname 需要重啟系統才能生效。

修改network 檔案後,再使用hostname 命令指定一下主機名,就不用重啟OS了。

1.  修改/etc/sysconfig/network檔案,hostname修改為shujuku,修改後如下:

 

2.  使用hostname 命令修改主機名,該修改重啟會失效,但在第一步我們已經修改過。所以失效也沒關係


3.  修改hosts 檔案


再次安裝,順利通過。

第三步:彈出安裝頁面


email和密碼無需填寫,填的話會彈出輸入代理伺服器相關資訊頁面。

因為我沒有填寫email地址,彈出瞭如下資訊,預設yes;


選擇安裝方式,預設選擇只安裝資料庫軟體:

安裝選項,單一例項安裝:


安裝語言選擇:


選擇資料庫安裝版本:


選擇資料庫安裝路徑:


選擇inventory 目錄(oraInventory存放的是Oracle軟體安裝的目錄資訊,Oralce的安裝升級都需要用到這個目錄):

 



由圖可見缺少的都是32位的(i386),在前面安裝軟體包時只安裝了64位的。

忽略(勾選Ignore ALL),點選Next:(這是64位的系統,缺少的32位安裝包可忽略)


安裝過程中提示需要執行指令碼:


用root使用者登入,執行/u01/app/product/11.2.0/dbhome_1/root.sh指令碼,然後再返回這個視窗點選“OK”按鈕。過程不再附圖。


至此,安裝完成。

九 安裝監聽器

使用oracle使用者登入系統或在命令列視窗切換到oracle使用者,執行

netca


又出錯了。報錯的原因是找不到這個命令,解決方案:要麼配置環境變數,要麼把命令的路徑帶上(或者切換到命令所在目錄執行)。

第一步:設定環境變數(放在這裡只是根據我的需要,有多教程中是放在第八項之前設定環境變數的)

輸入命令$ vi .bash_profile,在檔案中加上如下內容:


配置後輸入命令$ source .bash_profile使其生效。再執行$ netca就會自動去/u01/app/product/11.2.0/dbhome_1/bin/目錄下找這個命令了。

第二步:圖形化安裝

輸入$ netca命令後彈出如下介面:

 

 點選“Finish”完成配置。可以用lsnrctl start啟動監聽,lsnrctl status檢視監聽狀態,lsnrctl stop停止監聽

十 安裝資料庫程式

前面已經配置了oracle環境變數,可直接執行命令$ dbca(同樣是以oracle使用者登入執行),彈出瞭如下介面:

 

可以看到,通過dbca即可以建立資料庫也可以刪除資料庫。

 

資料庫名和SID輸入:oracle191

配置四個內建超級管理員密碼,建議統一密碼,便於記憶用:


可以點選Save as an HTML file將概要儲存起來(也可以不儲存直接點選OK按鈕)


輸入地址,點選Save儲存,然後返回摘要頁面點選OK按鈕

 


至此資料庫例項建立完成。

在環境變數中加上ORACLE_SID。輸入命令$ vi.bash_profile,在檔案中加上下面一行:


$ source .bash_profile使其生效。

(ps:若需要啟用EM,還需要配置ORACLE_UNQNAME=$ORACLE_SID,在.bash_profile檔案中加上一行exportORACLE_UNQNAME=$ORACLE_SID)

貼出完整的環境變數附圖,如下:


十一 啟動資料庫

1. Linux啟動oracle順序

01. su – oracle

02. sqlplus / as sysdba

03. SQL>startup

04. lsnrctl start

2. Linux關閉oracle順序

01. su – oracle

02. lsnrctl stop

03. sqlplus / as sysdba

04. SQL>shutdownimmediate

05. SQL>quit

第一步:啟動資料庫(自檢:下面截圖中as前面少了空格,命令的原意是sqlplus  username/password as sysdba)


錯誤原因:在oracle 11g中採用AMM記憶體管理,當MEMORY_TARGET的值大於/dev/shm時,就會報ORA-00845: MEMORY_TARGET not supported on this system錯誤。

解決方案:增加/dev/shm大小

01. 修改/dev/shm大小(由於mount命令只有root使用者有許可權執行,先切換到root使用者)


02. 調整之後再試一次:


出現了新的錯誤:ORA-01102。

錯誤原因:lk<SID>檔案沒釋放造成的。

解決方案:用fuser命令kill掉。

lkORACLE191檔案位於/u01/app/product/11.2.0/dbhome_1/dbs目錄下。

對該檔案說明一下:資料庫啟動時,會生成lk<SID>檔案,用於鎖定資料庫,如果企圖再次啟動程序或者同樣的例項時會報錯,因為該檔案已經被之前啟動的程序鎖了,說明這個資料庫已經被例項獨佔排他的訪問了。這個檔案是為了防止資料庫被多個例項同時併發訪問。資料庫關閉時會釋放該檔案。


(注:附上參考資料連結:

解決之後再試一次:


ok,已成功連線。

第二步:啟動監聽

輸入命令$ lsnrctl start

可以看到監聽已成功啟動。

至此,可以用工具連線資料庫了。

參考資料:

附:
Q1:groupadd命令前為什麼要加/usr/sbin?
A1:加/usr/sbin/不是必需的。加上的話,shell會直接執行給定路徑的可執行程式。不加的話,shell會在PATH變數裡面記錄的路徑找一遍,找到這個命令的話就直接執行,找不到的話就提示你沒有這個命令。
通過cat /usr/sbin可以看到sbin檔案裡有groupadd命令。
Q2 : 為什麼要切換到oracle使用者安裝oracle伺服器等?
A2 : 我們可以嘗試一下以root使用者安裝
可以看到用root使用者執行安裝命令時報錯。
這主要是出於linux的安全機制,root的許可權太大了,新建一個oracle使用者去操作比較安全。
Q3:為什麼有的命令前是#,有的命令前是$?
A3:以root使用者登入,提示符是#;以其他使用者登入,提示符是$。文中在$後面顯示的命令都是以oracle使用者登入執行的。
Q4 : .bash_profile和profile的區別?
A4  :  01.位置:.bash_profile位於/home下的使用者資料夾下,是隱藏檔案。本文件中所涉及的環境下該檔案位於/home/oracle目錄下,通過ls –a可以檢視到;profile在/etc目錄下
02.許可權:/etc/profile檔案只對root及root屬組使用者可讀可寫,其他使用者只有讀許可權;.bash_profile:適配於當前登入使用者的許可權。
03.作用:.bash_profile:每個使用者都可使用該檔案輸入專供自己使用的shell資訊;/etc/profile對所有使用者生效,.bash_profile只對當前使用者生效。
Q5 : 怎麼檢視例項名及其狀態?
A5 : select instance_name,status from v$instance;(分號要輸入的~)