我刚刚安装了这个很好的工具,大部分都很好,只是如果我包括了一个差异备份参数@ModificationLevel = 50 (或其他任何东西),操作就会失败:
Msg 50000,级别16,状态1,过程DatabaseBackup,第2268行不支持参数@ModificationLevel的值。
示例:
EXECUTE [dbo].[DatabaseBackup]
@Databases = 'ALL_DATABASES', @CleanupTime = 2160, @Compress = 'Y',
@Directory = '\\cem01nas2\sql_backups',
@BackupType = 'DIFF', @ChangeBackupType = 'Y', @ModificationLevel = 50
GO给出错误,但是如果我删除@ModificationLevel参数,它就能工作。有什么想法吗?
发布于 2020-06-09 17:19:06
这表示您正在进行验证(取自Ola Hallengren的站点这里)
IF @ModificationLevel IS NOT NULL AND NOT EXISTS(SELECT * FROM sys.all_columns WHERE object_id = OBJECT_ID('sys.dm_db_file_space_usage') AND name = 'modified_extent_page_count')
BEGIN
INSERT INTO @Errors ([Message], Severity, [State])
SELECT 'The value for the parameter @ModificationLevel is not supported.', 16, 1
END
IF @ModificationLevel IS NOT NULL AND @ChangeBackupType = 'N'
BEGIN
INSERT INTO @Errors ([Message], Severity, [State])
SELECT 'The value for the parameter @ModificationLevel is not supported.', 16, 2
END
IF @ModificationLevel IS NOT NULL AND @BackupType <> 'DIFF'
BEGIN
INSERT INTO @Errors ([Message], Severity, [State])
SELECT 'The value for the parameter @ModificationLevel is not supported.', 16, 3
END请检查条件,并记住@ModificationLevel是进行完整备份所需的不同。如果没有足够的差异,它就不会执行完整的备份。
IF @ChangeBackupType = 'Y'
BEGIN
IF @CurrentBackupType = 'LOG' AND @CurrentRecoveryModel IN('FULL','BULK_LOGGED') AND @CurrentLogLSN IS NULL AND @CurrentDatabaseName <> 'master'
BEGIN
SET @CurrentBackupType = 'DIFF'
END
IF @CurrentBackupType = 'DIFF' AND (@CurrentDatabaseName = 'master' OR @CurrentDifferentialBaseLSN IS NULL OR (@CurrentModifiedExtentPageCount * 1. / @CurrentAllocatedExtentPageCount * 100 >= @ModificationLevel))
BEGIN
SET @CurrentBackupType = 'FULL'
END
ENDhttps://dba.stackexchange.com/questions/268817
复制相似问题