Monday, January 28, 2013

Microsoft SQL Server 2012: Overview of AlwaysOn Technologies

MS SQL Server 2012 is released since quite a while now and first customers projects are running. If you are involved in building HA/DR solutions, the new release will be your best friend for the next years.

From my perspective one of the top new concepts in the MS SQL Release 2012 is AlwaysOn. Shortly said, AlwaysOn combines the best things of MS SQL clustering, mirroring and replication to provide better high availability solutions for mission critical systems spawned about different data centers and geographical locations.

Now we have the ability to provide multiple secondary online copies of a database and use them for failover or work offloading scenarios. It allows offloading of resource intensive workloads like backup and maintenance or reporting to other servers than the production. It provides a single connection entry point node for all applications. This concept was used in clustering before and allowed the client to connection to a single virtual node, which provided access to the clustered service.

Another important new feature is Availablility groups which provide much better failover capabilities. An availability group supports a failover environment for a set of databases, known as availability databases, that fail over together. An availability group supports a set of primary databases and one to four sets of corresponding secondary databases. This concept is somehow similar to Oracle resource groups. More information:

The guys from provide some introduction movies which provide a great overview of the new concepts in two parts:

Part 1 : Overview
Part 2: Configuration
Another great introduction viedeo was posted by the uk dpe Team and demonstrates an example configuration:

Friday, January 25, 2013

SharePoint Online: Restore deleted Site Collection - Power Shell

Accidentialy deleted site collections are keept in SharePoint Online recycle bin. The following procedure allows a restore of the complete site collection:

1. Download and Install SharePoint Online Management Shell

2. Connect  to SharePoint online

Connect-SPOService [-Url] <UrlCmdletPipeBind> [[-Credential] <CredentialCmdletPipeBind>]

3. Restore the site collection

Restore-SPODeletedSite [-Identity] <SpoSitePipeBind> [-NoWait <SwitchParameter>]

There are more usefull commands to manage site collections in SharePoint online:

Thursday, January 24, 2013

SharePoint 2010: Export and Archive Audit Logs

If you ever work with customers with a high demand on compliance and audit reporting, you will think about using SharePoint Audit Reporting. I want to share some of my experiences about this topic.

Recently one of my customers was searching for an easy configurable and maintainable solution to monitor events in some specific site collections including sensitive data. I implemented the standard SharePoint audit logging. By default you can export and view the audit data then as Excel pivot table. I implemented the following configuration parameters:
  • Capture all document and item events: all flags
  • Capture all lists, libraries, sites: all flags
  • Audit log trimming: No

With this initial configuration I wanted to make sure, that the audit logs are not deleted automatically. But in fact 30 days later all my audit logs were deleted by SharePoint. I did some research and detected, that a time job called "SITECOLLECTION Audit Log Trimming" deleted all the audit logs.

Even if you configured no audit log trimming, this job will delete your logs after 30 days. If you disable the job, then logs won’t be deleted anymore.

Ok, now I thought I’m cool. But then the next issue bumped up. The content database of the audit enabled site collection grew heavily. MS SQL table size report detected, that the audit data table contains 12mio records and uses about 5 GB of disk space and this were just the audit logs of 1.5 months. You can minimize the logged data amount when you don’t log all actions. For example it is mostly not necessary to log the view and file open events because this is logged in web analytics also and there is no relevant document change in this case.

These are the attributes which are logged with each audit log record:

Based on compliance regulations, my customer needs to keep all data for 10 years. If the database grows that fast, it will grow too large and impact the performance of SharePoint and later will become unusable one day, because of it’s size. So i decided to offload the audit log table from time to time with SSIS to another database server and archive it there.

Based on the above table structure, you can see that there’s no primary key logged in this table. So there’s no unique identifier to match the production and archive data from time to time without data loss.
There were two options to solve the issue. First option was a custom development to synchronize production and archive database, based on a web service or a sql trigger. The web service option was time and cost intensive and a sql trigger should not be inserted in the SharePoint database, because you‘ll lose Microsoft product support.

Finally I started search for a 3rd party solution to cover this issue and discovered Idera Audit Management which provides the following features:

· Easily identifies and alerts on security issues
· Helps with SharePoint governance and regulatory compliance
· Adds new events not available in SharePoint’s native auditing
· Safeguards SharePoint performance with an external reporting database
· Find out what’s going on in detail with out-of-the-box reports

This was exactly was I was searching for. I installed a trial version and configured the necessary things. After some days of production use the customer licensed the product and was happy with the solution provided. I'm not paid to write this article, I'm just happy to have the ability to provide real audit logging including offloading and archiving of audit databases to my customers.

Some from the ISV about Idera Audit Management:

Idera SharePoint audit is a comprehensive SharePoint auditing solution that captures permission changes as well as log on events, views, inserts, updates, deletes, and changes, all the way to the field level. SharePoint audit gives you a complete view of who is doing what and where in your SharePoint environment. It enables you to automatically turn on auditing for new SharePoint sites, configure specialized auditing at the web application or site collection level, and monitor the level of auditing across your farm. It collects the data you need in order to comply with regulations and data security requirements, such as Sarbanes Oxley (SOX) and HIPAA.

Wednesday, January 9, 2013

My SharePoint Knowledge Sources

An unordered selection of web links, with relevant resources for my daily business. As SharePoint Search is not available on Blogger, Ctrl+F provides also fantastic search results.

Office 365 / SharePoint Online

Manage SharePoint Online (2013) with PowerShell:
SharePoint On Premise


SharePoint Variations – The complete Guide:

Idera - SharePoint Audit:

Audit Logging:

MS SQL Server

Maintenance Plans - Best Practices:

Data File Shrink:

High Availybility/AlwaysOn:

Availability Groups: