dataplat / docs

The documentation for dbatools module. Issues with command doc and bugs should be reported to dataplat/dbatools.
https://docs.dbatools.io
15 stars 12 forks source link

Issue with Copy-DbaDatabase with 3 destination servers #50

Closed GrabASalad closed 3 years ago

GrabASalad commented 3 years ago

when using Copy-DbaDatabase to copy a database to 3 destination servers the third server errors as it adds the backup devices twice then complains that the number is wrong.

here is the debug output...

DEBUG: [15:04:07][Connect-DbaInstance] Starting process block DEBUG: [15:04:07][Connect-DbaInstance] Starting loop for 'DestinationSQLServer3': ComputerName = 'DestinationSQLServer3', InstanceName = 'MSSQLSERVER', IsLocalHost = 'False', Type = 'Default' DEBUG: [15:04:07][Connect-DbaInstance] Input Object was anything else, so not full smo and we have to go on and build one DEBUG: [15:04:07][Connect-DbaInstance] isConnectionString is false DEBUG: [15:04:08][Connect-DbaInstance] will build server with instance.FullSmoName = 'DestinationSQLServer3' DEBUG: [15:04:08][Connect-DbaInstance] server was build with server.Name = 'DestinationSQLServer3' DEBUG: [15:04:09][Connect-DbaInstance] AppendConnectionString was not set DEBUG: [15:04:09][Connect-DbaInstance] We try to connect DEBUG: [15:04:10][Connect-DbaInstance] We try connection with server.ConnectionContext.SqlConnectionObject.Open() DEBUG: [15:04:13][Connect-DbaInstance] Connect was successful DEBUG: [15:04:15][Connect-DbaInstance] no SqlConnectionOnly, so we go on DEBUG: [15:04:15][Connect-DbaInstance] we don't have server.ComputerName DEBUG: [15:04:15][Connect-DbaInstance] but we would have instance.ComputerName = 'DestinationSQLServer3' DEBUG: [15:04:15][Connect-DbaInstance] we try to use server.NetName for computername DEBUG: [15:04:16][Connect-DbaInstance] Ok, computername = server.NetName = 'DestinationSQLServer3' DEBUG: [15:04:16][Connect-DbaInstance] We add IsAzure = 'False', ComputerName = computername = 'DestinationSQLServer3', DbaInstanceName = instance.InstanceName = 'MSSQLSERVER', NetPort = instance.Port = '1433', ConnectedAs = server.Connec tionContext.TrueLogin = 'SomeAD\SomeAdminDude' DEBUG: [15:04:16][Connect-DbaInstance] We return server with server.Name = 'DestinationSQLServer3' DEBUG: [15:04:17][Copy-DbaDatabase] Performing SMO version check. DEBUG: [15:04:17][Copy-DbaDatabase] Checking to ensure the source isn't the same as the destination. DEBUG: [15:04:17][Copy-DbaDatabase] Checking to ensure server is not SQL Server 7 or below. DEBUG: [15:04:17][Copy-DbaDatabase] Checking to ensure detach/attach is not attempted on SQL Server 2000. DEBUG: [15:04:17][Copy-DbaDatabase] Checking to ensure SQL Server 2000 migration isn't directly attempted to SQL Server 2012. DEBUG: [15:04:18][Copy-DbaDatabase] Warning if migration from 2005 to 2012 and above and attach/detach is used. DEBUG: [15:04:18][Copy-DbaDatabase] Ensuring destination server version is equal to or greater than source. DEBUG: [15:04:18][Copy-DbaDatabase] Writing warning about filestream being enabled. DEBUG: [15:04:18][Copy-DbaDatabase] Building database list. DEBUG: [15:04:18][Copy-DbaDatabase] Performing count. DEBUG: [15:04:19][Copy-DbaDatabase] Building file structure inventory for 1 databases. DEBUG: [15:04:19][Get-SqlFileStructure] SomeDatabaseBeingCopied DEBUG: [15:04:19][Copy-DbaDatabase] ######### Database: SomeDatabaseBeingCopied ######### DEBUG: [15:04:19][Copy-DbaDatabase] Checking for accessibility. DEBUG: [15:04:20][Copy-DbaDatabase] Checking Availability Group status. DEBUG: [15:04:21][Copy-DbaDatabase] Started: 03/02/2021 15:04:19. DEBUG: [15:04:21][Copy-DbaDatabase] Reuse = False. DEBUG: [15:04:21][Restore-DbaDatabase] Starting DEBUG: [15:04:22][Restore-DbaDatabase] Parameters bound: SqlInstance, DatabaseName, ReuseSourceFolderStructure, NoRecovery, TrustDbBackupHistory, WithReplace, Continue, EnableException, ReplaceDbNameInFile, AzureCredential, KeepCD C, KeepReplication DEBUG: [15:04:22][Restore-DbaDatabase] Changing statement timeout to infinity DEBUG: [15:04:22][Restore-DbaDatabase] ParameterSet = Restore DEBUG: [15:04:22][Restore-DbaDatabase] Trust Database Backup History Set DEBUG: [15:04:23][Restore-DbaDatabase] ParameterSet = Restore DEBUG: [15:04:24][Restore-DbaDatabase] Trust Database Backup History Set DEBUG: [15:04:25][Restore-DbaDatabase] Processing DatabaseName - SomeDatabaseBeingCopied DEBUG: [15:04:25][Format-DbaBackupInformation] Starting DEBUG: [15:04:26][Format-DbaBackupInformation] String passed in for DB rename DEBUG: [15:04:26][Format-DbaBackupInformation] New DbName (String) = SomeDatabaseBeingCopied DEBUG: [15:04:26][Format-DbaBackupInformation] 1 PhysicalName = G:\Data\SomeDatabaseBeingCopied.mdf DEBUG: [15:04:27][Format-DbaBackupInformation] PhysicalName = G:\Data\SomeDatabaseBeingCopied.mdf DEBUG: [15:04:27][Format-DbaBackupInformation] 1 PhysicalName = L:\Logs\SomeDatabaseBeingCopied_log.ldf DEBUG: [15:04:28][Format-DbaBackupInformation] PhysicalName = L:\Logs\SomeDatabaseBeingCopied_log.ldf DEBUG: [15:04:29][Format-DbaBackupInformation] New DbName (String) = SomeDatabaseBeingCopied DEBUG: [15:04:29][Format-DbaBackupInformation] 1 PhysicalName = G:\Data\SomeDatabaseBeingCopied.mdf DEBUG: [15:04:29][Format-DbaBackupInformation] PhysicalName = G:\Data\SomeDatabaseBeingCopied.mdf DEBUG: [15:04:31][Format-DbaBackupInformation] 1 PhysicalName = L:\Logs\SomeDatabaseBeingCopied_log.ldf DEBUG: [15:04:31][Format-DbaBackupInformation] PhysicalName = L:\Logs\SomeDatabaseBeingCopied_log.ldf DEBUG: [15:04:31][Select-DbaBackupInformation] Filtering by DatabaseName DEBUG: [15:04:32][Select-DbaBackupInformation] processing diffs DEBUG: [15:04:32][Select-DbaBackupInformation] Found LogBaseLsn: 1067000005312000001 and FirstRecoveryForkID: DEBUG: [15:04:33][Restore-DbaDatabase] VerifyOnly = False DEBUG: [15:04:33][Get-DbaDbPhysicalFile] SELECT DB_NAME(database_id) AS Name, physical_name AS PhysicalName FROM sys.master_files DEBUG: [15:04:34][Test-DbaBackupInformation] Testing restore for SomeDatabaseBeingCopied DEBUG: [15:04:35][Test-DbaBackupInformation] VerifyOnly = False DEBUG: [15:04:37][Test-DbaLsnChain] Testing LSN Chain DEBUG: [15:04:38][Test-DbaLsnChain] Testing LSN Chain - Type Type DEBUG: [15:04:38][Test-DbaLsnChain] Passed LSN Chain checks DEBUG: [15:04:39][Test-DbaBackupInformation] Marking SomeDatabaseBeingCopied as verified DEBUG: [15:04:39][Restore-DbaDatabase] SomeDatabaseBeingCopied passed testing DEBUG: [15:04:40][Restore-DbaDatabase] Passing in to restore DEBUG: [15:04:41][Invoke-DbaAdvancedRestore] Killing processes on SomeDatabaseBeingCopied DEBUG: [15:04:42][Invoke-DbaAdvancedRestore] WithReplace = True DEBUG: [15:04:43][Invoke-DbaAdvancedRestore] restore action = Database DEBUG: [15:04:43][Invoke-DbaAdvancedRestore] Adding device \SomeHost\SomeRootDirectory\SourceSQLServer\SomeDatabaseBeingCopied\COPY\SomeDatabaseBeingCopied_202103021501-1-of-3.bak DEBUG: [15:04:44][Invoke-DbaAdvancedRestore] Adding device \SomeHost\SomeRootDirectory\SourceSQLServer\SomeDatabaseBeingCopied\COPY\SomeDatabaseBeingCopied_202103021501-2-of-3.bak DEBUG: [15:04:44][Invoke-DbaAdvancedRestore] Adding device \SomeHost\SomeRootDirectory\SourceSQLServer\SomeDatabaseBeingCopied\COPY\SomeDatabaseBeingCopied_202103021501-3-of-3.bak DEBUG: [15:04:44][Invoke-DbaAdvancedRestore] Adding device \SomeHost\SomeRootDirectory\SourceSQLServer\SomeDatabaseBeingCopied\COPY\SomeDatabaseBeingCopied_202103021501-1-of-3.bak DEBUG: [15:04:45][Invoke-DbaAdvancedRestore] Adding device \SomeHost\SomeRootDirectory\SourceSQLServer\SomeDatabaseBeingCopied\COPY\SomeDatabaseBeingCopied_202103021501-2-of-3.bak DEBUG: [15:04:46][Invoke-DbaAdvancedRestore] Adding device \SomeHost\SomeRootDirectory\SourceSQLServer\SomeDatabaseBeingCopied\COPY\SomeDatabaseBeingCopied_202103021501-3-of-3.bak DEBUG: [15:04:46][Invoke-DbaAdvancedRestore] Performing restore action DEBUG: [15:04:46][Invoke-DbaAdvancedRestore] Failed, Closing Server connection DEBUG: [15:04:46][Invoke-DbaAdvancedRestore] Failed to restore db SomeDatabaseBeingCopied, stopping | System.Data.SqlClient.SqlError: The media loaded on "\SomeHost\SomeRootDirectory\SourceSQLServer\SomeDatabaseBeingCopied\COPY\SomeDatabaseBeingCopied_202103021501-1-of-3.bak" is f ormatted to support 3 media families, but 6 media families are expected according to the backup device specification. DEBUG: [15:04:47][Invoke-DbaAdvancedRestore] Succeeded, Closing Server connection DEBUG: [15:04:47][Restore-DbaDatabase] Failure | System.Data.SqlClient.SqlError: The media loaded on "\SomeHost\SomeRootDirectory\SourceSQLServer\SomeDatabaseBeingCopied\COPY\SomeDatabaseBeingCopied_202103021501-1-of-3.bak" is formatted to support 3 media families, but 6 media families are expected according to the backup device specification. WARNING: [15:05:04][Copy-DbaDatabase] Failure attempting to restore SomeDatabaseBeingCopied to DestinationSQLServer3 | System.Data.SqlClient.SqlError: The media loaded on "\SomeHost\SomeRootDirectory\SourceSQLServer\SomeDatabaseBeingCopied\COPY\SomeDatabaseBeingCopied_202103021501-1-of-3. bak" is formatted to support 3 media families, but 6 media families are expected according to the backup device specification. DEBUG: [15:05:04][Copy-DbaDatabase] Failure attempting to restore SomeDatabaseBeingCopied to DestinationSQLServer3 | System.Data.SqlClient.SqlError: The media loaded on "\SomeHost\SomeRootDirectory\SourceSQLServer\SomeDatabaseBeingCopied\COPY\SomeDatabaseBeingCopied_202103021501-1-of-3.ba k" is formatted to support 3 media families, but 6 media families are expected according to the backup device specification. DEBUG: [15:05:12][Copy-DbaDatabase] Successfully restored SomeDatabaseBeingCopied to DestinationSQLServer3.

DateTime : 2021-03-02 15:04:19.650 SourceServer : SourceSQLServer DestinationServer : DestinationSQLServer3 Name : SomeDatabaseBeingCopied Type : Database Status : Successful Notes :

DEBUG: [15:05:13][Copy-DbaDatabase] Finished: 03/02/2021 15:05:12. DEBUG: [15:05:17][Copy-DbaDatabase] Elapsed time: 00:00:53.

wsmelton commented 3 years ago

Please open the issue on sqlcollaborative/dbatools repository.