|
47 | 47 | database files during restore. Each RelocateFile object contains a |
48 | 48 | LogicalFileName and PhysicalFileName property. |
49 | 49 |
|
50 | | - .PARAMETER DataFilePath |
51 | | - Specifies the directory path where data files should be relocated during |
52 | | - restore. This is a simpler alternative to RelocateFile when you want all |
53 | | - data files in one directory. Cannot be used together with RelocateFile. |
54 | | -
|
55 | | - .PARAMETER LogFilePath |
56 | | - Specifies the directory path where log files should be relocated during |
57 | | - restore. This is a simpler alternative to RelocateFile when you want all |
58 | | - log files in one directory. Cannot be used together with RelocateFile. |
59 | | -
|
60 | 50 | .PARAMETER Checksum |
61 | 51 | Specifies that checksums should be verified during the restore operation. |
62 | 52 |
|
|
139 | 129 | Performs a restore sequence: full backup with NORECOVERY, differential |
140 | 130 | backup with NORECOVERY, and finally a transaction log backup with RECOVERY. |
141 | 131 |
|
142 | | - .EXAMPLE |
143 | | - $serverObject = Connect-SqlDscDatabaseEngine -InstanceName 'MyInstance' |
144 | | - $serverObject | Restore-SqlDscDatabase -Name 'MyDatabase' -BackupFile 'C:\Backups\MyDatabase.bak' -DataFilePath 'D:\SQLData' -LogFilePath 'L:\SQLLogs' |
145 | | -
|
146 | | - Performs a full restore with all data files relocated to D:\SQLData and |
147 | | - all log files relocated to L:\SQLLogs. |
148 | | -
|
149 | 132 | .EXAMPLE |
150 | 133 | $serverObject = Connect-SqlDscDatabaseEngine -InstanceName 'MyInstance' |
151 | 134 | $relocateFiles = @( |
@@ -189,17 +172,14 @@ function Restore-SqlDscDatabase |
189 | 172 | param |
190 | 173 | ( |
191 | 174 | [Parameter(ParameterSetName = 'ServerObject', Mandatory = $true, ValueFromPipeline = $true)] |
192 | | - [Parameter(ParameterSetName = 'ServerObjectSimpleRelocate', Mandatory = $true, ValueFromPipeline = $true)] |
193 | 175 | [Microsoft.SqlServer.Management.Smo.Server] |
194 | 176 | $ServerObject, |
195 | 177 |
|
196 | 178 | [Parameter(ParameterSetName = 'DatabaseObject', Mandatory = $true, ValueFromPipeline = $true)] |
197 | | - [Parameter(ParameterSetName = 'DatabaseObjectSimpleRelocate', Mandatory = $true, ValueFromPipeline = $true)] |
198 | 179 | [Microsoft.SqlServer.Management.Smo.Database] |
199 | 180 | $DatabaseObject, |
200 | 181 |
|
201 | 182 | [Parameter(ParameterSetName = 'ServerObject', Mandatory = $true)] |
202 | | - [Parameter(ParameterSetName = 'ServerObjectSimpleRelocate', Mandatory = $true)] |
203 | 183 | [ValidateNotNullOrEmpty()] |
204 | 184 | [System.String] |
205 | 185 | $Name, |
@@ -232,18 +212,6 @@ function Restore-SqlDscDatabase |
232 | 212 | [Microsoft.SqlServer.Management.Smo.RelocateFile[]] |
233 | 213 | $RelocateFile, |
234 | 214 |
|
235 | | - [Parameter(ParameterSetName = 'ServerObjectSimpleRelocate', Mandatory = $true)] |
236 | | - [Parameter(ParameterSetName = 'DatabaseObjectSimpleRelocate', Mandatory = $true)] |
237 | | - [ValidateNotNullOrEmpty()] |
238 | | - [System.String] |
239 | | - $DataFilePath, |
240 | | - |
241 | | - [Parameter(ParameterSetName = 'ServerObjectSimpleRelocate', Mandatory = $true)] |
242 | | - [Parameter(ParameterSetName = 'DatabaseObjectSimpleRelocate', Mandatory = $true)] |
243 | | - [ValidateNotNullOrEmpty()] |
244 | | - [System.String] |
245 | | - $LogFilePath, |
246 | | - |
247 | 215 | [Parameter()] |
248 | 216 | [System.Management.Automation.SwitchParameter] |
249 | 217 | $Checksum, |
@@ -299,7 +267,6 @@ function Restore-SqlDscDatabase |
299 | 267 | $MaxTransferSize, |
300 | 268 |
|
301 | 269 | [Parameter(ParameterSetName = 'ServerObject')] |
302 | | - [Parameter(ParameterSetName = 'ServerObjectSimpleRelocate')] |
303 | 270 | [System.Management.Automation.SwitchParameter] |
304 | 271 | $Refresh, |
305 | 272 |
|
@@ -337,7 +304,7 @@ function Restore-SqlDscDatabase |
337 | 304 | ) |
338 | 305 | } |
339 | 306 |
|
340 | | - if ($PSCmdlet.ParameterSetName -in @('ServerObject', 'ServerObjectSimpleRelocate')) |
| 307 | + if ($PSCmdlet.ParameterSetName -eq 'ServerObject') |
341 | 308 | { |
342 | 309 | if ($Refresh.IsPresent) |
343 | 310 | { |
@@ -472,31 +439,7 @@ function Restore-SqlDscDatabase |
472 | 439 | } |
473 | 440 |
|
474 | 441 | # Handle file relocation |
475 | | - if ($PSCmdlet.ParameterSetName -in @('ServerObjectSimpleRelocate', 'DatabaseObjectSimpleRelocate')) |
476 | | - { |
477 | | - # Get the file list from the backup to perform simple relocation |
478 | | - $fileList = $restore.ReadFileList($ServerObject) |
479 | | - |
480 | | - foreach ($row in $fileList.Rows) |
481 | | - { |
482 | | - $logicalName = $row['LogicalName'] |
483 | | - $fileType = $row['Type'] |
484 | | - $originalFileName = [System.IO.Path]::GetFileName($row['PhysicalName']) |
485 | | - |
486 | | - if ($fileType -eq 'L') |
487 | | - { |
488 | | - $newPhysicalName = Join-Path -Path $LogFilePath -ChildPath $originalFileName |
489 | | - } |
490 | | - else |
491 | | - { |
492 | | - $newPhysicalName = Join-Path -Path $DataFilePath -ChildPath $originalFileName |
493 | | - } |
494 | | - |
495 | | - $relocateFileObject = New-Object -TypeName 'Microsoft.SqlServer.Management.Smo.RelocateFile' -ArgumentList $logicalName, $newPhysicalName |
496 | | - $restore.RelocateFiles.Add($relocateFileObject) |
497 | | - } |
498 | | - } |
499 | | - elseif ($PSBoundParameters.ContainsKey('RelocateFile')) |
| 442 | + if ($PSBoundParameters.ContainsKey('RelocateFile')) |
500 | 443 | { |
501 | 444 | foreach ($file in $RelocateFile) |
502 | 445 | { |
|
0 commit comments