Skip to content

Commit 8c640a9

Browse files
Add database readscale related properties support (#13549)
* rename db property and update tests * add secondaryType property * Update help files * update change log * Add back ReadReplicaCount * Add back ReadReplicaCount to the model * Make ReadReplicaCount an alias * Add ReadReplicaCount back to model
1 parent 950fe6b commit 8c640a9

File tree

149 files changed

+394483
-217341
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

149 files changed

+394483
-217341
lines changed

src/Sql/Sql.Test/ScenarioTests/DatabaseBackupTests.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ function Test-ListDatabaseRestorePoints
3030
# Create data warehouse database with all parameters.
3131
$databaseName = Get-DatabaseName
3232
$dwdb = New-AzSqlDatabase -ResourceGroupName $rg.ResourceGroupName -ServerName $server.ServerName -DatabaseName $databaseName `
33-
-Edition DataWarehouse -RequestedServiceObjectiveName DW100
33+
-Edition DataWarehouse -RequestedServiceObjectiveName DW100c
3434

3535
$databaseName = Get-DatabaseName
3636
$standarddb = New-AzSqlDatabase -ResourceGroupName $rg.ResourceGroupName -ServerName $server.ServerName -DatabaseName $databaseName `

src/Sql/Sql.Test/ScenarioTests/DatabaseCrudTests.ps1

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ function Test-CreateDatabaseInternal ($location = "westcentralus")
5959
$collationName = "SQL_Latin1_General_CP1_CI_AS"
6060
$maxSizeBytes = 250GB
6161
$job2 = New-AzSqlDatabase -ResourceGroupName $rg.ResourceGroupName -ServerName $server.ServerName -DatabaseName $databaseName `
62-
-CollationName $collationName -MaxSizeBytes $maxSizeBytes -Edition DataWarehouse -RequestedServiceObjectiveName DW100 -AsJob
62+
-CollationName $collationName -MaxSizeBytes $maxSizeBytes -Edition DataWarehouse -RequestedServiceObjectiveName DW100c -AsJob
6363
$job2 | Wait-Job
6464
$dwdb = $job2.Output
6565

@@ -68,7 +68,7 @@ function Test-CreateDatabaseInternal ($location = "westcentralus")
6868
Assert-AreEqual $dwdb.DatabaseName $databaseName
6969
Assert-AreEqual $dwdb.MaxSizeBytes $maxSizeBytes
7070
Assert-AreEqual $dwdb.Edition DataWarehouse
71-
Assert-AreEqual $dwdb.CurrentServiceObjectiveName DW100
71+
Assert-AreEqual $dwdb.CurrentServiceObjectiveName DW100c
7272
Assert-AreEqual $dwdb.CollationName $collationName
7373

7474
Write-Debug "Create with all parameters"
@@ -391,17 +391,17 @@ function Test-UpdateDatabaseInternal ($location = "southeastasia")
391391
$collationName = "SQL_Latin1_General_CP1_CI_AS"
392392
$maxSizeBytes = 250GB
393393
$dwdb = New-AzSqlDatabase -ResourceGroupName $rg.ResourceGroupName -ServerName $server.ServerName -DatabaseName $databaseName `
394-
-CollationName $collationName -MaxSizeBytes $maxSizeBytes -Edition DataWarehouse -RequestedServiceObjectiveName DW100 -Force
394+
-CollationName $collationName -MaxSizeBytes $maxSizeBytes -Edition DataWarehouse -RequestedServiceObjectiveName DW100c -Force
395395

396396
$job = Set-AzSqlDatabase -ResourceGroupName $rg.ResourceGroupName -ServerName $server.ServerName -DatabaseName $dwdb.DatabaseName `
397-
-MaxSizeBytes $maxSizeBytes -RequestedServiceObjectiveName DW200 -Edition DataWarehouse -AsJob
397+
-MaxSizeBytes $maxSizeBytes -RequestedServiceObjectiveName DW200c -Edition DataWarehouse -AsJob
398398
$job | Wait-Job
399399
$dwdb2 = $job.Output
400400

401401
Assert-AreEqual $dwdb2.DatabaseName $dwdb.DatabaseName
402402
Assert-AreEqual $dwdb2.MaxSizeBytes $maxSizeBytes
403403
Assert-AreEqual $dwdb2.Edition DataWarehouse
404-
Assert-AreEqual $dwdb2.CurrentServiceObjectiveName DW200
404+
Assert-AreEqual $dwdb2.CurrentServiceObjectiveName DW200c
405405
Assert-AreEqual $dwdb2.CollationName $collationName
406406
}
407407
finally
@@ -759,7 +759,7 @@ function Test-GetDatabaseInternal ($location = "westcentralus")
759759
# Create data warehouse database.
760760
$databaseName = Get-DatabaseName
761761
$dwdb = New-AzSqlDatabase -ResourceGroupName $rg.ResourceGroupName -ServerName $server.ServerName -DatabaseName $databaseName `
762-
-CollationName SQL_Latin1_General_CP1_CI_AS -MaxSizeBytes 250GB -Edition DataWarehouse -RequestedServiceObjectiveName DW100
762+
-CollationName SQL_Latin1_General_CP1_CI_AS -MaxSizeBytes 250GB -Edition DataWarehouse -RequestedServiceObjectiveName DW100c
763763
$dwdb2 = Get-AzSqlDatabase -ResourceGroupName $rg.ResourceGroupname -ServerName $server.ServerName -DatabaseName $dwdb.DatabaseName
764764
Assert-AreEqual $dwdb2.DatabaseName $dwdb.DatabaseName
765765
Assert-AreEqual $dwdb2.MaxSizeBytes $dwdb.MaxSizeBytes
@@ -885,7 +885,7 @@ function Test-RemoveDatabaseInternal ($location = "westcentralus")
885885
# Create data warehouse database
886886
$databaseName = Get-DatabaseName
887887
$dwdb = New-AzSqlDatabase -ResourceGroupName $rg.ResourceGroupName -ServerName $server.ServerName -DatabaseName $databaseName `
888-
-CollationName "SQL_Latin1_General_CP1_CI_AS" -MaxSizeBytes 250GB -Edition DataWarehouse -RequestedServiceObjectiveName DW100 -Force
888+
-CollationName "SQL_Latin1_General_CP1_CI_AS" -MaxSizeBytes 250GB -Edition DataWarehouse -RequestedServiceObjectiveName DW100c -Force
889889
Assert-AreEqual $dwdb.DatabaseName $databaseName
890890

891891
Remove-AzSqlDatabase -ResourceGroupName $server.ResourceGroupname -ServerName $server.ServerName -DatabaseName $dwdb.DatabaseName -Force

src/Sql/Sql.Test/ScenarioTests/DatabaseReplicationTests.ps1

Lines changed: 38 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -166,29 +166,40 @@ function Test-CreateNamedSecondaryDatabase()
166166
$rg = Create-ResourceGroupForTest $location
167167
$server = Create-ServerForTest $rg $location
168168
$database = Create-DatabaseForTest $rg $server
169+
$hsDatabase = Create-HyperscaleDatabaseForTest $rg $server
169170

170171
$partRg = Create-ResourceGroupForTest $location
171172
$partServer = Create-ServerForTest $partRg $location
172173

173174
try
174175
{
175-
# Create Named Readable Secondary
176-
$readSecondary = New-AzSqlDatabaseSecondary -ResourceGroupName $rg.ResourceGroupName -ServerName $server.ServerName -DatabaseName $database.DatabaseName `
177-
-PartnerResourceGroupName $partRg.ResourceGroupName -PartnerServerName $partServer.ServerName -PartnerDatabaseName "secondary" -AllowConnections All
178-
Assert-NotNull $readSecondary.LinkId
179-
Assert-AreEqual $readSecondary.ResourceGroupName $rg.ResourceGroupName
180-
Assert-AreEqual $readSecondary.ServerName $server.ServerName
181-
Assert-AreEqual $readSecondary.DatabaseName $database.DatabaseName
182-
Assert-AreEqual $readSecondary.Role "Primary"
183-
Assert-AreEqual $readSecondary.Location $location
184-
Assert-AreEqual $readSecondary.PartnerResourceGroupName $partRg.ResourceGroupName
185-
Assert-AreEqual $readSecondary.PartnerServerName $partServer.ServerName
186-
Assert-AreEqual $readSecondary.PartnerDatabaseName "secondary"
187-
Assert-NotNull $readSecondary.PartnerRole
188-
Assert-AreEqual $readSecondary.PartnerLocation $location
189-
Assert-NotNull $readSecondary.AllowConnections
190-
Assert-NotNull $readSecondary.ReplicationState
191-
Assert-NotNull $readSecondary.PercentComplete
176+
# Create Geo Secondary
177+
$geoSecondary = New-AzSqlDatabaseSecondary -ResourceGroupName $rg.ResourceGroupName -ServerName $server.ServerName -DatabaseName $database.DatabaseName `
178+
-PartnerResourceGroupName $partRg.ResourceGroupName -PartnerServerName $partServer.ServerName -PartnerDatabaseName "secondary" -AllowConnections All -SecondaryType "Geo"
179+
Assert-NotNull $geoSecondary.LinkId
180+
Assert-AreEqual $geoSecondary.ResourceGroupName $rg.ResourceGroupName
181+
Assert-AreEqual $geoSecondary.ServerName $server.ServerName
182+
Assert-AreEqual $geoSecondary.DatabaseName $database.DatabaseName
183+
Assert-AreEqual $geoSecondary.Role "Primary"
184+
Assert-AreEqual $geoSecondary.Location $location
185+
Assert-AreEqual $geoSecondary.PartnerResourceGroupName $partRg.ResourceGroupName
186+
Assert-AreEqual $geoSecondary.PartnerServerName $partServer.ServerName
187+
Assert-AreEqual $geoSecondary.PartnerDatabaseName "secondary"
188+
Assert-NotNull $geoSecondary.PartnerRole
189+
Assert-AreEqual $geoSecondary.PartnerLocation $location
190+
Assert-NotNull $geoSecondary.AllowConnections
191+
Assert-NotNull $geoSecondary.ReplicationState
192+
Assert-NotNull $geoSecondary.PercentComplete
193+
194+
$newDb = Get-AzSqlDatabase -ResourceGroupName $partRg.ResourceGroupName -ServerName $partServer.ServerName -DatabaseName "secondary"
195+
Assert-AreEqual "Geo" $newDb.SecondaryType
196+
197+
# Create Named Replica
198+
$namedReplica = New-AzSqlDatabaseSecondary -ResourceGroupName $rg.ResourceGroupName -ServerName $server.ServerName -DatabaseName $hsDatabase.DatabaseName `
199+
-PartnerResourceGroupName $rg.ResourceGroupName -PartnerServerName $server.ServerName -PartnerDatabaseName "secondary" -SecondaryType "Named"
200+
201+
$newDb = Get-AzSqlDatabase -ResourceGroupName $rg.ResourceGroupName -ServerName $server.ServerName -DatabaseName "secondary"
202+
Assert-AreEqual "Named" $newDb.SecondaryType
192203
}
193204
finally
194205
{
@@ -360,6 +371,16 @@ function Create-VcoreDatabaseForTest ($rg, $server, $numCores = 2, $licenseType
360371
New-AzSqlDatabase -ResourceGroupName $rg.ResourceGroupName -ServerName $server.ServerName -DatabaseName $databaseName -VCore $numCores -ComputeGeneration Gen5 -Edition GeneralPurpose -LicenseType $licenseType
361372
}
362373

374+
<#
375+
.SYNOPSIS
376+
Creates test database
377+
#>
378+
function Create-HyperscaleDatabaseForTest ($rg, $server, $numCores = 2, $licenseType = "LicenseIncluded")
379+
{
380+
$databaseName = Get-DatabaseName
381+
New-AzSqlDatabase -ResourceGroupName $rg.ResourceGroupName -ServerName $server.ServerName -DatabaseName $databaseName -VCore $numCores -ComputeGeneration Gen5 -Edition Hyperscale -LicenseType $licenseType
382+
}
383+
363384
<#
364385
.SYNOPSIS
365386
Creates test database with BackupStorageRedundancy

src/Sql/Sql.Test/ScenarioTests/ElasticPoolCrudTests.ps1

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -67,15 +67,15 @@ function Test-CreateVcoreElasticPool
6767
## Create Vcore based pool with all VcorePoolParameterSet
6868
$poolName = Get-ElasticPoolName
6969
$job = New-AzSqlElasticPool -ServerName $server.ServerName -ResourceGroupName $rg.ResourceGroupName `
70-
-ElasticPoolName $poolName -VCore 2 -Edition GeneralPurpose -ComputeGeneration Gen4 -DatabaseVCoreMin 0.1 -DatabaseVCoreMax 2 -AsJob
70+
-ElasticPoolName $poolName -VCore 2 -Edition GeneralPurpose -ComputeGeneration Gen5 -DatabaseVCoreMin 0.25 -DatabaseVCoreMax 2 -AsJob
7171
$job | Wait-Job
7272
$ep1 = $job.Output
7373

7474
Assert-NotNull $ep1
75-
Assert-AreEqual GP_Gen4 $ep1.SkuName
75+
Assert-AreEqual GP_Gen5 $ep1.SkuName
7676
Assert-AreEqual GeneralPurpose $ep1.Edition
7777
Assert-AreEqual 2 $ep1.Capacity
78-
Assert-AreEqual 0.1 $ep1.DatabaseCapacityMin
78+
Assert-AreEqual 0.25 $ep1.DatabaseCapacityMin
7979
Assert-AreEqual 2.0 $ep1.DatabaseCapacityMax
8080

8181
# Create BC_Gen4_1 elastic pool which is not supported and check the error Message
@@ -106,23 +106,23 @@ function Test-CreateVcoreElasticPoolWithLicenseType
106106
## Create default Vcore based pool
107107
$poolName = Get-ElasticPoolName
108108
$ep1 = New-AzSqlElasticPool -ServerName $server.ServerName -ResourceGroupName $rg.ResourceGroupName `
109-
-ElasticPoolName $poolName -VCore 2 -Edition GeneralPurpose -ComputeGeneration Gen4 -DatabaseVCoreMin 0.1 -DatabaseVCoreMax 2
109+
-ElasticPoolName $poolName -VCore 2 -Edition GeneralPurpose -ComputeGeneration Gen5 -DatabaseVCoreMin 0.25 -DatabaseVCoreMax 2
110110

111111
Assert-NotNull $ep1
112112
Assert-AreEqual LicenseIncluded $ep1.LicenseType # default license type
113113

114114
## Create Vcore based pool with BasePrice license type
115115
$poolName = Get-ElasticPoolName
116116
$ep2 = New-AzSqlElasticPool -ServerName $server.ServerName -ResourceGroupName $rg.ResourceGroupName `
117-
-ElasticPoolName $poolName -VCore 2 -Edition GeneralPurpose -ComputeGeneration Gen4 -DatabaseVCoreMin 0.1 -DatabaseVCoreMax 2 -LicenseType BasePrice
117+
-ElasticPoolName $poolName -VCore 2 -Edition GeneralPurpose -ComputeGeneration Gen5 -DatabaseVCoreMin 0.25 -DatabaseVCoreMax 2 -LicenseType BasePrice
118118

119119
Assert-NotNull $ep2
120120
Assert-AreEqual BasePrice $ep2.LicenseType
121121

122122
## Create Vcore based pool with LicenseIncluded license type
123123
$poolName = Get-ElasticPoolName
124124
$ep3 = New-AzSqlElasticPool -ServerName $server.ServerName -ResourceGroupName $rg.ResourceGroupName `
125-
-ElasticPoolName $poolName -VCore 2 -Edition GeneralPurpose -ComputeGeneration Gen4 -DatabaseVCoreMin 0.1 -DatabaseVCoreMax 2 -LicenseType LicenseIncluded
125+
-ElasticPoolName $poolName -VCore 2 -Edition GeneralPurpose -ComputeGeneration Gen5 -DatabaseVCoreMin 0.25 -DatabaseVCoreMax 2 -LicenseType LicenseIncluded
126126

127127
Assert-NotNull $ep3
128128
Assert-AreEqual LicenseIncluded $ep3.LicenseType
@@ -241,7 +241,7 @@ function Test-UpdateVcoreElasticPool
241241
# Create a Vcore Pool
242242
$poolName = Get-ElasticPoolName
243243
$ep1 = New-AzSqlElasticPool -ServerName $server.ServerName -ResourceGroupName $rg.ResourceGroupName `
244-
-ElasticPoolName $poolName -VCore 2 -Edition GeneralPurpose -ComputeGeneration Gen4
244+
-ElasticPoolName $poolName -VCore 2 -Edition GeneralPurpose -ComputeGeneration Gen5
245245
Assert-NotNull $ep1
246246

247247
# Create a Dtu pool
@@ -268,26 +268,26 @@ function Test-UpdateVcoreElasticPool
268268

269269
# Update a Dtu pool to Vcore pool using piping
270270
$sep2 = $server | Set-AzSqlElasticPool -ElasticPoolName $ep2.ElasticPoolName -VCore 2 `
271-
-Edition GeneralPurpose -ComputeGeneration Gen4 -StorageMB 204800
271+
-Edition GeneralPurpose -ComputeGeneration Gen5 -StorageMB 204800
272272

273273
Assert-NotNull $sep2
274274
Assert-AreEqual 2 $sep2.Capacity
275275
Assert-AreEqual 214748364800 $sep2.MaxSizeBytes
276276
Assert-AreEqual GeneralPurpose $sep2.Edition
277-
Assert-AreEqual GP_Gen4 $sep2.SkuName
277+
Assert-AreEqual GP_Gen5 $sep2.SkuName
278278
Assert-AreEqual 0 $sep2.DatabaseCapacityMin
279279
Assert-AreEqual 2 $sep2.DatabaseCapacityMax
280280

281281
# Update VCore pool only on DatabaseVCoreMin
282-
$sep3 = $server | Set-AzSqlElasticPool -ElasticPoolName $ep2.ElasticPoolName -DatabaseVCoreMin 0.1
282+
$sep3 = $server | Set-AzSqlElasticPool -ElasticPoolName $ep2.ElasticPoolName -DatabaseVCoreMin 0.25
283283
Assert-NotNull $sep3
284-
Assert-AreEqual 0.1 $sep3.DatabaseCapacityMin
284+
Assert-AreEqual 0.25 $sep3.DatabaseCapacityMin
285285

286286
# Update Vcore pool only on VCores
287-
$sep4 = $server | Set-AzSqlElasticPool -ElasticPoolName $ep2.ElasticPoolName -VCore 1
287+
$sep4 = $server | Set-AzSqlElasticPool -ElasticPoolName $ep2.ElasticPoolName -VCore 2
288288
Assert-NotNull $sep4
289-
Assert-AreEqual 1 $sep4.Capacity
290-
Assert-AreEqual 0.1 $sep4.DatabaseCapacityMin
289+
Assert-AreEqual 2 $sep4.Capacity
290+
Assert-AreEqual 0.25 $sep4.DatabaseCapacityMin
291291
}
292292
finally
293293
{

src/Sql/Sql.Test/ScenarioTests/ReadScaleCrudTests.ps1

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -59,13 +59,11 @@ function Test-GetDatabaseReadScale ($serverVersion = "12.0", $location = "Southe
5959
{
6060
$db1 = Get-AzSqlDatabase -ResourceGroupName $server.ResourceGroupname -ServerName $server.ServerName -DatabaseName $db.DatabaseName
6161
Assert-AreEqual Enabled $db1.ReadScale
62-
Assert-AreEqual 1 $db1.ReadReplicaCount
6362

64-
# Alter read scale properties, Premium ignores ReadReplicaCount
63+
# Alter read scale properties, Premium ignores HighAvailabilityReplicaCount
6564
$db2 = Set-AzSqlDatabase -ResourceGroupName $db.ResourceGroupName -ServerName $db.ServerName -DatabaseName $db.DatabaseName `
66-
-ReadScale Disabled -ReadReplicaCount -1
65+
-ReadScale Disabled -HighAvailabilityReplicaCount -1
6766
Assert-AreEqual Disabled $db2.ReadScale
68-
Assert-AreEqual 0 $db2.ReadReplicaCount
6967
}
7068
finally
7169
{
@@ -76,7 +74,7 @@ function Test-GetDatabaseReadScale ($serverVersion = "12.0", $location = "Southe
7674

7775
<#
7876
.SYNOPSIS
79-
Tests database ReadReplicaCount option
77+
Tests database HighAvailabilityReplicaCount option
8078
#>
8179
function Test-DatabaseReadReplicaCount ($serverVersion = "12.0", $location = "Southeast Asia")
8280
{
@@ -94,13 +92,19 @@ function Test-DatabaseReadReplicaCount ($serverVersion = "12.0", $location = "So
9492
{
9593
$db1 = Get-AzSqlDatabase -ResourceGroupName $server.ResourceGroupname -ServerName $server.ServerName -DatabaseName $db.DatabaseName
9694
Assert-AreEqual Enabled $db1.ReadScale
97-
Assert-AreEqual 1 $db1.ReadReplicaCount
95+
Assert-AreEqual 1 $db1.HighAvailabilityReplicaCount
9896

9997
# Alter read scale properties, Hyperscale ignores ReadScale
10098
$db2 = Set-AzSqlDatabase -ResourceGroupName $db.ResourceGroupName -ServerName $db.ServerName -DatabaseName $db.DatabaseName `
101-
-ReadScale Enabled -ReadReplicaCount 0
99+
-ReadScale Enabled -HighAvailabilityReplicaCount 0
102100
Assert-AreEqual Disabled $db2.ReadScale
103-
Assert-AreEqual 0 $db2.ReadReplicaCount
101+
Assert-AreEqual 0 $db2.HighAvailabilityReplicaCount
102+
103+
# Alter read scale properties using alias
104+
$db3 = Set-AzSqlDatabase -ResourceGroupName $db.ResourceGroupName -ServerName $db.ServerName -DatabaseName $db.DatabaseName `
105+
-ReadScale Enabled -ReadReplicaCount 1
106+
Assert-AreEqual Enabled $db3.ReadScale
107+
Assert-AreEqual 1 $db3.HighAvailabilityReplicaCount
104108
}
105109
finally
106110
{

0 commit comments

Comments
 (0)