Skip to content

Commit 9765a4f

Browse files
JeffGoldnerknithinc
authored andcommitted
New and improved SQL Always On template (#368)
* Initial commit of new SQL HA template * Next round of changes, added db name, fixed warnings * Last set of changes before first release * Update documentation for new version of template
1 parent 951b427 commit 9765a4f

18 files changed

Lines changed: 3251 additions & 0 deletions
227 KB
Binary file not shown.
196 KB
Binary file not shown.
188 KB
Binary file not shown.
193 KB
Binary file not shown.

sql-2016-alwayson/Readme.md

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
# Create a two node SQL Server Always On Cluster with SQL 2016 on Windows Server 2016
2+
3+
This template deploys two SQL Server Enterprise, Standard or Developer instances in an Always On Availability Group. It creates the following resources:
4+
5+
* A network security group
6+
* A virtual network
7+
* Four storage accounts (One for AD, One for SQL, One for File Share witness and One for VM diagnostic)
8+
* Four public IP address (One for AD, Two for each SQL VM and One for Public LB bound to SQL Always On Listener)
9+
* One external load balancer for SQL VMs with Public IP bound to the SQL Always On listener
10+
* One VM (WS2016) configured as Domain Controller for a new forest with a single domain
11+
* Two VM (WS2016) configured as SQL Server 2016 SP1 or SP2 Enterprise/Standard/Developer and clustered (must use the marketplace images)
12+
* One VM (WS2016) configured as File Share Witness for the cluster
13+
* One Availability Set containing the SQL and FSW 2016 VMs
14+
15+
## Notes
16+
17+
This template uses Azure Stack Marketplace images. These need to be available on your Azure Stack instance:
18+
19+
* Windows Server 2016 Datacenter Image (for AD and FSW VMs)
20+
* Choice of SQL Server 2016 SP1 or SP2 on Windows Server 2016 (Enterprise, Standard or Developer)
21+
* Latest SQL IaaS Extension 1.2.x (currently 1.2.30)
22+
* Latest DSC Extension (2.76.0, or higher)
23+
* Latest Custom Script Extension for Windows (1.9.1, or higher)
24+
25+
## Configuration
26+
27+
* 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.
28+
* The SQL VMs and the file share witness will be configured in an Availability Set
29+
* Integrated Systems (fault domains:3, update domains:5)
30+
* ASDK will automatically use fault domains:1, update domains:1)
31+
* The template configures the SQL instances with contained database authentication set to true.
32+
* The *external* DNS suffix for public IP addresses (ASDK default: azurestack.external)
33+
34+
## Parameters
35+
36+
| Parameter Name | Description | Type | Default Value
37+
| --- | --- | --- | ---
38+
| _artifactsLocation | Blob store where all deployment artifacts are stored | string | https://raw.githubusercontent.com/Azure/AzureStack-QuickStart-Templates/master/sql-2016-alwayson
39+
| adminUsername | Admin user for new VMs and domain | string | localadmin
40+
| adminPassword | Password used for the new admin | securestring | (must be specified)
41+
| adVMSize | VM size for the domain controller | string* | Standard_D2_v2
42+
| witnessVMSize | VM size for the file share witness | string* | Standard_D1_v2
43+
| domainName | Name of the new AD domain | string | fabrikam.local
44+
| dnsSuffix | Name of the Azure Stack instance's external domain | string |
45+
| virtualNetworkAddressRange | Address range for new VNET in CIDR format | string | 10.0.0.0/16
46+
| staticSubnet | Range of addresses from the virtualNetworkAddressRange for static IP allocation | string | 10.0.0.0/24
47+
| sqlSubnet | Address range used by the SQL & FSW VMs | string | 10.0.1.0/26
48+
| adPDCNICIPAddress | IP address for the AD VM | string | 10.0.0.250
49+
| deploymentPrefix | DNS prefix for the public IP addresses | string | aodns
50+
| virtualNetworkName | Name of the virtual network | string | sqlhaVNET
51+
| sqlServerServiceAccountUserName | The SQL Server Service Account name | string | sqlservice
52+
| sqlServerServiceAccountPassword | Password for the service account | secure string |
53+
| sqlAuthUserName | SQL Server Admin user | string | sqlsa
54+
| sqlAutPassword | Password for the SQL Server Admin | secure string |
55+
| sqlStorageAccountName | Name for the SQL Storage Account | string | derived from resource group name
56+
| sqlStorageAccountType | Standard or Premium Storage | string | Premium_LRS
57+
| sqlServerOffer | Name of the SQL Offer | string* | SQL2016SP2-WS2016
58+
| sqlServerSku | Name of the SKU | string* | Enterprise
59+
| sqlVMSize | Size of the SQL Server VMs | string * | Standard_DS2_v2
60+
| sqlAOAGName | SQL Always On Availability Group Name | string | sqlaa-ag
61+
| sqlAOListenerName | SQL Always On listener name | string | derived from the resource group name
62+
| sqlAOListenerPort | TCP port number used by the listener | string | 1433
63+
| workloadType | SQL VM Workload (GENERAL, OLTP, DW) | string* | GENERAL
64+
| vmDiskSize | SQL data disk size (128, 256, 512, 1023) | string | 128
65+
| numberOfSqlVMDisks | Number of SQL data disks per server | int | 2
66+
| sampleDatabaseName | Sample HA database created during deployment | string | AutoHa-sample
67+
| autoPatchingDay | Day of the week to download and apply patches | string* | Sunday
68+
| autoPatchingStartHour | Hour to start patching process | string* | 2
69+
70+
* parameter has a list of allowed values; please refer to the template.

0 commit comments

Comments
 (0)