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