使用命令行还原SQL Server数据库
下面介绍如何使用命令行从备份中恢复 SQL Server 数据库。如果您既不想每次都登录 SSMS,也不想使用 T-SQL 命令,您还可以尝试具有直观 GUI 的专业工具。
恢复 SQL 数据库的常见方法是在 SSMS (SQL Server Management Studio) 中使用恢复 GUI 或 T-SQL 语句。 但是如果你不想每次都登录到 SSMS,命令行也是一个快速执行 MSSQL 相关任务的选项。
使用命令行恢复SQL数据库实际上是通过在命令提示符中输入T-SQL语句来实现的,但是如何实现呢? 在这里,我将提供用于数据库恢复的快速指南和基本的 SQLCMD 命令。
命令行实用程序 SQLCMD 使用户能够在命令提示符中连接到 SQL Server 实例,从中发送 Transact-SQL 批处理,并从中输出行集信息。
SQLCMD 在 SQL Server 2014 及更低版本中作为产品的一部分提供。 如果您运行的是 SQL Server 2016 及以上版本,您可能需要从以下位置下载它这一页 .
有了它,您可以使用命令行来备份和恢复 SQL 数据库。 只需在 Windows 搜索栏中键入“cmd”,然后运行命令提示符即可输入 T-SQL 语句。
*您也可以按 Win + R 键,在运行窗口中输入“cmd”,然后点击确定启动它。
在 MSSQL 中,您通常需要从 .bak 文件恢复数据库,也可以使用以下备份语句通过命令行创建该文件:
SqlCmd -E -S ServerName -Q "BACKUP DATABASE DatabaseName TO DISK='Filepath'"
填写你自己的服务器名、数据库名和文件路径(包括文件名和.bak后缀),备份会根据你的需要执行。
*点击链接了解更多 如何使用命令行备份SQL数据库 .
使用先前创建的 .bak 文件,您可以使用命令行还原SQL Server数据库。 下面是一些常用的命令:
◉ 从完整备份恢复 SQL 数据库
SqlCmd -E -S ServerName -Q "RESTORE DATABASE DatabaseName FROM DISK='Filepath'"
◉ 从差异备份中恢复 SQL 数据库
SqlCmd -E -S ServerName -Q "RESTORE DATABASE DatabaseName FROM DISK='Filepath_Full' WITH NORECOVERY"
SqlCmd -E -S ServerName -Q "RESTORE DATABASE DatabaseName FROM DISK='Filepath_Diff' 带恢复"
◉ 还原 SQL Server 事务日志备份
SqlCmd -E -S ServerName -Q "RESTORE LOG DatabaseName FROM DISK='Filepath' WITH NORECOVERY"
在命令提示符中输入相应的命令, “回车”运行。 如果需要经常执行相同的命令,也可以在文本文件中键入,并以.bat 扩展名保存。 因此,您只需双击即可运行它,即 使用批处理文件恢复 SQL 数据库 .
使用命令行恢复SQL数据库时,可能会收到错误提示“数据库日志尾部尚未备份。 如果日志包含您不想丢失的工作,请使用 BACKUP LOG WITH NORECOVERY 备份日志。 使用 RESTORE 语句的 WITH REPLACE 或 WITH STOPAT 子句来覆盖日志的内容”。
要解决这个问题,你只需要按照提示,在恢复之前用NORECOVERY备份数据库的事务日志(如果你不想丢失日志的内容):
SqlCmd -E -S ServerName -Q "RESTORE LOG DatabaseName FROM DISK='Filepath' WITH NORECOVERY"
或者使用 WITH REPLACE 或 WITH STOPAT 来覆盖日志的内容:
SqlCmd -E -S ServerName -Q "RESTORE DATABASE DatabaseName FROM DISK=''Filepath' WITH REPLACE"
如果您只想从备份中恢复一个或几个数据库,只需使用相应的数据库名称和 .bak 文件重复该命令即可。
如果要一次性恢复多个数据库,比如一个实例的所有数据库,建议直接在SSMS中使用T-SQL语句。 查看详细信息 恢复多个 SQL 数据库 .
使用命令行恢复 SQL 数据库是一种方便的方法,但前提是您对 T-SQL 语句有一定的了解。 在这里我将提供一个更简单的选择 - 傲梅企业备份网络版 . 适合 有以下需求 的人群:
如果您想尝试一下,这里有 180天的免费试用期:
它是一款集中式备份软件,不仅可以管理您自己的电脑,还可以管理 局域网内的所有Windows台式机、笔记本电脑、服务器、虚拟机。 要正确设置它,请遵循以下过程:
然后你就可以根据需要在所有受控计算机上开始备份或恢复 SQL 数据库。
2. 设置窗口分为 3 个主要步骤。
第一步 :点击 “+添加计算机,”检测到所有被控制的带SQL实例的计算机,选择你要备份的计算机。
第二步: 点击 “+添加”选择源数据。 您可以一次选择多个数据库甚至多个实例。
Step 3 : 点击 Add Storage输入备份目标NAS的共享网络路径。
3. 基本设置完成后,您可以添加一个 “计划”来自动执行任务一次/每天/每周/每月,或在 “设置”中管理备份加密、压缩、通知等。 然后,点击 “开始备份”创建并执行任务。
1.创建的备份任务将显示在 “任务”选项卡中。 您可以通过单击“高级”> “还原”直接从中恢复数据库 。
2. 选择源计算机,然后选择源数据库。 您可以准确选择要从哪个备份还原(如果您多次执行该任务),是还原备份中的所有数据库还是还原单个数据库。
将数据库还原到另一个 SQL Server 在另一台客户端计算机上。
4. 单击 “开始还原”执行还原并等待还原完成。
使用命令行执行SQL Server数据库还原可以省力,但输入T-SQL语句时的一个小错误可能会导致操作失败。 如果您更喜欢更直接的方式, 傲梅企业备份网络版版可能是一个值得尝试的选择。
其简洁的 GUI 大大简化了还原操作,尤其是当您需要一次还原多个数据库时。 此外,它不仅支持SQL数据库,还可以管理局域网内所有计算机的文件、系统、磁盘和分区的备份和恢复。 所以你可以简单地将它用作客户端-服务器备份解决方案。