代码之家  ›  专栏  ›  技术社区  ›  Raj

SQL 2005维护计划中的备份数据库任务

  •  0
  • Raj  · 技术社区  · 15 年前

    我有一个备份数据库任务设置来对所有用户数据库进行完全备份。但是,我发现当添加新数据库时,它们不会自动包含在备份计划中。

    每次添加新数据库时,我都必须打开计划,并选择“所有用户数据库”单选按钮,然后保存要添加到备份任务中的新数据库的包。

    此外,新数据库不会显示在备份任务的属性中的SelectedDatabases集合中。

    有什么想法吗?

    谢谢, 拉吉

    3 回复  |  直到 15 年前
        1
  •  1
  •   SqlACID    15 年前

    这是一个bug,已在SP3中修复,请参见 this document

        2
  •  0
  •   Bogdan_Ch    15 年前

    编写一个SQL脚本,该脚本遍历所有数据库,并安排一个作业来运行该脚本规则。 这是一个样品

    declare cur_databases cursor
    for select name from sysdatabases
    where not name in ('master', 'model', 'tempdb', 'msdb')
    
    declare @sql nvarchar(1000)
    declare @name nvarchar(100)
    
    open cur_databases
    
    fetch cur_databases into @name
    
    while (@@fetch_status = 0)
    begin
    
    
        select @sql = 'BACKUP DATABASE [' + @name + '] TO  DISK = N''D:\Backup\' + @name + '.bak'''  +
        ' WITH NOFORMAT, NOINIT, NAME = N''' + @name + ' Database Backup'', SKIP, NOREWIND, NOUNLOAD,  STATS = 10 '
    
        print @sql
        exec (@sql)
    
    
        fetch cur_databases into @name
    
    end
    
    close cur_databases
    deallocate cur_databases
    
        3
  •  0
  •   Chris W    15 年前

    你的计划的配置有点奇怪,因为可以添加新的数据库——它们会在下次计划运行时自动被收集起来。至少在我照看的服务器上是这样的。

    谁是每个数据库的“所有者”—这是否是一个权限问题,使您的作业无法看到这些新数据库被其他用户拥有?