認識 SharePoint 2007 系列【17】-【WSS 3.0】以 STSADM 備份檔為網站範本的應用

認識 SharePoint 2007 系列【17】-【WSS 3.0】以 STSADM 備份檔為網站範本的應用

網站的備份與轉移,在前一篇 快速複製網站 可略知一二,相信對於使用 STSADM 建立網站的備份與還原應該不陌生。

當我們在建立 WSS 網站時,可能會將網站另存為 *.stp 的網站範本做為其他網站建置的標準,然而,當這個要成為網站範本的網站包含子網站時,問題就來了。什麼問題呢?即 *.stp 的網站範本是無法包含子網站的;那麼,建立好的網站包含了子網站,但 *.stp 的網站範本卻又無法包含子網站,這該如何是好?本文就是要告訴大家:

1. 如何以 STSADM 備份檔做 *.dat 網站範本

2. 在子網站集合使用 *.dat 網站範本的問題

3. 建立新的內容資料庫以在子網站集合回存 *.dat 網站範本

P.S. 為了與 *.stp 網站範本檔做個區別,在此將 STSADM 備份的 *.dat 檔命名為 *.dat 網站範本

1. 如何以 STSADM 備份檔做 *.dat 網站範本

當一個網站包含子網站,又想將此網站變成網站範本時,該怎麼做?先給個提示,就是使用 STSADM 網站備份與還原的方式,使用此備份方式,將整個網站包含子網站儲存成 *.dat 檔來做運用!

首先,我們看到 http://anginb:8020 網站包含了一個 Blog 頁籤,這個 Blog 頁籤所連結的是一個 Blog 子網站,如第二張圖所示。





這時打算將此 8020 網站變成網站範本,所以使用 STSADM 將整個網站進行備份,而 STSADM 的備份機制是可以包含子網站的。如下使用 STSADM 指令先將 8020 網站進行備份,備份出的 BAK8020.dat 即可視為一個包含子網站的 *.dat 網站範本!



接著,打算在 http://anginb:8030/ 將此網站範本還原,所以在管理中心建立一個 port 為 8030 的 Web 應用程式;建立了新的 Web 應用程式時,系統將建立一個內容資料庫,在此命名為 WSSContent8030。先到 Content Databases 看一下,Current Number of Sites 是 0。



在不建立網站集合的情況下,直接進行網站還原



還原成功後,到 http://anginb:8030/ 看看,果然網站與 Blog 子網站都還原了。



再到 8030 的 Content Databases,Current Number of Sites 是 1。



所以,從上我們可以知道使用 STSADM 的備份檔,是可以做為網站範本的!接下來要進行在子網站集合也進行 *.dat 檔的網站範本的還原。

2. 在子網站集合使用 *.dat 網站範本的問題

在說明本議題之前,先來解釋一下子網站與子網站集合的意義:

l 子網站: http://anginb:8030/blog 此blog 是 anginb:8030 這個頂層網站下的子網站。

l 子網站集合: http://anginb:8030/sites/blog 此 blog 是獨立的網站集合,可以說是 anginb:8030 路徑下的一個網站集合,它可以擁有自己的子網站;在WSS的架構下,一旦在Web應用程式建立了頂層網站集合 (http://anginb:8030/) 後,再以此頂層網站集合建立網站集合時,就會使用 sites 來建立子網站集合,如圖所示。


同樣的,在不建立網站集合的情況下,直接在 http://anginb:8030/sites/subsite 這個URL下直接回存 BAK8020.dat 的這個網站範本!耶!系統反應沒有內容資料庫?怎麼會呢?



為什麼會這樣?關於這個問題,小弟另闢主題再做探討,系統既然反應沒有內容資料庫,那就建立一個新的內容資料庫,先解決這個問題吧!

3. 建立新的內容資料庫以在子網站集合回存 *.dat 網站範本

在 Application Management 的 Add a content database,建立一個命名為 WSSContent8030Sub 的內容資料庫,輸入資訊如下:



完成之後,可以看到在 8030 有兩個內容資料庫,一個是 WSSContent8030,另一個是剛剛建立的 WSSContent8030Sub。



使用命令模式再次進行還原,果然還原成功了!先到內容資料庫,看看有什麼變化!



在 WSSContent8030Sub 的 CurrentNumber of Sites 值為 1,代表在此內容資料庫有一個網站!



再到 Site Collection List 看一下 http://anginb:8030/sites/subsite 的資訊,發現此網站集合果然使用 WSSContent8030Sub 資料庫!



最後,連到 http://anginb:8030/sites/subsite 看一下!果然整個網站內容,包含子網站都還原了!



從本篇的內容,相信您已經知道:

1. STSADM 所建立的 *.dat 檔可以做為網站範本並加以運用

2. Web 應用程式建立新內容資料庫的方法

3. 使用內容資料庫瞭解目前內容資料庫所包含的網站數

4. 使用 Site Collection List ( 網站集合清單 ) 查看各網站所使用的內容資料庫

後記…

ㄜ,這後記非寫不可,但寫這後記又覺得很心酸!這篇文章是在每日通勤的捷運上與下班回家的晚上,花了整整一個星期,seven days of week,在不斷的建立 Web 應用程式、建立網站集合、備份網站、還原網站;幾乎每日被女友問:你還在弄文章嗎?怎麼還沒弄完,很沒效率ㄟ…等抱怨下完成的!最麻煩的是在本文第二點與第三點的部分,為了說明連自己都不太清楚原因與機制的問題,花了四天的時間,增修好幾次;在今天,最後決定將它拆成第二篇文章做說明,這才解脫了這篇文章永遠寫不完的窘境!其實發現拆出來也有好處,這樣各位讀者就不會迷失在這篇似乎永遠說明不完的文章中,使本文能夠更專注於本篇的主題,不至於失去焦點!

這篇文章到底對各位讀者有沒幫助,小弟也不知道,只是會有這樣的文章,是去年11 月做案子的時候,遇到 *.stp 網站範本竟然沒辦法包含子網站,花了兩天的時間,找到這樣的方法,解決了使用網站範本建立 15 個子機關網站的問題,而且,每個機關還擁有自己獨立的內容資料庫做備份與還原!

如果問小弟,為什麼一定要把這篇寫出來,一口氣吧!其實很想放棄,但不甘心,且覺得這個方法一定要留下來,不然日後一定會忘記!哈哈!最後,還是感謝女友抱怨歸抱怨,但沒有不理我,哈哈~~~

至於第二篇的說明,請大家稍等囉!呼 ~~~

P.S. 女友現在又在問我好了沒 XD