在Linux上安裝oracle常常會碰到須要使用裸設備的狀況,這裏就介紹一下Red Hat 4上設置裸設備的方法。 這份文檔是在安裝好oracle軟件的基礎上安裝的,安裝的時候要選擇只安裝oracle軟件。 接下來就是基於裸設備新建數據庫了。。。 1.增長一塊硬盤,以root登錄OS [root@rac1 oracle]# fdisk -l Disk /dev/sda: 255 heads, 63 sectors, 652 cylinders Units = cylinders of 16065 * 512 bytes Device Boot Start End Blocks Id System /dev/sda1 * 1 13 104391 83 Linux /dev/sda2 14 38 200812+ 82 Linux swap /dev/sda3 39 652 4931955 83 Linux Disk /dev/sdh: 128 heads, 32 sectors, 512 cylinders Units = cylinders of 4096 * 512 bytes Disk /dev/sdh doesn't contain a valid partition table 2.對Disk /dev/sdh分區成LVM格式(8e的分區類型) Disk /dev/sdh: 128 heads, 32 sectors, 512 cylinders Units = cylinders of 4096 * 512 bytes Device Boot Start End Blocks Id System /dev/sdh1 1 512 1048560 8e Linux LVM 3.建立物理卷,邏輯卷(組) 執行以下shell: pvcreate /dev/sdh1 vgcreate oravg /dev/sdh1 lvcreate -L10M -nlv_spfile oravg lvcreate -L100M -nlv_control1 oravg lvcreate -L100M -nlv_control2 oravg lvcreate -L100M -nlv_control3 oravg lvcreate -L50M -nlv_redo1_1 oravg lvcreate -L50M -nlv_redo1_2 oravg lvcreate -L50M -nlv_redo1_3 oravg lvcreate -L700M -nlv_system01 oravg lvcreate -L700M -nlv_sysaux01 oravg lvcreate -L620M -nlv_undotbs01 oravg lvcreate -L620M -nlv_users01 oravg lvcreate -L500M -nlv_temp01 oravg lvcreate -L200M -nlv_example01 oravg ================================== 其餘須要的表空間也要分配相應的空間 lvcreate -L120M -nlv_tools oravg lvcreate -L120M -nlv_indx oravg vgchange -a y [root@rac1 oracle]# lvscan ACTIVE '/dev/oravg/lv_spfile' [12.00 MB] inherit ACTIVE '/dev/oravg/lv_control1' [100.00 MB] inherit ACTIVE '/dev/oravg/lv_control2' [100.00 MB] inherit ACTIVE '/dev/oravg/lv_control3' [100.00 MB] inherit ACTIVE '/dev/oravg/lv_redo1_1' [52.00 MB] inherit ACTIVE '/dev/oravg/lv_redo1_2' [52.00 MB] inherit ACTIVE '/dev/oravg/lv_redo1_3' [52.00 MB] inherit ACTIVE '/dev/oravg/lv_system01' [700.00 MB] inherit ACTIVE '/dev/oravg/lv_sysaux01' [700.00 MB] inherit ACTIVE '/dev/oravg/lv_undotbs01' [620.00 MB] inherit ACTIVE '/dev/oravg/lv_users01' [620.00 MB] inherit ACTIVE '/dev/oravg/lv_temp01' [500.00 MB] inherit ACTIVE '/dev/oravg/lv_example01' [200.00 MB] inherit ACTIVE '/dev/VolGroup00/LogVol00' [17.94 GB] inherit ACTIVE '/dev/VolGroup00/LogVol01' [1.94 GB] inherit 4.綁定到裸設備上 執行以下shell raw /dev/raw/raw1 /dev/oravg/lv_spfile raw /dev/raw/raw2 /dev/oravg/lv_control1 raw /dev/raw/raw3 /dev/oravg/lv_control2 raw /dev/raw/raw4 /dev/oravg/lv_control3 raw /dev/raw/raw5 /dev/oravg/lv_redo1_1 raw /dev/raw/raw6 /dev/oravg/lv_redo1_2 raw /dev/raw/raw7 /dev/oravg/lv_redo1_3 raw /dev/raw/raw8 /dev/oravg/lv_system01 raw /dev/raw/raw9 /dev/oravg/lv_temp01 raw /dev/raw/raw10 /dev/oravg/lv_users01 raw /dev/raw/raw11 /dev/oravg/lv_undotbs01 raw /dev/raw/raw12 /dev/oravg/lv_sysaux01 raw /dev/raw/raw13 /dev/oravg/lv_example01 raw –qa 5.修改/etc/sysconfig/rawdevices文件以下,以開機時自動加載裸設備 (注意:Red Hat 5已經沒有rawdevices服務,須要將raw /dev/raw/raw13 /dev/oravg/lv_example01等命令放入/etc/rc.local在開機時執行一遍) /dev/raw/raw1 /dev/oravg/lv_spfile /dev/raw/raw2 /dev/oravg/lv_control1 /dev/raw/raw3 /dev/oravg/lv_control2 /dev/raw/raw4 /dev/oravg/lv_control3 /dev/raw/raw5 /dev/oravg/lv_redo1_1 /dev/raw/raw6 /dev/oravg/lv_redo1_2 /dev/raw/raw7 /dev/oravg/lv_redo1_3 /dev/raw/raw8 /dev/oravg/lv_system01 /dev/raw/raw9 /dev/oravg/lv_temp01 /dev/raw/raw10 /dev/oravg/lv_users01 /dev/raw/raw11 /dev/oravg/lv_undotbs01 /dev/raw/raw12 /dev/oravg/lv_sysaux01 /dev/raw/raw13 /dev/oravg/lv_example01 6.將卷組及設備屬主(也須要加入啓動文件/etc/rc.local) chown oracle:oinstall /dev/oravg chown oracle:oinstall /dev/raw/* chmod +xwr /dev/raw/* chmod +xrw /dev/raw/ vgchange -a y ----啓動時自動激活全部卷組 7.建立裸設備映射文件DBCA_RAW_CONFIG.txt並加入環境變量以下: spfile=/dev/raw/raw1 control1=/dev/raw/raw2 control2=/dev/raw/raw3 control3=/dev/raw/raw4 redo1_1=/dev/raw/raw5 redo1_2=/dev/raw/raw6 redo1_3=/dev/raw/raw7 system=/dev/raw/raw8 temp=/dev/raw/raw9 users=/dev/raw/raw10 undotbs1=/dev/raw/raw11 example=/dev/raw/raw13 sysaux=/dev/raw/raw12 export DBCA_RAW_CONFIG=/home/oracle/DBCA_RAW_CONFIG.txt export LANG=zh_CN 8.運行DBCA建立數據庫(注意選擇裸設備建立數據庫及數據文件略小於裸設備定義大小) 9.將vgchange -a y加到/etc/rc.local中,啓動時自動激活全部卷組 10.擴大數據文件大小 a)擴大邏輯卷 lvextend -L100M /dev/oravg/lv_undo b)擴大數據文件 SQL> alter database datafile '/dev/raw/raw11' resize 90m; 總結: 我基本上是參照這份文檔來完成安裝的,可是在安裝的過程當中也遇到了幾個問題: 一、綁定裸設備的問題: 文中使用將綁定裸設備命令寫入開機啓動文件,實際上除了使用命令綁定以後,還能夠經過服務綁定,也即在/etc/sysconfig/rawdevices中綁定,並經過啓動綁定服務實現servcie rawdevices start,經過服務綁定的好處在於能夠一次啓動終身綁定。呵呵。 二、軟連接 許多文檔都把這個做爲可選,實際上應該是必選內容。 否則面對一個個裸設備,哪曉得這些裸設備對應的都是些什麼存儲內容? 而關於創建軟連接,方式有所不一樣,有取名爲*.dbf的(汗,這塊我當時也鬧不明白是要幹嗎,覺得非得這麼起別名,以爲這麼起名字也沒以爲有多方便),最後無奈求助才明白怎麼回事,呵呵。 三、DBCA_RAW_CONFIG環境變量 在網上找到了相關說明,說是要配置該變量並出現選擇使用裸設備仍是文件系統格式建立數據庫的對話框纔算OK,爲了這個,我也折騰了一些時間。結果我仍困惑於DBCA_RAW_CONFIG.txt文件所說的映射,在個人觀念裏以爲既然創建了軟連接,而且在這個文本文件裏有顯示(至關於mapping效果),結果在出現了上面說的對話框後,全部的文件地址都是裸設備(又費勁了老半天,覺得哪出錯了),當時沒管這些了,直接手動給改了(這要不是有老手,還想不到要這麼個弄法)。最後在後邊搭建rac的時候才發現mapping是有效果的,只要不給export DBCA_RAW_CONFIG,固然就出現不了上面的選擇對話框,但「奇妙」的是文本文件中的mapping實現了,全部的以前裸設備在的位置都給映射成相應的軟連接名字了 。