@@ -240,4 +240,92 @@ function Test-RestoreManagedDatabase
240
240
{
241
241
Remove-ResourceGroupForTest $rg
242
242
}
243
+ }
244
+
245
+ <#
246
+ . SYNOPSIS
247
+ Tests Getting a managed database geo-redundant backups
248
+ #>
249
+ function Test-GetManagedDatabaseGeoBackup
250
+ {
251
+ # Setup
252
+ $rgName = " restore-rg"
253
+ $managedInstanceName = " testbrinstance"
254
+ $managedDatabaseName = " sourcedb"
255
+
256
+ # Test Get using all parameters
257
+ $gdb1 = Get-AzSqlInstanceDatabaseGeoBackup - ResourceGroupName $rgName - InstanceName $managedInstanceName - Name $managedDatabaseName
258
+ Assert-NotNull $gdb1
259
+ Assert-AreEqual $managedDatabaseName $gdb1.Name
260
+
261
+ # Test Get using ResourceGroupName and InstanceName
262
+ $all = Get-AzSqlInstanceDatabaseGeoBackup - ResourceGroupName $rgName - InstanceName $managedInstanceName
263
+
264
+ Assert-NotNull $all
265
+ if ($all.Count -le 1 )
266
+ {
267
+ throw " Should get more than 1 backup geo-redundant backups"
268
+ }
269
+ }
270
+
271
+ <#
272
+ . SYNOPSIS
273
+ Tests geo-restoring a managed database
274
+ #>
275
+ function Test-GeoRestoreManagedDatabase
276
+ {
277
+ # Setup
278
+ $rgName = " restore-rg"
279
+ $managedInstanceName = " testbrinstance"
280
+ $managedDatabaseName = " sourcedb"
281
+
282
+ $targetRgName = " restore-rg"
283
+ $targetInstanceName = " testbrinstance"
284
+ try
285
+ {
286
+ $sourceDbGeoBackup = Get-AzSqlInstanceDatabaseGeoBackup - ResourceGroupName $rgName - InstanceName $managedInstanceName - Name $managedDatabaseName
287
+
288
+ Assert-NotNull $sourceDbGeoBackup
289
+
290
+ $targetManagedDatabaseName1 = Get-ManagedDatabaseName
291
+ $targetManagedDatabaseName2 = Get-ManagedDatabaseName
292
+ $targetManagedDatabaseName3 = Get-ManagedDatabaseName
293
+ $targetManagedDatabaseName4 = Get-ManagedDatabaseName
294
+
295
+ # geo-restore managed database using resourceID
296
+ $restoredDb1 = Restore-AzSqlInstanceDatabase - FromGeoBackup - ResourceId $sourceDbGeoBackup.RecoverableDatabaseId - TargetInstanceDatabaseName $targetManagedDatabaseName1 - TargetInstanceName $targetInstanceName - TargetResourceGroupName $targetRgName
297
+ Assert-NotNull $restoredDb1
298
+ Assert-AreEqual $restoredDb1.Name $targetManagedDatabaseName1
299
+ Assert-AreEqual $restoredDb1.ResourceGroupName $targetRgName
300
+ Assert-AreEqual $restoredDb1.ManagedInstanceName $targetInstanceName
301
+
302
+ # geo-restore managed database using name, instance and resource group name
303
+ $restoredDb2 = Restore-AzSqlInstanceDatabase - FromGeoBackup - ResourceGroupName $rgName - InstanceName $managedInstanceName - Name $managedDatabaseName - TargetInstanceDatabaseName $targetManagedDatabaseName2 - TargetInstanceName $targetInstanceName - TargetResourceGroupName $targetRgName
304
+ Assert-NotNull $restoredDb2
305
+ Assert-AreEqual $restoredDb2.Name $targetManagedDatabaseName2
306
+ Assert-AreEqual $restoredDb2.ResourceGroupName $targetRgName
307
+ Assert-AreEqual $restoredDb2.ManagedInstanceName $targetInstanceName
308
+
309
+ # geo-restore managed database using GeoBackupObject
310
+ $restoredDb3 = Restore-AzSqlInstanceDatabase - FromGeoBackup - GeoBackupObject $sourceDbGeoBackup - TargetInstanceDatabaseName $targetManagedDatabaseName3 - TargetInstanceName $targetInstanceName - TargetResourceGroupName $targetRgName
311
+ Assert-NotNull $restoredDb3
312
+ Assert-AreEqual $restoredDb3.Name $targetManagedDatabaseName3
313
+ Assert-AreEqual $restoredDb3.ResourceGroupName $targetRgName
314
+ Assert-AreEqual $restoredDb3.ManagedInstanceName $targetInstanceName
315
+
316
+ # geo-restore managed database using piping
317
+ $restoredDb4 = $sourceDbGeoBackup | Restore-AzSqlInstanceDatabase - FromGeoBackup - TargetInstanceDatabaseName $targetManagedDatabaseName4 - TargetInstanceName $targetInstanceName - TargetResourceGroupName $targetRgName
318
+ Assert-NotNull $restoredDb4
319
+ Assert-AreEqual $restoredDb4.Name $targetManagedDatabaseName4
320
+ Assert-AreEqual $restoredDb4.ResourceGroupName $targetRgName
321
+ Assert-AreEqual $restoredDb4.ManagedInstanceName $targetInstanceName
322
+
323
+ }
324
+ finally
325
+ {
326
+ $restoredDb1 | Remove-AzSqlInstanceDatabase - Force
327
+ $restoredDb2 | Remove-AzSqlInstanceDatabase - Force
328
+ $restoredDb3 | Remove-AzSqlInstanceDatabase - Force
329
+ $restoredDb4 | Remove-AzSqlInstanceDatabase - Force
330
+ }
243
331
}
0 commit comments