During recent migrations we used the database migration method to move SPS 2003 Sites into a MOSS 2007 Farm. The basic process went like this;
(SPS 2003 Farm)
Prescan
Set DB's to read-only
Backup DB's
Move DB's to MOSS 2007
(MOSS 2007 Farm)
Restore DB's
Attach DB's
Now view your Sites and all works fine right? Not so much, how about a "403 Forbidden" error. Thats always nice! On the SPS 2003 side the sites had been "locked." This can be done through SPSSiteManager.exe or the Central Administration. Either way they were locked.
Once on the MOSS 2007 side all we had to do was "unlock" the sites. The command has changed a little bit and there were a ton of sites, so we opted to script the command that looked something like this;
Here's what I did:
The actual command is; stsadm.exe -o setsitelock -url -lock
@echoCd\Cd “C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\BIN”stsadm.exe -o setsitelock -url http://sharepoint/sites/sitename -lock none Repeat for Site #2 Repeat for Site #3 etc... etc... @echo off pause exit
When migrating from SPS 2003 to MOSS 2007 we all know there are 3 options to pick from;
In-Place (Quickest, most room for error)
Gradual and (Ease of use and control)
Database (More manual, ease of use, leaves old farm completely in tact)
For all intents and purposes this post will summarize a Database Migration and Resetting Site Definitions, but the focus is primarily on the stsadm command mergecontentdbs and how I used it to restore multiple site collections at once rather than using backup and restore.
Here's what I did:
Backup and Restore (from SPS 2003 to Development MOSS 2007)
Put Content DB's in Read Only Mode
Run Pre-Upgrade Scan
Reset to original Site Definition
Backup Content DB's
Transfer .bak files to Development
Restore DB's in Development SQL Environment
Upgrade and UAT (In Development MOSS 2007)
Attach newly upgraded datbase(s) as new content database(s)
Upgrade Process (Automatic)
User Acceptance Testing
Restore (to Production MOSS 2007)
Once sites have passed UAT and all functionality can be accounted for, sites will be “merged,” or moved to a new content database that is ready to be attached in the production environment. The new database will be backed up and then restored as an entire collection. With this method we can move multiple sites at once rather than manually moving each site collection one by one. The following command line prompt is an example of merging content databases;
First, the option that I will be showing here (#3) requires a file to read from. That file is a list of the sites in the database that you want to move to another one. This list can be edited to exclude certain sites. In our case excluding sites that haven't passed UAT.
If ever you've wanted to create Sites from the command line and quit halfway through because you had no clue what the Templates were called or named, you can finally press enter and watch impatiently for the cursor to blink down and say success. Keep in mind these are only the inherent MOSS 2007 Templates and not anything custom that you've thrown in there.
Here's the list:
WSS Templates Team Site: STS#0 Blank Site: STS#1 Document Workspace: STS#2 Wiki Site: WIKI#0 Blog Site: BLOG#0 Basic Meeting Workspace: MPS#0 Blank Meeting Workspace: MPS#1 Decision Meeting Workspace: MPS#2 Social Meeting Workspace: MPS#3 Multiple Meeting Workspace: MPS#4
MOSS Templates
Document Center: BDR#0 Site Directory: SPSSITE#0 Report Center: SPSREPORTCENTER#0 Search Center with Tabs: SRCHCEN#0 My Site Host: SPSMSITEHOST#0 Search Center: SRCHCENTERLITE#0 Personalisation Site: SPSMSITE#0 Collaboration Portal: SPSPORTAL#0 Publishing Portal: BLANKINTERNETCONTAINER#0 Publishing Site: CMSPUBLISHING#0 Publishing Site with Workflow: BLANKINTERNET#2 News Site: SPSNHOME#0
All you need is the title and the code.
Example;
-sitetemplate STS#0
Also, here is a little code snippet in a batch file that will ask the correct questions, input the data, and create a Site Collection for you without having to go through CA. (Just edit the code to match your configuration.)
@ECHO off cls :start ECHO. ECHO Please Enter the following information: set/p url=Complete the Site Url you wish to create. http://mysharepointsite/sites/ set/p owneremail=Enter the Owner's Email address. set/p ownerlogin=Enter the Owner's Account Name. set/p sitetemplate=Enter the SiteTemplate Code you wish to use. set/p title=Enter the Title of the Site. ECHO 1. Would you like to create the Site Collection? set choice= set /p choice=[Y/N] if '%choice%'=='Y' goto CreateSite if '%choice%'=='N' goto start ECHO "%choice%" is not valid please try again ECHO. goto start :CreateSite stsadm.exe -o createsite -url http://mysharepointsite/sites/%url% -owneremail %owneremail% -ownerlogin %ownerlogin% -sitetemplate %sitetemplate% -title %title% goto end :end pause