SQL Server还原和一些小发现

1.当数据库已经建好在DB里,SQL Server 2005 和 SQL Server 2008使用.Bak文件还原的时候,会出现 error : "The backup set holds a backup of a database other than the existing" 查了网上的方法:

方法一[未验证]

[sql] view plaincopy --返回由备份集内包含的数据库和日志文件列表组成的结果集。

--主要获得逻辑文件名

      • --返回由备份集内包含的数据库和日志文件列表组成的结果集。
      • --主要获得逻辑文件名
      • USE master
      • RESTORE FILELISTONLY
      • FROM DISK = 'g:\back.Bak'
      • Go
      • --**********************************
      • /*
      • 利用bak恢复数据库,强制还原(REPLACE)
      • STATS = 10 每完成10%显示一条记录
      • DBTest和DBTest_log是上面g:\back.Bak里的逻辑文件
      • */
      • USE master
      • RESTORE DATABASE DB
      • FROM DISK = 'g:\back.Bak'
      • WITH MOVE 'DBTest' TO 'E:\Program Files\Microsoft SQL Server2005\Data\DB.mdf',
      • MOVE 'DBTest_log' TO 'E:\Program Files\Microsoft SQL Server2005\Data\DB_log.ldf',
      • STATS = 10, REPLACE
      • GO
      • -------------------------------------
    • /*
    • 备份数据DB 到.bak文件。然后利用此bak文件恢复一个新的数据库DBTest。
    • */
    • USE master
    • BACKUP DATABASE DB
    • TO DISK = 'g:\DBBack0930.bak'
    • RESTORE FILELISTONLY
    • FROM DISK = 'g:\DBBack0930.bak'
    • RESTORE DATABASE DBTest
    • FROM DISK = 'g:\DBBack0930.bak'
    • WITH MOVE 'DBTest' TO 'E:\Program Files\Microsoft SQL Server2005\Data\DBTest.mdf',
    • MOVE 'DBTest_log' TO 'E:\Program Files\Microsoft SQL Server2005\Data\DBTest_log.ldf'
    • GO
    • ---******************************

方法二[验证过,不行] 需要注意两点: 在【选项】界面里 1.选择“覆盖现有数据库” 2.修改【将数据库文件还原为】区域里的【还原为】的位置,和要恢复的数据库的实际位置保持一致

方法三[验证过,可行] 1.先删掉需要还原的数据库,右键【服务器】下的【数据库】,选择【还原数据库】,键入新的目标数据库名; 2.在【选项】里,选择覆盖数据库; 3.执行就ok了。

2.Microsoft SQL Server还原失败,错误: 3219

转载自:http://blog.sina.com.cn/s/blog_4e6f891f0101css5.html

MSSQL还原数据库失败,提示如下: 还原对与服务器 失败。(Microsoft.SqlServer.Smo)

其它信息:执行Transact-SQL语句或批处理时发生异常。(Microsoft.SqlServer.ConnectionsInfo)。不能选择文件或文件组“……”用于此操作。 RESTORE DATABASE 正在异常终止。(Microsoft SQL Server, 错误:3219)

出现此错误时我的操作步骤为:右击数据库》》任务》》还原》》文件和文件组》》源设备(选择备份文件)》》指定备份文件位置》》添加选定文件。在“还原文件和文件组”对话框中点击“确定”按钮,即出现上面显示的错误。

正确的步骤为:右击数据库》》任务》》还原》》数据库》》源设备(选择备份文件)》》指定备份文件位置》》添加选定文件。在“还原数据库”对话框中点击“确定”按钮,即可正确还原。

主要原因: 文件和文件组备份必须被还原到匹配的数据库

还原文件和文件组备份 SQL Server 的说明的详细信息可见: http://support.microsoft.com/kb/281122/zh-cn

至于“还原数据库”和“还原文件和文件组”的区别可以见此文章:http://www.cnblogs.com/zping/archive/2008/08/21/1272961.html

==================================================================================================

在此简单说明下,我不是用于还原已存在数据库,而是创建新数据库,与上面操作不同的只是:不是指定某个数据库后右键》任务》……,而是数据库上一级【数据库】右键》还原数据库(注意:不是还原文件和文件组)……。

上一篇:对比WDCP面板与AMH面板的区别与选择


下一篇:Core Data使用之一(Swift): 获取