接下來就可以用sql server企業管理器裡[複製]-> 右鍵選擇
->[配置發布、訂閱伺服器和分發]的圖形介面來配置資料庫複製了。
下面是按順序列出配置複製的步驟:
一、建立發布和分發伺服器
[歡迎使用配置發布和分發嚮導]->[選擇分發伺服器]
->[使"@servername"成為它自己的分發伺服器,sql server將建立分發資料庫和日誌]
->[制定快照資料夾]-> [自定義配置] -> [否,使用下列的預設配置] -> [完成]
上述步驟完成後, 會在當前"@servername" sql server資料庫裡建立了乙個distribion庫和
乙個distributor_admin管理員級別的使用者(我們可以任意修改密碼)
伺服器上新增加了四個作業:
[ **程式歷史記錄清除: distribution ]
[ 分發清除: distribution ]
[ 複製**程式檢查 ]
[ 重新初始化存在資料驗證失敗的訂閱 ]
sql server企業管理器裡多了乙個複製監視器, 當前的這台機器就可以發布、分發、訂閱了。
我們再次在sql server企業管理器裡[複製]-> 右鍵選擇
->[配置發布、訂閱伺服器和分發],可以看到類似下圖:
我們可以在 [發布伺服器和分發伺服器的屬性] 視窗
-> [發布伺服器] -> [新增] -> [確定]
-> [發布資料庫] -> [事務]/[合併] -> [確定]
-> [訂閱伺服器] -> [新增] -> [確定]
把網路上的其它sql server伺服器新增成為發布或者訂閱伺服器.
新增一台發布伺服器的選項:
我這裡新建立的jin001發布伺服器是用管理員級別的資料庫使用者test連線的,
到發布伺服器的管理鏈結要輸入密碼的可選框, 預設的是選中的,
在新建的jin001發布伺服器上建立和分發伺服器fengyu/fengyu的鏈結的時需要輸入distributor_admin使用者的密碼
到發布伺服器的管理鏈結要輸入密碼的可選框,也可以不選,
也就是不需要密碼來建立發布到分發伺服器的鏈結(這當然欠缺安全,在測試環境下可以使用)
新增一台訂閱伺服器的選項:
二、新建立的網路上另一台發布伺服器(例如jin001)選擇分發伺服器
[歡迎使用配置發布和分發嚮導]->[選擇分發伺服器]
-> 使用下列伺服器(選定的伺服器必須已配置為分發伺服器) -> [選定伺服器](例如fengyu/fengyu)
-> [下一步] -> [輸入分發伺服器(例如fengyu/fengyu)的distributor_admin使用者的密碼兩次]
-> [下一步] -> [自定義配置] -> [否,使用下列的預設配置]
-> [下一步] -> [完成] -> [確定]
建立乙個資料庫複製發布的過程:
[複製] -> [發布內容] -> 右鍵選擇 -> [新建發布]
-> [下一步] -> [選擇發布資料庫] -> [選中乙個待發布的資料庫]
-> [下一步] -> [選擇發布型別] -> [事務發布]/[合併發布]
-> [下一步] -> [指定訂閱伺服器的型別] -> [執行sql server 2000的伺服器]
-> [下一步] -> [指定專案] -> [在事務發布中只可以發布帶主鍵的表] -> [選中乙個有主鍵的待發布的表]
->[在合併發布中會給表增加唯一性索引和 rowguidcol 屬性的唯一識別符號字段[rowguid],預設值是newid()]
(新增新列將: 導致不帶列列表的 insert 語句失敗,增加表的大小,增加生成第乙個快照所要求的時間)
->[選中乙個待發布的表]
-> [下一步] -> [選擇發布名稱和描述] ->
-> [下一步] -> [自定義發布的屬性] -> [否,根據指定方式建立發布]
-> [下一步] -> [完成] -> [關閉]
發布屬性裡有很多有用的選項:設定訂閱到期(例如24小時)
設定發布表的專案屬性:
常規視窗可以指定發布目的表的名稱,可以跟原來的表名稱不一樣。
下圖是命令和快照視窗的欄目
( sql server 資料庫複製技術實際上是用insert,update,delete操作在訂閱伺服器上重做發布伺服器上的事務操作
看文件資料需要把發布資料庫設成完全恢復模式,事務才不會丟失
但我自己在測試中發現發布資料庫是簡單恢復模式下,每10秒生成一些大事務,10分鐘後再收縮資料庫日誌,
這期間發布和訂閱伺服器上的作業都暫停,暫停恢復後並沒有丟失任何事務更改 )
發布表可以做資料篩選,例如只選擇表裡面的部分列:
例如只選擇表裡某些符合條件的記錄, 我們可以手工編寫篩選的sql語句:
發布表的訂閱選項,並可以建立強制訂閱:
成功建立了發布以後,發布伺服器上新增加了乙個作業: [ 失效訂閱清除 ]
分發伺服器上新增加了兩個作業:
[ jin001-dack-dack-5 ] 型別[ repl快照 ]
[ jin001-dack-3 ] 型別[ repl日誌讀取器 ]
上面藍色字的名稱會根據發布伺服器名,發布名及第幾次發布而使用不同的編號
repl快照作業是sql server複製的前提條件,它會先把發布的表結構,資料,索引,約束等生成到發布伺服器的os目錄下檔案
(當有訂閱的時候才會生成, 當訂閱請求初始化或者按照某個時間表排程生成)
repl日誌讀取器在事務複製的時候是一直處於執行狀態。(在合併複製的時候可以根據排程的時間表來執行)
建立乙個資料庫複製訂閱的過程:
[複製] -> [訂閱] -> 右鍵選擇 -> [新建請求訂閱]
-> [下一步] -> [查詢發布] -> [檢視已註冊伺服器所做的發布]
-> [下一步] -> [選擇發布] -> [選中已經建立發布伺服器上的資料庫發布名]
-> [下一步] -> [指定同步**程式登入] -> [當**程式連線到**伺服器時:使用sql server身份驗證]
(輸入發布伺服器上distributor_admin使用者名稱和密碼)
-> [下一步] -> [選擇目的資料庫] -> [選擇在其中建立訂閱的資料庫名]/[也可以新建乙個庫名]
-> [下一步] -> [允許匿名訂閱] -> [是,生成匿名訂閱]
-> [下一步] -> [初始化訂閱] -> [是,初始化架構和資料]
-> [下一步] -> [快照傳送] -> [使用該發布的預設快照資料夾中的快照檔案]
(訂閱伺服器要能訪問發布伺服器的repldata資料夾,如果有問題,可以手工設定網路共享及共享許可權)
-> [下一步] -> [快照傳送] -> [使用該發布的預設快照資料夾中的快照檔案]
-> [下一步] -> [設定分發**程式排程] -> [使用下列排程] -> [更改] -> [例如每五分鐘排程一次]
-> [下一步] -> [啟動要求的服務] -> [該訂閱要求在發布伺服器上執行sqlserveragent服務]
-> [下一步] -> [完成] -> [確定]
成功建立了訂閱後,訂閱伺服器上新增加了乙個類別是[repl-分發]作業(合併複製的時候類別是[repl-合併])
它會按照我們給的時間排程表執行資料庫同步複製的作業
檢視它的歷史記錄運**況,例圖
在分發伺服器的[複製監視器]->[發布伺服器]->[發布名稱]->[日誌讀取器]->右鍵選擇->[**程式歷史記錄]
複製分發資料庫
sql服務 sql 登入身份設定為 localsystem 準備 1.修改布伺服器 訂閱伺服器和見證伺服器上的sqlserver服務賬號和sqlserver agent的服務賬號,使三者之間的使用者名稱和密碼一致。方法 configuration tools sqlserver configurat...
MS SQL入門基礎 複製監視器
在sql server 中,複製是功能最為強大而又最為複雜的元件,所以在具體的應用中複製出現錯誤是難以避免的事情。但同時令人欣慰的是,sql server 提供了複製管理工具 複製監視器來幫助dba 查出複製錯誤發生的原因。利用複製監視器可以 瀏覽所有的出版者出版物以及由該分發者所支援的訂購 瀏覽複...
MS SQL 鎖與事務
ms sql 鎖與事務 加鎖的主要目的是為了防止併發操作時導致的資料不一致等問題,鎖分為共享鎖 s 更新鎖 u 排他鎖 x 共享鎖與更新只是單向相容?傳說中的單相思?事務事務能保證資料操作的原子性,要麼內部操作都提交,要麼都回退。事務內部某個地方出錯時,可以回滾前面的操作,比如更新 刪除等。複製 b...