如何在文件名中备份带有日期的SQL数据库?试试这2种方法

一只科技电手 2024-08-22 21:34:37

如何在文件名中保存带有日期的 SQL 备份?

在数据库管理中,定期备份是确保数据安全和完整性的重要步骤。为了更好地组织和管理备份文件,将备份文件命名为带有日期的格式是一个常见的做法。这种方式不仅方便查找和区分不同时间点的备份文件,还能为自动化脚本和任务调度提供便利。例如,可以通过脚本动态生成包含日期的文件名,如 backup_2024_08_22.sql,以确保备份文件清晰明了且易于追踪。无论是在本地服务器还是云存储中,这样的命名方式都能极大简化备份管理的工作流程。

为此,最常用的方法是使用有效的 T-SQL 脚本。

文件名中带有日期的 SQL 备份命令(一个数据库)

要备份一个带有日期的特定 SQL数据库,您可以使用文件名中带有日期的 SQL 备份命令,例如:

DECLARE @FileName varchar(1000)SELECT @FileName = (SELECT 'filepath\databasename' + convert(varchar(500), GetDate(),112) + '.bak')BACKUP DATABASE databasename TO DISK=@FileName

填写您自己的备份路径和数据库名称,并将脚本复制到新的查询窗口。执行后,您将获得一个名称由数据库和备份日期组成的 bak 文件。

用于备份所有 SQL数据库并将日期添加到文件名的脚本

在很多情况下,您可能希望备份的不仅仅是一两个数据库,而是一个实例的所有数据库,那么以下脚本可以为您节省大量时间:

DECLARE @name VARCHAR(50) -- database name DECLARE @path VARCHAR(256) -- path for backup files DECLARE @fileName VARCHAR(256) -- filename for backup DECLARE @fileDate VARCHAR(20) -- used for file name -- specify database backup directory e.g. 'D:\backup\'SET @path = 'backuppath' -- specify filename formatSELECT @fileDate = CONVERT(VARCHAR(20),GETDATE(),112) + '_' + REPLACE(CONVERT(VARCHAR(20),GETDATE(),108),':','') DECLARE db_cursor CURSOR READ_ONLY FOR SELECT nameFROM master.sys.databasesWHERE name NOT IN ('master','model','msdb','tempdb') -- exclude these databasesAND state = 0 -- database is onlineAND is_in_standby = 0 -- database is not read only for log shipping OPEN db_cursorFETCH NEXT FROM db_cursor INTO @name WHILE @@FETCH_STATUS = 0BEGIN SET @fileName = @path + @name + '_' + @fileDate + '.BAK' BACKUP DATABASE @name TO DISK = @fileName FETCH NEXT FROM db_cursor INTO @nameEND CLOSE db_cursorDEALLOCATE db_cursor

执行该命令,它将备份所有非系统数据库的日期,甚至文件名中的特定时间点。您还可以排除您不想备份的其他数据库。

更轻松地安排 SQL 备份和还原到任何精确日期的方法

为了更轻松地安排 SQL 备份和还原到特定日期,文件名中包含日期是一种非常有效的方式。这种方法的主要优势在于,能够轻松“保留和识别不同时间点的备份”,从而使数据库能够恢复到准确的时间点。然而,使用专业的 SQL 备份管理工具,例如傲梅企业备份网络版,能够让这一过程变得更加简单高效。该工具可以自动按计划备份 SQL Server,并轻松地将数据库恢复到任何指定日期的版本(包括完整和差异备份)。借助它,您无需手动输入复杂的 T-SQL 命令或管理不同的备份文件。所有备份和还原任务都可以通过简单的点击操作完成。作为一款集中管理工具,它不仅支持本地计算机,还能够管理局域网内的所有 Windows 设备和服务器。安装软件后,您可以在客户端计算机上安装代理程序包,并在创建集中备份任务之前“请求控制权限”。

步骤 1。在傲梅企业备份网络版中,导航到"任务" > "新任务" > "SQL Server备份"。

步骤 2.单击+ 添加计算机以检测具有SQL Server数据库的计算机,然后从列表中选择一台计算机进行备份。

步骤 3。单击+ 添加以检测所选计算机上的实例。您可以选择任何您想要的数据库,甚至可以一次选择所有数据库。

第 4 步。单击“添加存储”以指定目标路径。添加的网络共享或 NAS 将被保存以供您将来直接使用。然后单击“开始备份”以执行任务。

◉ 您还可以设置“计划以自动执行任务,并在”“高级”选项卡中选择完整备份或差异备份。创建的备份文件将保存在具有相应日期的文件夹中。

◉ 当您想从备份中恢复时,只需在““任务””选项卡中找到任务,然后从右上角的菜单中选择“恢复”即可。

◉ 您可以选择要还原的备份日期,或者具体要还原备份中的哪些数据库。

总结

为了更轻松地管理和精确恢复 SQL 备份,将日期包含在文件名中是一种常见的做法,通常可以通过 T-SQL 命令实现。不过,如果您不想编写脚本,或者觉得自动化任务过于复杂,那么傲梅企业备份网络版是一个值得考虑的替代方案。它可以简化多个数据库的备份和调度任务,并允许您轻松将数据库恢复到指定日期,甚至支持将 SQL 数据库恢复到另一台服务器。

0 阅读:2

一只科技电手

简介:感谢大家的关注