当前位置: 首页 > 知识库问答 >
问题:

从bak文件还原数据库sql server的脚本不起作用

卫高谊
2023-03-14

我有一个空数据库:

DB_客户端

我想从恢复数据库。bak文件:

OldDBClients.bak

这就是路径:

C:\OldDBClients.bak

这是我的剧本:

USE [master]
GO
    RESTORE DATABASE DB_Clients
    FROM DISK = 'C:\OldDBClients.bak'

当我执行它时,我会收到以下错误消息

Msg 3154,16级,状态4,第15行
备份集保存数据库的备份,而不是现有的“DB_客户端”数据库
Msg 3013,16级,状态1,第15行
还原数据库异常终止。

有人能告诉我为什么会这样吗?我必须指出,该文件具有读写权限。

谢谢的。

共有3个答案

雷方伟
2023-03-14

步骤1:使用以下命令检查逻辑文件名:

RESTORE FILELISTONLY 
FROM DISK = 'E:\DBBackups\mydb.bak'

步骤2:在下面的查询中使用从上述查询中获得的逻辑名称:

 RESTORE DATABASE [mydb_new]
  FILE = N'<MDFLogicalName>'
  FROM DISK = N'E:\DBBackups\mydb.bak'
  WITH 
    FILE = 1, NOUNLOAD, STATS = 10,
    MOVE N'<MDFLogicalname>'
    TO N'E:\DBBackups\mydb_new.mdf',
    MOVE N'<LDFLogicalName>'
    TO N'E:\DBBackups\mydb_new_0.ldf'

使用正确的值运行上述命令后,您将看到如下输出:

10 percent processed.
20 percent processed.
30 percent processed.
40 percent processed.
50 percent processed.
60 percent processed.
70 percent processed.
80 percent processed.
90 percent processed.
100 percent processed.
Processed 7672 pages for database 'mydb_new', file '<MDFLogicalname>' on file 1.
Processed 5 pages for database 'mydb_new', file '<LDFLogicalName>' on file 1.
RESTORE DATABASE ... FILE=<name> successfully processed 7677 pages in 0.780 seconds (76.893 MB/sec).

Completion time: 2019-10-20T11:35:31.8343787+05:30
丁均
2023-03-14

您应该使用以下语法:

USE [master]
GO
RESTORE DATABASE DB_Clients FROM DISK = 'C:\OldDBClients.bak' WITH 
MOVE 'DB_Clients' TO 'D:\SQLServer\Data\DB_Clients.mdf',
MOVE 'DB_Clients_log' TO 'D:\SQLServer\Log\DB_Clients.ldf', REPLACE

它指示SQL服务器覆盖现有副本,并为数据和日志文件指定有效位置

令狐嘉运
2023-03-14

您需要使用带替换的选项来覆盖现有数据库。

RESTORE DATABASE DB_Clients
FROM DISK = 'C:\OldDBClients.bak'
WITH REPLACE

您可能还需要使用MOVE选项指定;在这种情况下:

  • 使用RESTORE FILELISTONLY from DISK='C:\OldDBClients.bak'了解MDF/LDF的逻辑名称
  • 在RESTORE中使用with MOVE选项

例如:

RESTORE DATABASE DB_Clients
FROM DISK = 'C:\OldDBClients.bak'
WITH REPLACE,
MOVE 'YourMDFLogicalName' TO '<MDF file path>',
MOVE 'YourLDFLogicalName' TO '<LDF file path>'

请注意,您还可以删除空的DB_客户端数据库,并使用简单的恢复

 类似资料:
  • 问题内容: 是否可以从物理数据库文件还原MySQL数据库。我的目录具有以下文件类型: client.frm client.MYD client.MYI 但要多出约20张桌子 我通常使用mysqldump或类似的工具在1个SQL文件中获取所有内容,那么如何处理这些类型的文件呢? 问题答案: MySQL MyISAM表是三个文件的组合: FRM文件是表定义。 MYD文件是存储实际数据的位置。 MYI文

  • 本文向大家介绍SqlServer高版本数据备份还原到低版本,包括了SqlServer高版本数据备份还原到低版本的使用技巧和注意事项,需要的朋友参考一下 最近遇见一个问题:   想要将Sqlserver高版本备份的数据还原到低版本SqlServer上去,但是这在SqlServer中是没法直接还原数据库的,所以经过一系列的请教总结出来一下可用方法。 首先、你得在电脑上装有你将要操作的高版本以及低版本的

  • 问题内容: 我正在使用以下脚本来启动文件下载: 当我直接打开页面时,它工作正常,但事实是,我需要从另一个页面通过Ajax调用此脚本。当我这样做时,下载就不会开始。脚本的其余部分执行了预期的工作。 我以为问题不在于无法以这种方式使用标头函数,但是肯定有一种方法可以使这项工作正常进行吗? 如果有任何帮助,这是Ajax函数: 形式如下: 问题答案: 您不能使用AJAX下载文件。这没有道理。您可以发送AJ

  • 问题内容: 我正在使用以下脚本来启动文件下载: 当我直接打开页面时,它工作正常,但事实是,我需要从另一个页面通过Ajax调用此脚本。当我这样做时,下载就不会开始。脚本的其余部分执行了预期的工作。 我认为问题不是这种方式可以使用头函数,但是肯定有一种方法可以使这项工作正常进行吗? 如果有帮助,这是Ajax函数: 形式如下: 问题答案: 您不能使用AJAX下载文件。这没有道理。您可以发送AJAX请求并

  • 问题内容: 我是PHP新手。我安装了XAMPP并运行了Apache。我在XAMPP的htdocs中创建了helloworld.php,并在浏览器中显示了PHP。我的问题是,为什么我的HTML文件中的PHP脚本不显示在浏览器中?香港专业教育学院从未安装过PHP。我也应该安装吗?它会与XAMPP冲突吗?我的代码如下。任何帮助将不胜感激。提前致谢: 问题答案: XAMPP已经包含PHP,但是除非您以该脚

  • 代码应该获取查询结果并根据文本框中写入的数字显示它,我尝试了(onkeydown和onkeyup),但都不工作,我不知道为什么它不工作,我的错误是什么。 超文本标记语言代码: getRoomAJAX. php代码: