Skip to main content

Posts

Set Azure App Service Platform Configuration to 64 bit.

If you need to update several Azure App Services' Configuration to change the Platform setting from 32 bit to 64 bit under Configuration | General settings, this script will save you about six clicks per service and you won't forget to press the SAVE button. Ask me I know. 🙄
Login-AzureRmAccount
Set-AzureRmContext -SubscriptionName "Your Subscription"
$ResourceGroupName = 'RG1', 'RG2', 'RG3'
foreach ($gin$ResourceGroupName)

# Set PROD slot to use 64 bit Platform Setting
Get-AzureRmWebApp -ResourceGroupName $g | Select Name | % { Set-AzureRmWebApp -ResourceGroupName $g -Name $_.Name -Use32BitWorkerProcess $false } 
# Set staging slot to use 64 bit Platform setting
Get-AzureRmWebApp -ResourceGroupName $g | Select Name | % { Set-AzureRmWebAppSlot -ResourceGroupName $g -Name $_.Name -Slot "staging" -Use32BitWorkerProcess $false } 
}


Recent posts

AzureRM Templates 101

I've recently started working with AzureRM templates to build new environments.

This document really helped me understand the template structure when I first started looking at them.
https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-authoring-templates

I love examples when I'm trying to learn something new and the Quick Start templates are the mother lode. 
https://github.com/Azure/azure-quickstart-templates

Our goal is to incorporate our templates into an Azure Blueprint so that we can quickly build new environments when needed. AzureRM templates can be artifacts of a blueprint.
https://docs.microsoft.com/en-us/azure/governance/blueprints/overview


Modifying Endpoint URLs on Availability Group Replicas

I recently had to modify the Endpoint URLs on our SQL Server Availability Group replicas. 

The reason for this blog post is that I could not answer the following questions:

Do I need to suspend data movement prior to making this change? 

Would this change require a restart of the database instance?

I spent enough time searching on my own to no avail that I tossed the question to the #sqlhelp hashtag on Twitter and Slack but didn't get an answer prior to executing the change request.

After reading the relevant documentation, I think it's probably a good idea to suspend data movement for this change.

The T-SQL is straightforward. 

USE MASTER
GO

ALTER AVAILABILITY GROUP [AG1] 
MODIFY REPLICA ON 'SQL2012-1' WITH (ENDPOINT_URL = 'TCP://10.10.10.1:5022');

ALTER AVAILABILITY GROUP [AG1] 
MODIFY REPLICA ON 'SQL2012-2' WITH (ENDPOINT_URL = 'TCP://10.10.10.2:5022');

ALTER AVAILABILITY GROUP [AG2] 
MODIFY REPLICA ON 'SQL2012-1' WITH (ENDPOINT_URL = 'TCP://10…

Uptight Database Security

If you need a practical approach to managing database administrator access without always granting the sysadmin role to your database administrators then I encourage you to vote for my GroupBy session for the December lineup. 
https://groupby.org/conference-session-abstracts/uptight-database-security/
As the SQL Server security model has become more granular, it is now easier to do routine database administration without sysadmin access. Starting with SQL Server 2005, administering SQL Server without sysadmin access is now possible for many of the typical DBA tasks.
For example, a DBA only needs the ALTER SETTINGS permission to use the sp_configure command on a database instance. To run SELECT queries on Database Management Views requires either VIEW SERVER STATE or VIEW DATABASE STATE depending on the DMV being queried. To use Query Store requires only VIEW DATABASE STATE. CONTROL SERVER can be granted to DBAs that allows them to do almost all the tasks that sysadmin allows but unlike t…

Azure Portal CPU Graph Bug or Feature?

I support an Azure PaaS application.

We had a brief outage recently.

Given that the code had not been changed in a month, we suspected some maintenance in an Azure data center stepped on our application.

Ping tests and self-tests failed for approximately 10 minutes.

The outage resolved on its own without intervention.

I submitted a ticket to Azure Support to determine the cause of the outage but the reason I'm writing this post is because of the behavior I observed with the CPU graphs for Cloud Services while investigating the outage.

The CPU graphs show different results depending on the time range selected.

I would expect to see the CPU spike with the same value no matter what time range I selected. But, to see the spike that fired the alert, I had to to "Edit" the chart and select different time ranges to see the differences. It wasn't until I selected a narrow custom time range that the CPU graph would display the CPU spike that corresponded to the alert firing. The ale…

Rediscovering SQL Server Agent Alerts...

Having moved from a Fortune 50 company using BMC Patrol for SQL Server Monitoring to a small software company of less than 200 people, I'm rediscovering SQL Server Agent Alerts.

Why might you ask? Because small companies can't afford expensive tools and need to use the out-of-the-box features as much as possible.
This past week, I rediscovered that you can alert on SQL Server performance conditions using SQL Server Agent. I needed to alert on database transaction log usage. 
How to create SQL Server Agent alerts can be found at the link below.
https://msdn.microsoft.com/en-us/library/ms180982.aspx

Under Options, I suggest you set a delay of 10 minutes. Unless you like to be spammed every minute when bad things happen.

I'm hoping it will provide enough notice to prevent an undesirable event from complicating my life.

Do this before your storage runs out of space on a holiday. ;-)