通過事務(wù)日志解決SQL Server常見四大故障(二)_Mssql數(shù)據(jù)庫教程
推薦:談SQL Data Services將成為云中完整的數(shù)據(jù)庫各大云計算提供商(亞馬遜、谷歌和微軟)目前都使用了鍵/值存儲方式。然而,在San Francisco召開的MSDN開發(fā)者大會上,微軟宣布他們在獲取ISV的反饋之后,決定通過SQL Data Service(SDS)提供SQL Server的RDBMS功能。 Register UK的Gavin Clarke采訪了Mark Hinds
數(shù)據(jù)庫鏡像方案有兩種鏡像運行模式。一種是“高安全性模式”,它支持同步操作。在高安全性模式下,當(dāng)會話開始時,鏡像服務(wù)器將使鏡像數(shù)據(jù)庫盡快與主體數(shù)據(jù)庫同步,一旦同步了數(shù)據(jù)庫,事務(wù)將在伙伴雙方處提交,這會延長事務(wù)滯后時間。第二種運行模式,即高性能模式,它與第一種模式的主要差異就在于異步運行。鏡像服務(wù)器嘗試與主體服務(wù)器發(fā)送的日志記錄保持同步。鏡像數(shù)據(jù)庫可能稍微滯后于主體數(shù)據(jù)庫。但是,數(shù)據(jù)庫之間的時間間隔通常很小。但是,如果主體服務(wù)器的工作負(fù)荷過高或鏡像服務(wù)器系統(tǒng)的負(fù)荷過高,則時間間隔會增大。在高性能模式中,主體服務(wù)器向鏡像服務(wù)器發(fā)送日志記錄之后,會立即再向客戶端發(fā)送一條確認(rèn)消息。它不會等待鏡像服務(wù)器的確認(rèn)。這意味著事務(wù)不需要等待鏡像服務(wù)器將日志寫入磁盤便可提交。此異步操作允許主體服務(wù)器在事務(wù)滯后時間最小的條件下運行,但可能會丟失某些數(shù)據(jù)。具體采用哪種模式,則需要數(shù)據(jù)庫管理員根據(jù)企業(yè)對待數(shù)據(jù)損失的態(tài)度與工作負(fù)荷等來確定。
可見現(xiàn)在可用的備份服務(wù)器與生產(chǎn)服務(wù)器之間的數(shù)據(jù)同步解決方案都是基于事務(wù)日志來實現(xiàn)的。
故障三:解決數(shù)據(jù)一致性問題。
假設(shè)現(xiàn)在有這么一種情況。在一個銀行系統(tǒng)中,某個用戶需要轉(zhuǎn)帳。這個轉(zhuǎn)帳作業(yè)主要是通過兩個步驟來完成。第一個步驟就是扣減用戶帳戶中的金額;第二個步驟是把錢轉(zhuǎn)入到另外一個用戶那里。現(xiàn)在如果在轉(zhuǎn)帳的過程中,第一步成功了,但是第二個步驟因為某種原因出錯了。如用戶提供的帳戶名字與實際轉(zhuǎn)帳的帳戶名字不符,則第二個操作就會失敗。此時整個轉(zhuǎn)帳操作就會以失敗而告終。但是現(xiàn)在的問題是,第一個扣減的動作在數(shù)據(jù)庫zhon給已經(jīng)完成了。而實際卻是沒有轉(zhuǎn)帳成功,就救造成了數(shù)據(jù)一致性的問題。
實際過程中如果應(yīng)用程序發(fā)出 ROLLBACK 語句,或者數(shù)據(jù)庫引擎檢測到錯誤,就使用日志記錄回滾未完成的事務(wù)所做的修改。也就是說,當(dāng)?shù)诙䝼操作失敗的話,應(yīng)用程序要發(fā)出一個ROLLBACK 語句,利用事務(wù)日志回滾功能,恢復(fù)第一步的操作。也就是說,把扣減金額的操作進(jìn)行恢復(fù),從而實現(xiàn)數(shù)據(jù)的一致性。類似的應(yīng)用,在數(shù)據(jù)庫開發(fā)過程中很頻繁。
故障四:數(shù)據(jù)庫時點恢復(fù)的問題。
如現(xiàn)在遇到這么一種故障。數(shù)據(jù)庫系統(tǒng)在上午11點突然發(fā)現(xiàn)故障,啟動不起來了。而數(shù)據(jù)庫系統(tǒng)是在昨天晚上12點剛做完一個完全備份。在這種情況下,如果只是從完全備份中恢復(fù)數(shù)據(jù)的話,只能夠恢復(fù)到昨天晚上12點的數(shù)據(jù)。那從昨天晚上12點到今天上午11點的數(shù)據(jù)就不能夠恢復(fù)了嗎?
其實不然。因為用戶在對數(shù)據(jù)庫做的任何一個修改都會保存在事務(wù)日志當(dāng)中。為此只要事務(wù)日志不損壞的情況下,數(shù)據(jù)庫管理員可以把數(shù)據(jù)恢復(fù)到上午11點那個時刻的數(shù)據(jù)。具體的操作方法很簡單,就好先利用完全備份文件恢復(fù)數(shù)據(jù)庫系統(tǒng),此時數(shù)據(jù)庫中的數(shù)據(jù)位昨天晚上12點的數(shù)據(jù)。然后再利用日志恢復(fù)功能把數(shù)據(jù)恢復(fù)到今天上午11點的數(shù)據(jù)。可見事務(wù)日志可以幫助管理員把數(shù)據(jù)恢復(fù)到某一個具體的時點。
分享:讓SQL Server數(shù)據(jù)庫自動執(zhí)行管理任務(wù)(二)二是什么時候CPU是空閑的?空閑是一個相對的標(biāo)準(zhǔn)。有時會CPU使用率30%以下可以定義為空閑;而有時候CPU使用率只有不到60%,就是空閑。這要根據(jù)服務(wù)器的配置已經(jīng)所部屬的應(yīng)用來考慮。所以管理員在采用CPU空閑計劃之前,先要對服務(wù)器進(jìn)行觀測一定時間,采用性能
- sql 語句練習(xí)與答案
- 深入C++ string.find()函數(shù)的用法總結(jié)
- SQL Server中刪除重復(fù)數(shù)據(jù)的幾個方法
- sql刪除重復(fù)數(shù)據(jù)的詳細(xì)方法
- SQL SERVER 2000安裝教程圖文詳解
- 使用sql server management studio 2008 無法查看數(shù)據(jù)庫,提示 無法為該請求檢索數(shù)據(jù) 錯誤916解決方法
- SQLServer日志清空語句(sql2000,sql2005,sql2008)
- Sql Server 2008完全卸載方法(其他版本類似)
- sql server 2008 不允許保存更改,您所做的更改要求刪除并重新創(chuàng)建以下表
- SQL Server 2008 清空刪除日志文件(瞬間日志變幾M)
- Win7系統(tǒng)安裝MySQL5.5.21圖解教程
- 將DataTable作為存儲過程參數(shù)的用法實例詳解
Mssql數(shù)據(jù)庫教程Rss訂閱編程教程搜索
Mssql數(shù)據(jù)庫教程推薦
- 談SQL Server數(shù)據(jù)庫管理常用的SQL和T-SQL語句
- 深入淺出SQL教程之嵌套SELECT語句
- SQL Server2005的XML數(shù)據(jù)類型之基礎(chǔ)篇
- 解讀VB實現(xiàn)SQL Server 2000存儲過程調(diào)用
- 詳解SQL Server與ASP互操作的時間處理
- 解讀在SQL Server中處理空值時涉及的三個問題
- 如何快速生成100萬不重復(fù)的8位編號
- SQL Server2005打開數(shù)據(jù)表中的XML內(nèi)容時報錯的解決辦法
- 解讀SQL Server 2008的新語句MERGE
- 解讀SQL Server數(shù)據(jù)庫備份的方法
- 相關(guān)鏈接:
- 教程說明:
Mssql數(shù)據(jù)庫教程-通過事務(wù)日志解決SQL Server常見四大故障(二)
。