Friday, February 27, 2009

Migrating SharePoint Intranet from Central Administration

In my previous blog I talked about an improper implementation of SharePoint. I am going to walk through the steps I took to resolve the situation.

Steps required
  • Move SharePoint to new SQL Instance
  • Break Intranet out from under Central Administration
  • Create a new site collection and content database for each department

1. Backup the entire farm, I did this using the Central Administration Backup

2. Export the Intranet and each department

Run a stsadm export on the Intranet site and subsites.
stsadm -o export -url http://yoursite -versions 4 -includeusersecurity
In this case I created a batch file to export each site to a seperate file since I would be breaking them out later.

3. Disconnect the Server from the Farm using the SharePoint Configuration and Technologies wizard.

4. Run the SharePoint Configuration wizard again and create a new farm point to the new instance, this will create the new SharePoint_Config database and the new Administration Content Database(which is why you needed to run the export before creating the new farm)

5. Start the farm services (search services, and excel services) because it is a new config database you need to add in your settings, so farm admin accounts, email settings, etc.

6. Do a Restore from the backup performed in step 1. This will add back the SSP and other Databases and all their corresponding settings.

7. Since we are going to be doing imports we will need to rebuild the intranet site collection because you can only perform an import into a blank site.

8. Import the Root site to the root site collection, this does infact restore all the sites underneath the root site as well. So once it is created delete all the additional subsites that you are going to create new site collections from.

stsadm -o import -url http://newintranetsitecollection/ -includeusersecurity

Being that I planned out my structure prior to this export I created another batch file to simplify the import process and set it to pause between imports.

9. Now we want to start creating new site collections with their seperate Content Databases, the naming convention I used was ContentDB_AM to correspond to http://intranet/sites/AM

  • In Application Management go to Content Databases
  • Set the current database to offline(this just means new site collections cant be built here, data will still be added for the site collection that exists in this database)
  • Create the new content database
  • Create a new site collection
  • Perform the import for that site
  • Repeat until you have done this for all sites (For me it was 10 new Databases and site collections)

10. Build a Search Center on the root site(or where ever, this is where I did it) then set the search settings for each site collection to point to this search center and modify the navigation to your needs.

I did hit an issue with the permissions not working correctly, I decided to do a fresh profile import and that appeared to solved the problem.

You DID WHAT with your SharePoint Implementation?

I was subcontracted out to another company to go and do a SharePoint audit of one of their clients. I get to the client and start looking at his implementation, while he is running through the items that are not working correctly, some being alerts not working, the search configuration not working, not being able to access additional features, etc.

As soon as he brings up Central Administration I can basically tell where most of the problems are coming from. The entire Intranet is built as a subsite under Central Administration. Well as any SharePoint Admin will tell you that is just bad news waiting to happen or in this case already happened. There are numerous reasons why this is a bad idea, to name a few security, scalability, features not working as designed, etc.

Alerts of course are not working because the timer job is not created in Central Administration. The Publishing feature is also unavailable and the Search Center will not work either. I have to give the guy some slack however because he runs a tight ship and had one of the cleanest server rooms I have ever walked into, for a one man band this guy has it together managing an entire 60 server farm and an insane amount of applications all while performing tech support, but you cant do everything yourself when it comes to IT, so I am glad he realized he needed some outside experience.

So I then continue my audit seeing that the databases are all included in one instance, I am not just talking SharePoint here, all of his database applications, so 30+ databases. I see the default SharePoint Databases so no problem there (besides Central Admin containing the Intranet of course). All items are also stored on the same network store. The infrastucture updates were not in place either, and some other misc timer jobs were failing, as well as some errors in the application log. All in all a big mess.

My recommendation:
  • Install the Infrastucture updates
  • Diversify the user accounts for the different web apps and the search service
  • Move the SharePoint Databases to their own instance in SQL
  • Carve out a seperate store for the SharePoint databases and logs
  • Break the Intranet out into its own web app and create new site collections each with their own content database 1. For Scalabilty(I have seen different recommendations but the most common is to try to never go over 100GB for a content DB and try to stay under 50GB, 25GB even better) 2. For Disaster Recover, youll have less downtime if you have to restore a 50GB DB vs a 250GB database.
  • Tie all items back to one search center

Im sure there was more but this is all I can remember off the top of my head, Ill explain how I did the move in my next blog.

Time to Start Blogging

I have decided I should start blogging about my experiences and insights into using SharePoint. I have been involved with SharePoint since 2005, I started working with it fulltime as the beta of 2007 came out, implementing it at the company I was working for at that time. I moved to a consulting company in June of 2007 and have been implementing it for School Districts, Townships, and Small-Medium Companies since. I really enjoy discovering new things to do with it and there are certainly a great deal of things that can be done. I got my certification in MOSS 2007 Implementation and Configuration in Nov 2007 and just recently the certification for WSS Implementation and Configuration, of course I feel like I did it in reverse.