- /Daily_Backup_review/database_s3_check.ps1 - /Daily_Backup_review/Get-StorageContainerContent.ps1 - /Daily_Backup_review/Global_Checks.ps1 - /Daily_Backup_review/list_table_within_databases.ps1 - /Daily_Backup_review/Start-AzureSQLExport.ps1 - /Daily_Backup_review/Start-BackupCheckBpScus.ps1 - /Daily_Backup_review/Start-BackupCheckBpWeu.ps1 - /Daily_Backup_review/Start-BackupCheckRoserAttachments.ps1 - /Daily_Backup_review/Start-BackupCheckRoserCloud.ps1 - /Daily_Backup_review/Start-BackupCheckTotal.ps1 - /Daily_Backup_review/Start-DatabaseExport.ps1 - /Daily_Backup_review/Start-PointInTimeRestore.ps1 - /Daily_Backup_review/list_databases_within_instances.py - /Daily_Citrix_VDA_and_Server_Utilization_review/Cloudwatch_review/cloudwatch_alarm_ap-southeast-2.json - /Daily_Citrix_VDA_and_Server_Utilization_review/Cloudwatch_review/Cloudwatch_review.ps1 - /Ansible/audit-netscaler-exp.yaml - /Ansible/concurrent-user.yaml - /Ansible/do-something.yaml - /Ansible/hello-world.yaml - /Ansible/p6-log-cleanup.yaml - /Ansible/Roser_DB_backup_one_off.yaml - /Ansible/test-sql.yaml - /Ansible/test-sql-double-creds.yaml - /RoserUsefull/access_bulk_servers.ps1 - /RoserUsefull/access_bulk_servers_cezar.ps1 - /RoserUsefull/Bulk_copy_files.ps1 - /RoserUsefull/Besfort_data.ps1 - /RoserUsefull/check_permissions_bulk_servers.ps1 - /RoserUsefull/Check-p6interface-checksum.ps1 - /RoserUsefull/compare_files.ps1 - /RoserUsefull/connections_parser.ps1 - /RoserUsefull/drop_rds_registry_key.ps1 - /RoserUsefull/EmergencyAccessRemote.ps1 - /RoserUsefull/Keycloak_TestConnection.ps1 - /RoserUsefull/Kickoff_disconnected_users.ps1 - /RoserUsefull/launch_jira.ps1 - /RoserUsefull/launch_jira_gui.ps1 - /RoserUsefull/ownership_taker_anonymized.ps1 - /RoserUsefull/purge_files.ps1 - /RoserUsefull/remove_local_profiles_PowerShell.PS1 - /RoserUsefull/retrieve_attachements.ps1 - /RoserUsefull/Send_patch_multiple_servers.ps1 - /RoserUsefull/Test-RSAAPI-BP.ps1 - /RoserUsefull/Linux_identify_big_files.sh
85 lines
2.8 KiB
PowerShell
85 lines
2.8 KiB
PowerShell
Param(
|
|
$SubscriptionID,
|
|
$ResourceGroupName,
|
|
$SourceInstanceName,
|
|
$SourceDatabaseName,
|
|
$DestinationInstanceName,
|
|
$DestinationDatabaseName,
|
|
$PointInTime,
|
|
[switch]$NonInteractive
|
|
)
|
|
|
|
|
|
Write-Verbose "- $($PSBoundParameters | ConvertTo-Json)"
|
|
|
|
Login-AzAccount
|
|
|
|
if(-not $SubscriptionID) {
|
|
$Subscription = Get-AzSubscription | Out-Gridview -passthru # Select your subscription
|
|
} else {
|
|
$Subscription = Get-AzSubscription -SubscriptionId $SubscriptionID
|
|
}
|
|
Select-AzSubscription -Subscription $Subscription.SubscriptionId
|
|
|
|
if(-not $ResourceGroupName) {
|
|
$ResourceGroup = Get-AzResourceGroup | Out-Gridview -passthru # Select your resource group
|
|
} else {
|
|
$ResourceGroup = Get-AzResourceGroup -ResourceGroupName $ResourceGroupName
|
|
}
|
|
|
|
if(-not $SourceInstanceName) {
|
|
$SourceInstance = Get-AzSqlInstance | Out-Gridview -Passthru # Select the source instance for the restore
|
|
} else {
|
|
$SourceInstance = Get-AzSqlInstance -Name $SourceInstanceName
|
|
}
|
|
|
|
if(-not $DestinationInstanceName) {
|
|
$DestinationInstance = Get-AzSqlInstance | Out-GridView -PassThru # Select the Target instance for the restore
|
|
} else {
|
|
$DestinationInstance = Get-AzSqlInstance -Name $DestinationInstanceName
|
|
}
|
|
|
|
if(-not $SourceDatabaseName) {
|
|
$SourceDatabase = Get-AzSqlInstanceDatabase -InstanceName $SourceInstance.ManagedInstanceName -ResourceGroupName $ResourceGroup.ResourceGroupName | Out-GridView -PassThru # Select Database to restore
|
|
} else {
|
|
$SourceDatabase = Get-AzSqlInstanceDatabase -InstanceName $SourceInstance.ManagedInstanceName -Name $SourceDatabaseName -ResourceGroupName $ResourceGroup.ResourceGroupName
|
|
}
|
|
|
|
if(-not $DestinationDatabaseName) {
|
|
$DestinationDatabaseName = read-host -Prompt 'Destination DB name'
|
|
}
|
|
|
|
if(-not $PointInTime) {
|
|
$PointInTime = Get-Date
|
|
}
|
|
|
|
|
|
$ParamRestoreAzSqlinstanceDatabase = @{
|
|
FromPointInTimeBackup = $true
|
|
InstanceName = $SourceInstance.ManagedInstanceName
|
|
Name = $SourceDatabase.Name
|
|
ResourceGroupName = $ResourceGroup.ResourceGroupName
|
|
PointInTime = $PointInTime
|
|
TargetInstanceDatabaseName = $DestinationDatabaseName
|
|
TargetResourceGroupName = $ResourceGroup.ResourceGroupName
|
|
TargetInstanceName = $DestinationInstance.ManagedInstanceName
|
|
}
|
|
|
|
Write-Verbose @"
|
|
@Param = @{
|
|
`$SubscriptionID = '$($Subscription.SubscriptionID)'
|
|
`$ResourceGroupName = '$($ResourceGroup.ResourceGroupName)'
|
|
`$SourceInstanceName = '$($SourceInstance.ManagedInstanceName)'
|
|
`$SourceDatabaseName = '$($SourceDatabase.Name)'
|
|
`$DestinationInstanceName = '$($DestinationInstance.ManagedInstanceName)'
|
|
`$DestinationDatabaseName = '$($DestinationDatabaseName)'
|
|
}
|
|
"@
|
|
|
|
|
|
if(-not $NonInteractive) {
|
|
write-warning "$($ParamRestoreAzSqlinstanceDatabase | ConvertTo-JSon)"
|
|
Write-Warning "Continue with Restore?" -WarningAction Inquire
|
|
}
|
|
|
|
Restore-AzSqlinstanceDatabase @ParamRestoreAzSqlInstanceDatabase |