当前位置: 首页 > article >正文

如何在SQL Server中恢复多个数据库?

一次性恢复多个 SQL数据库吗可以吗

"是的,可以一次性恢复多个 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.databases
WHERE name NOT IN ('master','model','msdb','tempdb','distribution')

这将生成一系列命令,用于从同名的 bak 文件恢复SQL Server中的多个数据库。

2. 右键单击​​结果中的任何命令,“选择全选”,然后“复制”它们(或使用 Ctrl + A 和 Ctrl + C)。

  1. 将这些命令粘贴到 SQLQuery 窗口作为新脚本“执行”。它将从具有相应文件名的 bak 文件中恢复SQL Server的所有数据库。

方法2: 使用命令从bak文件中恢复多个数据库

您可以使用脚本从一个文件夹中恢复SQL Server中的多个数据库。但在此之前,请连接到实例并启用 xp_cmdshell

1. 单击“新建查询”并输入以下命令:
EXEC sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO。
EXEC sp_configure 'xp_cmdshell', 1;
GO
RECONFIGURE;
GO

“执行”查询,该功能将被启用。

2.然后您可以使用脚本恢复SQL Server的多个数据库(请将“D:\backup\”替换为您自己的“包含所有备份文件的文件夹”):

DECLARE @FilesCmdshell TABLE (
    outputCmd NVARCHAR (255)
)
DECLARE @FilesCmdshellCursor CURSOR
DECLARE @FilesCmdshellOutputCmd AS NVARCHAR(255)
 
INSERT INTO @FilesCmdshell (outputCmd) EXEC master.sys.xp_cmdshell 'dir /BD:\backup\*.bak'
SET @ FilesCmdshellCursor = CURSOR FOR SELECT outputCmd FROM @FilesCmdshell
 
OPEN @FilesCmdshellCursor
FETCH NEXT FROM @FilesCmdshellCursor INTO @FilesCmdshellOutputCmd
WHILE @@FETCH_STATUS = 0
BEGIN
DECLARE @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 @FilesCmdshellOutputCmd
END

“✎注意:”如果您收到错误“数据库的日志尾部尚未备份。如果日志包含您不想丢失的工作,请使用 BACKUP LOG WITH NORECOVERY 备份日志。使用 RESTORE 语句的 WITH REPLACE 或 WITH STOPAT 子句只是覆盖日志的内容”,解决方法如提示所说。

例如,您可以将还原命令修改为“...WITH FILE = 1, REPLACE, NOUNLOAD, STATS = 10”

方法三. 使用专业备份工具备份和恢复多个 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 数据库,并以同样简便的方式一次性恢复多个数据库。


http://www.kler.cn/news/294664.html

相关文章:

  • C# 获取当前鼠标位置
  • ansible--yaml
  • SOMEIP_ETS_092: SD_Check_Reaction_to_a_Subscribe_with_ttl_0
  • css前段知识点分享
  • pytest运行方式及前置后置封装详解
  • Docker 进阶构建:镜像、网络与仓库管理
  • mariadb容器
  • 8阶段项目:五子棋(附带源码)
  • 服务器数据恢复—infortrend存储中RAID6数据恢复案例
  • 资料分析系统课-刘文超老师
  • ​T​P​三​面​
  • SIGMOD-24概览Part7: Industry Session (Graph Data Management)
  • Wni11 下 WSL 安装 CentOS
  • Datawhale X 李宏毅苹果书 AI夏令营-深度学习进阶task3:批量归一化
  • 牛客小白月赛100(A,B,C,D,E,F三元环计数)
  • 【手撕数据结构】二叉树的性质
  • 香橙派修改MAC
  • 【代码随想录训练营第42期 Day48打卡 - 单调栈 - LeetCode 739. 每日温度 496.下一个更大元素 I 503.下一个更大元素II
  • VitePress 自定义主题:打造专属文档网站
  • 了解elementUI的底层源码, 进行二次开发
  • 云服务器内网穿透连接云手机配置ALAS
  • OpenCV图像分割教程
  • P11019 「LAOI-6」[太阳]] 请使用最新版手机 QQ 体验新功能
  • 基于Spring的规则引擎EasyRule应用
  • 数据库系统 第42节 数据库索引简介
  • ACM打卡——快速幂求模
  • 你读文献的方式可能错了!掌握这些技巧,让阅读事半功倍!
  • java后端如何发送http请求
  • Java安全-动态加载字节码
  • 【Pytorch实用教程】tqdm的作用:在循环中显示进度条