Installing SharePoint Foundation 2010 with Remote BLOB support in SQL 2008 R2

SharePoint Foundation 2010Configuring WSS or SharePoint Services for a small client is a pretty effective way of getting a document management solution for a reasonable cost point. One of the limitations that caused headaches was that it used to have a maximum storage of 4GB, which was the database limit. If you wanted to go larger, you would need either a) multiple SPS installations, b) a full version of SQL server, or c) the full version of MOSS. None of those solutions are particularly cost effective, and for a small company cost is king. (more…)

Server 2008 – Reporting Services Error The permissions granted to user DOMAIN\USER are insufficient for performing this operation. (rsAccessDenied)

If you install Reporting Services on Windows Server 2008 (RTM or R2) and attempt to verify the installation by opening the http://SERVER/ReportServer site, you may well see the following message:

Reporting Services Error 

The permissions granted to user 'MCGEOWN\Sam.McGeown' are insufficient for
performing this operation. (rsAccessDenied) Get Online Help

SQL Server Reporting Services

Additionally, you may be able to access the http://SERVER/Reports site, but will have no permissions:


You may also spend a good while checking DB permissions, IIS configurations, file permissions and so on. And after all that, you may just stumble upon the fact that if you run Internet Explorer as Administrator, it will work as expected.

Creating a Windows Server 2008 Microsoft Cluster Service SQL Active/Passive Cluster on a single ESXi 4.0 Server

Configuring the Virtual Environment and Virtual Machines

Note – this configuration will work for ESXi 4 upwards due to the server 2008 MSCS requirement for persistent SCSI-3 reservations.

The first step is to create a new vSwitch for the host-only cluster heartbeat network, don’t assign any network adaptors to the switch as it’s going to be local only.

Create a new virtual machine with a single hard disk. For the purposes of this test, I’ve assigned 2 vProcessors, 1GB RAM, 30GB drive for the OS, 1 vNIC in the default vSwitch0.

Add a second vNIC and assign it to the cluster network vSwitch created in step 1.

Install Windows Server 2008 R2 Enterprise and all the Windows Updates, for the example I’ve named it SQLCluster01.

Clone the server and rename the new one to SQLCluster02. In ESXi you can’t clone, so shut down the first server, copy the files to a new folder and right click the VMX file to add it to the inventory. When you boot it the first time VMware will ask if it’s been moved or copied – select copied.

Create a disk for use as the Quorom, this needs to be shared and since I’m using ESXi with local storage only it must be “eagerzeroedthick”. To do this I have to use the unsupported mode in ESXi (Alt+F1, type unsupported and then your root password) and use the vmkfstools command to create it (vmkfstools –c <size> –d eagerzeroedthick –a lsilogic /vmfs/volumes/<datastore>/<folder>/<disk>.vmdk)

Add the new disk to SQLCluster01 using a new SCSI virtual controller (different from the current controller, e.g. my first HD is on SCSI 0:1, the Quorum is on SCSI 1:0)

Check that the new SCSI controller is set to LSILogic (it is for Server 2008 by default) and set the SCSI Bus Sharing to Virtual.

Add the Quorum disk to the second virtual machine, using the same settings.

Edit the .vmx file for both servers, adding in the following lines (edit for your SCSI controller):

scsi1:0.mode = “independent-persistent”
scsi1:0.shared = “TRUE”

Create a disk for some shared storage for the cluster too, it will be needed for the DTC application as well as the SQL server – in a production environment you may want to separate logs and data, but for my test, I’m just adding another two 10GB disks. Use the same process as for creating the Quorum disk.


How to configure Windows Server 2003 Enterprise and SQL 2005 to use more then 4GB RAM

32-bit processors have a limitation of only being able to directly address 4GB RAM – their architecture was never designed to address more. 64-bit processors get around that limitation by being able to us 64 bits to address RAM (potentially 16,777,216 GB), but what do you do if you have an application that won’t work on a 64-bit copy of Windows, but does need to utilise more than 4GB of RAM?

The answer is to use PAE (Physical Address Extensions) and AWE (Application Windowing Extensions). I blundered through PAE a little while back, and found that it didn’t work as expected because I was using Server 2003 Standard. PAE is only available as part of Server 2003 Enterprise and Datacenter edition.

Back to the problem at hand, I have a memory hungry application that sits on a Windows Server 2003 Enterprise box with SQL server 2005 installed.

Firstly, we need to enable PAE to allow the 32-bit operating system to address memory over the 4GB limit. This is configured by adding the /PAE switch to the boot.ini.

We also need to repartition the 4GB of Virtual Address Space (VAS) that 32-bit Windows can address by using the /3GB switch in the boot.ini. This allows 3GB of RAM to processes running in “Application Mode” and 1GB RAM to the “Kernel Mode”. If you’re using more the 16GB of memory don’t use the /3GB switch as PAE/AWE will need 2GB of RAM in the Kernel Mode.

The memory intensive applications will run in, you guessed it, Application Mode and will therefore be able to utilise the extended memory provided through PAE and AWE.

Since SQL server will run in the Application Mode memory partition and is AWE aware, it can be configure to reside entirely in AWE managed memory.

The user account that is used to run SQL server must be granted the “Lock Pages in Memory” right and the “AWE Enabled” setting in the configuration of SQL server must be set to “1”. We also need to set the “Max Server Memory” to stop SQL server consuming all the AWE memory available. The “Min Server Memory” does not need to be configured as AWE memory is not released by SQL server.

Once that is all configured and a reboot applied, SQL server should only consume about 256mb in task manager, the rest having been loaded into AWE memory and not viewable from the Task manager.