国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Oracle > 正文

Oracle裸設備(raw device)問答

2024-08-29 13:39:53
字體:
來源:轉載
供稿:網友

  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.能夠使用一個磁盤的第一個分區作為裸設備嗎?
  可以,但是不推薦。在Unix的比較舊的版本是銀行,磁盤的第一個分區經常包含這個磁盤的一些信息,以及邏輯卷的一些控制信息。若這些部分被裸設備覆蓋的話,磁盤就會變得不可識別,導致系統崩潰。
  較新的Unix版本不會發生這樣的情況,因為它們采用了更復雜的技術來治理磁盤,邏輯卷的一些信息。
  但是,除非很確信不要使用磁盤的第一個分區來作為裸設備。
  
  7.我可以把整個裸設備都作為Oracle的數據文件嗎?
  不行。必須讓數據文件的大小稍微小于該裸設備的實際大小。至少要空出兩個oracle塊的大小來。
  
  8.裸設備應該屬于那個用戶?
  應該由root來創建裸設備,然后再分配給Oracle用戶以供使用。同時還要把它歸入Oracle用戶所在的那個組里邊(通常都是DBA)。
  
  9.在創建數據文件時如何指定裸設備?
  和普通文件沒有什么太大的區別,一樣都是在單引號里邊寫上裸設備的具體路徑就可以了。舉一個例子:要在創建一個表空間,使用兩個裸設備,每個分別為30M的大小,Oracle塊的大小為4K,可以用下面的命令:
  CREATE TABLESPACE RAW_TS
  DATAFILE '/dev/raw1' size 30712k
  DATAFILE '/dev/raw2' size 30712k;
  
  10.Oracle塊的大小和裸設備有什么關系嗎?
  Oracle會必須是裸設備上物理塊大小的倍數。
  
  11.如何在裸設備上進行備份?
  在裸設備上,不能使用Unix實用程序來進行備份,唯一的辦法是使用最基本的Unix命令:DD來進行備份。比如:dd if=/dev/raw1 of=/dev/rmt0 bs=16k。dd的具體語法可以參考unix手冊,或者聯機幫助。你也可以先用dd把裸設備上的數據文件備份到磁盤上,然后再利用Unix實用程序進一步處理。
  
  12.假如我沒有使用Oracle并行服務器選項,我可以在數據庫上讓一部分數據文件使用文件系統,另一部分使用裸設備嗎?
  可以。但是這樣的話,會使備份過程更加復雜。
  
  13.我應該把聯機重做日志文件放到裸設備上嗎?
  這是一個極好的選擇。聯機重做日志文件是寫操作非常頻繁的文件,放到裸設備上非常合適。假如你使用了并行服務器選項,那么聯機重做日志文件必須放到裸設備上面。
  
  14.可以把歸檔日志文件放到裸設備上嗎?
  不行。歸檔日志文件必須放到常規的Unix文件系統上面,或者直接放到磁帶上面去。
  
  15.我可以在裸設備上邊放置多個數據文件嗎?
  不行。所以你必須在設置裸設備時非常小心。太小的話,會導致空間很快用完,太大的話,空間就白白浪費了。
  
  16.因應該把幾個裸設備放到同一個物理磁盤上嗎?
  這樣做不好。因為使用裸設備就是為了提高磁盤讀寫速度。而把多個裸設備放到同一個物理磁盤上會導致讀寫競爭,這樣對于提高I/O速度是不利的。
應該盡量分散裸設備到不同的物理磁盤上,最好是分散到不同的磁盤控制器上。這是最佳選擇。
  
  17.需要把所有裸設備都定義成同樣的大小嗎?
  這不是必須得,但是劃分成同樣的大小對于治理數據庫比較有利。
  
  18.為了在Unix上使用裸設備,我需要改變Unix核心參數嗎?
  不需要。但可以選擇減小緩沖區的大小,假如沒有別的應用也在同一臺Unix機器上運行。因為運用了裸設備以后,不再使用Unix的系統緩沖區。
  
  19.為了提高讀寫速度,在操作系統級別上,還有什么辦法可以采取嗎?
  使用RAID(廉價冗余磁盤陣列)也是非常有效的辦法,尤其實那種讀寫非常頻繁的系統。
  
  20.在考慮了以上所有方面后,還能有什么辦法可以提高性能的嗎?
  這就需要對Oracle 進行優化,并且購買更多的磁盤和磁盤控制器,來分散I/O到不同的磁盤上。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 家居| 台东市| 宽城| 滦南县| 东乌珠穆沁旗| 宁城县| 靖西县| 乌鲁木齐县| 江城| 江阴市| 泰和县| 苏尼特右旗| 崇州市| 库伦旗| 高尔夫| 合川市| 自贡市| 望城县| 汉源县| 沙坪坝区| 天长市| 安国市| 宣汉县| 广平县| 凤山市| 屏南县| 常州市| 任丘市| 应城市| 宁城县| 凤阳县| 湟源县| 五河县| 岚皋县| 西宁市| 江津市| 秭归县| 台江县| 永丰县| 梨树县| 宁陕县|