JOB MERGE 跨伺服器同步資料

2021-06-18 12:51:31 字數 881 閱讀 2241

為了解決單伺服器壓力,將庫分伺服器部署,但是原來用觸發器實現的表資料同步就實現不了了。

因為總監老大不允許 開啟分布式事務(msdtc),我又不想為了乙個幾千行的基礎資料做複製訂閱。

於是乎決定用 job+merge的方式實現。

第一步 建立乙個儲存過程(當然也可以直接寫到job中)

create procedure prc_sync_data

asbegin

set nocount on

--跨庫跨伺服器同步a到b (a,b 表結構相同)

--通過條件判斷 相同則 更新 不同則插入

merge [guagua_vas_statistics].[dbo].[t_base_goods] t --要更新的目標表

using [192.168.1.75,18991].[guagua_goods].[dbo].[t_base_goods] s --源表

on t.base_goods_id=s.base_goods_id --更新條件(即主鍵)

when matched --如果主鍵匹配,更新

then update set t.name=s.name,t.unit_name=s.unit_name

,t.depletable=s.depletable,.......

when not matched

then insert values([base_goods_id],[name],[unit_name],[depletable],....)

when not matched by source then

delete ; --目標中存在源中沒有的記錄時刪除。此處by source不能省略

end

Linux跨伺服器檔案同步

大部分已經安裝了,檢視是否安裝 密碼自定義,但要與目的伺服器一直 echo 123456 etc rsyncd.secrets vi stat2master.sh bin sh 實時同步檔案目錄 目的伺服器ip host 源伺服器目錄 src data grid 配置模組名,自定義但要與目的伺服器一...

跨伺服器查詢

select from openrowset msdasql driver server 0.uid pwd kft.dbo.user 建立乙個鏈結的伺服器 引數 1被訪問的伺服器別名 4要訪問的伺服器 exec sp addlinkedserver l ms sqloledb 0.gogo 登陸l...

跨伺服器連線

跨伺服器連線 sql語句 要替換的名稱 public static system.data.datatable sqllink string sql,string serverprefix catch exception ex return dt 例 sql 語句 select number two...