基於裸裝置檔案格式安裝oracle資料庫

cmyprogress發表於2009-09-14

關於這個標題有點題外話要說,當初看到這個題目的時候,以為連oracle資料庫軟體也是要安裝到裸裝置上,當時懵了,找了很多資料也不知道從何下手,最後在看過多個文件後才發現所謂的基於裸裝置檔案格式安裝資料庫事實上是oracle軟體仍然安裝在檔案系統上,而新建的資料庫是儲存在裸裝置上的,當時明白過來後也是汗一個。。。呵呵,新手就是亂七八糟的問題都會有。。。

不廢話了,趕緊上正題了。。。

PS:這份文件是在安裝好oracle軟體的基礎上安裝的,而oracle軟體部分同上一篇內容大同小異,只要記得安裝的時候要選擇只安裝oracle軟體。

[@more@]

接下來就是基於裸裝置新建資料庫了。。。

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 -L8M -nlv_spfile oravg
lvcreate -L20M -nlv_control1 oravg
lvcreate -L20M -nlv_control2 oravg
lvcreate -L20M -nlv_control3 oravg
lvcreate -L20M -nlv_redo1_1 oravg
lvcreate -L20M -nlv_redo1_2 oravg
lvcreate -L20M -nlv_redo1_3 oravg
lvcreate -L500M -nlv_system oravg
lvcreate -L20M -nlv_temp oravg
lvcreate -L20M -nlv_users oravg
lvcreate -L20M -nlv_undo oravg
lvcreate -L20M -nlv_users oravg
lvcreate -L20M -nlv_tools oravg
lvcreate -L20M -nlv_indx oravg
vgchange -a y
[root@rac1 oracle]# lvscan
lvscan -- ACTIVE "/dev/oravg/lv_spfile" [8 MB]
lvscan -- ACTIVE "/dev/oravg/lv_control1" [20 MB]
lvscan -- ACTIVE "/dev/oravg/lv_control2" [20 MB]
lvscan -- ACTIVE "/dev/oravg/lv_control3" [20 MB]
lvscan -- ACTIVE "/dev/oravg/lv_redo1_1" [20 MB]
lvscan -- ACTIVE "/dev/oravg/lv_redo1_2" [20 MB]
lvscan -- ACTIVE "/dev/oravg/lv_redo1_3" [20 MB]
lvscan -- ACTIVE "/dev/oravg/lv_system" [500 MB]
lvscan -- ACTIVE "/dev/oravg/lv_temp" [20 MB]
lvscan -- ACTIVE "/dev/oravg/lv_users" [20 MB]
lvscan -- ACTIVE "/dev/oravg/lv_undo" [20 MB]
lvscan -- ACTIVE "/dev/oravg/lv_tools" [20 MB]
lvscan -- ACTIVE "/dev/oravg/lv_indx" [20 MB]
lvscan -- 14 logical volumes with 4.62 GB total in 2 volume groups
lvscan -- 14 active logical volumes
補充下vi命令:替換字串
??:%s#/usr/bin#/bin#g
:set (no)nu (不)顯示行號
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_system
raw /dev/raw/raw9 /dev/oravg/lv_temp
raw /dev/raw/raw10 /dev/oravg/lv_users
raw /dev/raw/raw11 /dev/oravg/lv_undo
raw /dev/raw/raw12 /dev/oravg/lv_tools
raw /dev/raw/raw13 /dev/oravg/lv_indx
raw –qa
5.修改/etc/sysconfig/rawdevices檔案如下,以開機時自動載入裸裝置
# raw device bindings
# format:
#
# example: /dev/raw/raw1 /dev/sda1
# /dev/raw/raw2 8 5
/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_system
/dev/raw/raw9 /dev/oravg/lv_temp
/dev/raw/raw10 /dev/oravg/lv_users
/dev/raw/raw11 /dev/oravg/lv_undo
/dev/raw/raw12 /dev/oravg/lv_tools
/dev/raw/raw13 /dev/oravg/lv_indx
6.將卷組及裝置屬主
chown oracle:oinstall /dev/oravg
chmod +xwr /dev/raw/*
chmod +xrw /dev/raw/
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
tools=/dev/raw/raw12
indx=/dev/raw/raw13
export DBCA_RAW_CONFIG=/home/oracle/DBCA_RAW_CONFIG.txt
export LANG=zh_CN
8.執行DBCA建立資料庫(注意選擇裸裝置建立資料庫及資料檔案略小於裸裝置定義大小)
9.將vgchange -a y加到/etc/rc.local中,啟動是自動啟用所有卷組
文件上說7.0以後自動啟用,可我的8.0就是不啟用 ?,不知道為什麼
10.擴大資料檔案大小
a)擴大邏輯卷
lvextend -L100M /dev/oravg/lv_undo
b)擴大資料檔案
SQL> alter database datafile '/dev/raw/raw11' resize 90m;

總結:

我基本上是參照這份文件來完成安裝的,但是在安裝的過程中也遇到了幾個問題:

1、繫結裸裝置的問題:

文中使用將繫結裸裝置命令寫入開機啟動檔案,實際上除了使用命令繫結之後,還可以透過服務繫結,也即在/etc/sysconfig/rawdevices中繫結,並透過啟動繫結服務實現servcie rawdevices start,透過服務繫結的好處在於可以一次啟動終身繫結。呵呵。

2、軟連結

許多文件都把這個作為可選,實際上應該是必選內容。

不然面對一個個裸裝置,哪曉得這些裸裝置對應的都是些什麼儲存內容?

而關於建立軟連結,方式有所不同,有取名為*.dbf的(汗,這塊我當時也鬧不明白是要幹嘛,以為非得這麼起別名,覺得這麼起名字也沒覺得有多方便),最後無奈求助才明白怎麼回事,呵呵。

3、DBCA_RAW_CONFIG環境變數

在網上找到了相關說明,說是要配置該變數並出現選擇使用裸裝置還是檔案系統格式建立資料庫的對話方塊才算OK,為了這個,我也折騰了一些時間。結果我仍困惑於DBCA_RAW_CONFIG.txt檔案所說的對映,在我的觀念裡覺得既然建立了軟連結,並且在這個文字檔案裡有顯示(相當於mapping效果),結果在出現了上面說的對話方塊後,所有的檔案地址都是裸裝置(又費勁了老半天,以為哪出錯了),當時沒管這些了,直接手動給改了(這要不是有老手,還想不到要這麼個弄法)。最後在後邊搭建rac的時候才發現mapping是有效果的,只要不給export DBCA_RAW_CONFIG,當然就出現不了上面的選擇對話方塊,但“奇妙”的是文字檔案中的mapping實現了,所有的之前裸裝置在的位置都給對映成相應的軟連結名字了 。呵呵。

好了,至此基於裸裝置新建資料庫就完成了(又是個四天的時間)。汗。。。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22534063/viewspace-1026909/,如需轉載,請註明出處,否則將追究法律責任。

相關文章