帶您了解SQL Sever數(shù)據(jù)庫文件
作為一個合格的DBA,SQL Sever數(shù)據(jù)庫文件應(yīng)該是要掌握的知識,下面就將為您介紹SQL Sever數(shù)據(jù)庫中data文件和Log文件這兩種SQL Sever數(shù)據(jù)庫文件,供您參考。
高效數(shù)據(jù)庫系統(tǒng)是數(shù)據(jù)庫良好物理和邏輯設(shè)計的產(chǎn)品。充分理解數(shù)據(jù)庫系統(tǒng)設(shè)計之前,必須對數(shù)據(jù)庫服務(wù)器使用的文件有深刻理解,并且對文件配置的硬件也應(yīng)有很好理解。SQL Sever數(shù)據(jù)庫引擎使用兩種類型的文件:data文件和Log文件。下面是這兩種SQL Sever數(shù)據(jù)庫文件文件類型的綱要:
1.Data文件存儲引擎需要的內(nèi)部數(shù)據(jù),以及數(shù)據(jù)庫中用戶定義的數(shù)據(jù)。數(shù)據(jù)庫引擎有默認(rèn)的數(shù)據(jù)文件,并且可以添加其它數(shù)據(jù)文件。
2.Log文件用于存儲數(shù)據(jù)的修改信息,并且它在數(shù)據(jù)庫的事務(wù)提交處理和回滾處理過程中有很重要的作用。因為log文件是“只寫”(除非使用事務(wù)復(fù)制)文件,所以將它存放在高效的磁盤驅(qū)動器上是很重要的。RAID 1+0驅(qū)動器陣列在此情況下有最高效率。
數(shù)據(jù)庫文件存放在哪兒?
數(shù)據(jù)庫文件的存放位置對于SQL Sever的效率是至關(guān)重要的。安裝SQL時,已經(jīng)為數(shù)據(jù)庫和事務(wù)log文件指定了路徑。一般規(guī)則,你不希望使用此路徑。為了找到指定數(shù)據(jù)庫的數(shù)據(jù)文件和事務(wù)log文件,可以執(zhí)行下面的查詢語句:SELECT * FROM sysfiles如果可能,你希望將數(shù)據(jù)文件和事務(wù)log文件存放到RAID磁盤陣列中,此時能提供數(shù)據(jù)冗余,即使在磁盤失效的情況下,也不會丟失數(shù)據(jù)。RAID陣列通過數(shù)據(jù)拆分、數(shù)據(jù)鏡像和數(shù)據(jù)組合提供數(shù)據(jù)冗余。如果一個磁盤陣列失效,則會想到在分開的物理驅(qū)動器上保存數(shù)據(jù)文件和事務(wù)log文件。這樣做的原因是:如果將數(shù)據(jù)文件和事務(wù)log文件共享一個磁盤,則在磁盤損壞情況下,不能通過恢復(fù)事務(wù)log文件覆蓋數(shù)據(jù)庫。而且,一個磁盤保存兩種不同類型的文件,系統(tǒng)IO負(fù)擔(dān)很重,因為在兩種文件類型中有很多讀/寫的資源爭奪:數(shù)據(jù)文件一直不停地在OLTP環(huán)境中進(jìn)行讀出、寫入操作;而此時,事務(wù)log文件以連續(xù)方式寫入。
其它需要考慮的事項:
數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)文件和事務(wù)log文件的位置很重要。很多時候,你忽略的小事情常常讓你陷入困境。例如:我碰到過一個這樣的情形,系統(tǒng)的文件經(jīng)過了仔細(xì)周詳?shù)目紤]并且存放恰當(dāng),但是,保存文件的磁盤驅(qū)動器太小,磁盤寫滿后,系統(tǒng)的事務(wù)處理則進(jìn)行不了。如果沒有意識到磁盤已滿,此時你可能還以為碰上了大麻煩。
對于數(shù)據(jù)文件的存放位置,應(yīng)仔細(xì)考慮它應(yīng)存放在什么地方,并且還應(yīng)考慮文件利用何種類型的磁盤空間??紤]的事情越多,成功的機率則越大。
【編輯推薦】