程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> MsSqlServer 復制分發概述

MsSqlServer 復制分發概述

編輯:關於SqlServer
 

Replication方案可以分為Snapshot Replication, Transactional Replication, Peer-2-Peer Replication, Merge Replication。
Snapshot Replication:一般用於對於數據庫的一次性的完全復制。
Transactional Replication:用於主數據庫向從數據庫的單向復制。
具有可更新訂閱的事務性發布: 發布服務器與訂閱服務器可以獨立修改,會定時合並
Merge Replication:可以把多個數據庫中的數據進行合並後,復制到目標數據庫。

注:發布服務器上需要建立一個windows賬號,用來對分布產生的文件進行讀取與寫入,同時為了利用此賬號訪問發布數據庫,所以需要在SqlServer上創建此賬號,具體是選擇浏覽,選擇windows賬號。同時為了使sql server服務可以讀寫分布產生的文件,要將agent服務設置為此系統賬號。 而訂閱服務器上也要建立一windows賬號,是為了增大agent服務的權限,及對訂閱數據的寫操作。
一、准備工作:
1.在分發與發發數據庫上建立一個 WINDOWS 用戶,設置為管理員權限,並設置密碼,作為發布快照文件的有效訪問用戶。
2.在SQL SERVER下實現發布服務器和訂閱服務器的通信正常(即可以互訪)。打開1433端口,在防火牆中設特例
3.在發布服務器上建立一個共享目錄,作為發布快照文件的存放目錄。例如:在D盤根目錄下建文件夾名為SqlCopy
4.設置SQL 代理(發布服務器和訂閱服務器均設置) 打開服務(控制面板—管理工具—服務) —右擊SQLSERVER AGENT—屬性—登錄—選擇“此帳戶“ —輸入或選擇第一步中創建的WINDOWS 用戶 —“密碼“中輸入該用戶密碼
5.設置SQL SERVER 身份驗證,解決連接時的權限問題(發布、訂閱服務器均設置)
步驟為:對象資源管理器—-右擊SQL實例—–屬性—-安全性—-服務器身份驗證——選“SQL Server和WINDOWS“,然後點確定
6.開啟SQL Server 2005的網絡協議TCP/IP和管道命名協議並重啟網絡服務。
7.在SQL Server中創建步驟1中對應的系統用戶登陸名,作為發布數據庫的擁有者(設置為dbo_owner和public)。

二、開始:
在分發服務器上建共享文件夾
1,分發服務器上,右擊復制,建立分發,注意在指定快照路徑時需是網絡路徑,如:\\192.168.16.204\sqlCopy 204為分發服務器。 若出現運行復制分發時 “由於出現操作系統錯誤 3,進程無法讀…” 則要查看分發服務器屬性中的快照與訂閱服務器的快照是否指向了網絡連接。
2,發布服務器上,右擊復制-本地發布,建立發布
2,訂閱服務器上,右擊復制-本地訂閱,建立發布,分發代理安全性中
在以下Windows賬號下運行,此賬號指訂閱服務器的賬號,或者選擇代理
連接到分發服務器: 選擇使用以下SQL Server登陸名 分發服務器所要發布的數據庫擁有者的賬號

發布服務器配置(在發布服務器上配置發布和訂閱)
1. 選擇 復制 節點
2. 右鍵本地發布 —-下一步———系統彈出對話框看提示—-直到“指定快照文件夾“
—-在“快照文件夾“中輸入准備工作中創建的目錄(指向步驟3所建的共享文件夾)——選擇發布數據庫——-選擇發布類型——-選擇訂閱服務器類型——-選擇要發布的對象——設置快照代理——-填寫發布名稱。
3. 右鍵本地訂閱——–選擇發布服務器——-選擇訂閱方式(如果是在服務器方訂閱的話選擇推送訂閱反之選擇請求訂閱)——-填加訂閱服務器——–選擇代理計劃(一般選擇連續運行)———其余選擇默認項。

注:1)
原先數據庫的Release一般會分為三部分:1.表結構的變化(包括加/刪表,加/刪列);2.配置數據的裝載(如添加新功能的配置數據);3.刷函數與存儲過程腳本。
對於本項目中的Replication數據庫,在Release過程中需注意以下幾點:1.若新加的表需要進行Replication,除了在主數據庫創建表之外,還需配置此表進行Replicate,並進行初始化。2.若要刪除某處於Replication的表,需先取消此表的Replication,再在主、從庫中drop此表。3.若需要加/刪Replication表的列(此列不能為主鍵列)時,可以直接在主數據庫上執行腳本,變化會自動 Replicate到從數據庫。4.配置數據的裝載也只需要在主數據庫完成。5.函數與存儲過程需要在主、從庫上都進行刷新。
2)增加列、刪除列不能直接在manage studio上面操作,否則出現無法對 表’frmUser’ 執行 刪除,因為它正用於復制。 (.Net SqlClient Data Provider,此時要用sql語句。sql server的說明是:對表進行架構更改時必須使用 Transact-SQL ,在 SQL Server Management Studio 中進行架構更改時,Management Studio 將嘗試刪除並重新創建表。因為無法刪除已發布的對象,所以架構更改失敗。

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved