Normally until Windows Server 2008, we use to have the .net Framework available to enabled from Server features section in Server manager. We just have to enable the feature to install .net FW 3.5.
Here we ran into a situation where we had to install SQL Server 2014 on a Windows 2012 Server. .net Framework 3.5 was required for SQL 2014 and Windows 2012 didn’t have that by default. Also, unlike SQL Server 2008 or 2012, 2014 setup doesn’t install it by itself. It just say’s that it needs to be installed manually. We tried to enable the feature via Server manager, but it fails saying the source files doesn’t exist.
Below is how we finally managed to install .net 3.5.
- There is a folder named sxs in Windows Server 2012 / 2012R2 Install Disk. We extracted the sxs folder from a disk image and copied them over to C:\Softwares\Source\sxs folder on the target 2012 windows server.
- Open a powershell prompt and execute below command. It would take few minutes to complete and you now have .net Framework 3.5 on your Windows Server 2012.
Install-WindowsFeature Net-FrameWork-core -Source C:\Softwares\Source\sxs
We have heard enough of the new feature in SQL Server 2012 that replaces our conventional Database Mirroring notion. It is the Always-on Availability groups feature. I have carried out several tests setting up Always-on on my virtual data-center in my laptop. One fine day at office, I was assigned a project to build an Always-on availability group in Microsoft Azure.
Let’s first go through the prerequisites.
- Availability group replicas must reside in a single Cloud service.
- Availability group Listener IP should be same as the public Cloud service IP assigned to each replica.
- Two endpoints has to be created for the Cloud Service in Azure dashboard. One for the probe port(Through which the Azure Load Balancing services monitors the health of each virtual machine) and one for Always-on Listener port. Probe port should be different from the Listener port. For eg. Give 59999 for Probe port and 1433 for the always-on listener port.
- Install the hotfix 2854082 to enable SQL Server Availability Group Listeners on Windows Server 2008 R2 and Windows Server 2012-based Microsoft Azure virtual machines.
Limitations in Azure:
- Each virtual machine in Azure could have only one Ethernet card and one private IP. This limitation stops us from using a private IP for Always-on availability group. Even if we give a private IP for the listener, the IP will not ping or connect over the network.
- The client application must reside on a different cloud service than the one that contains your availability group VMs. Azure does not support direct server return with client and server in the same cloud service.
- Only one availability group listener is supported per cloud service because the listener is configured to use the cloud service IP address.
- If you are creating a listener for a hybrid environment, the on-premises network must have connectivity to the public Internet in addition to the site-to-site VPN with the Azure virtual network. When in the Azure subnet, the availability group listener is reachable only by the public IP address of the respective cloud service. Ref: http://msdn.microsoft.com/en-us/library/dn425027.aspx
I went ahead and started working on it. I asked for 4 virtual servers.
Continue reading “SQL Server 2012 / 2014 Always-on in Microsoft Windows Azure”