There are several ways of upgrading to SharePoint 2010. I decided to go with the database attach method to ensure a clean install and make sure all my end users could still "view" the SharePoint 2007 web site.
My scenario was as follows..
SharePoint 2007 (Windows 2008 R2 64bit) was configured as a farm with a SQL 2005 64bit (Windows 2008 64bit) server. As you probably already know the SQL 2005 is not supported for SharePoint 2010. This was just another reason I decided to go with the database attach method.
Server Build
- Install Windows 2008 R2 64bit
- Server Name: SHAREPOINT2010 – This name doesn’t matter as you’ll be using alternate access mapping later.
- Install SharePoint 2010 Prerequisites via installation media – Must be connected to the internet
- Add SMTP server via Server Roles – Used for relaying email. I’ll explain why I relay off of the SharePoint server later
- Create domain account “SharepointProfSync” and give it administrative rights on the SharePoint 2010 server. This will late be removed.
- Install Windows 2008 R2 64bit
- Server Name: SQL
- Install SQL 2008 R2 64bit
- Install SharePoint 2010
- This is just a default installation. There are many guides on how to do this on the internet.
- Install SharePoint 2010 Service Pack 1
- Run SharePoint Configuration Wizard when finished to upgrade the databases
- Install SharePoint 2010 June 2011 Cumulative Update
- Run SharePoint Configuration Wizard when finished to upgrade the databases
- Restart SharePoint server
- Generate your certificate request from IIS and either send it to your third party certificate provider or generated your own from your certificate authority. This isn’t covered in this article.
Configure User Profiles
- System Settings > Manage Services > Server > Start User Profile Sync Service
- Wait until it says the service is started
- Once it’s been started, remove SharepointProfSync from the local administrators group.
- Central Administrator / Application Management / Manage Service Applications / User Profile Service Application
- Configure Synchronization Connectors
- Create New Connection
- Name: "Company Name AD”
- Forrest: type fully qualified domain name and choose auto discover DC
- Account Name: Create a domain account to use during replication. This account must have “Replicate Directory Changes” permission on the top level of the domain.
- Select all or some OU’s
- If you want to map additional properties you can do that now. I mapped Picture to AD attribute thumbnailphoto to import photos from active directory.
- Start a Full Sync – This will take some time.
- Configure Synchronization Connectors
Configure Web Applications
I wanted my web application running on a different port than port 80 so that I could redirect port 80 HTTP traffic to port 443 SSL.
- Record content database name by going to Central Administrator > Application Management > Manage Content Databases
- Make sure the web application in the top right hand corner shows the web application for port 80.
- This content database name will be used when creating the new web application with the new port.
- Central Administrator / Application Management / Manage web applications
- Click on the web application assigned to port 80 and click delete in the ribbon bar. Do not delete your central admin database.
- Delete Content Databases – No
- Delete IIS web sites – Yes
- Click Delete
- Delete the web application with port 80. Do not delete your central admin web app.
- Click on the web application assigned to port 80 and click delete in the ribbon bar. Do not delete your central admin database.
- At Manage web applications click New to create a new web app.
- Create a new IIS web site – Label this whatever you would like I used SharePoint – 800
- Port: 800
- Host Header – Blank since we won’t be running more than one web app on this port
- Path – Leave as default
- Security Configuration – Choose your authentication provider. I chose NTLM.
- Public URL – Leave default
- Application Pool – Name this accordingly and choose which domain account you want to be running the app pool. This should be a domain account used only for the app pool without any permissions.
- Database Server – Your SQL Server
- Database Name – Type the database name that you recorded in step 1. Case Sensitive
- Service Application Connections – default
- Click OK
- At Manage web applications click on your new web application and click Extend.
- Create a new IIS web site – Label this whatever you would like I used SharePoint – 443
- Port: 443
- Host Header – Blank since we won’t be running more than one web app on this port. – If you are going to have use SAN certificate, put in your FQDN host header here. I’ll explain this later as well.
- Path – Leave as default
- Security Configuration – Choose your authentication provider. I chose NTLM. Make sure you use select SSL.
- Public URL – Make sure type the full qualified domain name here… https://servername.domainname.com:443 and Zone: Internet
- Click OK
- You should now be able to access your SharePoint 2010 system from both URL’s.
Configure Email
If you were to relay directly off your Microsoft Exchange server, one you would need to allow anonymous relay, and two you wouldn’t actually see the Active Directory Display Name when the email was received. Instead you would see the email address defined. Relaying the email off the SharePoint 2010 server which will then forward the email to your Exchange Server in an authenticated method providing the Display Name and not needed anonymous relay.
- Start > Run > services.msc
- Set Simple Mail Transfer Protocol to Auto Start, and start the service.
- Open Internet Information Services 6.0
- Right click SMTP Virtual Server and go to Properties
- Access tab
- Authentication
- Check Integrated Windows Authentication
- Check Anonymous Access
- Relay Restrictions
- Either select all except the list below, or add the IP address of the SharePoint 2010 server.
- Delivery Tab
- Outbound Security
- Choose Integrated Windows Authentication
- Browse and select a domain user for which you will use to send emails from SharePoint. You can use something like “SharePointNotification”
- Advanced
- Smart Host: Type the hub transport FQDN server name
- Uncheck Attempt direct delivery before sending to smart host
- Click OK
- Go back to SharePoint Central Administration > System Settings > Configure Outgoing E-Mail Settings
- Outbound SMTP server: FQDN of SharePoint 2010 server
- From address: Email address of domain user used for sending the email in Step 2
- Reply-to address:Email address of domain user used for sending the email in Step 2
- Character set: default
- Click OK
Install Templates
Install any templates that you had installed on SharePoint 2007 on to SharePoint 2010. This isn’t covered in this article, but make sure your stsadm –o pre-upgradecheck is clean.
Content Transfer
Now it’s time to actually transfer the content from 2007 to 2010!
- Backup SharePoint 2007 databases.
- Take a full SQL backup of the WSS_Content databases for your web application.
- Put your SharePoint 2007 WSS_Content database in read-only mode so that end users can still view SharePoint 2007 but not make any changes during the content transfer.
- Copy the backup to your new SQL 2008 server.
- Remove the existing content database from SharePoint 2010
- Central Administration > Application Management > Manage Content Databases
- Select the web application that we just created. (Port 800)
- Click the WSS_Content database listed
- Put a checkbox in remove content database and click OK
- Restore the backup of SharePoint 2010 on your SQL 2008 server.
- Restore it as something meaningful: WSS_Content_Company_1
- Open SharePoint Management Shell
- Run the following stsadm command to add the database to the web application
- stsadm –o addcontentdb –url http://servername:800 –databasename WSS_Content_Company_1
- Run an IIS Reset
- Your content has now been transfer to SharePoint 2010!
My Sites
Microsoft recommends (and is also good practice) that you host your MySite on a different web application as well as database. Some users just starting out with 2007 had them all together in their WSS_Content database. Here are instructions on how to move them to their own.
- Create a CNAME DNS record for your SharePoint 2010 server that uses a mysite name.
- mysite.companyname.com
- Central Administrator / Application Management / Manage web applications
- Create a new web application called SharePoint – MySite
- Port: Whatever port you want to use. Use 443 if you are using a SAN certificate that includes the MySite URL.
- Header: If you are using 443 then put the FQDN that you want to use. Example: mysite.companyname.com. If you aren’t using 443 then this can be left blank.
- Database Name: WSS_Content_MySite_Temp (this is only temporary)
- The rest of the options choose similar to the “Configure Web Application” of this article.
- Define two new managed paths for this web application
- explicit inclusion – mysite
- wildcard inclusion – personal
- Central Administrator / Application Management / Create site collections
- Choose your mysite web application
- Label it My Site Host
- for the URL make sure it says /mysite leave the field after it blank
- Select the Enterprise Template My Site Host
- Visit the site and make sure you can view it. You will need to view it from a computer which is not the server unless you disable loop back check in the registry.
- Remove the content database from the mysite web application
- Add a new content database to your main SharePoint 2010 web application (port 800)
- Name it WSS_Content_MySite
- Open SharePoint Management Shell
- Run the following stsadm command to find all the personal sites in the current database
- stsadm –o enumsites –url http://servername:800/personal > C:\MySites.xml
- Open the MySites.xml file in Notepad and remove any sites that are not a personal site including the /mysite entry. Save the xml file when finished.
- Move the personal sites to the new database
- stsadm –o mergecontentdbs –url http://servername:800 –sourcedatabasename WSS_Content_Company_1 –destinationdatabasename WSS_Content_MySite –filename C:\MySites.xml –operation 3
- When prompted run iisreset –noforce from the command prompt
- Remove the WSS_Content_MySite content database from the http://servername:800 web application via Central Administration
- Add the database to the MySite web application
- stsadm –o addcontentdb –url http://mysite.companyname.com:5352 –databasename WSS_Content_MySite – Make sure you type your URL correctly. This depends on what you created in step 2.
- Duplicate step 4
- Create a site collection for the root of mysite web application. (This is for self-service site creation)
- Choose Team Site
- Path should just be /
- Central Administrator / Application Management / Manage Service Applications / User Profile Service Application > Setup My Sites
- My Site Host Location: http://mysite.companyname.com:5352/MySite/ – Don’t forget the trailing /
- Location: personal
- Run full sync on user profiles
- Now you can update the profile photo store with the thumbnails that were imported from active directory
- Open SharePoint Management Shell
- Update-SPProfilePhotoStore –CreateThumbnaislForImportedPhotos 1 –MySiteHostLocation http://mysite.companyname.com:5352/MySite/
Keep an eye out for further SharePoint 2010 blogs