建立裸裝置

2021-05-02 03:13:01 字數 4200 閱讀 9629

1、fdisk -l檢視一下各個分割槽

2、df -lh檢視一下各區的使用情況

3、fdisk /dev/sda

1.n(new)

2.n3.w(write)

4、raw /dev/raw/raw1 /dev/sda8

raw /dev/raw/raw2 /dev/sda9

5、vi /etc/sysconfig/rawdevices修改如下:

加入/dev/raw/raw1 /dev/sda8

/dev/raw/raw2 /dev/sda9

6、給與liefdiy使用者更改裸裝置的許可權:

chown -r liefdiy:liefdiy /dev/raw

chmod -r 660 /dev/raw

7、由於重啟之後系統裸裝置就沒有了,所以要bind。

在/etc/raw 或 /etc/sysconfig/rawdevices這個檔案中,要把裸裝置和相應的分割槽關聯起來。

例如:suse 為/etc/raw檔案中,輸入

raw1:vgsys/lvraw1

raw2:vgsys/lvraw2

在redhat中,/etc/sysconfig/rawdevices

/dev/raw/raw1 /dev/vgsys/lvraw1

/dev/raw/raw2 /dev/vgsys/lvraw2

重要的一步是更改裸裝置的許可權,誰用裸裝置,就將許可權賦予誰。

例如:chown workusr:workusr /dev/raw -r

chmod 660 /dev/raw -r

這些命令一起加到啟動配置檔案中,一般為/etc/rc.local, 或/etc/rc.d/rc.local等。

opensuse為/etc/init.d/boot.local。

刪除裸裝置

#raw /dev/raw/raw1 0 0

#raw /dev/raw/raw2 0 0

查詢裸裝置

#raw -qa

開啟裸裝置服務

#chkconfig --list |grep raw

#chkconfig --level 2 raw on

#service rawdevices start

oracle裸裝置

linux建立裸裝置:

此前一直沒找到linux上面建裸裝置的方法.還以為建了lv,自然就是裸裝置了.不用作別的.後來在oracle建庫的

時候,不認lv.

在aix上面lv就是裸裝置,但在linux上面,還要通過raw命令繫結一下.例如:

用fdisk 建立了乙個分割槽 /dev/sdb1

然後用raw繫結, raw /dev/raw/raw1 /dev/sdb1

繫結後生成乙個檔案/dev/raw/raw1 記錄繫結的資訊.如果不想要直接刪除這個檔案就行了.

但是這個檔案在os reboot之後就沒有了.所以要把raw的資訊記錄到 /etc/sysconfig/rawdevices 檔案中,這樣

重啟之後就能保留住raw的資訊了.

格式:/dev/raw/raw1 /dev/sdb1

如果建立了lv,用raw 繫結lv也是可以的

linux lvm作的raw裝置一般這麼用:

1、用fdisk分乙個lvm區出來,大小為10g,裝置檔案為/dev/cciss/c0d0p8

2、建立pv pvcreate /dev/cciss/c0d0p8

3、建立vg vgcreate oradata /dev/cciss/c0d0p8

4、建立lv lvcreate -n system01 -l 300m oradata

5、建立lv lvcreate -n undo01 -l 500m oradata

6、建立lv lvcreate -n temp01 -l 200m oradata

7、建立lv 。。。。。。。。(包括redofile and control file)

8、在-/etc/sysconfig/rawdevices中加入如下內容

/dev/raw/raw25 /dev/oradata/system01

/dev/raw/raw26 /dev/oradata/temp01

/dev/raw/raw27 /dev/oradata/undo01

。。。。。

9、edit /etc/rc.local

ln -s /dev/raw/raw25 /oradata/system01.dbf

ln -s /dev/raw/raw26 /oradata/temp01.dbf

ln -s /dev/raw/raw27 /oradata/undo01.dbf

.....

10、vi $oracle_home/dbca_raw_config

system01=/oradata/system01.dbf

temp01=/oradata/temp01.dbf

undotbs01=/oradata/undo01.dbf

------------------------

1.什麼叫做裸裝置?  

裸裝置,也叫裸分割槽(原始分割槽),是一種沒有經過格式化,不被unix通過檔案系統來讀取

的特殊字元裝置。它由應用程式負責對它進行讀寫操作。不經過檔案系統的緩衝。  

2.如何辨別裸裝置?  

在unix的/dev   目錄下,有許多檔案,其中有兩個大類:字元裝置檔案和塊裝置檔案。  

字元裝置特殊檔案進行i/o操作不經過作業系統的緩衝區,而塊裝置特殊檔案用來同外設進行定長的包傳輸。

字元特殊檔案與外設進行i/o操作時每次只傳輸乙個字元。而對於塊裝置特殊檔案來說,它用了cache機制,在

外設和記憶體之間一次可以傳送一整塊資料。裸裝置使用字元特殊檔案。在/dev   目錄下,你可以看到許多這樣

的檔案。  

3.使用裸裝置的好處  

因為使用裸裝置避免了再經過unix作業系統這一層,資料直接從disk到oracle進行傳輸,所

以使用裸裝置對於讀寫頻繁的資料庫應用來說,可以極大地提高資料庫系統的效能。當然,這是以磁碟的i/o  

非常大,磁碟i/o已經稱為系統瓶頸的情況下才成立。如果磁碟讀寫確實非常頻繁,以至於磁碟讀寫成為系統瓶

頸的情況成立,那麼採用裸裝置確實可以大大提高效能,最大甚至可以提高至40%,非常明顯。  

而且,由於使用的是原始分割槽,沒有採用檔案系統的管理方式,對於unix維護檔案系統的開

銷也都沒有了,比如不用再維護i-node,空閒塊等,這也能夠導致效能的提高。  

4.如何決定是否應該使用裸裝置?  

判斷是否使用裸裝置要從以下方面進行考慮:首先,資料庫系統本身需要已經被比較好的經

過了優化。優化是一門很有些技術的話題,很難簡單地講述。其次,使用unix命令來辨別是否存在磁碟讀寫瓶

頸。比如unix的vmstat,   sar   等命令都可以較好的進行鑑別。如果決定採用裸裝置,需要磁碟上還有空閒

的分割槽。否則,就要新添磁碟,或者對原有系統重新規劃。  

5.什麼系統必須使用裸裝置?  

如果使用了oracle   並行伺服器選項,則必須採用裸裝置來存放所有的資料檔案,控制檔案

,重做日誌檔案。只有把這些檔案放到裸裝置上,才能保證所有oracle   例項都可以讀取這個資料庫的檔案。

這是由unix作業系統的特性決定的。  

還有一種情況是,如果你想使用非同步i/o,那麼在有些unix上也必須採用裸裝置。這個需要參

考具體unix的相關文件。  

6.我可以把整個裸裝置都作為oracle的資料檔案嗎?  

不行。必須讓資料檔案的大小稍微小於該裸裝置的實際大小。至少要空出兩個oracle塊的大

小來。  

7.在建立資料檔案時如何指定裸裝置?  

和普通檔案沒有什麼太大的區別,一樣都是在單引號裡邊寫上裸裝置的詳細路徑就可以了。

舉乙個例子:要在建立乙個表空間,使用兩個裸裝置,每個分別為30m的大小,oracle塊的大小為4k,可以用下

面的命令:  

create   tablespace   raw_ts  

datafile   『/dev/raw1』   size   30712k  

datafile   『/dev/raw2』   size   30712k;  

8.oracle塊的大小和裸裝置有什麼關係嗎?  

oracle會必須是裸裝置上物理塊大小的倍數。

裸裝置總結

這幾天看了一下linux下的裸裝置管理,做了一些筆記,不敢獨享,共享如下 筆記的內容不一定正確,有錯誤請指出 1 什麼裸裝置?字元裝置?塊裝置?裸裝置 也叫裸分割槽 原始分割槽 是一種沒有經過格式化,不被unix linux通過檔案系統來讀取的特殊字元裝置。裸裝置可以繫結乙個分割槽,也可以繫結乙個磁...

mysql 裸裝置 Mysql5 5使用裸裝置儲存

mysql的innodb支援把錶和索引儲存在裸裝置中,儲存的i o等待問題一直是影響資料庫效能的關鍵,裸裝置不需要經過檔案系統i o處理,因而在效能上有一定的提公升,在 一 建立lvm卷,並使用raw來繫結,其中raw1 raw5為oracle的asm磁碟 二 修改my.cnf檔案,在 mysqld...

mysql 裸裝置 Mysql5 5使用裸裝置儲存

mysql的innodb支援把錶和索引儲存在裸裝置中,儲存的i o等待問題一直是影響資料庫效能的關鍵,裸裝置不需要經過檔案系統i o處理,因而在效能上有一定的提公升,在 一 建立lvm卷,並使用raw來繫結,其中raw1 raw5為oracle的asm磁碟 二 修改my.cnf檔案,在 mysqld...