Can't install management server in SQL server 2008 r2
Does management server support SQL Server 2008 R2 or only support SQL server 2008? when I install the management server in SQL server 2008 r2 in windows 2008 R2, It shows some error message.
below the error message:
Acronis Backup & Recovery 11.5 Management Server
Code: 08356355
Line tag: 0x5538f731ab695dd
Message:
Suberror
Code: 01
Line tag: 0x39098ee09af00d28
Message: An error occurs while executing SQL command: USE acronis_cms_logs;
IF NOT EXISTS(SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'dbo.Events') AND type IN (N'U'))
BEGIN
create table Events
(
TaskID uniqueidentifier,
TaskName nvarchar(100),
TaskOwner nvarchar(100),
InstanceID uniqueidentifier,
InstanceName nvarchar(100),
InstanceType int,
PolicyID uniqueidentifier,
PolicyName nvarchar(100),
MachineID uniqueidentifier,
MachineName nvarchar(100),
Code int not null,
Severity int not null,
Category nvarchar(60),
Time bigint not null,
Message ntext,
JobID uniqueidentifier not null default('00000000-0000-0000-0000-000000000000'),
ActivityType uniqueidentifier,
ActivityName nvarchar(100)
)
CREATE INDEX InstanceID_INDEX ON Events
(
InstanceID
);
CREATE INDEX PolicyID_INDEX ON Events
(
PolicyID
);
CREATE INDEX TaskID_INDEX ON Events
(
TaskID
);
CREATE INDEX TaskOwner_INDEX ON Events
(
TaskOwner
);
CREATE INDEX InstanceType_INDEX ON Events
(
InstanceType
);
CREATE INDEX MachineID_INDEX ON Events
(
MachineID
);
CREATE INDEX Category_INDEX ON Events
(
Category
);
CREATE INDEX Code_INDEX ON Events
(
Code
);
CREATE INDEX Severity_INDEX ON Events
(
Severity
);
CREATE INDEX Time_INDEX ON Events
(
Time
);
CREATE INDEX TaskName_INDEX ON Events
(
TaskName
);
CREATE INDEX Job_Index ON Events
(
JobID
);
END;
IF NOT EXISTS(SELECT * FROM sys.columns
WHERE object_id = OBJECT_ID(N'dbo.Events') AND name=N'JobID')
BEGIN
ALTER TABLE Events ADD JobID uniqueidentifier not null default('00000000-0000-0000-0000-000000000000')
CREATE INDEX Job_Index ON Events
(
JobID
);
END;
IF NOT EXISTS(SELECT * FROM sys.columns
WHERE object_id = OBJECT_ID(N'dbo.Events') AND name=N'ActivityType')
BEGIN
ALTER TABLE Events ADD ActivityType uniqueidentifier
END;
IF NOT EXISTS(SELECT * FROM sys.columns
WHERE object_id = OBJECT_ID(N'dbo.Events') AND name=N'ActivityName')
BEGIN
ALTER TABLE Events ADD ActivityName nvarchar(100)
END;
IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'dbo.NumberedEventsTime'))
DROP VIEW NumberedEventsTime
EXEC dbo.sp_executesql @statement = N'
CREATE VIEW dbo.NumberedEventsTime
AS
SELECT ROW_NUMBER() OVER(ORDER BY Time DESC) RowN, Time
FROM Events
';
IF EXISTS(SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'dbo.GetLogsDatabaseSize') AND type IN (N'FN', N'IF', N'TF', N'FS', N'FT'))
DROP FUNCTION GetLogsDatabaseSize
EXECUTE dbo.sp_executesql @statement = N'CREATE FUNCTION GetLogsDatabaseSize()
RETURNS bigint
AS
BEGIN
DECLARE @dbSizeKb bigint
SELECT @dbSizeKb = 8 * size FROM sys.database_files WHERE file_id = 1
RETURN @dbSizeKb
END
';
IF EXISTS(SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'dbo.CalculateTimeThreshold') AND type IN (N'FN', N'IF', N'TF', N'FS', N'FT'))
DROP FUNCTION CalculateTimeThreshold
EXECUTE dbo.sp_executesql @statement = N'
CREATE FUNCTION CalculateTimeThreshold
(
@maxDbSizeKb bigint
)
RETURNS bigint
AS
BEGIN
DECLARE @dbSizeKb bigint
SET @dbSizeKb = dbo.GetLogsDatabaseSize()
IF @dbSizeKb <= @maxDbSizeKb
RETURN NULL
DECLARE @count bigint
SELECT @count = COUNT(*) FROM Events
IF @count = 0
RETURN NULL
DECLARE @averageEntrySizeInBytes int
SET @averageEntrySizeInBytes = (@dbSizeKb * 1024) / @count
IF @averageEntrySizeInBytes = 0
RETURN NULL
DECLARE @maxEntries bigint
SET @maxEntries = @maxDbSizeKb * 1024 / @averageEntrySizeInBytes
DECLARE @threshold bigint
SELECT @threshold = Time FROM NumberedEventsTime WHERE RowN = @maxEntries
RETURN @threshold
END
';
IF EXISTS(SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'dbo.GetTaskActivitiesReport') AND type IN (N'FN', N'IF', N'TF', N'FS', N'FT'))
DROP FUNCTION GetTaskActivitiesReport
EXEC dbo.sp_executesql @statement = N'
CREATE FUNCTION GetTaskActivitiesReport ()
RETURNS TABLE
AS
RETURN
SELECT
E1.TaskID,
E1.ActivityType,
E1.ActivityName,
E1.TaskOwner,
E1.InstanceID,
E1.InstanceName,
E1.InstanceType,
E1.PolicyID,
CASE WHEN E1.PolicyName = '''' THEN E1.TaskName ELSE E1.PolicyName END AS ActivityInitiator,
E1.MachineID,
E1.MachineName,
DATEADD(second, E1.Time, ''01/01/1970 0:00:00'') StartTime,
DATEADD(second, E2.Time, ''01/01/1970 0:00:00'') FinishTime,
E1.Time / 86400 StartDay,
E1.JobID,
E2.Code Result,
CASE E2.code WHEN 0x135003B THEN 1 ELSE 0 END AS FinishedSuccessfully,
CASE E2.code WHEN 0x135003C THEN 1 ELSE 0 END AS FinishedWithWarnings,
CASE E2.code WHEN 0x135003D THEN 1 ELSE 0 END AS FinishedWithErrors,
CASE LEN(E1.Category) WHEN 0 THEN T.Category COLLATE DATABASE_DEFAULT ELSE E1.Category COLLATE DATABASE_DEFAULT END Category
FROM
acronis_cms_logs.dbo.Events E1
INNER JOIN acronis_cms_logs.dbo.Events E2 ON E1.JobID = E2.JobID
LEFT JOIN acronis_cms.dbo.Task T ON E1.TaskID = T.ID
WHERE (E1.Code = 0x135003A) AND (E2.Code IN (0x135003B, 0x135003C, 0x135003D)) AND (E1.TaskID <> ''00000000-0000-0000-0000-000000000000'')
';
IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'dbo.TaskActivitiesReport'))
DROP VIEW TaskActivitiesReport
EXEC dbo.sp_executesql @statement = N'
CREATE VIEW TaskActivitiesReport
AS
SELECT
E1.TaskID,
E1.ActivityType,
E1.ActivityName,
E1.TaskOwner,
E1.InstanceID,
E1.InstanceName,
E1.InstanceType,
E1.PolicyID,
CASE WHEN E1.PolicyName = '''' THEN E1.TaskName ELSE E1.PolicyName END AS ActivityInitiator,
E1.MachineID,
E1.MachineName,
DATEADD(second, E1.Time, ''01/01/1970 0:00:00'') StartTime,
DATEADD(second, E2.Time, ''01/01/1970 0:00:00'') FinishTime,
E1.Time / 86400 StartDay,
E1.JobID,
E2.Code Result,
CASE E2.code WHEN 0x135003B THEN 1 ELSE 0 END AS FinishedSuccessfully,
CASE E2.code WHEN 0x135003C THEN 1 ELSE 0 END AS FinishedWithWarnings,
CASE E2.code WHEN 0x135003D THEN 1 ELSE 0 END AS FinishedWithErrors,
CASE LEN(E1.Category) WHEN 0 THEN T.Category COLLATE DATABASE_DEFAULT ELSE E1.Category COLLATE DATABASE_DEFAULT END Category
FROM
acronis_cms_logs.dbo.Events E1
INNER JOIN acronis_cms_logs.dbo.Events E2 ON E1.JobID = E2.JobID
LEFT JOIN acronis_cms.dbo.Task T ON E1.TaskID = T.ID
WHERE (E1.Code = 0x135003A) AND (E2.Code IN (0x135003B, 0x135003C, 0x135003D)) AND (E1.TaskID <> ''00000000-0000-0000-0000-000000000000'')
';
IF EXISTS(SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'dbo.GetTaskFirstEventTime') AND type IN (N'FN'))
DROP FUNCTION GetTaskFirstEventTime
EXECUTE dbo.sp_executesql @statement = N'
CREATE FUNCTION GetTaskFirstEventTime
(
@taskID uniqueidentifier
)
RETURNS bigint
AS
BEGIN
DECLARE @result as bigint
SELECT @result = MIN(Time) FROM Events WHERE TaskID = @taskID
RETURN @result
END
';
IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'dbo.TasksFinishIntervals'))
DROP VIEW TasksFinishIntervals
EXEC dbo.sp_executesql @statement = N'
CREATE VIEW TasksFinishIntervals
AS
SELECT
L.Time LeftTime, R.Time RightTime, R.TaskID TaskID
FROM
Events R
INNER JOIN Events L
ON L.TaskID = R.TaskID
AND L.Time < R.Time
AND L.Code = R.Code
AND L.Code BETWEEN 0xB50506 AND 0xB50508
AND R.JobID = ''00000000-0000-0000-0000-000000000000''
AND NOT EXISTS
(
SELECT * FROM Events WHERE Code BETWEEN 0xB50506 AND 0xB50508 AND Time > L.Time AND Time < R.Time
)
UNION
SELECT
dbo.GetTaskFirstEventTime(TaskID), MIN(Time), TaskID
FROM
Events
WHERE
Code BETWEEN 0xB50506 AND 0xB50508
AND JobID = ''00000000-0000-0000-0000-000000000000''
GROUP BY TaskID
';
IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'dbo.TaskJobs'))
DROP VIEW TaskJobs
EXEC dbo.sp_executesql @statement = N'
CREATE VIEW TaskJobs
AS
SELECT DISTINCT
Active.TaskID ActiveTaskID,
Active.TaskName ActiveTaskName,
Active.TaskOwner ActiveTaskOwner,
Active.InstanceID ActiveInstanceID,
Active.InstanceName ActiveInstanceName,
Active.InstanceType ActiveInstanceType,
Active.PolicyID ActivePolicyID,
Active.PolicyName ActivePolicyName,
Active.MachineID ActiveMachineID,
Active.MachineName ActiveMachineName,
Active.Code ActiveCode,
Active.Severity ActiveSeverity,
Active.Category ActiveCategory,
Active.Time ActiveTime,
Active.JobID ActiveJobID,
Finished.RightTime FinishedTime
FROM
Events Active
INNER JOIN TasksFinishIntervals Finished
ON Active.Time = (SELECT MIN(Time) FROM Events WHERE Time > Finished.LeftTime AND Time <= Finished.RightTime AND Code = 0xB50504)
AND Active.Code = 0xB50504
';
IF EXISTS(SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'dbo.WorkoutJobs') AND type IN (N'P'))
DROP PROCEDURE WorkoutJobs
EXECUTE dbo.sp_executesql @statement = N'CREATE PROCEDURE WorkoutJobs
AS
BEGIN
-- optimistic optimization
IF NOT EXISTS(SELECT * FROM TasksFinishIntervals)
RETURN
-- stage 1:
-- order of stages is important
-- add Task started records in Events
INSERT INTO
Events
(
TaskID,
TaskName,
TaskOwner,
InstanceID,
InstanceName,
InstanceType,
PolicyID,
PolicyName,
MachineID,
MachineName,
Code,
Severity,
Category,
Time,
Message,
JobID
)
SELECT
ActiveTaskID TaskID,
ActiveTaskName TaskName,
ActiveTaskOwner TaskOwner,
ActiveInstanceID InstanceID,
ActiveInstanceName InstanceName,
ActiveInstanceType InstanceType,
ActivePolicyID PolicyID,
ActivePolicyName PolicyName,
ActiveMachineID MachineID,
ActiveMachineName MachineName,
0xB5050B Code,
ActiveSeverity Severity,
ActiveCategory Category,
ActiveTime Time,
N''Task '''''' + ActiveTaskName + N'''''' was started.'' Message,
NEWID() JobID
FROM
TaskJobs
-- stage 2:
-- fix 00000000-0000-0000-0000-000000000000 jobID
UPDATE
Events
SET
JobID = E.JobID
FROM
Events
INNER JOIN TaskJobs J
ON Events.Time = J.FinishedTime
AND Events.Code BETWEEN 0xB50506 AND 0xB50508
AND Events.TaskID = J.ActiveTaskID
AND Events.JobID = ''00000000-0000-0000-0000-000000000000''
INNER JOIN Events E
ON E.TaskID = Events.TaskID
AND E.Code = 0xB5050B
AND E.Time = J.ActiveTime
AND E.TaskID = J.ActiveTaskID
END
';
Suberror
Code: 08323089
Line tag: 0xc131f5921ff77446
Message: Query 'USE acronis_cms_logs;
IF NOT EXISTS(SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'dbo.Events') AND type IN (N'U'))
BEGIN
create table Events
(
TaskID uniqueidentifier,
TaskName nvarchar(100),
TaskOwner nvarchar(100),
InstanceID uniqueidentifier,
InstanceName nvarchar(100),
InstanceType int,
PolicyID uniqueidentifier,
PolicyName nvarchar(100),
MachineID uniqueidentifier,
MachineName nvarchar(100),
Code int not null,
Severity int not null,
Category nvarchar(60),
Time bigint not null,
Message ntext,
JobID uniqueidentifier not null default('00000000-0000-0000-0000-000000000000'),
ActivityType uniqueidentifier,
ActivityName nvarchar(100)
)
CREATE INDEX InstanceID_INDEX ON Events
(
InstanceID
);
CREATE INDEX PolicyID_INDEX ON Events
(
PolicyID
);
CREATE INDEX TaskID_INDEX ON Events
(
TaskID
);
CREATE INDEX TaskOwner_INDEX ON Events
(
TaskOwner
);
CREATE INDEX InstanceType_INDEX ON Events
(
InstanceType
);
CREATE INDEX MachineID_INDEX ON Events
(
MachineID
);
CREATE INDEX Category_INDEX ON Events
(
Category
);
CREATE INDEX Code_INDEX ON Events
(
Code
);
CREATE INDEX Severity_INDEX ON Events
(
Severity
);
CREATE INDEX Time_INDEX ON Events
(
Time
);
CREATE INDEX TaskName_INDEX ON Events
(
TaskName
);
CREATE INDEX Job_Index ON Events
(
JobID
);
END;
IF NOT EXISTS(SELECT * FROM sys.columns
WHERE object_id = OBJECT_ID(N'dbo.Events') AND name=N'JobID')
BEGIN
ALTER TABLE Events ADD JobID uniqueidentifier not null default('00000000-0000-0000-0000-000000000000')
CREATE INDEX Job_Index ON Events
(
JobID
);
END;
IF NOT EXISTS(SELECT * FROM sys.columns
WHERE object_id = OBJECT_ID(N'dbo.Events') AND name=N'ActivityType')
BEGIN
ALTER TABLE Events ADD ActivityType uniqueidentifier
END;
IF NOT EXISTS(SELECT * FROM sys.columns
WHERE object_id = OBJECT_ID(N'dbo.Events') AND name=N'ActivityName')
BEGIN
ALTER TABLE Events ADD ActivityName nvarchar(100)
END;
IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'dbo.NumberedEventsTime'))
DROP VIEW NumberedEventsTime
EXEC dbo.sp_executesql @statement = N'
CREATE VIEW dbo.NumberedEventsTime
AS
SELECT ROW_NUMBER() OVER(ORDER BY Time DESC) RowN, Time
FROM Events
';
IF EXISTS(SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'dbo.GetLogsDatabaseSize') AND type IN (N'FN', N'IF', N'TF', N'FS', N'FT'))
DROP FUNCTION GetLogsDatabaseSize
EXECUTE dbo.sp_executesql @statement = N'CREATE FUNCTION GetLogsDatabaseSize()
RETURNS bigint
AS
BEGIN
DECLARE @dbSizeKb bigint
SELECT @dbSizeKb = 8 * size FROM sys.database_files WHERE file_id = 1
RETURN @dbSizeKb
END
';
IF EXISTS(SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'dbo.CalculateTimeThreshold') AND type IN (N'FN', N'IF', N'TF', N'FS', N'FT'))
DROP FUNCTION CalculateTimeThreshold
EXECUTE dbo.sp_executesql @statement = N'
CREATE FUNCTION CalculateTimeThreshold
(
@maxDbSizeKb bigint
)
RETURNS bigint
AS
BEGIN
DECLARE @dbSizeKb bigint
SET @dbSizeKb = dbo.GetLogsDatabaseSize()
IF @dbSizeKb <= @maxDbSizeKb
RETURN NULL
DECLARE @count bigint
SELECT @count = COUNT(*) FROM Events
IF @count = 0
RETURN NULL
DECLARE @averageEntrySizeInBytes int
SET @averageEntrySizeInBytes = (@dbSizeKb * 1024) / @count
IF @averageEntrySizeInBytes = 0
RETURN NULL
DECLARE @maxEntries bigint
SET @maxEntries = @maxDbSizeKb * 1024 / @averageEntrySizeInBytes
DECLARE @threshold bigint
SELECT @threshold = Time FROM NumberedEventsTime WHERE RowN = @maxEntries
RETURN @threshold
END
';
IF EXISTS(SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'dbo.GetTaskActivitiesReport') AND type IN (N'FN', N'IF', N'TF', N'FS', N'FT'))
DROP FUNCTION GetTaskActivitiesReport
EXEC dbo.sp_executesql @statement = N'
CREATE FUNCTION GetTaskActivitiesReport ()
RETURNS TABLE
AS
RETURN
SELECT
E1.TaskID,
E1.ActivityType,
E1.ActivityName,
E1.TaskOwner,
E1.InstanceID,
E1.InstanceName,
E1.InstanceType,
E1.PolicyID,
CASE WHEN E1.PolicyName = '''' THEN E1.TaskName ELSE E1.PolicyName END AS ActivityInitiator,
E1.MachineID,
E1.MachineName,
DATEADD(second, E1.Time, ''01/01/1970 0:00:00'') StartTime,
DATEADD(second, E2.Time, ''01/01/1970 0:00:00'') FinishTime,
E1.Time / 86400 StartDay,
E1.JobID,
E2.Code Result,
CASE E2.code WHEN 0x135003B THEN 1 ELSE 0 END AS FinishedSuccessfully,
CASE E2.code WHEN 0x135003C THEN 1 ELSE 0 END AS FinishedWithWarnings,
CASE E2.code WHEN 0x135003D THEN 1 ELSE 0 END AS FinishedWithErrors,
CASE LEN(E1.Category) WHEN 0 THEN T.Category COLLATE DATABASE_DEFAULT ELSE E1.Category COLLATE DATABASE_DEFAULT END Category
FROM
acronis_cms_logs.dbo.Events E1
INNER JOIN acronis_cms_logs.dbo.Events E2 ON E1.JobID = E2.JobID
LEFT JOIN acronis_cms.dbo.Task T ON E1.TaskID = T.ID
WHERE (E1.Code = 0x135003A) AND (E2.Code IN (0x135003B, 0x135003C, 0x135003D)) AND (E1.TaskID <> ''00000000-0000-0000-0000-000000000000'')
';
IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'dbo.TaskActivitiesReport'))
DROP VIEW TaskActivitiesReport
EXEC dbo.sp_executesql @statement = N'
CREATE VIEW TaskActivitiesReport
AS
SELECT
E1.TaskID,
E1.ActivityType,
E1.ActivityName,
E1.TaskOwner,
E1.InstanceID,
E1.InstanceName,
E1.InstanceType,
E1.PolicyID,
CASE WHEN E1.PolicyName = '''' THEN E1.TaskName ELSE E1.PolicyName END AS ActivityInitiator,
E1.MachineID,
E1.MachineName,
DATEADD(second, E1.Time, ''01/01/1970 0:00:00'') StartTime,
DATEADD(second, E2.Time, ''01/01/1970 0:00:00'') FinishTime,
E1.Time / 86400 StartDay,
E1.JobID,
E2.Code Result,
CASE E2.code WHEN 0x135003B THEN 1 ELSE 0 END AS FinishedSuccessfully,
CASE E2.code WHEN 0x135003C THEN 1 ELSE 0 END AS FinishedWithWarnings,
CASE E2.code WHEN 0x135003D THEN 1 ELSE 0 END AS FinishedWithErrors,
CASE LEN(E1.Category) WHEN 0 THEN T.Category COLLATE DATABASE_DEFAULT ELSE E1.Category COLLATE DATABASE_DEFAULT END Category
FROM
acronis_cms_logs.dbo.Events E1
INNER JOIN acronis_cms_logs.dbo.Events E2 ON E1.JobID = E2.JobID
LEFT JOIN acronis_cms.dbo.Task T ON E1.TaskID = T.ID
WHERE (E1.Code = 0x135003A) AND (E2.Code IN (0x135003B, 0x135003C, 0x135003D)) AND (E1.TaskID <> ''00000000-0000-0000-0000-000000000000'')
';
IF EXISTS(SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'dbo.GetTaskFirstEventTime') AND type IN (N'FN'))
DROP FUNCTION GetTaskFirstEventTime
EXECUTE dbo.sp_executesql @statement = N'
CREATE FUNCTION GetTaskFirstEventTime
(
@taskID uniqueidentifier
)
RETURNS bigint
AS
BEGIN
DECLARE @result as bigint
SELECT @result = MIN(Time) FROM Events WHERE TaskID = @taskID
RETURN @result
END
';
IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'dbo.TasksFinishIntervals'))
DROP VIEW TasksFinishIntervals
EXEC dbo.sp_executesql @statement = N'
CREATE VIEW TasksFinishIntervals
AS
SELECT
L.Time LeftTime, R.Time RightTime, R.TaskID TaskID
FROM
Events R
INNER JOIN Events L
ON L.TaskID = R.TaskID
AND L.Time < R.Time
AND L.Code = R.Code
AND L.Code BETWEEN 0xB50506 AND 0xB50508
AND R.JobID = ''00000000-0000-0000-0000-000000000000''
AND NOT EXISTS
(
SELECT * FROM Events WHERE Code BETWEEN 0xB50506 AND 0xB50508 AND Time > L.Time AND Time < R.Time
)
UNION
SELECT
dbo.GetTaskFirstEventTime(TaskID), MIN(Time), TaskID
FROM
Events
WHERE
Code BETWEEN 0xB50506 AND 0xB50508
AND JobID = ''00000000-0000-0000-0000-000000000000''
GROUP BY TaskID
';
IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'dbo.TaskJobs'))
DROP VIEW TaskJobs
EXEC dbo.sp_executesql @statement = N'
CREATE VIEW TaskJobs
AS
SELECT DISTINCT
Active.TaskID ActiveTaskID,
Active.TaskName ActiveTaskName,
Active.TaskOwner ActiveTaskOwner,
Active.InstanceID ActiveInstanceID,
Active.InstanceName ActiveInstanceName,
Active.InstanceType ActiveInstanceType,
Active.PolicyID ActivePolicyID,
Active.PolicyName ActivePolicyName,
Active.MachineID ActiveMachineID,
Active.MachineName ActiveMachineName,
Active.Code ActiveCode,
Active.Severity ActiveSeverity,
Active.Category ActiveCategory,
Active.Time ActiveTime,
Active.JobID ActiveJobID,
Finished.RightTime FinishedTime
FROM
Events Active
INNER JOIN TasksFinishIntervals Finished
ON Active.Time = (SELECT MIN(Time) FROM Events WHERE Time > Finished.LeftTime AND Time <= Finished.RightTime AND Code = 0xB50504)
AND Active.Code = 0xB50504
';
IF EXISTS(SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'dbo.WorkoutJobs') AND type IN (N'P'))
DROP PROCEDURE WorkoutJobs
EXECUTE dbo.sp_executesql @statement = N'CREATE PROCEDURE WorkoutJobs
AS
BEGIN
-- optimistic optimization
IF NOT EXISTS(SELECT * FROM TasksFinishIntervals)
RETURN
-- stage 1:
-- order of stages is important
-- add Task started records in Events
INSERT INTO
Events
(
TaskID,
TaskName,
TaskOwner,
InstanceID,
InstanceName,
InstanceType,
PolicyID,
PolicyName,
MachineID,
MachineName,
Code,
Severity,
Category,
Time,
Message,
JobID
)
SELECT
ActiveTaskID TaskID,
ActiveTaskName TaskName,
ActiveTaskOwner TaskOwner,
ActiveInstanceID InstanceID,
ActiveInstanceName InstanceName,
ActiveInstanceType InstanceType,
ActivePolicyID PolicyID,
ActivePolicyName PolicyName,
ActiveMachineID MachineID,
ActiveMachineName MachineName,
0xB5050B Code,
ActiveSeverity Severity,
ActiveCategory Category,
ActiveTime Time,
N''Task '''''' + ActiveTaskName + N'''''' was started.'' Message,
NEWID() JobID
FROM
TaskJobs
-- stage 2:
-- fix 00000000-0000-0000-0000-000000000000 jobID
UPDATE
Events
SET
JobID = E.JobID
FROM
Events
INNER JOIN TaskJobs J
ON Events.Time = J.FinishedTime
AND Events.Code BETWEEN 0xB50506 AND 0xB50508
AND Events.TaskID = J.ActiveTaskID
AND Events.JobID = ''00000000-0000-0000-0000-000000000000''
INNER JOIN Events E
ON E.TaskID = Events.TaskID
AND E.Code = 0xB5050B
AND E.Time = J.ActiveTime
AND E.TaskID = J.ActiveTaskID
END
';
' failed to execute.
Suberror
Code: 08323279
Line tag: 0xc131f5921ff77425
Message: 列名 'code' 无效。
Suberror
Code: 08323279
Line tag: 0xc131f5921ff77425
Message: 列名 'code' 无效。
Suberror
Code: 08323279
Line tag: 0xc131f5921ff77425
Message: 列名 'code' 无效。
Suberror
Code: 08328773
Line tag: 0xc131f5921ff77425
Message: 已将数据库上下文更改为 'acronis_cms_logs'。

- Log in to post comments

Colin B wrote:Flank,
It did install OK in Server 2008 R2, but I didn't try it in SQL Server 2008 R2
Colin,
I tested in another PC for SQL Server 2008 R2, it's the same error. I assume management server can't support SQL Server 2008 R2. I have to install SQL Server 2005 express.
- Log in to post comments

Hi Flank, I guess this happens because of these lines:
CASE E2.code WHEN 0x135003B THEN 1 ELSE 0 END AS FinishedSuccessfully,
CASE E2.code WHEN 0x135003C THEN 1 ELSE 0 END AS FinishedWithWarnings,
CASE E2.code WHEN 0x135003D THEN 1 ELSE 0 END AS FinishedWithErrors
E2.code instead of E2.Code is written there. By default SQL is case insensitive, whiles, it looks like in your case it is case sensitive. If you change the collation of the acronis_cms_logs to case insensitive, it's gonna be okay. Here is some link about setting server collation:
http://msdn.microsoft.com/en-us/library/ms179254.aspx
In the meantime, Acronis should fix its query to refer to the columns as if the collation is case sensitive.
I will post a bug on this, so you will be able to install management server on server with any collation.
- Log in to post comments