麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數據庫 > SQL Server > 正文

通過SQL Server 2008數據庫復制實現數據庫同步備份

2024-08-31 01:02:23
字體:
來源:轉載
供稿:網友
下面通過一個示例和大家一起學習一下如何部署SQL Server 2008數據庫復制
 
 

SQL Server 2008數據庫復制是通過發布/訂閱的機制進行多臺服務器之間的數據同步,我們把它用于數據庫的同步備份。這里的同步備份指的是備份服務器與主服務器進行實時數據同步,正常情況下只使用主數據庫服務器,備份服務器只在主服務器出現故障時投入使用。它是一種優于文件備份的數據庫備份解決方案。

在選擇數據庫同步備份解決方案時,我們評估了兩種方式:SQL Server 2008的數據庫鏡像和SQL Server 2008數據庫復制。數據庫鏡像的優點是系統能自動發現主服務器故障,并且自動切換至鏡像服務器。但缺點是配置復雜,鏡像數據庫中的數據不可見(在SQL Server Management Studio中,只能看到鏡像數據庫處于鏡像狀態,無法進行任何數據庫操作,最簡單的查詢也不行。想眼見為實,看看鏡像數據庫中的數據是否正確都不行。只有將鏡像數據庫切換主數據庫才可見)。如果你要使用數據庫鏡像,強烈推薦killkill寫的SQL Server 2005 鏡像構建手冊,我們就是按照這篇文章完成了數據庫鏡像部署測試。

最終,我們選擇了SQL Server 2008數據庫復制。

下面通過一個示例和大家一起學習一下如何部署SQL Server 2008數據庫復制。

測試環境:Windows Server 2008 R2 + SQL Server 2008 R2(英文版),兩臺服務器,一臺主數據庫服務器CNBlogsDB1,一臺備份數據庫服務器CNBlogsDB2。

復制原理:我們采用的是基于快照的事務復制。主數據庫服務器生成快照,備份庫服務器讀取并加載該快照,然后不停地從主數據庫服務器復制事務日志。見下圖:

通過SQL Server 2008數據庫復制實現數據庫同步備份

圖片來自SQL Server聯機叢書

安裝與配置步驟:

一、在兩臺服務器上安裝好SQL Server 2008 R2,主要安裝的組件:Database Engine(含SQL Server Replication),Management Tools。

二、主數據庫服務器(發布服務器)的配置:

1. 在主數據庫服務器CNBlogsDB1新建示例數據庫CNBlogsDemo(注意Recovery mode要使用默認值Full,只有這個模式才能進行事務復制),然后建立一張測試表,比如:CNBlogsTest。

通過SQL Server 2008數據庫復制實現數據庫同步備份

2. 設置存放快照的文件夾:

創建發布之前,先設置一下存放快照的文件夾,創建發布后會在該文件夾生成快照文件,訂閱服務器需要在初始化時加載該快照文件。

選擇Replication》Local Publications》屬性,在出現的窗口中選擇Publishers,如下圖:

通過SQL Server 2008數據庫復制實現數據庫同步備份

點擊紅框處的按鈕,出現設置窗口:

通過SQL Server 2008數據庫復制實現數據庫同步備份

在Default Snapshot Folder中設置快照文件存放路徑。

3. 在主數據庫服務器創建發布:

在Replication》Local Publications中選擇New Publication,出現一個向導。先選擇要發布的數據庫CNBlogsDemo,然后選擇發布類型Transational publication,如下圖:

通過SQL Server 2008數據庫復制實現數據庫同步備份

點擊Next,出現錯誤:

通過SQL Server 2008數據庫復制實現數據庫同步備份

原來所有要復制的表都需要有主鍵,剛才建CNBlogsTest表時,沒有建主鍵。建一下主鍵,并重新啟動向導就可以了。

接著選擇要復制的對象:

通過SQL Server 2008數據庫復制實現數據庫同步備份

點Next,Next,進入Snapshot Agent窗口,選擇Create a snapshot immediately and keep the snapshot available to initialize subscriptions,見下圖:

通過SQL Server 2008數據庫復制實現數據庫同步備份

Next,進入Agent Security:

通過SQL Server 2008數據庫復制實現數據庫同步備份

選擇Security Settings,進行相應的帳戶設置:

通過SQL Server 2008數據庫復制實現數據庫同步備份

一個是設置運行Snapshot Agent的Windows帳戶,我們這里選擇與SQL Server Agent同樣的帳戶。

一個是設置連接發布服務器的SQL帳戶,我們這里就用主數據庫服務器的sa帳戶。

繼續:OK,Next,Next,為這個發布起個名字:

 通過SQL Server 2008數據庫復制實現數據庫同步備份

點擊Finish,就開始正式創建發布,創建成功就會出現如下窗口:

通過SQL Server 2008數據庫復制實現數據庫同步備份

這時查看快照文件夾,就會看到unc文件夾,快照文件就在這個文件夾中。

這里要考慮這樣一個問題,如何讓訂閱服務器通過網絡訪問這個快照文件夾。

我們在這個問題上折騰了一些時間,本來想通過共享文件夾的方式,但又不想打開匿名共享,折騰了半天,沒搞定訂閱服務器訪問共享文件夾用戶驗證的問題。于是采用了FTP的方式,所以,下面介紹一下如何讓訂閱服務器通過FTP訪問快照文件。

4. 設置快照的FTP訪問

首先在主數據庫服務器上開通FTP服務,建立一個指向快照文件夾的FTP站點,設置好可以遠程連接的FTP帳戶。然后在這臺發布服務器設置一下FTP客戶端配置。配置方法如下:

在Replication》Local Publications中選擇剛才創建的發布[CNBlogsDemo]:CNBlogsDemo_Publication,選擇屬性》FTP Snapshot,如下圖:

 通過SQL Server 2008數據庫復制實現數據庫同步備份

選中Allow Subscribers to download snapshot files using FTP,并設置一下FTP客戶端連接參數,訂閱服務器就是通過這里的設置連接FTP服務器的(注:Path from the FTP root folder的設置要和上圖一樣,設置為:/ftp)。

點擊OK,這時會在快照文件夾中創建一個ftp文件夾,并在該文件夾中生成快照文件。

這樣,發布服務器就配置好了,下面配置訂閱服務器。

三、備份數據庫服務器(訂閱服務器)的配置:

進入訂閱服務器CNBlogsDB2,創建與發布服務器同名的數據庫CNBlogsDemo,使用完全恢復模式。

在Replication》Local Subscriptions中選擇New Subscriptions,進入向導。

Next,進入選擇發布服務器的窗口,選擇Find SQL Server Publisher,出現服務器連接窗口:

通過SQL Server 2008數據庫復制實現數據庫同步備份

這里要注意的是Server Name中一定要填寫發布服務器的計算機名,如果計算機名連接不上,要在hosts文件中加一個IP地址解析。

成功連接發布服務器之后,就可以看到剛才在主數據庫服務器上創建的發布:

通過SQL Server 2008數據庫復制實現數據庫同步備份

Next,進入“分發代理工作位置”的選擇窗口:

通過SQL Server 2008數據庫復制實現數據庫同步備份

 

 

我們這里選擇pull subscriptions,把數據給拉過來,這樣主數據庫服務器的負擔會輕些。

Next,選擇訂閱服務器上的數據庫,之前我們已經建好同名的數據庫,所以系統自己會找到。

Next,進入分發代理安全設置窗口:

通過SQL Server 2008數據庫復制實現數據庫同步備份

點擊紅框內的按鈕,進入設置窗口:

通過SQL Server 2008數據庫復制實現數據庫同步備份

設置如上圖,Connect to the Distributor處設置的是發布服務器的sa帳戶。

OK, Next, Next, Next:

通過SQL Server 2008數據庫復制實現數據庫同步備份

Next, Finish, Success:

通過SQL Server 2008數據庫復制實現數據庫同步備份

備份數據庫的訂閱就建好了!

現在來瞧一瞧訂閱服務器CNBlogsDB2上的用于復制的數據庫CNBlogsDemo:

通過SQL Server 2008數據庫復制實現數據庫同步備份

看!我們在發布服務器上建立的表CNBlogsTest復制過來了。

現在我們去發布服務器CNBlogsDB1上添加一條記錄:

通過SQL Server 2008數據庫復制實現數據庫同步備份

再去訂閱服務器CNBlogsDB2瞧一瞧:

通過SQL Server 2008數據庫復制實現數據庫同步備份

數據立即同步過來了!搞定!

 通過SQL Server 2008數據庫復制實現數據庫同步備份   

遇到的問題:

在測試過程中被兩個問題折騰了很長時間。

1)發布服務器的Log Reader Agent不能啟動,錯誤信息:

· The process could not execute 'sp_replcmds' on 'YCSERVER006'. (Source: MSSQL_REPL, Error number: MSSQL_REPL20011) 
Get help: http://help/MSSQL_REPL20011 
· Cannot execute as the database principal because the principal "dbo" does not exist, this type of principal cannot be impersonated, or you do not have permission. (Source: MSSQLServer, Error number: 15517) 
Get help: http://help/15517 
· The process could not execute 'sp_replcmds' on 'YCSERVER006'. (Source: MSSQL_REPL, Error number: MSSQL_REPL22037) 
Get help: http://help/MSSQL_REPL22037

開始測試時,附加了一個現有數據庫進行復制遇到了這個問題,附加的是一下SQL Server 2005數據庫文件,Owner為空,改為sa問題就解決了,如下圖:

通過SQL Server 2008數據庫復制實現數據庫同步備份

2)第二個問題就是前面已經描述過的訂閱服務器訪問發布服務器上的快照文件夾的問題,后來通過FTP的方式解決的。

對于SQL Server 2008數據庫復制,目前我就學習了這些,期待園子里有這方面經驗的朋友也來分享一下,在分享過程中你也會學到很多。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 操碰网| 亚洲一区二区三区高清视频 | 欧美一级高清片在线 | 黄色片网站在线免费观看 | 精品亚洲夜色av98在线观看 | 色就操 | 久久久久国产精品久久久久 | 久久精品视频2 | 精品亚洲福利一区二区 | 久久精品在这里 | 成人免费福利视频 | 天天操天天骑 | 国产1区在线 | 成人在线a | 亚洲欧美国产精品va在线观看 | 蜜桃精品视频 | 嫩嫩的freehdxxx | h视频在线免费观看 | 久久久久久久久久亚洲 | 国产在线导航 | 一级毛片手机在线观看 | 99亚洲伊人久久精品影院红桃 | 国产91在线亚洲 | 午夜在线视频观看 | 欧美亚洲黄色片 | 369看片你懂的小视频在线观看 | 国产精品亚洲欧美一级在线 | 国产亚洲黑人性受xxxx精品 | 国产小视频一区 | 在线视频观看国产 | 免费a级毛片大学生免费观看 | 国产在线观看一区二区三区 | 欧美大电影免费观看 | 久久99国产精品免费网站 | 欧美aaaaa一级毛片在线 | 99欧美视频 | 欧美日韩中文字幕在线视频 | av电影院在线观看 | 精品国产91久久久久 | 欧美精品久久久久久久久久 | 日本成人在线免费 |