我正在寻找一种基于数据库表中存储的状态备份数据库的解决方案(非活动数据库也保持在线),即使用获取活动数据库的状态
SELECT dbName from DBMain.TableWithDatabaseStatus where activeStatus=1
并且仅对这些数据库的结果执行完整/差异/事务性备份,例如,如果不存在最近的备份,则执行完整备份,否则执行差异和增量备份。
我目前正在查看Ola Halengren 的维护解决方案,在那里我找到了一个不错的选项 @ChangeBackupType = 'Y' -> 如果不存在完整备份,请先使用它。查询是这样的..
EXECUTE dbo.DatabaseBackup
@Databases = 'USER_DATABASES',
@Directory = 'C:\Backup',
@BackupType = 'LOG',
@ChangeBackupType = 'Y'
但是有没有一种方法可以在运行备份脚本之前在 -> @Databases = 'USER_DATABASES' 中手动添加/更新数据库名称(基于使用 activeStatus 的查询结果)?
主要目标是
- 在周末对所有活动数据库进行完整备份
- 在工作日执行 diff 和 transactional
- 如果一个新的数据库在周末不活动,则该数据库变为活动状态,请对该数据库进行完整备份,并按正常程序检查其余数据库。
ADBA 在这里,所以对 Ola halengren 的脚本的任何指示或帮助表示赞赏!