"是的,可以一次性恢复多个 SQL 数据库。通常情况下,只要备份文件的名称与相应的数据库匹配,且没有附加的日期或时间信息,就可以通过有效的 T-SQL 脚本来完成恢复。如果你希望有更灵活的操作,还可以选择使用带有图形用户界面的工具,具体选择取决于你的偏好。"
方法1 .使用脚本来恢复SQL Server中的所有数据库您可以使用脚本为SQL Server中的所有数据库生成恢复命令,并将它们组合成一个新脚本来执行。
1. 单击“新建查询”并在 SQLQuery 窗口中输入以下命令:
DECLARE @folderpath VARCHAR (1000)SELECT @folderpath = 'D:\Backup\' -- 备份位置SELECT 'RESTORE DATABASE['+NAME+'] FROM DISK = ''' +@folderpath +name+'.bak'' WITH NORECOVERY ,REPLACE, STATS = 5'FROM master.sys.databasesWHERE name NOT IN ('master','model','msdb','tempdb','distribution')
这将生成一系列命令,用于从同名的 bak 文件恢复SQL Server中的多个数据库。
2. 右键单击结果中的任何命令,“选择全选”,然后“复制”它们(或使用 Ctrl + A 和 Ctrl + C)。
将这些命令粘贴到 SQLQuery 窗口作为新脚本“执行”。它将从具有相应文件名的 bak 文件中恢复SQL Server的所有数据库。方法2. 使用命令从bak文件中恢复多个数据库您可以使用脚本从一个文件夹中恢复SQL Server中的多个数据库。但在此之前,请连接到实例并启用 xp_cmdshell。
1. 单击“新建查询”并输入以下命令:EXEC sp_configure 'show advanced options', 1;GORECONFIGURE;GO。EXEC sp_configure 'xp_cmdshell', 1;GORECONFIGURE;GO
“执行”查询,该功能将被启用。
2.然后您可以使用脚本恢复SQL Server的多个数据库(请将“D:\backup\”替换为您自己的“包含所有备份文件的文件夹”):
DECLARE @FilesCmdshell TABLE (outputCmd NVARCHAR (255))DECLARE @FilesCmdshellCursor CURSORDECLARE @FilesCmdshellOutputCmd AS NVARCHAR(255)INSERT INTO @FilesCmdshell (outputCmd) EXEC master.sys.xp_cmdshell 'dir /BD:\backup\*.bak'SET @ FilesCmdshellCursor = CURSOR FOR SELECT outputCmd FROM @FilesCmdshellOPEN @FilesCmdshellCursorFETCH NEXT FROM @FilesCmdshellCursor INTO @FilesCmdshellOutputCmdWHILE @@FETCH_STATUS = 0BEGINDECLARE @cmd NVARCHAR(MAX) = 'RESTORE DATABASE [' + SUBSTRING(@FilesCmdshellOutputCmd, 0, CHARINDEX('.', @FilesCmdshellOutputCmd)) + '] FROM DISK = N''D:\backup\' + SUBSTRING(@ FilesCmdshellOutputCmd, 0, CHARINDEX('.', @FilesCmdshellOutputCmd)) + '.bak'' WITH FILE = 1, NOUNLOAD, STATS = 10'EXEC(@cmd)FETCH NEXT FROM @FilesCmdshellCursor INTO @FilesCmdshellOutputCmdEND
“✎注意:”如果您收到错误“数据库的日志尾部尚未备份。如果日志包含您不想丢失的工作,请使用 BACKUP LOG WITH NORECOVERY 备份日志。使用 RESTORE 语句的 WITH REPLACE 或 WITH STOPAT 子句只是覆盖日志的内容”,解决方法如提示所说。
例如,您可以将还原命令修改为“...WITH FILE = 1, REPLACE, NOUNLOAD, STATS = 10”
方法3. 使用专业备份工具备份和恢复多个 SQL数据库傲梅企业备份旗舰版支持Microsoft SQL Server(2005-2022),VMware ESXi(6.0及以上版本)和Hyper-V(Windows 8/8.1/10/11,Windows Server/Microsoft Hyper-V Server 2012 R2及更高版本)。
在开始备份数据库之前,我们需要先安装代理客户端,所以请您在主机端登录傲梅企业备份旗舰版,在主界面点击“设备”>“代理设备”>“下载代理”。
等待下载完成之后再将此代理客户端安装到您需要备份SQL数据库的计算机上,然后将客户端上的IP通过Web端连接哦。
在安装完代理客户端,并且成功建立控制连接之后,还需要验证一下数据库实例,所以请您点击“设备”>“Microsoft SQL Server”,找到您的数据库,点击其右侧的三个小点图标,选择“身份验证”,并在弹出窗口中选择“SQL身份验证”,再输入账户密码,点击“验证”即可。
注意:除此之外还有一种远程安装代理的方法,就是点击“设备”>“代理设备”>“添加代理”,然后输入客户端计算机的IP地址与用户信息,点击“确定”即可开始远程安装代理。
傲梅企业备份旗舰版备份SQL数据库
安装完代理客户端之后,我们就可以开始备份SQL Server数据库了,请您参考以下流程并逐步进行操作:
步骤1. 在傲梅企业备份旗舰版主界面中点击“任务”>“备份任务”>“新建任务”。
步骤2. 在弹出页面中点击备份类型下拉菜单,选择“Microsoft SQL Server备份”。
步骤3. 点击设备,选择您想要备份的SQL数据库实例,然后点击“确定”。
步骤4. 点击目标,选择一个目标路径用于存储您的备份文件(可以选择本地位置或网络共享路径),然后点击“确定”。
步骤5. 点击备份计划,选择您想要的备份方式(完全备份/增量备份/差异备份)和自动备份频率间隔(可以是每天/每周/每月),然后点击“确定”。
步骤6. 点击版本清理,选择您想要将备份文件保留多久,并且支持始终保留某个指定完全备份,超出时间的备份版本将自动清除,节省备份磁盘空间,然后点击“确定”。
步骤7. 确认无误之后就可以点击右下角的“开始备份”按钮,并选择“添加定时任务并立即备份”或“仅添加定时任务”,创建的任务将单独列出和监控,以进行恢复、进度检查和计划更改。
傲梅企业备份旗舰版还原SQL数据库在此之后,如果您需要还原数据库的话,可以转到“备份管理”>“历史版本”,找到您想要还原的数据库备份版本,点击其右侧的三个小点图标,选择“还原”,然后您可以选择还原到原位置或新位置,非常方便。
结论SSMS 工具一次只能还原一个数据库。如果需要一次性恢复多个 SQL Server 数据库,通常使用 T-SQL 脚本。然而,这种方法对备份文件名的要求较为严格,因此在将数据库恢复到其他实例时可能会遇到困难。对此,你也可以考虑使用 SQL 备份软件,如傲梅企业备份旗舰版。它使操作更加便捷,比如你可以通过几次点击自动备份 SQL 数据库,并以同样简便的方式一次性恢复多个数据库。