MS SQL Server 2008數(shù)據(jù)庫怎么實現(xiàn)數(shù)據(jù)庫同步備份?
SQL Server 2008數(shù)據(jù)庫復制是通過發(fā)布/訂閱的機制進行多臺服務器之間的數(shù)據(jù)同步,我們把它用于數(shù)據(jù)庫的同步備份。這里的同步備份指的是備份服務器與主服務器進行實時數(shù)據(jù)同步,正常情況下只使用主數(shù)據(jù)庫服務器,備份服務器只在主服務器出現(xiàn)故障時投入使用。它是一種優(yōu)于文件備份的數(shù)據(jù)庫備份解決方案。
在選擇數(shù)據(jù)庫同步備份解決方案時,我們評估了兩種方式:SQL Server 2008的數(shù)據(jù)庫鏡像和SQL Server 2008數(shù)據(jù)庫復制。數(shù)據(jù)庫鏡像的優(yōu)點是系統(tǒng)能自動發(fā)現(xiàn)主服務器故障,并且自動切換至鏡像服務器。但缺點是配置復雜,鏡像數(shù)據(jù)庫中的數(shù)據(jù)不可見(在SQL Server Management Studio中,只能看到鏡像數(shù)據(jù)庫處于鏡像狀態(tài),無法進行任何數(shù)據(jù)庫操作,最簡單的查詢也不行。想眼見為實,看看鏡像數(shù)據(jù)庫中的數(shù)據(jù)是否正確都不行。只有將鏡像數(shù)據(jù)庫切換主數(shù)據(jù)庫才可見)。如果你要使用數(shù)據(jù)庫鏡像,強烈推薦killkill寫的SQL Server 2005 鏡像構(gòu)建手冊,我們就是按照這篇文章完成了數(shù)據(jù)庫鏡像部署測試。
最終,我們選擇了SQL Server 2008數(shù)據(jù)庫復制。
下面通過一個示例和大家一起學習一下如何部署SQL Server 2008數(shù)據(jù)庫復制。
測試環(huán)境:Windows Server 2008 R2 + SQL Server 2008 R2(英文版),兩臺服務器,一臺主數(shù)據(jù)庫服務器CNBlogsDB1,一臺備份數(shù)據(jù)庫服務器CNBlogsDB2。
復制原理:我們采用的是基于快照的事務復制。主數(shù)據(jù)庫服務器生成快照,備份庫服務器讀取并加載該快照,然后不停地從主數(shù)據(jù)庫服務器復制事務日志。見下圖:
圖片來自SQL Server聯(lián)機叢書
安裝與配置步驟:
一、在兩臺服務器上安裝好SQL Server 2008 R2,主要安裝的組件:Database Engine(含SQL Server Replication),Management Tools。
二、主數(shù)據(jù)庫服務器(發(fā)布服務器)的配置:
1. 在主數(shù)據(jù)庫服務器CNBlogsDB1新建示例數(shù)據(jù)庫CNBlogsDemo(注意Recovery mode要使用默認值Full,只有這個模式才能進行事務復制),然后建立一張測試表,比如:CNBlogsTest。
2. 設置存放快照的文件夾:
創(chuàng)建發(fā)布之前,先設置一下存放快照的文件夾,創(chuàng)建發(fā)布后會在該文件夾生成快照文件,訂閱服務器需要在初始化時加載該快照文件。
選擇Replication》Local Publications》屬性,在出現(xiàn)的窗口中選擇Publishers,如下圖:
點擊紅框處的按鈕,出現(xiàn)設置窗口:
在Default Snapshot Folder中設置快照文件存放路徑。
3. 在主數(shù)據(jù)庫服務器創(chuàng)建發(fā)布:
在Replication》Local Publications中選擇New Publication,出現(xiàn)一個向?qū)?。先選擇要發(fā)布的數(shù)據(jù)庫CNBlogsDemo,然后選擇發(fā)布類型Transational publication,如下圖:
點擊Next,出現(xiàn)錯誤:
原來所有要復制的表都需要有主鍵,剛才建CNBlogsTest表時,沒有建主鍵。建一下主鍵,并重新啟動向?qū)Ь涂梢粤恕?/p>
接著選擇要復制的對象:
點Next,Next,進入Snapshot Agent窗口,選擇Create a snapshot immediately and keep the snapshot available to initialize subscriptions,見下圖:
Next,進入Agent Security:
選擇Security Settings,進行相應的帳戶設置:
一個是設置運行Snapshot Agent的Windows帳戶,我們這里選擇與SQL Server Agent同樣的帳戶。
一個是設置連接發(fā)布服務器的SQL帳戶,我們這里就用主數(shù)據(jù)庫服務器的sa帳戶。
繼續(xù):OK,Next,Next,為這個發(fā)布起個名字:
點擊Finish,就開始正式創(chuàng)建發(fā)布,創(chuàng)建成功就會出現(xiàn)如下窗口:
這時查看快照文件夾,就會看到unc文件夾,快照文件就在這個文件夾中。
這里要考慮這樣一個問題,如何讓訂閱服務器通過網(wǎng)絡訪問這個快照文件夾。
我們在這個問題上折騰了一些時間,本來想通過共享文件夾的方式,但又不想打開匿名共享,折騰了半天,沒搞定訂閱服務器訪問共享文件夾用戶驗證的問題。于是采用了FTP的方式,所以,下面介紹一下如何讓訂閱服務器通過FTP訪問快照文件。
4. 設置快照的FTP訪問
首先在主數(shù)據(jù)庫服務器上開通FTP服務,建立一個指向快照文件夾的FTP站點,設置好可以遠程連接的FTP帳戶。然后在這臺發(fā)布服務器設置一下FTP客戶端配置。配置方法如下:
在Replication》Local Publications中選擇剛才創(chuàng)建的發(fā)布[CNBlogsDemo]:CNBlogsDemo_Publication,選擇屬性》FTP Snapshot,如下圖:
選中Allow Subscribers to download snapshot files using FTP,并設置一下FTP客戶端連接參數(shù),訂閱服務器就是通過這里的設置連接FTP服務器的(注:Path from the FTP root folder的設置要和上圖一樣,設置為:/ftp)。
點擊OK,這時會在快照文件夾中創(chuàng)建一個ftp文件夾,并在該文件夾中生成快照文件。
這樣,發(fā)布服務器就配置好了,下面配置訂閱服務器。
三、備份數(shù)據(jù)庫服務器(訂閱服務器)的配置:
進入訂閱服務器CNBlogsDB2,創(chuàng)建與發(fā)布服務器同名的數(shù)據(jù)庫CNBlogsDemo,使用完全恢復模式。
在Replication》Local Subscriptions中選擇New Subscriptions,進入向?qū)А?/p>
Next,進入選擇發(fā)布服務器的窗口,選擇Find SQL Server Publisher,出現(xiàn)服務器連接窗口:
這里要注意的是Server Name中一定要填寫發(fā)布服務器的計算機名,如果計算機名連接不上,要在hosts文件中加一個IP地址解析。
成功連接發(fā)布服務器之后,就可以看到剛才在主數(shù)據(jù)庫服務器上創(chuàng)建的發(fā)布:
Next,進入"分發(fā)代理工作位置"的選擇窗口:
我們這里選擇pull subscriptions,把數(shù)據(jù)給拉過來,這樣主數(shù)據(jù)庫服務器的負擔會輕些。
Next,選擇訂閱服務器上的數(shù)據(jù)庫,之前我們已經(jīng)建好同名的數(shù)據(jù)庫,所以系統(tǒng)自己會找到。
Next,進入分發(fā)代理安全設置窗口:
點擊紅框內(nèi)的按鈕,進入設置窗口:
設置如上圖,Connect to the Distributor處設置的是發(fā)布服務器的sa帳戶。
OK, Next, Next, Next:
關(guān)鍵詞:SQLServer,MSSQL,數(shù)據(jù)庫,數(shù)據(jù)庫同步備份
閱讀本文后您有什么感想? 已有 人給出評價!
- 0
- 0
- 0
- 0
- 0
- 0