63 lines
2.1 KiB
PowerShell
63 lines
2.1 KiB
PowerShell
<#
|
|
TPDT-287
|
|
|
|
Change the dump device location for Arizona DB to a U drive if this drive exists
|
|
|
|
TSC 18.03.2024 Creation
|
|
#>
|
|
|
|
$instance = "(local)\APSSQL"
|
|
$target_path = "U:" #This path must NOT have a trailing slash
|
|
|
|
if(Test-Path -Path $target_path){
|
|
$query=@"
|
|
SELECT * FROM sys.backup_devices
|
|
WHERE [name] IN
|
|
(
|
|
N'Arizona_Dump',
|
|
N'Arizona_dump_SECU'
|
|
)
|
|
AND physical_name like 'd:%'
|
|
"@
|
|
$ds_dumpDevices = Invoke-Sqlcmd -ServerInstance $instance -Query $query -Database master
|
|
|
|
if($ds_dumpDevices.Count -gt 0){
|
|
Write-Output "Path $target_path exists, ensuring Arizona dump devices are set to this drive"
|
|
$query = @"
|
|
|
|
IF EXISTS (SELECT 1 FROM [sys].[backup_devices] WHERE name='Arizona_Dump' AND [physical_name] LIKE 'D:%')
|
|
BEGIN
|
|
EXEC [sys].[sp_dropdevice] @logicalname = 'Arizona_Dump',@delfile = NULL;
|
|
PRINT 'Dump device Arizona_Dump removed';
|
|
END
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM [sys].[backup_devices] WHERE name='Arizona_Dump')
|
|
BEGIN
|
|
EXEC master.dbo.sp_addumpdevice @devtype = N'disk',
|
|
@logicalname = N'Arizona_Dump',
|
|
@physicalname = N'$target_path\Arizona_Dump.bak';
|
|
PRINT 'Dump device Arizona_Dump created on U drive';
|
|
END
|
|
|
|
IF EXISTS (SELECT 1 FROM [sys].[backup_devices] WHERE name='Arizona_dump_SECU' AND [physical_name] LIKE 'D:%')
|
|
BEGIN
|
|
EXEC [sys].[sp_dropdevice] @logicalname = 'Arizona_dump_SECU',@delfile = NULL
|
|
PRINT 'Dump device Arizona_dump_SECU removed';
|
|
END
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM [sys].[backup_devices] WHERE name='Arizona_dump_SECU')
|
|
BEGIN
|
|
EXEC master.dbo.sp_addumpdevice @devtype = N'disk',
|
|
@logicalname = N'Arizona_dump_SECU',
|
|
@physicalname = N'$target_path\Arizona_dump_SECU.bak';
|
|
PRINT 'Dump device Arizona_dump_SECU created on U drive';
|
|
END
|
|
|
|
"@
|
|
Invoke-Sqlcmd -ServerInstance $instance -Database master -Query $query
|
|
}
|
|
}
|
|
else{
|
|
Write-Output "Path $target_path does not exists, not touching dump devices"
|
|
}
|