【问题标题】:Stored Procedure to restore SQL Server database from the backup从备份中恢复 SQL Server 数据库的存储过程
【发布时间】:2017-07-18 18:31:59
【问题描述】:

我正在寻找有助于从备份中恢复我的数据库的程序。我用谷歌搜索并找不到我正在寻找的提取物。基本上我有 2 种备份文件(一些带有 .mdf 和 .log 文件的备份以及一些大约 30 个逻辑文件的备份)。想在执行过程中传递 2 个参数,备份名称和旧的和/新的数据库名称。你能建议我建立这个程序吗?

【问题讨论】:

  • 为什么要编写一个 proc 来执行此操作?使用 SSMS。
  • @scsimon 实际上,使用存储过程自动进行数据库恢复是有充分理由的。例如,您希望每晚恢复到已知状态的测试环境数据库。
  • 这很公平@RBarryYoung
  • 看看Ola Hallengren's backup/restore stored procedures,它被认为是 mssql 实例备份管理的黄金标准。

标签: sql-server stored-procedures sql-server-2012


【解决方案1】:

您不需要存储过程来恢复数据库,并且默认情况下产品中不存在任何内容。如果您愿意,您当然可以为您的特定需求编写一个定制的。

RESTORE 语句的详细信息在这里https://docs.microsoft.com/en-us/sql/t-sql/statements/restore-statements-transact-sql 看看,尝试一下,如果您有其他问题,请回来。

具体到您上面的问题,如果您想使用现有备份恢复到新的数据库名称,则不需要指定旧的数据库名称。这基本上是一个复制操作。以下是脚本的外观示例。您应该完全了解 RESTORE 语句的工作原理(上面的链接)并根据您的需要进行适当的修改。

-- Assuming your original backup was on Pubs database
RESTORE DATABASE Bars
FROM PubsBackups
WITH MOVE 'Pubs_Data' TO 'D:\SQLServer\bars.mdf',
MOVE 'Pubs_Log' TO 'L:\SQLServer\bars.ldf'; 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-12
    • 2022-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多