程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> SQL SERVER中如何使用裸設備

SQL SERVER中如何使用裸設備

編輯:關於SqlServer

這篇文章也適合ORACLE DBA和MYSQL DBA 閱讀

裸設備適用於Linux和Windows

在ORACLE和MYSQL裡也是支持裸設備的!!

介紹

大家看到這個標題一定是一頭霧水吧,裸設備??裸體的設備??太邪惡了o(∩_∩)o

裸設備:有人叫raw disk,也有人叫raw device

百度一下:

http://baike.baidu.com/link?url=ran4ytgFFrsCmAywsOLa0uQczn8rxsEwWXF5WjdTNLx3Sv9Ng2Y1ScJsLT8k7CO7G1gOsiuq3EILSVhbYsgsSa

裸設備(raw device),也叫裸分區(原始分區),是一種沒有經過格式化,不被Unix通過文件系統來讀取的特殊字符設備。

它由應用程序負責對它進行讀寫操作。不經過文件系統的緩沖

它是不被操作系統直接管理的設備。

這種設備少了操作系統這一層,I/O效率更高。不少數據庫都能通過使用裸設備作為存儲介質來提高I/O效率。

因為使用裸設備避免了再經過操作系統這一層,數據直接從Disk到數據庫進行傳輸,所以使用裸設備對於讀寫頻繁的數據庫應用來說,可以極大地提高數據庫系統的性能。

當然,這是以磁盤的 I/O 非常大,磁盤I/O已經稱為系統瓶頸的情況下才成立。

如果磁盤讀寫確實非常頻繁,以至於磁盤讀寫成為系統瓶頸的情況成立,那麼采用裸設備確實可以大大提高性能

在宋沄劍的文章裡《SQL Server數據庫損壞、檢測以及簡單的修復辦法》

在這個過程中,數據髒頁由內存寫入持久化的IO子系統,在此期間,按照IO子系統的不同,數據可能經過這幾層:

Windows(寫數據一定調用的是WINDOWS API) Windows底層的中間層(殺毒軟件,磁盤加密系統)

RAID控制器(IO子系統做了RAID) 磁盤或SSD等持久化存儲器

其實如果使用了裸設備,數據是不需要經過I/O子系統的,直接寫入到文件中

根據MSDN說一下裸設備在SQLSERVER的限制

Using Raw Partitions

SQLSERVER2000支持數據庫創建在使用raw格式的分區。raw格式分區是一種沒有格式化的文件系統,就像FAT文件系統和NTFS文件系統。

在某些情況下,數據庫創建在raw格式的分區能產生重要的性能提升相對於NTFS或FAT文件系統。

然而,大多數情況下,還是建議使用NTFS或FAT分區來存放數據庫文件

當你把數據庫創建在raw分區下的時候,你不能指定數據庫數據文件的物理名字;你只能夠指定數據庫數據文件要存放的那個磁盤的驅動器號

如果你使用Windows2000服務器版,你可以掛載一個使用raw文件格式的驅動器。當你在一個空文件夾掛載一個本地驅動器的時候,

Windows2000會分配一個磁盤路徑,這樣會比只分配一個驅動器號好。

掛載驅動器不受26個盤符的限制(分區超過26個就不能再建立分區了),因此,你可以使用不受數量限制的raw分區。

下面有幾個限制是需要考慮的,當使用raw分區的時候

(1)每一個raw分區只能有一個數據庫數據文件。

(2)標准的文件操作,例如:復制文件,移動文件,刪除文件都不能在raw分區使用

(3)放在raw分區的數據庫文件都不能直接使用備份軟件備份,例如Acronis.True.Image.Echo.Enterprise.Server這些都不能用

但是SQLSERVER的完整數據庫備份、差異備份、日志備份,這些SQLSERVER的備份功能是可以正常使用的

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved