AzureStack-QuickStart-Templ.../sql-2016-alwayson
Daniel Brennand aae19b4723 Sql 2016 alwayson changes (#448)
* Fixed parameter values to match defaults.

* Fixed typo in public IP addresses. Removed clustered option from SQL  server as it's not an option.

* Fixed avalibility sets. Two are deployed in the template. Not just one.
2019-11-11 11:52:26 -08:00
..
CreateADPDC.ps1.zip New and improved SQL Always On template (#368) 2018-09-05 15:15:21 -07:00
CreateFailoverCluster.ps1.zip New and improved SQL Always On template (#368) 2018-09-05 15:15:21 -07:00
CreateFileShareWitness.ps1.zip New and improved SQL Always On template (#368) 2018-09-05 15:15:21 -07:00
PrepareAlwaysOnSqlServer.ps1.zip New and improved SQL Always On template (#368) 2018-09-05 15:15:21 -07:00
Readme.md Sql 2016 alwayson changes (#448) 2019-11-11 11:52:26 -08:00
azuredeploy.json Update sql-2016-alwayson template to use api profile (#403) 2018-12-20 14:58:47 -08:00
azuredeploy.json.bak New and improved SQL Always On template (#368) 2018-09-05 15:15:21 -07:00
azuredeploy.parameters.json Sql 2016 alwayson changes (#448) 2019-11-11 11:52:26 -08:00
configuringAlwaysOn.json Update sql-2016-alwayson template to use api profile (#403) 2018-12-20 14:58:47 -08:00
creatingADNIC.json Update sql-2016-alwayson template to use api profile (#403) 2018-12-20 14:58:47 -08:00
creatingNICS.json Update sql-2016-alwayson template to use api profile (#403) 2018-12-20 14:58:47 -08:00
metadata.json New and improved SQL Always On template (#368) 2018-09-05 15:15:21 -07:00
preparingSqlServer.json Update sql-2016-alwayson template to use api profile (#403) 2018-12-20 14:58:47 -08:00
provisioningADVM.json Update sql-2016-alwayson template to use api profile (#403) 2018-12-20 14:58:47 -08:00
provisioningSQLVMs.json Update sql-2016-alwayson template to use api profile (#403) 2018-12-20 14:58:47 -08:00
setupLBs-e.json New and improved SQL Always On template (#368) 2018-09-05 15:15:21 -07:00
storageAccountVirtualNetworkPublicIP.json Update sql-2016-alwayson template to use api profile (#403) 2018-12-20 14:58:47 -08:00
vnet-with-dns-server.json Update sql-2016-alwayson template to use api profile (#403) 2018-12-20 14:58:47 -08:00

Readme.md

Create a two node SQL Server Always On Cluster with SQL 2016 on Windows Server 2016

This template deploys two SQL Server Enterprise, Standard or Developer instances in an Always On Availability Group. It creates the following resources:

  • A network security group
  • A virtual network
  • Four storage accounts (One for AD, One for SQL, One for File Share witness and One for VM diagnostic)
  • Four public IP address (One for AD, One for each SQL VM and One for Public LB bound to SQL Always On Listener)
  • One external load balancer for SQL VMs with Public IP bound to the SQL Always On listener
  • One VM (WS2016) configured as Domain Controller for a new forest with a single domain
  • Two VM (WS2016) configured as SQL Server 2016 SP1 or SP2 Enterprise/Standard/Developer (must use the marketplace images)
  • One VM (WS2016) configured as File Share Witness for the cluster
  • Two Availability Sets, one containing the SQL and FSW 2016 VMs, the other containing the Domain Controller VM.

Notes

This template uses Azure Stack Marketplace images. These need to be available on your Azure Stack instance:

  • Windows Server 2016 Datacenter Image (for AD and FSW VMs)
  • Choice of SQL Server 2016 SP1 or SP2 on Windows Server 2016 (Enterprise, Standard or Developer)
  • Latest SQL IaaS Extension 1.2.x (currently 1.2.30)
  • Latest DSC Extension (2.76.0, or higher)
  • Latest Custom Script Extension for Windows (1.9.1, or higher)

Configuration

  • Each SQL VMs will have the number and size of data disks specified, of up to 1TiB each. The SQL extension will configured these into a single volume using Storage Spaces.
  • The SQL VMs and the file share witness will be configured in an Availability Set
    • Integrated Systems (fault domains:3, update domains:5)
    • ASDK will automatically use fault domains:1, update domains:1)
  • The template configures the SQL instances with contained database authentication set to true.
  • The external DNS suffix for public IP addresses (ASDK default: azurestack.external)

Parameters

Parameter Name Description Type Default Value
_artifactsLocation Blob store where all deployment artifacts are stored string https://raw.githubusercontent.com/Azure/AzureStack-QuickStart-Templates/master/sql-2016-alwayson
adminUsername Admin user for new VMs and domain string localadmin
adminPassword Password used for the new admin securestring (must be specified)
adVMSize VM size for the domain controller string* Standard_D2_v2
witnessVMSize VM size for the file share witness string* Standard_D1_v2
domainName Name of the new AD domain string fabrikam.local
dnsSuffix Name of the Azure Stack instance's external domain string
virtualNetworkAddressRange Address range for new VNET in CIDR format string 10.0.0.0/16
staticSubnet Range of addresses from the virtualNetworkAddressRange for static IP allocation string 10.0.0.0/24
sqlSubnet Address range used by the SQL & FSW VMs string 10.0.1.0/26
adPDCNICIPAddress IP address for the AD VM string 10.0.0.250
deploymentPrefix DNS prefix for the public IP addresses string aodns
virtualNetworkName Name of the virtual network string sqlhaVNET
sqlServerServiceAccountUserName The SQL Server Service Account name string sqlservice
sqlServerServiceAccountPassword Password for the service account secure string
sqlAuthUserName SQL Server Admin user string sqlsa
sqlAutPassword Password for the SQL Server Admin secure string
sqlStorageAccountName Name for the SQL Storage Account string derived from resource group name
sqlStorageAccountType Standard or Premium Storage string Premium_LRS
sqlServerOffer Name of the SQL Offer string* SQL2016SP2-WS2016
sqlServerSku Name of the SKU string* Enterprise
sqlVMSize Size of the SQL Server VMs string * Standard_DS2_v2
sqlAOAGName SQL Always On Availability Group Name string sqlaa-ag
sqlAOListenerName SQL Always On listener name string derived from the resource group name
sqlAOListenerPort TCP port number used by the listener string 1433
workloadType SQL VM Workload (GENERAL, OLTP, DW) string* GENERAL
vmDiskSize SQL data disk size (128, 256, 512, 1023) string 128
numberOfSqlVMDisks Number of SQL data disks per server int 2
sampleDatabaseName Sample HA database created during deployment string AutoHa-sample
autoPatchingDay Day of the week to download and apply patches string* Sunday
autoPatchingStartHour Hour to start patching process string* 2
  • parameter has a list of allowed values; please refer to the template.