Oracle RAC--在Linux中建立裸裝置

賀子_DBA時代發表於2014-08-28
      首先解釋一下裸裝置的概念   裸裝置(raw device),也叫裸分割槽(原始分割槽),是一種沒有經過格式化,不被Linux透過檔案系統來讀取的特殊塊裝置檔案。它是不被作業系統直接管理的裝置,是透過字元方式訪問的裝置,這種裝置少了作業系統這一層,I/O效率更高。不少資料庫都能透過使用裸裝置作為儲存介質來提高I/O效率。  缺點就是不容易被管理。
一:先對磁碟分割槽
[root@ENMOEDU ~]# fdisk /dev/sdb                      #對磁碟/dev/sdb   分割槽
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel 
Building a new DOS disklabel. Changes will remain in memory only, 
until you decide to write them. After that, of course, the previous 
content won't be recoverable. 


The number of cylinders for this disk is set to 2610. 
There is nothing wrong with that, but this is larger than 1024, 
and could in certain setups cause problems with: 
1) software that runs at boot time (e.g., old versions of LILO) 
2) booting and partitioning software from other OSs 
(e.g., DOS FDISK, OS/2 FDISK) 
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite) 

Command (m for help): n                        #n 就代表分割槽
Command action 
e extended 
p primary partition (1-4)  
p                                                                #p 表示選擇主分割槽,
Partition number (1-4): 1                         #主分割槽的個數 1     
First cylinder (1-2610, default 1): 1          # 預設從第一個柱面開始   
Last cylinder or +size or +sizeM or +sizeK (1-2610, default 2610):     
Using default value 2610 

Command (m for help): w             #寫進磁碟,使分割槽生效,
The partition table has been altered! 

Calling ioctl() to re-read partition table. 
Syncing disks. 
二:建立裸裝置
方法1:目前最常用的方法
[root@ENMOEDU rules.d]#cd   /etc/udev/rules.d            #配置裸裝置的目錄                     
[root@ENMOEDU rules.d]# vi     60-raw.rules       #它裡面有例子,兩種配置方法, 在裡面新增下面紅色部分(也就是選擇的第二種)
[root@ENMOEDU rules.d]# cat 60-raw.rules             
# Enter raw device bindings here. 

# An example would be: 
# ACTION=="add", KERNEL=="sda", RUN+="/bin/raw /dev/raw/raw1 %N" 
# to bind /dev/raw/raw1 to /dev/sda, or 
# ACTION=="add", ENV{MAJOR}=="8", ENV{MINOR}=="1", RUN+="/bin/raw /dev/raw/raw2 %M %m" 
# to bind /dev/raw/raw2 to the device with major 8, minor 1. 
ACTION=="add", KERNEL=="sdb", RUN+="/bin/raw /dev/raw/raw1  %N" 
方法2:以前紅帽4版本  用的的方法
[root@ENMOEDU rules.d]# raw  /dev/raw/raw1        /dev/sdb1           # 繫結後生成一個檔案/dev/raw/raw1 記錄繫結的資訊.如果不想要直接刪除這個檔案就行了     重啟都就失效        
/dev/raw/raw1: bound to major 8, minor 17
[root@rac2 ~]#vi /etc/sysconfig/rawdevices            --編輯檔案,建立對映   重啟之後也能保留住raw的資訊 
        /dev/raw/raw1  /dev/sdb1 
[root@ENMOEDU rules.d]# raw   -qa                         #查詢裸裝置           
/dev/raw/raw1: bound to major 8, minor 17 
[root@ENMOEDU rules.d]# ls -qlt    /dev/raw/raw1              
crw------- 1 root root 162, 1 Aug 28 20:32 /dev/raw/raw1  
 三:裸裝置的使用,可
以直接在把Oracle資料庫的表空間建立在裸裝置上,來提高讀寫速度。
SYS@ENMOEDU> create tablespace liuwenhe datafi
le '/dev/raw/raw1' size 50m ; 

Tablespace created. 
總結:裸裝置不經過檔案系統的緩衝,跨越了作業系統這一層,資料直接從Disk到Oracle進行傳輸,提高了資料的讀寫速度,
前提是磁碟的讀寫確實非常頻繁,以至於磁碟讀寫成為系統瓶頸。不可以把整個裸裝置都作為Oracle的資料檔案(必須讓資料檔案的大小稍微小於該裸裝置的實際大小)。




















    

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

相關文章