@@ -199,6 +199,31 @@ function Test-LongTermRetentionV2Backup($location = "westcentralus")
199
199
}
200
200
}
201
201
202
+ function Test-LongTermRetentionV2ResourceGroupBasedBackup ($location = " westcentralus" )
203
+ {
204
+ # Setup
205
+ $location = Get-Location " Microsoft.Sql" " servers" " West central US"
206
+ $rg = Create- ResourceGroupForTest
207
+ $server = Create- ServerForTest $rg $location
208
+
209
+ try
210
+ {
211
+ # Create with default values
212
+ $databaseName = Get-DatabaseName
213
+ $db = New-AzSqlDatabase - ResourceGroupName $rg.ResourceGroupName - ServerName $server.ServerName - DatabaseName $databaseName
214
+
215
+ # Basic Get Tests
216
+ Get-AzSqlDatabaseLongTermRetentionBackup - Location $db.Location - ResourceGroupName $server.ResourceGroupName
217
+ # Can't assert because we can't guarantee that the subscription won't have any backups in the location.
218
+ $backups = Get-AzSqlDatabaseLongTermRetentionBackup - Location $db.Location - ServerName $server.ServerName - ResourceGroupName $server.ResourceGroupName
219
+ $backups = Get-AzSqlDatabaseLongTermRetentionBackup - Location $db.Location - ServerName $server.ServerName - DatabaseName $databaseName - BackupName * - ResourceGroupName $server.ResourceGroupName
220
+ }
221
+ finally
222
+ {
223
+ Remove-ResourceGroupForTest $rg
224
+ }
225
+ }
226
+
202
227
function Test-LongTermRetentionV2
203
228
{
204
229
@@ -255,6 +280,58 @@ function Test-LongTermRetentionV2
255
280
Remove-AzSqlDatabase - ResourceGroup $resourceGroup - ServerName $serverName - DatabaseName $restoredDatabase
256
281
}
257
282
283
+ function Test-LongTermRetentionV2ResourceGroupBased
284
+ {
285
+
286
+ # MANUAL INSTRUCTIONS
287
+ # Create a server and database and fill in the appropriate information below
288
+ # Set the weekly retention on the database so that the first backup gets picked up, for example:
289
+ # Set-AzSqlDatabaseLongTermRetentionPolicy -ResourceGroup $resourceGroup -ServerName $serverName -DatabaseName $databaseName -WeeklyRetention P1W
290
+ # Wait about 18 hours until it gets properly copied and you see the backup when run get backups, for example:
291
+ # Get-AzSqlDatabaseLongTermRetentionBackup -Location $locationName -ServerName $serverName -DatabaeName $databaseName -ResourceGroupName $resourceGroup
292
+ $resourceGroup = " brrg"
293
+ $locationName = " brazilsouth"
294
+ $serverName = " ltrtest3"
295
+ $databaseName = " mydb"
296
+ $restoredDatabase = " mydb_restore"
297
+ $databaseWithRemovableBackup = " mydb" ;
298
+
299
+ # Basic Get Tests
300
+ $backups = Get-AzSqlDatabaseLongTermRetentionBackup - Location $locationName - ResourceGroupName $resourceGroup
301
+ Assert-AreNotEqual $backups.Count 0
302
+ $backups = Get-AzSqlDatabaseLongTermRetentionBackup - Location $locationName - ServerName $serverName - ResourceGroupName $resourceGroup
303
+ Assert-AreNotEqual $backups.Count 0
304
+ $backups = Get-AzSqlDatabaseLongTermRetentionBackup - Location $locationName - ServerName $serverName - DatabaseName $databaseName - ResourceGroupName $resourceGroup
305
+ Assert-AreNotEqual $backups.Count 0
306
+ $backups = Get-AzSqlDatabaseLongTermRetentionBackup - Location $locationName - ServerName $serverName - DatabaseName $databaseName - BackupName $backups [0 ].BackupName - ResourceGroupName $resourceGroup
307
+ Assert-AreNotEqual $backups.Count 0
308
+
309
+ # Test Get Piping
310
+ $backups = Get-AzSqlDatabase - ResourceGroup $resourceGroup - ServerName $serverName - DatabaseName $databaseName | Get-AzSqlDatabaseLongTermRetentionBackup
311
+ Assert-AreNotEqual $backups.Count 0
312
+ $backups = Get-AzSqlDatabase - ResourceGroup $resourceGroup - ServerName $serverName - DatabaseName $databaseName | Get-AzSqlDatabaseLongTermRetentionBackup - BackupName $backups [0 ].BackupName
313
+ Assert-AreNotEqual $backups.Count 0
314
+
315
+ # Test Get Optional Parameters
316
+ $backups = Get-AzSqlDatabaseLongTermRetentionBackup - Location $locationName - ServerName $serverName - DatabaseName $databaseName - ResourceGroupName $resourceGroup - OnlyLatestPerDatabase - DatabaseState All
317
+ Assert-AreNotEqual $backups.Count 0
318
+
319
+ # Test Get Piping with Optional Parameters
320
+ $backups = Get-AzSqlDatabase - ResourceGroup $resourceGroup - ServerName $serverName - DatabaseName $databaseName | Get-AzSqlDatabaseLongTermRetentionBackup - OnlyLatestPerDatabase
321
+ Assert-AreNotEqual $backups.Count 0
322
+
323
+ # Restore Test
324
+ $backups = Get-AzSqlDatabaseLongTermRetentionBackup - Location $locationName - ResourceGroupName $resourceGroup
325
+ $db = Restore-AzSqlDatabase - FromLongTermRetentionBackup - ResourceId $backups [0 ].ResourceId - ResourceGroupName $resourceGroup - ServerName $serverName - TargetDatabaseName $restoredDatabase
326
+ Assert-AreEqual $db.DatabaseName $restoredDatabase
327
+
328
+ # Test Remove with Piping
329
+ Get-AzSqlDatabaseLongTermRetentionBackup - Location $locationName - ServerName $serverName - DatabaseName $databaseWithRemovableBackup - BackupName $backups [0 ].BackupName - ResourceGroupName $resourceGroup | Remove-AzSqlDatabaseLongTermRetentionBackup - Force
330
+
331
+ # drop the restored db
332
+ Remove-AzSqlDatabase - ResourceGroup $resourceGroup - ServerName $serverName - DatabaseName $restoredDatabase - Force
333
+ }
334
+
258
335
function Test-DatabaseGeoBackupPolicy
259
336
{
260
337
$rg = Get-AzResourceGroup - ResourceGroupName payi- test
0 commit comments