您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關(guān)什么是分布式事務(wù),小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
分布式事務(wù)是指事務(wù)的參與者、支持事務(wù)的服務(wù)器、資源服務(wù)器以及事務(wù)管理器分別位于不同的分布式系統(tǒng)的不同節(jié)點(diǎn)之上。
為了實(shí)現(xiàn)分布式事務(wù),需要使用下面將介紹的兩階段提交協(xié)議。 * 階段一:開始向事務(wù)涉及到的全部資源發(fā)送提交前信息。此時,事務(wù)涉及到的資源還有最后一次機(jī)會來異常結(jié)束事務(wù)。如果任意一個資源決定異常結(jié)束事務(wù),則整個事務(wù)取消,不會進(jìn)行資源的更新。否則,事務(wù)將正常執(zhí)行,除非發(fā)生災(zāi)難性的失敗。為了防止會發(fā)生災(zāi)難性的失敗,所有資源的更新都會寫入到日志中。這些日志是永久性的,因此,這些日志會幸免于難并且在失敗之后可以重新對所有資源進(jìn)行更新。 * 階段二:只在階段一沒有異常結(jié)束的時候才會發(fā)生。此時,所有能被定位和單獨(dú)控制的資源管理器都將開始執(zhí)行真正的數(shù)據(jù)更新。 在分布式事務(wù)兩階段提交協(xié)議中,有一個主事務(wù)管理器負(fù)責(zé)充當(dāng)分布式事務(wù)協(xié)調(diào)器的角色。事務(wù)協(xié)調(diào)器負(fù)責(zé)整個事務(wù)并使之與網(wǎng)絡(luò)中的其他事務(wù)管理器協(xié)同工作。 為了實(shí)現(xiàn)分布式事務(wù),必須使用一種協(xié)議在分布式事務(wù)的各個參與者之間傳遞事務(wù)上下文信息,IIOP便是這種協(xié)議。這就要求不同開發(fā)商開發(fā)的事務(wù)參與者必須支持一種標(biāo)準(zhǔn)協(xié)議,才能實(shí)現(xiàn)分布式的事務(wù)。
在 Transact-SQL 中啟動的分布式事務(wù)的結(jié)構(gòu)相對比較簡單:
1. Transact-SQL腳本或應(yīng)用程序連接執(zhí)行啟動分布式事務(wù)的 Transact-SQL 語句。
2. 執(zhí)行該語句的 Microsoft® SQL Server? 成為事務(wù)中的主控服務(wù)器。
3. 然后腳本或應(yīng)用程序?qū)︽溄拥姆?wù)器執(zhí)行分布式查詢,或?qū)h(yuǎn)程服務(wù)器執(zhí)行遠(yuǎn)程存儲過程。
4. 當(dāng)執(zhí)行了分布式查詢或遠(yuǎn)程過程調(diào)用后,主控服務(wù)器將自動調(diào)用 MS DTC 以便登記分布式事務(wù)中鏈接的服務(wù)器和遠(yuǎn)程服務(wù)器。
5. 當(dāng)腳本或應(yīng)用程序發(fā)出 COMMIT 或 ROLLBACK 語句時,主控 SQL Server 將調(diào)用 MS DTC 管理兩階段提交過程,或者通知鏈接的服務(wù)器和遠(yuǎn)程服務(wù)器回滾其事務(wù)。
語句
控制分布式事務(wù)的 Transact-SQL 語句很少,因為多數(shù)工作都由 Microsoft® SQL Server? 和 MS DTC 在內(nèi)部完成。Transact-SQL 腳本或應(yīng)用程序中所需的 Transact-SQL 語句只須:
●啟動分布式事務(wù)。
●對鏈接的服務(wù)器執(zhí)行分布式查詢,或?qū)h(yuǎn)程服務(wù)器執(zhí)行遠(yuǎn)程過程調(diào)用。
●調(diào)用標(biāo)準(zhǔn) Transact-SQL COMMIT TRANSACTION、COMMIT WORK、ROLLBACK TRANSACTION 或 ROLLBACK WORK 語句完成事務(wù)。
●對于任意一個 Transact-SQL 分布式事務(wù),處理 Transact-SQL腳本或連接的 SQL Server 將自動調(diào)用 MS DTC 以協(xié)調(diào)事務(wù)的提交或回滾。
REMOTE_PROC_TRANSACTIONS 選項是一個兼容性選項,只影響對使用sp_addserver定義的遠(yuǎn)程服務(wù)器所進(jìn)行的遠(yuǎn)程存儲過程調(diào)用。有關(guān)遠(yuǎn)程存儲過程的更多信息,請參見遠(yuǎn)程存儲過程構(gòu)架。該選項不適用于在使用sp_addlinkedserver定義的鏈接服務(wù)器上執(zhí)行存儲過程的分布式查詢。有關(guān)分布式查詢的更多信息,請參見分布式查詢。
以上就是什么是分布式事務(wù),小編相信有部分知識點(diǎn)可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。