- 相關(guān)推薦
如何快速掌握SQL Server中的日志轉(zhuǎn)移
集群是一種實(shí)現(xiàn)高可用性的有效解決方案,有時(shí)它會(huì)適得其反。而且,它還非常昂貴。因此,數(shù)據(jù)庫(kù)管理員可使用日志轉(zhuǎn)移代替集群來提供較高的可用性。
日志轉(zhuǎn)移是這樣一種處理過程,它能將某一數(shù)據(jù)庫(kù)中的事務(wù)日志文件依次轉(zhuǎn)存到備份的數(shù)據(jù)庫(kù)中,進(jìn)而為這一數(shù)據(jù)庫(kù)創(chuàng)建一個(gè)“近乎”熱備份。SQL Server 2000的數(shù)據(jù)庫(kù)引擎中設(shè)置了日志轉(zhuǎn)移功能,并在其中進(jìn)行處理。所以它會(huì)自動(dòng)完成復(fù)原到備份服務(wù)器的進(jìn)程,而不需要數(shù)據(jù)庫(kù)管理員手動(dòng)操作。只有你的產(chǎn)品服務(wù)器操作失敗,你才需手動(dòng)完成到備份服務(wù)器的復(fù)原進(jìn)程。(注釋:盡管SQL Server 7.0和2005中均有日志轉(zhuǎn)移功能,但本文主要針對(duì)SQL Server 2000。)
為什么要使用日志轉(zhuǎn)移?
日志轉(zhuǎn)移是一種解決高可用性的措施,并且十分有效。同樣作為高可用性的措施方案,日志轉(zhuǎn)移相對(duì)集群來說,最大的好處是它要便宜許多。這是因?yàn),使用集群功能有硬件要求,而日志轉(zhuǎn)移則不需要。
日志轉(zhuǎn)移在數(shù)據(jù)庫(kù)與數(shù)據(jù)庫(kù)而非服務(wù)器與服務(wù)器之間進(jìn)行;因此才有可能將備份數(shù)據(jù)庫(kù)存儲(chǔ)在你已用作其他用途的服務(wù)器上。但如果轉(zhuǎn)移失敗則有可能會(huì)出現(xiàn)問題,這時(shí)你可換用備份數(shù)據(jù)庫(kù),這種選擇是可用的。
日志轉(zhuǎn)移相對(duì)比較容易安裝。SQL Server提供了非常完善的向?qū)椭惆惭b這個(gè)進(jìn)程。
日志轉(zhuǎn)移允許你保存分布在不同地理位置中的冗余數(shù)據(jù),SQL Server的集群功能則很難做到這一點(diǎn)。這一特點(diǎn)十分出眾,因?yàn)椋?dāng)你的數(shù)據(jù)中心遭到災(zāi)難時(shí),你仍能在備份服務(wù)器中將其恢復(fù)過來。而在相同的數(shù)據(jù)中心,如果你使用的是集群功能,你就會(huì)陷入麻煩。
日志轉(zhuǎn)移的另一優(yōu)點(diǎn)是你能將備份數(shù)據(jù)庫(kù)作為報(bào)告數(shù)據(jù)庫(kù)使用,這對(duì)許多公司來說是很不錯(cuò)的選擇。但如果你決定了用這個(gè)備份數(shù)據(jù)庫(kù)作報(bào)告使用,就必須注意它的局限性。使用原始數(shù)據(jù)庫(kù)中的日志時(shí),SQL Server 要求指定唯一的通道,所以,當(dāng)日志文件正在被應(yīng)用時(shí),報(bào)告則不能同時(shí)進(jìn)行。
使用日志轉(zhuǎn)移要考慮的相關(guān)因素
在將日志轉(zhuǎn)移作為高可用性的方案來使用時(shí),我們必須考慮以下幾點(diǎn)因素。由于從原始數(shù)據(jù)庫(kù)到備份數(shù)據(jù)庫(kù)有一個(gè)潛伏期,對(duì)你的公司而言,它并非一定是可行的實(shí)現(xiàn)高可用性的一種解決方案。潛伏期由數(shù)據(jù)庫(kù)管理員設(shè)置,時(shí)間也因需要而縮短, 但永遠(yuǎn)不能避免。
日志轉(zhuǎn)移中沒有設(shè)置恢復(fù)功能,這就意味著在將日志轉(zhuǎn)移到備份服務(wù)器上時(shí),這些日志都暫時(shí)不可用。因此,數(shù)據(jù)庫(kù)管理員必須在將備份數(shù)據(jù)庫(kù)放到網(wǎng)上前完成一系列的操作,這些步驟包括:
將已存儲(chǔ)在備份數(shù)據(jù)服務(wù)器上原始數(shù)據(jù)庫(kù)里的備份標(biāo)簽存儲(chǔ)起來。一旦所有的標(biāo)簽被存儲(chǔ)后,數(shù)據(jù)庫(kù)就必須得到恢復(fù),然后放到網(wǎng)上。
一旦所有的數(shù)據(jù)庫(kù)都已放在網(wǎng)上,所有需要訪問數(shù)據(jù)庫(kù)的應(yīng)用程序就需要改變自身的鏈接。如果你不能將應(yīng)用程序盡快指向剛剛恢復(fù)的數(shù)據(jù)庫(kù),你就前功盡棄了。
一個(gè)SQL Server的實(shí)例能用于監(jiān)控日志轉(zhuǎn)移。這個(gè)實(shí)例可以在原始數(shù)據(jù)庫(kù)、備份數(shù)據(jù)庫(kù)或單獨(dú)的數(shù)據(jù)庫(kù)中。任何一種版本的SQL Server都能用于SQL Server監(jiān)控。
注釋:數(shù)據(jù)庫(kù)登錄必須在原始數(shù)據(jù)庫(kù)與備份數(shù)據(jù)庫(kù)之間同時(shí)進(jìn)行。
【如何快速掌握SQL Server中的日志轉(zhuǎn)移】相關(guān)文章:
如何更改SQL Server默認(rèn)的1433端口04-10
有關(guān)清除SQL Server日志的兩種方法03-29
SQL Server常用數(shù)據(jù)類型06-18
Sql Server、Access數(shù)據(jù)排名的實(shí)現(xiàn)方法03-30
如何快速掌握小學(xué)英語單詞03-30
快速掌握散打技巧03-12
幫你快速掌握籃球的方法03-02
如何快速掌握手繪效果圖的手繪臨摹技巧11-16