Have an issue similar to that discussed in the "File to tape from Mac OS SMB share" thread on here, however it is subtly different.
I have created a File to Tape Backup Job pointing to a Backup Copy Job repository as a source (since you cannot create a Backup to Tape job for a Copy Job), specifying a Full Backup to a Weekly Media Pool and an Incremental to a Daily Media Pool. It runs the first time it is created without problems and backs up everything as expected. However the next time it is run, I get the following error:
Code: Select all
13/03/2015 01:30:08 :: Job started at 13/03/2015 01:30:06
13/03/2015 01:30:10 :: Building file tree
13/03/2015 01:30:12 :: Unable to enumerate files in folder Y:\<folder name>\<repository name>
13/03/2015 01:30:12 :: All file system objects were skipped
13/03/2015 01:30:12 :: No new files to backup per job settings
13/03/2015 01:30:12 :: Job finished with error at 13/03/2015 01:30:12
In the job log folder, the log file for the job contains the following SQL related error:
Code: Select all
13.03.2015 01:30:11] <01> Info Bulk copy Complete, executing stored procedure
[13.03.2015 01:30:12] <01> Error Cannot drop the table '#batch_get_last_table', because it does not exist or you do not have permission. (System.Data.SqlClient.SqlException)
[13.03.2015 01:30:12] <01> Error at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
[13.03.2015 01:30:12] <01> Error at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()
[13.03.2015 01:30:12] <01> Error at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
[13.03.2015 01:30:12] <01> Error at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async)
[13.03.2015 01:30:12] <01> Error at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)
[13.03.2015 01:30:12] <01> Error at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
[13.03.2015 01:30:12] <01> Error at Veeam.Backup.DBManager.CDbConnectionImpl.ExecuteNonQuery(String query, CommandType commandType, SqlParameter[] parameters)
[13.03.2015 01:30:12] <01> Error at Veeam.Backup.DBManager.CPersistentDbConnection.ExecuteNonQuery(String query, CommandType commandType)
[13.03.2015 01:30:12] <01> Error at Veeam.Tape.Database.CTempTable.Dispose()
[13.03.2015 01:30:12] <01> Error Cannot resolve the collation conflict between "SQL_Latin1_General_CP1_CI_AS" and "Latin1_General_CI_AS" in the equal to operation. (System.Data.SqlClient.SqlException)
[13.03.2015 01:30:12] <01> Error at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
[13.03.2015 01:30:12] <01> Error at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()
[13.03.2015 01:30:12] <01> Error at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
[13.03.2015 01:30:12] <01> Error at System.Data.SqlClient.SqlDataReader.ConsumeMetaData()
[13.03.2015 01:30:12] <01> Error at System.Data.SqlClient.SqlDataReader.get_MetaData()
[13.03.2015 01:30:12] <01> Error at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
[13.03.2015 01:30:12] <01> Error at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
[13.03.2015 01:30:12] <01> Error at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)
[13.03.2015 01:30:12] <01> Error at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
[13.03.2015 01:30:12] <01> Error at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
[13.03.2015 01:30:12] <01> Error at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior)
[13.03.2015 01:30:12] <01> Error at Veeam.Backup.DBManager.CDbConnectionImpl.ExecDataReader(String spName, Nullable`1 timeout, SqlParameter[] spParams)
[13.03.2015 01:30:12] <01> Error at Veeam.Backup.DBManager.CPersistentDbConnection.ExecDataReaderWithTimeout(String spName, Nullable`1 timeout, SqlParameter[] spParams)
[13.03.2015 01:30:12] <01> Error at Veeam.Tape.Core.CatalogueFileVersionRepository.BatchFindLastNotCorrupted(CBatchFindLastNotCorruptedFileVersionRecord[] tapeFileRecords, Guid backupId)
[13.03.2015 01:30:12] <01> Error at Veeam.Tape.Core.CIncrementalLastWriteTimeFilter.FilterFileFsItems(Guid backupHostId, TapeFsItem2Process[] fsItems)
[13.03.2015 01:30:12] <01> Error at Veeam.Tape.Core.CIncrementalLastWriteTimeFilter.Filter(Guid backupHostId, IEnumerable`1 fsItems)
[13.03.2015 01:30:12] <01> Error at Veeam.Tape.Core.CTapeFileSystemEnumerator2.EnumDirectoryRecursiveOnWindows(CatalogueHost tapeHost, VolumeWithCreds volume, FileSystemItemInfo directoryInfo, BackupSelectionMasks masks, CWinFileCommander winFileCommander)
[13.03.2015 01:30:12] <01> Error at Veeam.Tape.Core.CTapeFileSystemEnumerator2.EnumRootDirectories(VolumeWithCreds volume, BackupSelection selection)
[13.03.2015 01:30:12] <01> Info No new files to backup per job settings
Veeam Support have identified that the SQL 2008 R2 Express instance that is currently being used by Veeam B&R for the "VeeamBackup" database, is set to "Latin1_General_CI_AS" collation as its system default. However the "VeeamBackup" database itself is set to "SQL_Latin1_General_CP1_CI_AS" as its database specific collation. They have suggested that I install another instance of SQL 2008 R2 Express on the same server using the "SQL_Latin1_General_CP1_CI_AS" the default system collation and move the database there. Whilst I am happy to try this to resolve the issue, it seems a bit 'messy' and means that I will now have to monitor and backup Veeam databases from two different instances of SQL Express (since the Veeam Enterprise Manager database is also on the same instance).
Interestingly, the Veeam Enterprise Manager used the default SQL 2008 R2 collation of "Latin1_General_CI_AS" without any issues. I have looked at converting the "VeeamBackup" database to use this system default collation, however the process is complex and not without an element of risk in introducing further issues (since I do not understand how the "VeeamBackup" database has been designed and so various assumptions concerning the conversion process would need to be made, and you know what they say about making assumptions in IT.....).
This instance of Veeam has been upgraded in place several times from an earlier version (v6 through to v8) over the years we have been using the product. Earlier versions used to install SQL 2005 Express. This was then uninstalled and upgraded when later versions of Veeam were released, to the current SQL 2008 R2 Express. I believe the most recent builds of Veeam now use SQL 2012 Express as well. What I suspect has happened is that earlier SQL Express instances were installed by Veeam with "SQL_Latin1_General_CP1_CI_AS" as the default collation. The original "VeeamBackup" database was then created on that instance when Veeam B&R was first installed and inherited that default collation. Later versions of SQL Express now use "Latin1_General_CI_AS" as default (which is now the recommended default system collation to use I believe since the Windows based ones are now seen as preferable and less trouble that the older, depreciated SQL specific collations). However, I suspect the upgrade process only moved the database (probably detached and reattached) when the latest build of SQL Express was installed, and did not state that the default system collation of the new instance should remain compatible with the legacy "VeeamBackup" database specific collation.
Is anyone experiencing the same job issues or has had any issues with collation conflicts between SQL Express instance and database?