【发布时间】:2023-04-05 16:06:01
【问题描述】:
每当我尝试使用 BACKUP 和 RESTORE 命令创建数据库的副本时,都会创建副本,但不包含任何数据。我正在运行以下命令,并返回成功状态:
BACKUP DATABASE [SomeDB]
TO DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\SomeDB.bak'
BACKUP DATABASE successfully processed 161 pages in 0.021 seconds (62.805 MB/sec).
RESTORE DATABASE [SomeDB_Copy]
FROM DISK=N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\SomeDB.bak'
WITH MOVE N'SomeDB' TO N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\SomeDB_copy.mdf',
MOVE N'SomeDB_log' TO N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\SomeDB_copy.ldf'
RESTORE DATABASE successfully processed 162 pages in 0.095 seconds (13.958 MB/sec).
我错过了一步吗?我发现的所有示例都使用这种方法。 Even on StackOverflow。这是在 SQL Server 2005 上。
更新:。我将数据库备份到一个新文件,并使用它进行恢复,一切正常。我不知道我的原始文件是否已损坏,或者发生了其他奇怪的事情。
【问题讨论】:
-
我不想问明显的问题,但是请您确认源数据库中有数据吗?
-
在这一点上,我完全赞成白痴检查。源数据库有 1 表 1 行,仅用于测试。
-
我刚刚测试了你上面的代码。创建了一个名为
SomeDB的数据库,其中包含一张表和一行。运行代码以备份和恢复。当我打开SomeDB_Copy时,它有一张桌子,一排,正如预期的那样。您是否可以将SomeDB.bak上传到某个文件共享站点?您使用的是什么版本的 SQL Server?什么版本的 SSMS(或者你是如何运行查询的)?如果您使用 UI 进行备份恢复而不是通过代码执行,它的工作方式是否相同? -
我刚刚在一个新数据库上重复了测试......它工作正常。我查看了我一直在使用的原始备份文件,它非常大,对于这个几乎是空的数据库来说大约是 125Mb。我意识到每次测试时我都在进行完整备份。我不知道这是否导致了问题。
-
也许您在多文件备份集中恢复了错误的
FILE?请注意,“文件”不是指磁盘文件。我的意思是恢复语句的FILE选项。
标签: sql sql-server sql-server-2005