匯出 (0) 列印
全部展開

同步處理時的衝突解決方式

更新日期: 2014年2月

 

 

如果同步處理群組內兩個或多個資料庫中的相同資料列在兩次同步處理之間發生變更,將會發生 SQL 資料同步 (預覽) 資料衝突。不論您採用的原則為何,當衝突情況出現時,都只會保留其中一個變更的資料列,並捨棄其他資料列。本文將說明每一個衝突解決原則的行為。

Microsoft Azure Silverlight 入口網站上的 Microsoft Azure SQL 資料同步外掛程式已解除任務。從現在開始,使用 Microsoft Azure 入口網站 進入 Azure SQL 資料同步。

您透過 SYNC 索引標籤在 Microsoft Azure 管理入口網站。只有在您擁有一個或多個同步群組時,才能使用 [同步] 索引標籤。請參閱主題作法:建立同步群組 (SDS) 以取得從此入口網站建立和修改同步群組的指示。

請參閱下方的導覽一節,以取得在您開始之前應該閱讀的主題連結以及有關建立和修改同步處理群組的指引。

SQL 資料同步 (預覽) 讓您可從兩種衝突解決原則中選取:中樞獲勝和用戶端獲勝。

保留第一個寫入中樞的資料列變更,並且之後不再嘗試寫入中樞內相同的資料列。因此,在同步處理結束之前,會將資料列中寫入中樞的第一項變更向外傳播至所有成員資料庫。

用戶端資料庫中每一個變更的資料列都會寫入中樞,並會覆寫相同資料列先前的變更。因此,在同步處理結束之前,會將最後一個寫入中樞的內容傳播至所有成員資料庫。

使用圖 1 並假設下列情況:

  • 這兩個遠端辦公室位在具有 SQL 資料庫 中樞資料庫的相同同步處理群組中。

  • 在此圖例中,同步處理順序為遠端辦公室 #1,然後是遠端辦公室 #2。實際上,同步處理順序並不一定,而且每次同步處理時都不同。

  • 「連絡人」資料表包含四個引起關注的資料列,其值如下:

     

    資料列

    名字

    姓氏

    電話

    公司

    1

    William

    Vong

    (270)555-1234

    Contoso

若在相同資料列的多個版本中做變更。衝突解決原則會決定要保留哪一個資料列版本。

 

資料庫/辦公室

資料列

名字

姓氏

電話

公司

RO #1

1

Bill

Vong

(206)555-1212

Contoso

RO #2

1

Will

Vong

(270)555-1234

Contoso, Inc.

 

步驟/變更

資料列

名字

姓氏

電話

公司

步驟 1

RO#1 輪詢變更。

1

Bill

Vong

(206)555-1212

Contoso

步驟 2

整個變更的資料列寫入中樞。
將中樞內的資料列標記為已變更。

1

Bill

Vong

(206)555-1212

Contoso

步驟 3

中樞內其他標記為已變更的資料列寫入 RO#1,如此 RO#1 的同步處理就完成。

步驟 4

RO#2 輪詢變更。

1

Will

Vong

(270)555-1234

Contoso, Inc.

步驟 5

由於中樞內第 1 列已標記為已變更,因此將捨棄 RO#2 對第 1 列所做的所有變更。

步驟 6

中樞將所有變更的資料列寫入 RO#2。

1

Bill

Vong

(206)555-1212

Contoso

此次同步處理後三個資料庫的狀態
此次同步處理週期後資料會趨於一致。如果 RO#2 變更資料列,則直到下次循環週期之前,該項變更都不會寫入 RO#1。

中樞

1

Bill

Vong

(206)555-1234

Contoso

RO#1

1

Bill

Vong

(206)555-1234

Contoso

RO#2

1

Bill

Vong

(206)555-1234

Contoso

 

步驟/變更

資料列

名字

姓氏

電話

公司

步驟 1

RO#1 輪詢變更。

1

Bill

Vong

(206)555-1212

Contoso

步驟 2

整個變更的資料列寫入中樞。
將中樞內的資料列標記為已變更。

1

Bill

Vong

(206)555-1212

Contoso

步驟 3

中樞內其他標記為已變更的資料列寫入 RO#1,如此 RO#1 的同步處理就完成。

步驟 4

RO#2 輪詢變更。

1

Will

Vong

(270)555-1234

Contoso, Inc.

步驟 5

寫入中樞的已變更資料列覆寫先前的變更。

1

Will

Vong

(270)555-1234

Contoso, Inc.

步驟 6

中樞內其他標記為已變更的資料列寫入 RO#2,如此 RO#2 的同步處理就完成。

1

Will

Vong

(270)555-1234

Contoso, Inc.

此次同步處理後三個資料庫的狀態
此次同步處理週期後資料會不一致。在下一次同步處理週期,中樞內已變更的資料列會寫入 RO#1,讓該資料列與其他兩個資料庫中的內容一致。

中樞

1

Will

Vong

(270)555-1234

Contoso, Inc.

RO#1

1

Bill

Vong

(206)555-1234

Contoso

RO#2

1

Will

Vong

(270)555-1234

Contoso, Inc.

SQL 資料同步 (預覽) 是 SQL 資料庫 的一項功能。您可以從 Azure 管理入口網站執行用來建立、部署及修改同步處理群組的所有必要工作。

 

開始之前

在您開始設計和實作同步處理之前,您應該先熟悉這些主題。

如何建立同步處理群組

從 Azure 管理入口網站建立同步處理群組有六個步驟。您可以追蹤以下連結來找到每個步驟的詳細資料。

  1. 登入 Azure SQL Database 管理入口網站
    SQL 資料同步 (預覽) (只有在您建立同步處理群組後,才會以索引標籤的形式顯示在 SQL Database 下)。

  2. 安裝 SQL 資料同步 (預覽) 用戶端代理程式

  3. 向用戶端代理程式註冊 SQL Server 資料庫

  4. 建立同步處理群組 (SDS)

  5. 定義同步處理資料 (SDS)

  6. 設定同步處理群組 (SDS)

 

如何修改同步處理群組

您可以修改同步處理群組的結構描述,方法是加入/移除同步處理群組中的資料表或資料行,或者更改資料行的寬度或資料類型。您可以追蹤連結來找到詳細資料。

另請參閱

顯示:
© 2014 Microsoft