The Office Web Apps, OWA, in SharePoint 2010 is a great way to enhance the SharePoint experience. It allows users without a decent OS or a locally installed Office client to view and edit Word, Excel, PowerPoint and OneNote documents.

When you install and correctly configures Office Web Apps (yea, can be a bit of a hazzle if you like me avoid the Farm Configuration wizard) and then enable the required Site Collections feature a cache will be created. This cache is used by Word and PowerPoint Web Apps to store the renditions (XAML) of the documents to speed up the process. Office Web Apps will create one cache per Web Application and the cache is stored in one of the Content Databases attached to the Web Application.

The cache is actually a Site Collection, based on the Team Site template, which contains a Document Library called cache which holds the cached content.

Office Web Apps Cache site

The content in this document library is ZIP compressed files with the XAML and images of the actual renditions.

Cached documents

By default the cache is set to contain 100GB of caching per cache (i.e. per Web Application). You can configure the cache size using the Set-SPOfficeWebAppsCache PowerShell cmdlet. So 100 GB of data will end up in your content database if you use OWA quite frequently and this will also be a part of your backups!

The Cache Site Collection

What you should do is to move this Site Collection to a separate database! This database could have a separate backup schedule and SLA, since this is just a cache. It is better to have it in its own database instead of reducing the cache size. Of course the cache size depends on the usage most read or read/write using OWA. For instance if you have most read ops then you could easily increase the cache size and increase the retention times for the cache.

So how do I move the cache then. Well, since it is just a simple Site Collection - just as we do normally to when site collections grow…

  1. Create a new database, call it for instance OWA_Cache
  2. Move the cache Site Collection to the new database
  3. Update your SLAs

To move the cache Site Collection we can use some PowerShell love like this:

$db = Get-SPContentDatabase | ?{$_.Name -eq "OWA_Cache"}
$webapp = Get-SPWebApplication | ?{$_.Url -eq "http://sp2010/"}
Get-SPOfficeWebAppsCache -WebApplication $webapp
    | Move-SPSite -DestinationDatabase $db

.csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, “Courier New”, courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; }

Don’t forget an IISRESET - the ultimate SharePoint command!

Cache moved to separate Content DB

Notice that I also specified maximum of 1 Site Collection to this content db. We do not want real Site Collections ending up there…

Hmm…I’m turning this blog into an IT-pro blog….