- 為什麼要同步SQL Server 2000 資料庫,它都用在什麼場合
- SQL Server 2000 資料庫同步配置的原理
- 從0開始一步一步配置SQL Server 2000 資料庫同步,非常細
- 已經非常熟練,可以看精品版SQL Server 2000 資料庫同步配置
- 配置SQL Server 2000 資料庫同步時的 常見問題
為什麼要同步SQL Server 2000 資料庫,它都用在什麼場合
- 資料即時備份同步,資料庫伺服器出問題時我們也有其正常工作時的備份
- 資料即時備份同步,一台伺服器負載不起時,可以用來做負載平衡
- 資料即時備份同步,資料庫伺服器可以無間斷,無損失遷移
- 主伺服器被攻擊或當機時另一台服務同步機可以應急
- 。。。。。可以說好處非常多的。暫時寫這麼多
SQL Server 2000 資料庫同步配置的原理
複製的概念
Microsoft? SQL Server? 2000 的複製是在資料庫之間對資料和資料庫物件進行複製
和分發並進行同步以確保其一致性的一組技術。
使用複製可以將資料分發到不同位置,通過區域網路、使用撥號連線、通過 Internet 分
發給遠程或移動使用者。複製還能夠使使用者提高應用程式效能,根據資料的使用方式物理
分隔資料(例如,將聯機交易處理 (OLTP) 和決策支援系統分開),或者跨越多個服務
器分布資料庫處理。
---------------------------------------------------------------------------
SQL複製的基本元素包括
發行伺服器、訂閱伺服器、散發者、發布、項目
發行伺服器
發行伺服器是提供資料以便複製到其它伺服器的伺服器。發行伺服器可以具有一個或多個
發布,每個發布代表一組邏輯相關的資料。除了指定其中哪些資料需要複製之外,發布服
務器還檢測事務複製期間發生更改的資料並維護有關此網站上所有發布的資訊。
散發者
散發者是作為散發資料庫宿主並儲存曆史資料和/或事務以及中繼資料的伺服器。分發
伺服器的角色根據執行的複製類型而不同。有關更多資訊,請參見複製類型。
遠端散發者是獨立於發行伺服器並配置為複製的散發者的伺服器。本地分發服務
器是既配置為複製的發行伺服器又配置為複製的散發者的伺服器。
訂閱伺服器
訂閱伺服器是接收複製資料的伺服器。訂閱伺服器訂閱的是發布而不是發布中分離的項目;
並且訂閱伺服器只訂閱其需要的發布,而不是發行伺服器上所有可用的發布。根據複製的類
型和所選擇的複製選項,訂閱伺服器還可以將資料更改傳播回傳布伺服器或將資料重新發布
到其它訂閱伺服器。
發布
發布是一個資料庫中的一個或多重專案的集合。這種多重專案的分組使得指定邏輯相關的一
組資料和資料庫物件以一起複製變得更容易。
項目
項目是指定要複製的資料表、資料分區或資料庫物件。項目可以是完整的表、某幾列(使用垂
直篩選)、某幾行(使用水平篩選)、預存程序或視圖定義、預存程序的執行、視圖、索引檢視表
或使用者定義函數。
訂閱
訂閱是對資料或資料庫物件的複本的請求。訂閱定義將接收的發布和接收的時間、地點。訂閱的
同步或資料分發可以由發行伺服器(強制訂閱)或訂閱伺服器(提取訂閱)請求。發布可以支援
強制訂閱和提取訂閱的混合。
---------------------------------------------------------------------------
SQL複製的工作原理
SQL SERVER 主要採用出版物、訂閱的方式來處理複製。來源資料所在的伺服器是出版服務
器,負責發表資料。出版伺服器把要發表的資料的所有改變情況的拷貝複製到散發者
散發者包含有一個散發資料庫,可接收資料的所有改變,並儲存這些改變,再把這些
改變分發給訂閱伺服器
精品版SQL Server 2000 資料庫同步配置
SQL SERVER複製技術類型,三種複製技術,分別是(詳細的說明參考SQL線上說明):
1、快照式複寫
2、事務複製
3、合併式複寫
下介紹實現複製的步驟。(以快照式複寫為例)
準備工作:
1.發行伺服器,訂閱伺服器都建立一個同名的windows使用者,並設定相同的密碼,做為發布快照檔案夾的有效訪問使用者
我的電腦
--控制台
--管理工具
--電腦管理
--使用者和組
--右鍵使用者
--建立使用者
--建立一個隸屬於administrator組的登陸windows的使用者
2.在發行伺服器上,建立一個共用目錄,做為發布的快照檔案的存放目錄,操作:
我的電腦--D:\ 建立一個目錄,名為: PUB
--右鍵這個建立的目錄
--屬性--共用
--選擇"共用該檔案夾"
--通過"許可權"按紐來設定具體的使用者權限,保證第一步中建立的使用者具有對該檔案夾的所有許可權
--確定
3.設定SQL代理(SQLSERVERAGENT)服務的啟動使用者(發布/訂閱伺服器均做此設定)
開始--程式--管理工具--服務
--右鍵SQLSERVERAGENT
--屬性--登陸--選擇"此賬戶"
--輸入或者選擇第一步中建立的windows登入使用者名稱
--"密碼"中輸入該使用者的密碼
4.設定SQL Server身分識別驗證模式,解決串連時的許可權問題(發布/訂閱伺服器均做此設定)
企業管理器
--右鍵SQL執行個體--屬性
--安全性--身分識別驗證
--選擇"SQL Server 和 Windows"
--確定
5.在發行伺服器和訂閱伺服器上互相註冊
企業管理器
--右鍵SQL Server組
--建立SQL Server註冊...
--下一步--可用的伺服器中,輸入你要註冊的遠程伺服器名 --添加
--下一步--串連使用,選擇第二個"SQL Server身分識別驗證"
--下一步--輸入使用者名稱和密碼(一般是sa,密碼最好設定一下非常複雜的)
--下一步--選擇SQL Server組,也可以建立一個新組
--下一步--完成
6.對於只能用IP,不能用電腦名稱的,為其註冊伺服器別名
(在串連端配置,比如,在訂閱伺服器上配置的話,伺服器名稱中輸入的是發行伺服器的IP)
開始--程式--Microsoft SQL Server--用戶端網路工具 + 生產力
--別名--添加
--網路程式庫選擇"tcp/ip"--伺服器別名輸入SQL伺服器名
--串連參數--伺服器名稱中輸入SQL伺服器ip地址
--如果你修改了SQL的連接埠,取消選擇"動態決定連接埠",並輸入對應的連接埠號碼
==============================================================================
正式開始:
1.配置發行伺服器
a. 選中指定 [伺服器] 節點
b. 從 [工具] 下拉式功能表的 [複製] 子功能表中選擇 [發布、訂閱伺服器和分發] 命令
c. 系統彈出一個對話方塊點 [下一步] 然後看著提示操作
--直到"指定快照檔案夾"
--在"快照檔案夾"中輸入準備工作中建立的目錄: \\<伺服器名>\pub
一[下一步] 直操作到完成。
d. 當完成了出版伺服器的設定以後系統會為該伺服器的樹形結構中添加一個複製監視器
同時也產生一個散發資料庫(distribution)
---------------------------------------------------------------------------
2.建立發布
a. 選中指定的伺服器
b. 從 [工具] 菜單的 [複製] 子功能表中選擇 [建立和管理髮布] 命令。此時系統會彈出
一個對話方塊
c. 選擇要建立發布的資料庫,然後單擊 [建立發布]
d. 在 [建立發布嚮導] 的提示對話方塊中單擊 [下一步] 系統就會彈出一個對話方塊。對話
框上的內容是複製的三個類型。我們現在選第一個也就是預設的快照發布(其他兩個
大家可以去看看協助)
e. 單擊 [下一步] 系統要求指定可以訂閱該發布的資料庫伺服器類型,SQLSERVER允許在
不同的資料庫如 ORACLE或ACCESS之間進行資料複製。但是在這裡我們選擇運行
"SQL SERVER 2000"的資料庫伺服器
f. 單擊 [下一步] ,選擇要發布的對象(如表,視圖,預存程序,一般是表)
g. 然後 [下一步] 直到操作完成。當完成出版物的建立後建立出版物的資料庫也就變成了
一個共用資料庫。
---------------------------------------------------------------------------
3.設計訂閱
a. 選中指定的訂閱伺服器
b. 從 [工具] 下拉式功能表中選擇 [複製] 子功能表的 [提取訂閱]
c. 按照提示單擊 [下一步] 操作直到系統會提示檢查SQL SERVER代理服務的運行狀態,執行
複製操作的前提條件是SQL SERVER代理服務必須已經啟動。(選擇一發行伺服器,然後選擇你要的一個發布,一次只能添加一下,然後建立一個同名的資料庫,一路下一步就可以了,其它資料庫也這樣來。操作過程中可能會出現說伺服器不支援匿名什麼來著,需要在發行伺服器上右擊一個發布,訂閱選項,允許匿名提取訂閱選中就可以了。)
d. 單擊 [完成] 完成訂閱操作。
----------------------------------------------------------------------------
完成上面的步驟其實複製也就是成功了。但是如何來知道複製是否成功了呢?
這裡可以通過這種方法來快速看是否成功。
展開出版伺服器下面的複製——發布內容——右鍵發布內容——屬性——擊活——狀態然後點立即運行代理程式接著點代理程式屬性擊活調度
把調度設定為每一天發生,每一分鐘,在0:00:00和23:59:59之間。
接下來就是判斷複製是否成功了打
開C:\Program Files\Microsoft SQL Server\MSSQL\REPLDATA\unc\XIAOWANGZI_database_database下面
看是不是有一些以時間做為檔案名稱的檔案夾差不多一分中就產生一個。
要是你還不信的話就開啟你的資料庫看在訂閱的伺服器的指定訂閱資料庫下看是不是看到了你剛才所發布的表
從0開始一步一步配置SQL Server 2000 資料庫同步,非常細
首先,一般情況下資料庫安裝好後,在企業管理器裡看到的sql註冊是(local)(Windows NT),
SQL Server 複製不支援暱稱,例如使用“.”或“(local)”作為伺服器名。
刪除該伺服器的 SQL Server 註冊並使用實際的伺服器名對它進行註冊。
我把先把這個刪除,右擊他,選擇刪除sql server 註冊 。。然後建立註冊,右擊Sql server組,建立Sql server 註冊 下一步--》可用的伺服器裡有你的電腦名稱,點中間的添加,添加到“添加的伺服器裡”--下一步--》下一步--》下一步--》完成
單擊剛剛以電腦名稱建好的sql server 註冊,以選中它--》工具--》複製--》配置發布、訂閱伺服器和分發。。。--》下一步--》下一步--》出現“SEOGIRL”上的 SQL Server Agent當前在使用系統帳戶,它會導致伺服器之間的複製失敗。在下列對話方塊中,為服務啟動帳戶另外指定一個帳戶。--》確定,選擇“本帳戶”(這時進入系統建立一個帳戶比如SQL120),使用者名稱輸入"SEOGIRL\SQL120",輸入密碼,確定,出現:所做的一個或多個更改只有在 SQL Server Agent重新啟動後才會生效。現在要停止並重新啟動 SQL Server Agent嗎?,確定,確定,--》下一步--》下一步--》快照檔案夾路徑“\\SEOGIRL\D$\Program Files\Microsoft SQL Server\MSSQL\ReplData”使用特殊的共用名稱,該名稱通常只能由在電腦“SEOGIRL”上有系統管理權限的登入訪問。此共用可能不能由在其它電腦上啟動並執行代理程式訪問,例如提取訂閱的代理程式。
確實要使用此快照檔案夾路徑嗎?
--》否,因為這個路徑是沒辦法提取訂閱的代理程式,咱們建一個檔案夾D:\ReplData,在這個檔案夾的屬性裡設定“共用此檔案夾”,點擊“許可權”設定everyone為完全。--》確定後退出--》返回咱們剛才的“快照檔案夾”,在裡邊 輸入“\\SEOGIRL\ReplData”--》下一步--》下一步--》完成--》關閉
開啟企業管理器--》選中發行伺服器--》工具--》複製--》配置發布、訂閱伺服器和分發。。。--》下一步--》下一步--》下一步--》否,選擇一個快照檔案夾位置,\\seogirl\ReplData--》下一步--》--》--》--》--》--》--》--》
“SEOGIRL”上的 SQL Server Agent當前在使用系統帳戶,它會導致伺服器之間的複製失敗。在下列對話方塊中,為服務啟動帳戶另外指定一個帳戶。
“SEOGIRL”上的 SQL Server Agent使用系統帳戶,所以伺服器之間的 SQL Server 複製將會失敗。若要在伺服器之間使用複製,請選擇另一個伺服器器作為“SEOGIRL”的散發者。
“SQL120”不是有效 Windows NT 名稱。請給出完整名稱: <域\使用者名稱>。
輸入"administrator"時提示以下錯誤:
錯誤 15407: 'administrator' 不是有效 Windows NT 名稱。請給出完整名稱: <域\使用者名稱>。
系統出現兩個選擇 一個是 是,將SQL server代理服務配置為自動啟動
另一個是 否,我將手工啟動 SQL server Proxy 伺服器
然後選那個呢?
我兩個都試過了 然後出現快照檔案夾
\\XXLJD\F$\Program Files\Microsoft SQL Server\MSSQL\ReplData
系統提示 不是有效檔案名稱或路徑
接下去就弄不了 哪位大哥幫幫忙啊
1。 一個是 是,將SQL server代理服務配置為自動啟動
另一個是 否,我將手工啟動 SQL server Proxy 伺服器
說明:這個選擇是或者否都可以。是:則系統自己啟動Proxy 伺服器
否:你自己手工的啟動Proxy 伺服器
這就是區別。
2。
\\XXLJD\F$\Program Files\Microsoft SQL Server\MSSQL\ReplData
系統提示 不是有效檔案名稱或路徑
這樣修改:1。建立一個檔案夾在ntfs分區上,如:D:\ReplData
2.共用這個檔案夾 --右擊檔案夾-屬性-共用
3。同時在相同的介面-有許可權-設定為everyone-完全控制的許可權
這樣就可以了。
4.路徑裡輸入\\電腦名稱\ReplData
配置SQL Server 2000 資料庫同步時的 常見問題
問題:SQL Server 複製不支援暱稱,例如使用“.”或“(local)”作為伺服器名。
回答:刪除該伺服器的 SQL Server 註冊並使用電腦名稱進行註冊。
問題:“SEOGIRL”上的 SQL Server Agent當前在使用系統帳戶,它會導致伺服器之間的複製失敗。在下列對話方塊中,為服務啟動帳戶另外指定一個帳戶。
回答:應該先建一個有Administrator 群組許可權的帳戶,然後用在這。
問題:快照檔案夾路徑“\\SEOGIRL\D$\Program Files\Microsoft SQL Server\MSSQL\ReplData”使用特殊的共用名稱,該名稱通常只能由在電腦“SEOGIRL”上有系統管理權限的登入訪問。此共用可能不能由在其它電腦上啟動並執行代理程式訪問,例如提取訂閱的代理程式。確實要使用此快照檔案夾路徑嗎?
回答:在D盤或你別的盤建一個檔案夾如:D:\pub,設為共用,並把上面那個建立 的使用者加到這裡面設為完全控制,快照路徑裡寫\\電腦名稱\pub
問題:“SQL120”不是有效 Windows NT 名稱。請給出完整名稱: <域\使用者名稱>。
解決:使用:電腦名稱\使用者名稱。
另一種配置方法
******************************************************************************
我是如何設定的:
1。準備工作
設定一個公用目錄並保證2台伺服器有許可權。
2。右鍵發行伺服器——屬性——複製——配置——建立散發者,並設定發行伺服器和發行集資料庫,
然後給予訂閱伺服器許可權。
3。依次展開:發行伺服器——將要發布的資料庫——右鍵發布內容——建立發布。
4。右鍵剛剛建立的發布——屬性——狀態——立即運行代理程式——代理程式屬性中設定調度並啟動。
4。右鍵剛剛建立的發布——屬性——訂閱——強制建立。
有時候會看不到建立立的項目,重新進就可以了。
--------------------------------------------------------------------------------
經過測試,可以順利實現資料庫結構的初始化和資料的單向同步(也就是訂閱伺服器的資料可以及時更新為發行伺服器的資料)。
準備工作:
>>資料的同步中主要考慮的三部分,可以理解成三台主機。發行伺服器,散發者和訂閱伺服器;可以從字面的意思理解,要實現的功能實際就是讓訂閱伺服器通過散發者保持資料及時地和發行伺服器上的資料一致。整個執行過程是這樣一來的:
a.訂閱伺服器應該有個初始化,一般來說我們開始做這個同步任務的時候,發行伺服器已經有了相當的資料量了,而我們的訂閱伺服器應該是建立的服務。即使發布中沒有資料,也需要把他的資料庫結構初始化到訂閱伺服器上。
b. 我採用的是事物複製,發行伺服器的資料發生變化後,相當於觸發了一個更新操作,而事物複製可以在設定的時間把資料更新的操作更新到訂閱伺服器中去。當然, 這個操作需要經過散發者。在我的測試中,我是把發行伺服器和散發者設定為同一台主機,可以順利實現資料在數分鐘內同步。
> >在操作的起始,需要考慮訂閱伺服器是否有和發行伺服器相同結構的資料庫,如果有,需要做的就是使用代理把發行伺服器現有的資料初始化過去;如果沒 有對應的相同結構的資料庫,就需要要把發行伺服器當前的資料庫結構和當前的資料都初始化到訂閱伺服器中。當然這裡所說的操作都是在下面的實施步驟中實現, 不需要單獨處理。
>>如果說對Windows系統有所要求的話,就應該保證這三個伺服器(發布,分發,訂閱)在同個域中,以同一個網域系統管理員帳號身份運行,操作如下:
a.進入相應的伺服器,控制台->服務->SQLSERVERAGENT,設定登入,三台伺服器同樣設定。
b.操作前,也不允許這三台伺服器對應的別名使用呢稱,比如"LOCAL",這樣的別名要刪除重建,可以採用主機名稱,比如:server02.
下面開始執行資料庫同步的操作:
>>配置發行伺服器和散發者:
a.選中對應伺服器的註冊名->工具->複製->配置發布、訂閱和分發,直接按照預設設定向下執行,直到完成。關閉。
b. 再一次選中這個伺服器伺服器的註冊名->工具->複製->配置發布、訂閱和分發,可以看到這次介面和步驟a中的介面有所不同,我們只需 要配置一下 發行伺服器,發行集資料庫,訂閱伺服器。(我的發行集資料庫採用的是事物性的)。點“確定”完成操作。<標記P>
> >建立發布,可以選中相應的註冊,用工具->複製->建立和管理髮布或者在該註冊下面的 複製->發布內容 選中後,在右邊空白處,右鍵,建立發布,來建立你的發布。我選擇的是事物發布,按照預設設定,選擇你要發布的表或其他對象,其他地方不需要修改,直到完成 操作。
>>修改發布屬性:選擇“狀態”->立即運行代理程式;代理程式屬性->設定你的調度,比如一分鐘一次。(調度->編輯->更改;通知->寫入windows應用程式事件記錄檔),"確定"完成操作。
>>建立訂閱:選擇發行伺服器對應的註冊,複製->發布內容->在這個內容上右鍵,強制新訂閱,->"下一步",選擇訂閱伺服器(在標記P那一步選擇的訂閱伺服器)->“下一步”->選擇你有的資料庫,或者建立一個資料庫
->"下一步"-> 修改你需要的調度->按照預設設定,直到完成。
到 這裡就可以完成了,修改發行者資料庫中的內容,等一兩分鐘,資料就同步到訂閱伺服器中了。不過由於第一次執行需要快照,如果發布庫中有一定的內容,第 一次執行可能需要幾分鐘時間。如果資料不能同步過去,大家是調度設定時間太短(比如1分鐘)使快照不能完成,所以後面的步驟無法執行,遇到這樣的情況的 話,
選中你發布的內容,設定屬性,在“狀態”中“立即運行代理程式”,這樣的話,資料會馬上同步過去的。
--------------------------------------------------------------------------------
http://www.itpub.net/showthread.php?threadid=558706
--------------------------------------------------------------------------------
http://blog.csdn.net/renzhe2008/relatedarticles/1717005.aspx