<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    關于裸設備及Oracle的20個實用問答(轉)

    1.什么叫做裸設備?
    裸設備,也叫裸分區(原始分區),是一種沒有經過格式化,不被Unix通過文件系統來讀取的特殊字符設備。它由應用程序負責對它進行讀寫操作。不經過文件系統的緩沖。
    2.如何辨別裸設備?
    Unix/dev 目錄下,有許多文件,其中有兩個大類:字符設備文件和塊設備文件。
    字符設備特殊文件進行I/O操作不經過操作系統的緩沖區,而塊設備特殊文件用來同外設進行定長的包傳輸。字符特殊文件與外設進行I/o操作時每次只傳輸一個字符。而對于塊設備特殊文件來說,它用了cache機制,在外設和內存之間一次可以傳送一整塊數據。裸設備使用字符特殊文件。在/dev 目錄下,你可以看到許多這樣的文件。

    3.使用裸設備的好處
    因為使用裸設備避免了再經過Unix操作系統這一層,數據直接從DiskOracle進行傳輸,所以使用裸設備對于讀寫頻繁的數據庫應用來說,可以極大地提高數據庫系統的性能。當然,這是以磁盤的I/O 非常大,磁盤I/O已經稱為系統瓶頸的情況下才成立。如果磁盤讀寫確實非常頻繁,以至于磁盤讀寫成為系統瓶頸的情況成立,那么采用裸設備確實可以大大提高性能,最大甚至可以提高至40%,非常明顯。
    而且,由于使用的是原始分區,沒有采用文件系統的管理方式,對于Unix維護文件系統的開銷也都沒有了,比如不用再維護I-node,空閑塊等,這也能夠導致性能的提高。
    4.如何決定是否應該使用裸設備?
    判斷是否使用裸設備要從以下方面進行考慮:首先,數據庫系統本身需要已經被比較好的經過了優化。優化是一門很有些技術的話題,很難簡單地講述。其次,使用Unix命令來辨別是否存在磁盤讀寫瓶頸。比如Unixvmstat, 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=16kdd的具體語法可以參考unix手冊,或者聯機幫助。你也可以先用dd把裸設備上的數據文件備份到磁盤上,然后再利用Unix實用程序進一步處理。
    12.如果我沒有使用Oracle并行服務器選項,我可以在數據庫上讓一部分數據文件使用文件系統,另一部分使用裸設備嗎?
    ????可以。但是這樣的話,會使備份過程更加復雜。
    13.我應該把聯機重做日志文件放到裸設備上嗎?
    ????這是一個極好的選擇。聯機重做日志文件是寫操作非常頻繁的文件,放到裸設備上非常合適。如果你使用了并行服務器選項,那么聯機重做日志文件必須放到裸設備上面。
    14.可以把歸檔日志文件放到裸設備上嗎?
    ????不行。歸檔日志文件必須放到常規的Unix文件系統上面,或者直接放到磁帶上面去。
    15.我可以在裸設備上邊放置多個數據文件嗎?
    ????不行。所以你必須在設置裸設備時非常小心。太小的話,會導致空間很快用完,太大的話,空間就白白浪費了。
    16.因應該把幾個裸設備放到同一個物理磁盤上嗎?
    ????這樣做不好。因為使用裸設備就是為了提高磁盤讀寫速度。而把多個裸設備放到同一個物理磁盤上會導致讀寫競爭,這樣對于提高I/O速度是不利的。應該盡量分散裸設備到不同的物理磁盤上,最好是分散到不同的磁盤控制器上。這是最佳選擇。
    17.需要把所有裸設備都定義成同樣的大小嗎?
    ????這不是必須得,但是劃分成同樣的大小對于管理數據庫比較有利。
    18.為了在Unix上使用裸設備,我需要改變Unix核心參數嗎?
    ????不需要。但可以選擇減小緩沖區的大小,如果沒有別的應用也在同一臺Unix機器上運行。因為運用了裸設備以后,不再使用Unix的系統緩沖區。
    19.為了提高讀寫速度,在操作系統級別上,還有什么辦法可以采取嗎?
    ????使用RAID(廉價冗余磁盤陣列)也是非常有效的辦法,尤其實那種讀寫非常頻繁的系統。
    20.在考慮了以上所有方面后,還能有什么辦法可以提高性能的嗎?
    這就需要對Oracle 進行優化,并且購買更多的磁盤和磁盤控制器,來分散I/O到不同的磁盤上。
    我的歸納
    1、裸設備定義:
    一塊沒有分區的硬盤,稱為原始設備(RAW DEVICE)
    或者是一個分區,但是沒有用EXT3,OCFS等文件系統格式化,稱為原始分區(RAW PARTITION)
    以上兩者都是裸設備
    2、裸設備的綁定
    有文件系統的分區是采用mount的方式掛載到某一個掛載點的(目錄)
    而裸設備不能mount,只能綁定到/dev/raw/下的某一個設備名
    比如/dev/raw/raw1
    3、裸設備的綁定方法
    有兩種方法,這里介紹一種,另一種可以google搜索到
    修改/etc/sysconfig/rawdevices,添加以下內容,
    這里sdd1和sdd2是原始分區名或者原始設備(硬盤)名,
    raw1和raw2是/dev目錄下的原始設備名,編號從raw1到raw255,也就是最多可以綁定255個裸設備
    /dev/raw/raw1 /dev/sdd1
    /dev/raw/raw2 /dev/sdd2
    然后修改裸設備的屬主和訪問權限
    chown oracle:dba /dev/raw/raw1
    chown oracle:dba /dev/raw/raw2
    chmod 660 /dev/raw/raw1
    chmod 660 /dev/raw/raw2
    最后使得裸設備生效,并且在機器啟動的時候就自動加載
    執行 /etc/init.d/rawdevices restart 使裸設備生效
    執行 /sbin/chkconfig rawdevices on 保證機器啟動的時候裸設備能夠加載,這一步很重要
    4、裸設備的讀寫
    不能用cp等命令操作,寫入內容用dd命令,可以參閱相關資料
    5、清空裸設備,相當于格式化啦bs是快的大小,block size
    count是快的數量,這兩者相乘大于裸設備的容量即可
    dd if=/dev/zero of=/dev/raw/raw1 bs=8192 count=12800
    dd if=/dev/zero of=/dev/raw/raw2 bs=8192 count=12800
    我這里是針對RED HAT LINUX的
    創建裸設備創建裸設備前先創建分區。數據庫設備應該是共享設備,所以應該是對共享存儲資源進行分區。
    利用partedfdisk對磁盤進行分區,根據實際規劃各個文件的大小(包括redo,control data文件)創建分區。
    /dev/raw目錄下創建各個分區的映射點,
    創建裸設備,并修改用戶權限。
    有兩種方法創建裸設備:
    (1)執行命令
    #/usr/sbin/raw /dev/raw/raw<N> /dev/<blockdev>

    #/usr/sbin/raw /dev/raw/raw<N> <major> <minor>
    參數Nblockdev可根據實際情況自行設定。
    example
    #/usr/sbin/raw /dev/raw/raw1 /dev/hda13
    /dev/raw/raw1: bound to major 3, minor 13

    (2)配置/etc/sysconfig/rawdevices
    # format: <rawdev> <major> <minor>
    # <rawdev> <blockdev>
    # example:
    /dev/raw/raw1 /dev/hda13
    /dev/raw/raw2 /dev/hda14
    #end-of-file
    執行命令
    #cd /etc/init.d
    #sh rawdevices restart
    /dev/raw/raw1: bound to major 3, minor 13
    /dev/raw/raw2: bound to major 3, minor 14
    查詢裸設備裸設備創建好后,可執行以下命令進行查詢
    (1)查詢raw<N>的綁定情況:
    #/usr/sbin/raw -q /dev/raw/raw<N>

    (2)查詢所有裸設備的綁定情況:
    #/usr/sbin/raw -qa

    (3)使用dd命令查詢:
    #dd if=/dev/raw/raw1 of=backup count=1
    如果分區沒有被移除,則輸出
    1+0 records in
    1+0 records out
    512 bytes (512 B) copied, 0.000307 seconds, 1.7 MB/s
    如果分區已被移除,但使用命令raw仍能成功查出綁定狀態
    #/usr/sbin/raw -q /dev/raw/raw1
    /dev/raw/raw1: bound to major 3, minor 13
    應使用dd命令進行裸設備的查詢
    # dd if=/dev/raw1 of=bakcup count=1
    dd: opening `/dev/raw/raw1': No such device or address
    dd命令提示錯誤信息,因為分區已被移出,所以不能讀寫。
    卸載裸設備指定major minor 0 0,即可卸載裸設備的綁定。
    #/usr/sbin/raw /dev/raw/raw1 0 0
    /dev/raw/raw1: bound to major 0, minor 0
    裸設備的備份在裸設備上,不能使用實用程序來進行備份,唯一的辦法是使用最基本的命令:dd來進行備份。比如:dd if= /dev/raw1 of=/dev/rmt0 bs=16k。dd的具體語法可以參考聯機幫助。你也可以先用dd把裸設備上的數據文件備份到磁盤上,然后再利用實用程序進一步處理。

    posted on 2008-04-08 23:25 金家寶 閱讀(410) 評論(0)  編輯  收藏 所屬分類: linux周邊


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 成年女人午夜毛片免费视频| 免费无码一区二区三区蜜桃 | 日本一区二区三区在线视频观看免费 | 亚洲免费视频观看| 91av免费观看| 亚洲日产2021三区在线| 99久久精品国产免费| 久久精品国产亚洲AV无码娇色| 无码人妻一区二区三区免费n鬼沢 无码人妻一区二区三区免费看 | 亚洲影视自拍揄拍愉拍| 无码国产精品一区二区免费式影视| 中文字幕亚洲色图| 成人免费毛片视频| 国产精品亚洲色婷婷99久久精品| 亚洲AV无码一区二三区 | 中文字幕亚洲综合小综合在线| 亚洲国产精品免费观看| 亚洲人成电影网站色www| 国产亚洲精品免费| 国产精品免费大片一区二区| 亚洲成a人片在线观看无码专区| 99re6免费视频| 亚洲一区欧洲一区| 亚洲欧洲中文日韩久久AV乱码| 中文字幕免费播放| 亚洲性色高清完整版在线观看| 在线免费观看视频你懂的| 成年网在线观看免费观看网址| 亚洲中文字幕无码久久2017 | 亚洲精品无码久久| 亚洲综合无码精品一区二区三区| 国产免费无码一区二区| 亚洲综合色丁香麻豆| 日韩高清免费在线观看| 国产免费久久久久久无码| 97久久精品亚洲中文字幕无码| 在线视频免费观看高清| www在线观看播放免费视频日本| 久久亚洲AV成人出白浆无码国产 | 中文字幕一区二区三区免费视频 | 污网站免费在线观看|