亚洲成精品动漫久久精久,九九在线精品视频播放,黄色成人免费观看,三级成人影院,久碰久,四虎成人欧美精品在永久在线

掃一掃
關注微信公眾號

學會在硬盤之間分布關鍵數據文件
2009-05-04   IT專家網

隨著數據庫應用范圍的擴大與硬盤價格的直線下降,現在在一臺數據庫服務器上放置多個硬盤對于企業來說已經不是很奢侈的事情。不過這對數據庫管理員來說又提出了一個新的挑戰。因為數據庫管理員出于性能與安全的考慮,需要學會在硬盤之間分布關鍵數據文件。如需要把數據庫系統的重做日志、歸檔日志與用來恢復的數據文件分開存放等等。筆者現在在維護一臺數據庫服務器,硬盤數量就達到4塊。筆者就以這臺數據庫為例,跟各位分享一下如何在硬盤之間分布關鍵數據文件。

  一、重做日志、歸檔日志與用來恢復的備份文件分開存放。

  在Oracle數據庫中有幾個比較重要的文件,包括重做日志文件、歸檔日志文件、數據文件與用來恢復數據的備份文件等等。如果當數據庫發生故障需要恢復數據的話,則需要用到備份文件與重做日志文件,有時候還需要用到歸檔日志文件。為此需要把這些文件跟數據庫系統的數據文件分開來存放,如可以把它們存放在不同的硬盤上。如此的話,當存放數據文件的硬盤發生物理損壞時,也可以馬上通過備份文件與重做日志文件進行恢復。

  另外需要注意的是,用來存放備份文件的硬盤如果出現損壞的話,由于基本上不會影響數據庫的正常運行,所以比較難以發現。但是此時數據庫的備份就可能會發生錯誤,這對于后續數據庫恢復具有致命的影響。為此數據庫管理員還需要采取一定的策略,當備份作業失敗時能夠讓數據庫自動告知管理員。這可以最大限度的避免存儲備份文件的硬盤損壞對后續數據還原造成的致命打擊。

  二、分開存儲數據表文件與索引文件。

  為了提升數據庫性能,在硬件條件允許的情況下最好能夠把存儲文件與索引文件分開來存放,特別是某張數據表如果比較大,而用戶訪問的頻率又比較高的話,則最好把這這張表與其對應的索引文件存放在不同的硬盤上,這對于提高數據庫的性能有非常顯著的效果。因為把數據和索引文件分別放置在不同的硬盤上,如此當表和索引被同時訪問時(在Where條件中引用了索引列),數據庫系統就不會訪問同一個硬盤,而會同時訪問兩個硬盤。這就可以避免硬盤之間的爭用。所以把經常需要訪問的數據表與索引文件分開來存放,會給我們帶來不少的驚喜。

  另外,也可以把數據庫系統中的一些關鍵數據文件分開來存放,可以有效避免硬盤爭用給數據庫性能帶來的一個負面影響,可以解決硬盤瓶頸問題。一般來說表的連接方式會影響到數據庫的性能,會增加硬盤爭用的幾率。但是若能夠把經常需要的表與索引分開放置的話,即使表與表之間的連接方式不怎么合理,那么其負面影響也會大大的降低。因為此時不怎么會導致硬盤爭用的現象。

  三、增加硬盤以避免硬盤爭用。

  有時候在剛開始部署數據庫系統的時候,可能沒有想到利用多塊硬盤來避免硬盤爭用的現象。在數據庫系統已經部署完畢的情況下,若需要增加硬盤的話,那該如何處理呢?是否需要重新部署數據庫系統,還是只要簡單的把需要分開存放的文件復制過去就可以了?

  筆者認為,通常情況下如果數據庫系統還是出于測試階段,那么最好通過重新安裝數據庫系統,并在安裝的過程中制定數據文件的存放位置來實現在不同的硬盤上存儲關鍵數據文件。但是如果數據庫現在已經在用了,那么通過這種方式的話就不怎么合理了。但是也不能夠簡單的把數據文件復制到其他硬盤上。在數據文件的遷移上,沒有這么簡單的事情。要在最短的時間內實現關鍵數據文件的遷移,最好能夠按照以下的幾個步驟來操作。

  第一步首先于數據文件有關的表空間處于脫機狀態。記得筆者以前在表空間的管理上,談到過最好能夠把不同用途的表放置在不同的表空間上。因為Oracle數據庫中可以針對某個表空間進行只讀、脫機等操作,而不影響其他表空間上的數據文件的應用。從而使得數據庫的維護作業對于用戶的正常數據訪問的影響降低到最低。數據庫管理員要在數據庫正常聯機的情況下遷移數據文件的話,就需要把設置跟需要遷移的數據文件有關的表空間脫機。

把數據文件復制到新的硬盤上,并且用新數據文件位置為表空間重命名數據文件。如果新上的硬盤跟原有的硬盤在性能上有差異的話,此時就有一個細節需要注意。即把什么文件保留在原來的硬盤上,而把什么文件移植到性能比較高的新硬盤中。把合適的文件遷移出去,這可以讓移植后的數據庫性能有更大的提升。如原先在硬盤中有重做日志文件與數據文件。現在需要出于安全與性能的考慮,需要把某個文件遷移到新的硬盤中。而新采用的硬盤性能比較好的情況下,那么最好把重做日志文件遷移出去。這會取得比較好的效果。

  第三步把原先脫機的表空間重新啟用即可。可見如果表空間設置的比較合理的話,那么在關鍵數據文件遷移的時候基本上不會對用戶的訪問造成負面影響。所以說表空間的規劃與建立對于數據庫的維護是非常重要的。因為在Oracle數據庫中可以專門針對表空間來進行管理,如備份、聯機脫機管理等等。其實一個表空間就好像是一個小的數據庫一樣,可以進行大部分的日常數據庫維護工作。

  一、確定工作繁忙的數據文件。

  關鍵數據文件在不同的硬盤上分開放置到底能夠取得數據庫性能的多少提升,這主要是跟數據文件訪問的繁忙程度有關。如在Oracle數據庫中,總共部署由六個數據文件。其中四個數據文件比較繁忙,另外兩個數據文件用戶不怎么訪問。此時數據庫管理員如果把不怎么訪問的數據文件遷移到其他硬盤上,那么對數據庫性能的提升沒有多少幫助。為此要提升這個效果,就需要評估一下,哪些數據文件用戶訪問的比較頻繁,然后再有針對性的進行遷移。利用專業的術語來說,就是要確定數據文件上的I/O,將大量使用的數據文件移動到單獨的硬盤上以分布I/O。

  不過要確定哪個數據文件的使用頻率比較高,有比較大的I/O,不是一件簡單的事情。通常來說,可以從兩個方面來評估數據文件的使用頻率以及對應的I/O。

  一是要靠數據庫管理員的經驗。往往所設計的數據庫用途不同,其數據文件的使用頻率以及對應的I/O有一個規律。如這個數據庫系統對應的應用系統是一個決策管理系統,則其數據文件中數據表的更改不會很多,大部分是對視圖文件的訪問。但是如果數據庫用于一些事務型管理系統的話,則剛好相反。如一個ERP系統需要用到Oracle數據庫系統,則其相關的基礎表插入、修改動作會比較頻繁,如采購訂單、銷售訂單等等都需要對這些基礎表進行大量的訪問。故與此對應的數據庫文件訪問的頻率就會比較高。此時把這些文件與其它訪問的比較少的文件分開來放置就能夠起到不錯的效果。另外即使在同一應用系統中,其模塊不同,使用的頻率也不同。如在一個ERP系統中,基本管理模塊基本上不怎么使用,只有在系統初始化的時候需要用到。而對于庫存管理、財務管理模塊所對應的數據表訪問頻率就比較高了。為此在數據庫規劃的時候,可以考慮根據模塊使用頻率的不同,來規劃數據表與表空間。可以把使用模塊高的數據表與索引放置在不同的硬盤上;而把使用頻率低的數據表與其對應的索引放置在相同的硬盤上。這主要是靠數據庫管理員的經驗。其設置的數據庫案例越多,往往對這方面就會有比較深刻的直觀印象。這對于其規劃數據表與表空間的位置,具有很大的幫助。#p#分頁標題#e#

  二是通過數據庫提供的工具。

      如在數據庫企業管理器中提供了一個數據庫文件度量的工具。利用這個工具可以確定發生在每個數據庫文件上的I/O。但是使用這個工具有一個缺陷,即其只有在數據庫系統投入使用后才能夠進行測量與評估。也就是說,不能夠在數據庫設計與部署的時候,就做好相關的規劃工作。也就是說,在生產服務器上進行關鍵數據文件存放位置的調整,或多或少會對用戶的數據庫庫訪問產生不利的影響。而當數據庫在正常使用過程中來進行調整的話,這對于數據庫管理員的水平也提出了比較高的要求。因為此時不允許數據庫管理員出現一點紕漏,否則的話很可能會對數據庫中存儲的數據造成破壞。所以雖然這種方式是可行的,但是筆者并不推薦這么做。

 

熱詞搜索:

上一篇:安普布線成立徐州科技中心
下一篇:巧用SET選項設置SQL Server客戶端配置

分享到: 收藏