不知道原数据库名称,只有bak文件,如何还原数据库

DataBox-MDX 2010-12-27 08:22:51
RT
...全文
1322 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
dongchengxiaomin 2012-03-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ap0405140 的回复:]

SQL code

restore headeronly from disk='[路径]\[BAK文件]'
-->结果里有个DatabaseName(数据库名称)的字段.
[/Quote]

已为数据库 'ExpertReportingSystem',文件 'ExpertReportingSystem' (位于文件 1 上)处理了 240 页。
已为数据库 'ExpertReportingSystem',文件 'ExpertReportingSystem_log' (位于文件 1 上)处理了 1 页。
RESTORE DATABASE 成功处理了 241 页,花费 0.125 秒(15.749 MB/秒)。
之后的数据库在哪儿啊?
claro 2010-12-27
  • 打赏
  • 举报
回复
1/ 获得原库逻辑名
RESTORE FILELISTONLY FROM disk= 'D:\lgs_backup_201012270300.bak'

2/ 新建空库
USE [master]
GO

--在D盘新建lgs文件夹
CREATE DATABASE [lgs_backup] ON PRIMARY
( NAME = N'lgs_backup' --修改为第1步查询的逻辑文件名
, FILENAME = N'D:\lgs\lgs_backup.mdf'
) LOG ON
( NAME = N'lgs_backup_log' --修改为第1步查询的逻辑日志名
, FILENAME = N'D:\lgs\lgs_backup_log.ldf')
GO

3/ 还原数据库
RESTORE DATABASE [lgs_backup] FROM DISK = N'D:\lgs_backup_201012270300.bak'
WITH FILE = 1, REPLACE
GO
飘零一叶 2010-12-27
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 dlut_liuq 的回复:]
SQL code
restore database lgs from disk='[路径]\[BAK文件]' with norecovery,
move 'lgs' to '[路径]\lgs.mdf',
move 'lgs_log' to '[路径]\lgs_log.ldf'

这样应该可以了
[/Quote]
restore database lgs from disk='[路径]\[BAK文件]' with recovery,
move 'lgs' to '[路径]\lgs.mdf',
move 'lgs_log' to '[路径]\lgs_log.ldf'
飘零一叶 2010-12-27
  • 打赏
  • 举报
回复
restore database lgs from disk='[路径]\[BAK文件]' with norecovery,
move 'lgs' to '[路径]\lgs.mdf',
move 'lgs_log' to '[路径]\lgs_log.ldf'

这样应该可以了
唐诗三百首 2010-12-27
  • 打赏
  • 举报
回复
同意billpu,
刚才错误提示是说"D:\MSSQL\"这个目录不存在.
请于D:\上建这个目录,或按照billpu的方法去做.
billpu 2010-12-27
  • 打赏
  • 举报
回复
这样
restore database lgs from disk='[路径]\[BAK文件]' with replace,
move Lgs to disk='新的路径\数据文件名',
move lgs_log to disk='新的路径\日志文件名'
DataBox-MDX 2010-12-27
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 ap0405140 的回复:]

先把现有的lgs卸离掉
exec sp_detach_db 'lgs'
然后再还原lgs库
restore database lgs from disk='[路径]\[BAK文件]'
[/Quote]
还是不行啊,我先把那个lgs的空数据库删了,然后执行:
restore database lgs from disk='D:\lgs_backup_201012270300.bak'
但是还是会报错啊!,高手帮忙再看看,错误如下:
消息 5133,级别 16,状态 1,第 1 行
对文件 "D:\MSSQL\Lgs_new_new.mdf" 的目录查找失败,出现操作系统错误 2(系统找不到指定的文件。)。
消息 3156,级别 16,状态 3,第 1 行
文件 'Lgs' 无法还原为 'D:\MSSQL\Lgs_new_new.mdf'。请使用 WITH MOVE 选项来标识该文件的有效位置。
消息 5133,级别 16,状态 1,第 1 行
对文件 "D:\MSSQL\Lgs_log_new_new.ldf" 的目录查找失败,出现操作系统错误 2(系统找不到指定的文件。)。
消息 3156,级别 16,状态 3,第 1 行
文件 'Lgs_log' 无法还原为 'D:\MSSQL\Lgs_log_new_new.ldf'。请使用 WITH MOVE 选项来标识该文件的有效位置。
消息 3119,级别 16,状态 1,第 1 行
在计划 RESTORE 语句时发现了问题。以前的消息提供了详细信息。
消息 3013,级别 16,状态 1,第 1 行
RESTORE DATABASE 正在异常终止。
唐诗三百首 2010-12-27
  • 打赏
  • 举报
回复
先把现有的lgs卸离掉
exec sp_detach_db 'lgs'
然后再还原lgs库
restore database lgs from disk='[路径]\[BAK文件]'
DataBox-MDX 2010-12-27
  • 打赏
  • 举报
回复
谢谢高手了,分数不是问题,急啊
DataBox-MDX 2010-12-27
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 billpu 的回复:]

就是lgs啊
restore database lgs from disk='[路径]\[BAK文件]'
[/Quote]
但是和本机服务器名称不一样,报错:

还原 对于 服务器"Pc-"失败
System.Data.SqlClient.Sq,Error:备份集中的数据库备份与现有的"lgs"数据库不同
(Microsoft.SqlServer.Ecpress.Smo)
这又是为什么呢?谢谢高手了
billpu 2010-12-27
  • 打赏
  • 举报
回复
就是lgs啊
restore database lgs from disk='[路径]\[BAK文件]'
飘零一叶 2010-12-27
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 bin_520_yan 的回复:]
引用 2 楼 ap0405140 的回复:
获得数据库名称后,当然就是还原数据库啦.

SQL code

restore database [数据库名称] from disk='[路径]\[BAK文件]'

ServerName DatabaseName
--------------- --------------
8615CC\MSSQL8615 lgs
那么如果在本地还原……
[/Quote]

lgs
DataBox-MDX 2010-12-27
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ap0405140 的回复:]
获得数据库名称后,当然就是还原数据库啦.

SQL code

restore database [数据库名称] from disk='[路径]\[BAK文件]'
[/Quote]
ServerName DatabaseName
--------------- --------------
8615CC\MSSQL8615 lgs
那么如果在本地还原,所建的数据库名称应该是什么?谢谢了
华夏小卒 2010-12-27
  • 打赏
  • 举报
回复
还原时候,先选择之后,从数据文件也能看到数据库名的
唐诗三百首 2010-12-27
  • 打赏
  • 举报
回复
获得数据库名称后,当然就是还原数据库啦.

restore database [数据库名称] from disk='[路径]\[BAK文件]'
唐诗三百首 2010-12-27
  • 打赏
  • 举报
回复

restore headeronly from disk='[路径]\[BAK文件]'
-->结果里有个DatabaseName(数据库名称)的字段.

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧