SQLServer2000同步複製技術實現步驟作SQLServer2000同步複製技術實現步驟作SQLServer2000同步複製技術實現步驟作
一、 預備工作 1.發行伺服器,訂閱伺服器都建立一個同名的windows使用者,並設定相同的密碼,做為發布快照檔案夾的有效訪問使用者 --管理工具 --電腦管理 --使用者和組 --右鍵使用者 --建立使用者 --建立一個隸屬於administrator組的登陸windows的使用者(SynUser) 2.在發行伺服器上,建立一個共用目錄,做為發布的快照檔案的存放目錄,操作: 我的電腦--D:\ 建立一個目錄,名為: PUB --右鍵這個建立的目錄 --屬性--共用 --選擇"共用該檔案夾" --通過"許可權"按紐來設定具體的使用者權限,保證第一步中建立的使用者(SynUser) 具有對該檔案夾的所有許可權 --確定 3.設定SQL代理(SQLSERVERAGENT)服務的啟動使用者(發布/訂閱伺服器均做此設定) 開始--程式--管理工具--服務 --右鍵SQLSERVERAGENT --屬性--登陸--選擇"此賬戶" --輸入或者選擇第一步中建立的windows登入使用者名稱(SynUser) --"密碼"中輸入該使用者的密碼 4.設定SQL Server身分識別驗證模式,解決串連時的許可權問題(發布/訂閱伺服器均做此設定) 企業管理器 --右鍵SQL執行個體--屬性 --安全性--身分識別驗證 --選擇"SQL Server 和 Windows" --確定 5.在發行伺服器和訂閱伺服器上互相註冊企業管理器 --右鍵SQL Server組 --建立SQL Server註冊... --下一步--可用的伺服器中,輸入你要註冊的遠程伺服器名 --添加 --下一步--串連使用,選擇第二個"SQL Server身分識別驗證" --下一步--輸入使用者名稱和密碼(SynUser) --下一步--選擇SQL Server組,也可以建立一個新組 --下一步--完成 6.對於只能用IP,不能用電腦名稱的,為其註冊伺服器別名(此步在實施中沒用到) (在串連端配置,比如,在訂閱伺服器上配置的話,伺服器名稱中輸入的是發行伺服器的IP) 開始--程式--Microsoft SQL Server--用戶端網路工具 + 生產力 --別名--添加 --網路程式庫選擇"tcp/ip"--伺服器別名輸入SQL伺服器名 --串連參數--伺服器名稱中輸入SQL伺服器ip地址 --如果你修改了SQL的連接埠,取消選擇"動態決定連接埠",並輸入對應的連接埠號碼 二、 正式配置 1、配置發行伺服器開啟企業管理器,在發行伺服器(B、C、D)上執行以下步驟: (1) 從[工具]下拉式功能表的[複製]子功能表中選擇[配置發布、訂閱伺服器和分發]出現配置發布和分發嚮導 (2) [下一步] 選擇散發者 可以選擇把發行伺服器自己作為散發者或者其他sql的伺服器(選擇自己) (3) [下一步] 設定快照檔案夾 採用預設\\servername\Pub (4) [下一步] 自訂配置 可以選擇:是,讓我設定散發資料庫屬性啟用發行伺服器或設定發布設定否,使用下列預設設定(推薦) (5) [下一步] 設定散發資料庫名稱和位置 採用預設值 (6) [下一步] 啟用發行伺服器 選擇作為發布的伺服器 (7) [下一步] 選擇需要發布的資料庫和發布類型 (8) [下一步] 選擇註冊訂閱伺服器 (9) [下一步] 完成配置 2、建立出版物發行伺服器B、C、D上 (1)從[工具]菜單的[複製]子功能表中選擇[建立和管理髮布]命令 (2)選擇要建立出版物的資料庫,然後單擊[建立發布] (3)在[建立發布嚮導]的提示對話方塊中單擊[下一步]系統就會彈出一個對話方塊。對話方塊上的內容是複製的三個類型。我們現在選第一個也就是預設的快照發布(其他兩個大家可以去看看協助) (4)單擊[下一步]系統要求指定可以訂閱該發布的資料庫伺服器類型, SQLSERVER允許在不同的資料庫如 orACLE或ACCESS之間進行資料複製。但是在這裡我們選擇運行"SQL SERVER 2000"的資料庫伺服器 (5)單擊[下一步]系統就彈出一個定義文章的對話方塊也就是選擇要出版的表注意: 如果前面選擇了事務發布 則再這一步中只能選擇帶有主鍵的表 (6)選擇發布名稱和描述 (7)自訂發布屬性 嚮導提供的選擇: 是 我將自訂資料篩選,啟用匿名訂閱和或其他自訂屬性否 根據指定方式建立發布 (建議採用自訂的方式) (8)[下一步] 選擇篩選發布的方式 (9)[下一步] 可以選擇是否允許匿名訂閱 1)如果選擇署名訂閱,則需要在發行伺服器上添加訂閱伺服器方法: [工具]->[複製]->[配置發布、訂閱伺服器和分發的屬性]->[訂閱伺服器] 中添加否則在訂閱伺服器上提取訂閱時會出現的提示:改發布不允許匿名訂閱如果仍然需要匿名訂閱則用以下解決辦法 [企業管理器]->[複製]->[發布內容]->[屬性]->[訂閱選項] 選擇允許匿名提取訂閱 2)如果選擇匿名訂閱,則配置訂閱伺服器時不會出現以上提示 (10)[下一步] 設定快照 代理程式調度 (11)[下一步] 完成配置當完成出版物的建立後建立出版物的資料庫也就變成了一個共用資料庫。 ---------------------------- --參考: /* 作者:鄒建 */ /*--同步兩個資料庫的樣本 有資料 srv1.庫名..author有欄位:id,name,phone, srv2.庫名..author有欄位:id,name,telphone,adress 要求: srv1.庫名..author增加記錄則srv1.庫名..author記錄增加 srv1.庫名..author的phone欄位更新,則srv1.庫名..author對應欄位telphone更新 --*/ --大致的處理步驟 --1.在 srv1 上建立串連伺服器,以便在 srv1 中操作 srv2,實現同步 exec sp_addlinkedserver 'srv2','','SQLOLEDB','srv2的sql執行個體名或ip' exec sp_addlinkedsrvlogin 'srv2','false',null,'使用者名稱','密碼' go --2.在 srv1 和 srv2 這兩台電腦中,啟動 msdtc(分散式交易處理服務),並且設定為自動啟動 我的電腦--控制台--管理工具--服務--右鍵 Distributed Transaction Coordinator--屬性--啟動--並將啟動類型設定為自動啟動 go --然後建立一個作業定時調用上面的同步處理預存程序就行了 企業管理器 --管理 --SQL Server代理 --右鍵作業 --新增作業 --"常規"項中輸入作業名稱 --"步驟"項 --建立 --"步驟名"中輸入步驟名 --"類型"中選擇"Transact-SQL 指令碼(TSQL)" --"資料庫"選擇執行命令的資料庫 --"命令"中輸入要執行的語句: exec p_process --確定 --"調度"項 --建立調度 --"名稱"中輸入調度名稱 --"調度類型"中選擇你的作業執行安排 --如果選擇"反覆出現" --點"更改"來設定你的時間安排 然後將SQL Agent服務啟動,並設定為自動啟動,否則你的作業不會被執行 設定方法: 我的電腦--控制台--管理工具--服務--右鍵 SQLSERVERAGENT--屬性--啟動類型--選擇"自動啟動"--確定. --3.實現同步處理的方法2,定時同步 --在srv1中建立如下的同步處理預存程序 create proc p_process as --更新修改過的資料 update b set name=i.name,telphone=i.telphone from srv2.庫名.dbo.author b,author i where b.id=i.id and (b.name <> i.name or b.telphone <> i.telphone) --插入新增的資料 insert srv2.庫名.dbo.author(id,name,telphone) select id,name,telphone from author i where not exists( select * from srv2.庫名.dbo.author where id=i.id) --刪除已經刪除的資料(如果需要的話) delete b from srv2.庫名.dbo.author b where not exists( select * from author where id=b.id) go