Backup, Restore, Migration in SharePoint 2013

SharePoint 2010 to SharePoint 2013 Migration
Migration process of SharePoint 2010 sites to 2013 is relatively straightforward, but requires some preliminary work done in SharePoint 2010 environment:

  • Prepare SharePoint 2010 sites for back up – put backed up sites in read-only mode or disconnect the sites from users for the duration of backup.
  • Backup the content database on SharePoint 2010 SQL server, using SQL tools
    Please note: You cannot use backup commands of stsadm or Powershell to take backups of SP2010 sites and can only use SQL Server capabilities.
    Because of this limitation if you like to upgrade only selected few site collections you might have isolate them into a separate content database.
    Here is a script you might find helpful for this isolation in SP2010:
    Get-SPSite -ContentDatabase SourceContentDbName | Move-SPSite -DestinationDatabase DestinationContentDbName
  • Prepare SharePoint 2013 environment – deploy any features or webparts used by backed up SP2010 sites if there are any. For example:
    Add-SPSolution "d:\path\customsolution.wsp"
    Install-SPSolution -Identity "customsolution.wsp" -WebApplication http://webappurl/ -GACDeployment
  • Restore SQL database backup on SharePoint 2013 SQL server, using SQL tools
  • Test the content database for any errors, by executing:
    Test-SPContentDatabase –Name contentdb –WebApplication http://webappurl/
  • Mount the content database, if previous test results are acceptable. Mounting the database will upgrade its content:
    Mount-SPContentDatabase –Name contentdb –WebApplication http://webappurl/

MS: Upgrade content databases to SharePoint 2013

Backup and Restore Site Collections in SharePoint 2013
The Powershell commands are very straightforward:

Backup-SPSite -Identity http://web/path/site -Path D:\path\site.bak –Verbose
Restore-SPSite -Identity http://web/path/site -Path D:\path\site.bak -Force –Verbose
Restore-SPSite -Identity http://web/path/site -DatabaseServer DBSERVER -DatabaseName SP_Content_Database -Path D:\Path\site.bak -Force -Verbose

If you are restoring to a specific content database, you must explicitly specify server name as well.
If you would like to control amount of site collections which can be stored in a particular content database, you can do so by using this little script.
In this script, we set maximum number of sites to 3 for the content database that contains site collection “http://web/path/site”:
Get-SPContentDatabase -Site http://web/path/site | Set-SPContentDatabase -MaxSiteCount 3 -WarningSiteCount 0

MS: Backup Site Collections
MS: Restore Site Collections

Known Issues – Backup and Restore Process Sensitivity to Environment Version

When you are backing and restoring site collections between different server environments one of the key things that you need to pay particular attention to is SharePoint patch level. The environments you are backing and restoring to must be at the same level.

Here is an example of error when you try to restore a site collection backed up in SharePoint at newer patch level.
After running the following restore command in Powershell, we see a very convoluted error message that has nothing to do with the actual error:
Restore-SPSite -Identity http://web/path/site -DatabaseServer DBSERVER -DatabaseName SP_Content_Database -Path D:\Path\site.bak -Force -Verbose
Restore Powershell
Exception: DirectoryNotFoundException – in reality has nothing to do with the actual error, which we can see in ULS log tells us that there is a version mismatch, and that is why our restore is failing.
Restore ULS Log
Blog: Backup and Restore Site Collection in SP2013

My Top 5 Freeware Tools

It has been more a year of a long online silence since I wrote the last blog post. Pursuing MBA degree while working full-time in consulting turned out to be a lot more challenging and time-consuming than I originally expected. Nonetheless, the school courses are behind now and I am finally back to the world of blogosphere. To celebrate my comeback I wanted to share some of my favorite freeware software companions that were helping me for years automating my daily tasks, while asking nothing in return:

  • TrueCrypt – in the light of the latest spying revelations and increasing malware activities this utility allows you to encrypt your confidential data and mount them as drives in your computer (this product replaces now defunct PGPDisk, which back in the 90’s paved the encryption revolution)
  • 7-Zip or WinRAR – great archivers, which trump the compression quality and offer a decent AES-based archive encryption.
  • Far Manager – my all-time favorite file and ftp manager, which allows quick selective copying of vast amount of files with the powerful built-in editor. The manager is similar to Midnight Commander on Linux, but optimized for Windows and comes in 32 and 64 bit native flavours.
  • Flexible Renamer – amazing file renamer, which can help rename your countless music or image files, using their tags or rules based on regular expressions.
  • ID3 Renamer – coupled with the Flexible Renamer, this utility allows you easily create or change ID3 tags based on the file names while using regular expressions. Perfect addition for iTunes and other music players, which heavily rely on the media tags.

And the last outside addition to that list – WinAmp – which deserves one last shout out as my all-time favorite music player. An amazingly light and versatile player, which unfortunately AOL team decided to discontinue despite its popularity and loyal customer base.

Village School

VMware Performance Enhancing Tweaks (Over-the-Counter Solutions)

I have been using VMware virtualization for quite a few years now, and even though it is generally fast and reliable virtualization platform, it does require some extra tuning to improve its performance. Here is a brief collection of tweaks that I personally use on Windows and Mac OS to improve I/O performance of VMware virtual machines. These tweaks have become particularly useful in the past couple of years, with larger amounts of available RAM in computers and desire to reduce unnecessary write operations to SSD drives, such as memory swap files.

In order to apply these tweaks you need to add the following settings either to your virtual machine .VMX file, or if you like it globally then to VMware settings.ini file. Settings.ini file is located at “C:\ProgramData\VMware\VMware Workstation\” or “C:\Documents and Settings\All Users\VMware\VMware Workstation\” folders, depending on your operating system. VMware Fusion Config files are located in “/Users/username/Library/Preferences/VMware Fusion/preferences” and “/Users/username/Library/Preferences/VMware Fusion/config” folders.

Tweak: Disable memory swap files .vmem files

mainMem.useNamedFile = "FALSE"
Unfortunately this parameter does not work for VMware Player, as it always creates virtual machine’s full memory swap file.
For VMware Fusion on Mac and Linux instead of mainMem.useNamedFile you have to set mainMem.backing flag.
mainMem.backing = "swap"

Tweak: Choose the right disk controller and specify SSD

Instead of the latest SATA AHCI controller choose LSI Logic SAS controller with SCSI disk for Windows guest OS, or PVSCSI for other types of OS. Unfortunately SATA AHCI on VMware has the lowest performance out of the three controllers and highest CPU overhead (see the references on the topic at the end). In addition to choosing the right controller, if your host disk is SSD you can explicitly specify the disk type as SSD to guest OS.
scsi0:0.virtualSSD = 1

Tweak: Disable log files for VM

logging = "FALSE"
Alternatively you can specify a different location to store the log file, if you ever need them:
log.filename = "c:\Windows\Temp\vm1.log"

Tweak: Other Disk & Memory I/O Performance Optimization

Disable memory trimming:
MemTrimRate = "0"
Disable page sharing:
sched.mem.pshare.enable = "FALSE"
Disable scale down of memory allocation:
MemAllowAutoScaleDown = "FALSE"

Tweak: Disabling Snapshots

Disable snapshots if you are not using them and prefer full backups:
snapshot.disabled = "TRUE"

Tweak: Disable Unity Mode

Unity might be a great feature for running virtual desktops operating systems, but it is not the most useful for virtualizing server OS. An annoying sign of enabled unity is GuestAppsCache or caches folder with a large number of files and subfolders. In order to disable it for your VM add the following lines: = "TRUE"
unity.allowCompositingInGuest = "FALSE"
unity.enableLaunchMenu = "FALSE"
unity.showBadges = "FALSE"
unity.showBorders = "FALSE"
unity.wasCapable = "FALSE"


Moving SharePoint 2010 Log and Index Locations

There are two hard-drive locations on a SharePoint server (with enabled search indexing) that are in constant use and often require significant space – log files and index files folders.

Log files location can be easily specified in Central Administration: Monitoring – Configure Diagnostic Logging.
In the Diagnostic Logging screen, you can specify a new path for trace log files and change other settings, such as how long to keep trace files, and what sort of information will be logged there.

Index files location, unfortunately, is not available through Central Administration. It is typically specified during SharePoint installation phase, along with the software installation folder. However, there is a way to change it through stsadm command:
stsadm -o spsearch -indexlocation “d:\SharePoint\Data”

You can verify that it changed successfully by running the following command before and after changing the index:


Configure diagnostic logging (SharePoint Server 2010)

Changing Index locations in SharePoint 2010


I wanted to thank Tracy Sterling for submitting a very useful tip for modifying index locations through Central Administration, when you have farm SharePoint deployments and can alter search topology.

CA > Application Management > Manage service applications > Search Service Application > Search Application Topology (Modify) > Index Partition/Query Component (Edit Properties). Repeat for each query component within your farm.

Unfortunately, all the stand-alone deployments and foundation editions would still have to go through aforementioned stsadm command. Below is an illustration of Search Service Application and its missing modify option for a stand-alone installation of enterprise SP2010 server, running on my laptop.

Moving Browser Cache Folder in IE, Firefox, Chrome, Opera, and Safari

Having recently replaced OS partition hard-drives with solid-state drives on my desktop and two laptops, I decided to tweak a few settings on my Windows in order to reduce the number of unnecessary write operations to SSD. Amongst the candidates for the move from more expensive SSD space to spinning hard-drives, I selected temporary Windows folder and browsers cache folders. Moving temporary Windows folder turned out to be one step operation – changing Environment variables in Computer – Advanced system settings dialog.

However, after this quick success moving my browsers cache away from SSD turned out to be not the most trivial task due to a large number of different browsers and their very different approach to storing configuration settings. Here is my experience and instructions on how to do it in various browsers.

Internet Explorer:

IE offers the easiest and most convenient way to change a new folder for cache.

Tools – Internet Options – under ‘Browsing History’ section choose ‘Settings’
Click ‘Move folder…’ and provide the new location, e.g. d:\Temp\IE

Heads up: After providing a new temp folder and clicking OK to save new settings, IE/Windows forcefully closes current user session, and logs the user off.


In the URL type: about:config
Create a new string preference: browser.cache.disk.parent_directory
and specify a path to your cache folder, e.g.: d:\Temp\Firefox

Mozilla Zine: Browser.cache.disk.parent directory


The only way to change location of the cache folder is through the command prompt arguments (UPDATED):

C:\…\Application\chrome.exe --user-data-dir=d:\Temp\Chrome
Chrome deprecated previous disk-cache-dir command, and the only way to move cache folder is to do it along with the rest of profile information. Reference: User Data Directory.

C:\…\Application\chrome.exe --disk-cache-dir=”d:\Temp\Chrome” --disk-cache-size=75000000
Where --disk-cache-dir points to your custom cache folder, and –disk-cache-size specifies the maximum cache size in bytes.

Here is a full list of Chrome’s command line switches Surprisingly, source code seems to be the only official documentation from Google. A brief blog post on the same topic:

Another useful command for Chrome, which reduces its memory footprint: --process-per-site. This command allows Chrome to run tabs from the same domain in the same process, thus reducing number of spun out processes and memory use, while still offering process isolation.

Even though Chrome has configuration page similar to FireFox (type about:flags in the browser URL), it does not allow changing its cache configuration.

How to Turn On/ Disable GPU Hardware Acceleration on Google Chrome.


Review the location of the current cache folder by typing in the URL: opera:about or from Menu – Help – About Opera.

To modify the settings type the URL: opera:config

Navigate to “User Prefs” tab and modify its cache folder: Cache Directory4 =d:\Temp\Opera\
(alternative quick jump link: opera:config#UserPrefs|CacheDirectory4)

Additionally you can modify temporary download folder for Opera as well, through another key:
Temporary Download Directory = d:\Temp\Opera

Opera’s Settings File Explained

UPDATE: The latest versions of Opera do not provide that user input functionality, but instead you have to use command line parameter: –disk-cache-dir=d:\path


Safari unfortunately does not allow changing the location of its cache directory, just like it does not allow changing any of its advanced settings in a comprehensive way.

about URI scheme

MBA Admission Lessons

I hardly ever write about my personal life, but this time I feel like sharing one of my recent experiences. Last week I got accepted into the MBA program at Rotman School of Management (University of Toronto), one of the top Canadian and highly-ranked international business schools.

For the past few years, I kept entertaining the idea of going back to school for a graduate business degree to pursue the almost magical MBA. However, there always seem to be something making me postpone this decision – demanding work projects and new contracting opportunities, time and financial constraints, relationship status and travel plans, long term and short term goals. Nonetheless in the end of year 2010 I came to the realization that this is the time. There always will be obstacles and unfavorable circumstances bringing a lot uncertainty and risk to any decision, and it is never going to be any easier. However, our life is never a smooth sail in a sea of calmness, but rather a journey where inner peace is the one that matters.

Admission process is always one of the first major tests on the way of getting the desired degree. In addition to taking the GMAT and writing essays, the process involves a lot of ground work, getting admission application in one piece. Here are just a few lessons I learned from the admission process:

Do your research about the business school. Make sure that the school you are applying to is a good fit with your goals and expectations. If the school is located in another city and this is going to add two hour commute to your full-time job, it is going to be very difficult to motivate yourself to go to classes every day, especially if the school was not on top of your list, but a third or fourth choice.

Attend info sessions and talk to students and admission staff. Not only you can learn more about the program and school, but you can get invaluable advice on what is exactly expected in those five essays that you need to write, and maybe get a chance to review your application with one of the admission officers before the final submission.

Don’t focus only on the GMAT score. Business schools are looking at your application to be well rounded, and pay attention to numerous other factors, such as your previous academic record, work experience, essays, and your social activity outside of work.

Find the right referees. Rather than going after high level executives, who hardly have time to reply all their piling up emails, not to mention spend time in the evening writing a proper reference about you, ask your direct manager or a client to provide a reference. Quality of his or her reference would mean a lot more than their senior executive title.

Start working on your essays early. Not only writing essays would be a good practice for AWA portion of GMAT, but also students often don’t realize the amount of time and effort that goes into well-written essays, leaving them for the last minute. Generally you would want to have at least a few revisions and get someone’s feedback on your essays before submitting them. That may add up to five or more days of work/critique per essay, depending on the quality level and expectations that you set for them.

Links to a few of my favorite GMAT and MBA admission articles:

Is an MBA a Plus or a Minus in the Startup World?
General GMAT Books Review
Quantitative GMAT Books Review
Verbal GMAT Books Review
Analyzing an AWA Argument
Ace the Essays? No, Thanks!
The Top 5 MBA Admissions Myths
How to Approach Business School Information Sessions

How to Create Minimal Web Pages in SharePoint

This brief article talks about how to create minimalistic pages in SharePoint without deploying any server-side code, and with minimum effort by using only SharePoint Designer. By minimal web pages, here I mean master page and web pages that have only bare bones with essential web part zones, without any additional HTML markup for header, footer, left-navigation, or additional server-side controls (such as, site actions, search box, etc.).

Please note, even though this post is about SharePoint 2007 implementation, very similar technique is applicable to SharePoint 2010 as well, with changes to the content of the master page mostly.

1. Create a minimal masterpage with SharePoint Designer following this MSDN article: How to: Create a Minimal Master Page.

Basically, it all comes down to creating a file in SPD, which we are going to call msminimal.master, under your site’s http://site / _catalog / masterpage (Master Page Gallery). That msminimal.master must contain only essential empty zones, and no client-side markup or server-side controls.

My only changes to the master page from MSDN article would be adding Visible=”false” attribute to Site Actions and Welcome if you would like to hide them in your future web pages:

      <wssuc:Welcome id="explitLogout" runat="server" Visible="false" />
      <PublishingSiteAction:SiteActionMenu runat="server" Visible="false" /> 


2. While in SharePoint Designer, create a new web aspx page and reference your new master page changing MasterPageFile attribute from ~masterurl/default.master to _catalogs/masterpage/msminimal.master.

Here is an example of the simplest web page with just one web part zone:

<%@ Page language="C#" MasterPageFile="_catalogs/masterpage/msminimal.master" Inherits="Microsoft.SharePoint.WebPartPages.WebPartPage,Microsoft.SharePoint,Version=,Culture=neutral,PublicKeyToken=71e9bce111e9429c" meta:progid="SharePoint.WebPartPage.Document" %>
<%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="WebPartPages" Namespace="Microsoft.SharePoint.WebPartPages" Assembly="Microsoft.SharePoint, Version=, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Import Namespace="Microsoft.SharePoint" %>

<asp:Content ContentPlaceHolderId="PlaceHolderMain" runat="server">
  <WebPartPages:WebPartZone runat="server" FrameType="TitleBarOnly" ID="MainZone">

3. Now if you want to edit your new custom web page visually in a browser and add web parts, you would need to use one old non-documented trick. Since there is no familiar header or site actions menu, you need to type in your Internet Explorer the following URL, in order to switch between view and edit mode, and back :

(Refer to my previous article on highly useful non-documented shortcuts

4. After adding all necessary content to your custom web page, it contains only content and no additional header, footer, etc. This sometimes comes extremely useful if you want to display some specific content in a Page Viewer Web Part on another SharePoint site, or in a frame in another non-SharePoint web application.

SharePoint 2010 White Papers

I put together a collection of white papers and diagrams from Microsoft site, which are related to SharePoint 2010 deployment and configuration. Some of them are extremely useful when it comes to planning a new SharePoint installation or preparing technical documentation. I organized SharePoint Server 2010 resources into three categories, trying to match MOF phases – plan, deliver, operate. All other resources are grouped under specific server they relate to, namely Foundation, Search, FAST, Project Server, etc.

Planning phase

Getting started with Microsoft SharePoint Server 2010 (SharePtServGetStarted.doc)

Capacity planning for Microsoft SharePoint Server 2010 (SharePtServPlanCap.doc)

Planning guide for server farms and environments for Microsoft SharePoint Server 2010 (SharePtServPlanPlatfm.doc)

Topologies for SharePoint Server 2010 (Topologies_SharePointServer2010.vsd)

Extranet Topologies for SharePoint 2010 Products (OIT2010_Model_ExtranetTopologies.vsd)

Planning guide for sites and solutions for Microsoft SharePoint Server 2010, Part 1 (SharePtServPlanSandS1.doc)

Planning guide for sites and solutions for Microsoft SharePoint Server 2010, Part 2 (SharePtServPlanSandS2.doc)

SharePoint 2010 Virtualization Guidance and Recommendations (oit2010-whitepaper-virtualization-guidance.docx)

SharePoint Server 2010 design samples: Corporate portal with classic authentication or with claims-based authentication
(SPS_2010_Design Sample_Corporate Portal_ClaimsAuth.vsd; SPS_2010_Design Sample_Corporate Portal_ClassicAuth.vsd)

Delivery phase

Deployment guide for Microsoft SharePoint Server 2010 (SharePtServDeployment.doc)

SharePoint 2010 Products Deployment (Deployment_SharePoint2010Products.vsd)

SharePoint 2010 Products: Virtualization Process (SharePoint2010_ServerVirtualization.vsd)

Hosting Environments for SharePoint 2010 Products (Hosting_SharePointProducts2010.vsd)

Services in SharePoint 2010 Products (SvsSingleFarm_SharePointProducts2010.vsd)

Cross-farm Services in SharePoint 2010 Products (SvsCrossFarm_SharePointProducts2010.vsd)

Configuring Kerberos Authentication for Microsoft SharePoint 2010 Products (SP2010 Kerberos Guide.docx)

Remote BLOB storage for Microsoft SharePoint Server 2010 (SharePtServBLOB.doc)

Operational phase

Operations guide for servers and server farms for Microsoft SharePoint Server 2010 (SharePtServOperations.doc)

Technical reference for Microsoft SharePoint Server 2010 (SharePtServTechRef.doc)

Microsoft SharePoint Server 2010 Technical Library in Compiled Help format (SharePtServer2010.chm)

Business continuity management for Microsoft SharePoint Server 2010 (SharePtServContinuity.doc)

SP 2010 Foundation Resources

Getting started with Microsoft SharePoint Foundation 2010 (SharePtFoundGetStart.doc)

Deployment guide for Microsoft SharePoint Foundation 2010 (SharePointFoundDeplo.doc)

Planning guide for Microsoft SharePoint Foundation 2010 (SharePointFoundPlan.doc)

Operations guide for SharePoint Foundation 2010 (SharePointFoundOps.doc)

Microsoft SharePoint Foundation 2010 Technical Library in Compiled Help format (SharePtFound2010.chm)

Technical reference for Microsoft SharePoint Foundation 2010 (SharePointFoundTecR.doc)

Business continuity management for Microsoft SharePoint Foundation 2010 (SharePtFoundContinuit.doc)


Getting Started with Enterprise Search in SharePoint 2010 Products (Getting Started with Enterprise Search in SharePoint 2010 Products.docx)

Search Technologies for SharePoint 2010 Products (Search Model 1 of 4 – Search Technologies.vsd)

Search Environment Planning for Microsoft SharePoint Server 2010 (Search Model 2 of 4 – Search Environment Planning.vsd)

Search Architectures for Microsoft SharePoint Server 2010 (Search Model 3 of 4 – Search Architectures.vsd)

Design Search Architectures for Microsoft SharePoint Server 2010 (Search Model 4 of 4 – Farm-level design.vsd)

Microsoft Search Server 2010 Technical Library in Compiled Help format (SearchServer2010.chm)

FAST Search

Microsoft FAST Search Server 2010 for SharePoint Enterprise Search Evaluation Guide (FASTSearchServer2010_SearchEvalGuide.docx)

FAST Search Server 2010 for SharePoint Capacity Planning (FASTSearchSharePoint2010CapacityPlanningDoc.docx)

Deployment guide for FAST Search Server 2010 for SharePoint (FASTDeployment.doc)

Microsoft FAST Search Server 2010 for SharePoint Technical Library in Compiled Help format (FASTSearch2010.chm)


Virtualization Overview, Methods, and Models

IT Manager: Platform Solution Blueprint – Virtualization

The Most Useful Undocumented SharePoint 2007/2010 Shortcuts

Here are a few of the most useful SharePoint shortcuts, which work in all versions of SharePoint 2007 and 2010 (even 2003).

Enter page web part maintenance mode

Append ?contents=1 to the URL of the page for which you want to enter maintenance mode, for example:

Enter page edit mode

Including system pages, such as view or edit pages: NewForm.aspx, EditForm.aspx, AllItems.aspx, etc.
In Internet Explorer’s URL bar type:


For more details on ShowToolPane parameter, you can refer to this old MSDN article.

Heads up: There is one thing you must seriously consider before editing a system page. This lesson I learnt the hard way from exposing modified edit pages to end-users. When you modify a previously read-only system page, such as a view or edit form, through the shortcut explain above, you make it available for editing to anyone who has contribute rights on that library or list. Hence that page becomes vulnerable to accidental changes by non-power users, because previously hidden Edit Page menu will be visible to them in Site Actions menu.

Access administration pages

A few quick shortcuts that I find not only can save time, but also help bypass obscurity created by system administrators:

http://site/_layouts/savetmpl.aspx – Save site as a template
http://site/_layouts/create.aspx – Create (libraries, lists, pages, sites)
http://site/_layouts/settings.aspx – Site settings
http://site/_layouts/newsbweb.aspx – Create a new site or workspace
http://site/_layouts/sitemanager.aspx – Site content and structure browser

Deleting GTP and EFI Partitions on Windows 7/Server 2008/Vista

If you are trying to delete GTP or EFI partition on your hard drive under Windows Server 2008/7/Vista using management console are you out of luck. However, here is the easiest way to get around it:

Start command prompt and run diskpart.exe in command prompt issuing these commands as per illustration below:
DISKPART> list disk
DISKPART> select disk x

Please note, the reason for using ‘clean’ command instead of ‘delete volume’ is that ‘delete volume’ crashes diskpart utility when attempting to delete GTP/EFI partitions. Also outdated diskpar.exe utilitiy, which is frequently used for aligning physical partitions and is still quite popular for SSD optimization, cannot even read disk layout containing GTP or EFI partitions.

Great post: How to Delete GPT Partition or EFI from Mac Hard Disks In Vista or XP
Reference: A Description of the Diskpart Command-Line Utility
Diskpar & Diskpart in server environment: Disk Partitioning Offset
Disk partitioning Alignment: Disk Partition Alignment Best Practices for SQL Server
SSD Optimization guide: OCZ Technology Forum