按计划备份和截断事务日志的最佳方法
我不是DBA,但是无论如何,我必须戴上DBA的帽子,并在SQL Server实例上设置维护计划。 因此,一段时间以来,我一直在SSIS过夜过程中运行“ 执行SQL任务”以执行备份-基本上运行master.dbo.xp_create_subdir以确保目标文件夹存在,然后运行BACKUP DATABASE [DbName] TO DISK = 'G:\Backups\DbName\DbName.bak' WITH INIT。 每当该任务失败时,其余过程都会中止,并且我会收到通知,并于第二天早上来通知事务日志的驱动器已满,因此我将手动截断它们并继续前进。 ..直到故事重演,并且事务日志再次超出了可用磁盘空间。 “手动截断”脚本如下所示: use Staging; alter database Staging set recovery simple alter database Staging set recovery full dbcc shrinkfile ('Staging_log', 0, truncateonly); go 因此,我对此感到厌倦,因此决定尝试正确地做事,并按照此处的步骤创建一个实际的维护计划: 问题是,我之前从未做过此事,所以我有几个问题: 像这样备份事务日志会自动截断它们,还是我需要做其他事情? 可以同时运行数据和事务日志备份吗?如果没有,那么执行此操作的正确方法是什么? 备份文件将在一夜之间被另一个过程获取,该过程将捕获服务器上的所有文件并将它们存储在其他位置-2天后使备份集过期是个好主意吗?我是否需要使它们全部过期? 清理任务分别删除的子文件夹下的“旧” .bak和.trn文件G:\Backups。那有意义吗? 最好在SSIS中执行此操作,以便在备份失败时/我可以在ETL中失败吗?还是我的ETL流程应该在乎? 抱歉,如果一个帖子中有太多问题,如果需要,我将编辑并询问多个问题-我认为它们都是紧密相关的。