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)選擇要建立出版物的資料庫,然後單擊[建立發布]
(4)單擊[下一步]系統要求指定可以訂閱該發布的資料庫伺服器型別,
sqlserver允許在不同的資料庫如 oracle或access之間進行資料複製。
但是在這裡我們選擇執行"sql server 2000"的資料庫伺服器
注意: 如果前面選擇了事務發布 則再這一步中只能選擇帶有主鍵的表
(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
SQLServer2000同步複製技術實現步驟
一 預備工作 1.發布伺服器,訂閱伺服器都建立乙個同名的windows使用者,並設定相同的密碼,做為發布快照資料夾的有效訪問使用者 管理工具 計算機管理 使用者和組 右鍵使用者 新建使用者 建立乙個隸屬於administrator組的登陸windows的使用者 synuser 2.在發布伺服器上,新...
SQLServer2000同步複製技術實現步驟
一 預備工作 1.發布伺服器,訂閱伺服器都建立乙個同名的windows使用者,並設定相同的密碼,做為發布快照資料夾的有效訪問使用者 管理工具 計算機管理 使用者和組 右鍵使用者 新建使用者 建立乙個隸屬於administrator組的登陸windows的使用者 synuser 2.在發布伺服器上,新...
SQLServer2000同步複製技術實現步驟
同步兩個資料庫的示例 有資料 srv1.庫名.author有欄位 id,name,phone,srv2.庫名.author有欄位 id,name,telphone,adress 要求 srv1.庫名.author增加記錄則srv1.庫名.author記錄增加 srv1.庫名.author的phone...