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