还原数据库问题 ( 积分: 50 )

  • 主题发起人 主题发起人 jialiguo
  • 开始时间 开始时间
J

jialiguo

Unregistered / Unconfirmed
GUEST, unregistred user!
RESTORE DATABASE BA2004 FROM DISK ='D:/巡逻备份数据/BAK1BA2004.BAR' WITH REPLACE
在查询分析器就能还原数据库
但在代码中写数据库怎么什么都不变啊
 
如果一个数据库还有活跃的连接,是无法被还原的——你要确认自己的代码执行时,这个
库没有任何连接啊。另外,还要注意自己连接数据库所用的用户是否权限足够大。
 
在活跃的时候根本就执行不了语句的嘛
 
1。确认语句执行
2。确认与BA2004的连接断开
 
不要在BA004上还原, 否则报数据库正在使用。
 
我是这样先复制一个新的数据库,在备分的
BACKUP DATABASE BA2004 TO DISK ='D:/巡逻历史数据/HIS200610BA2004.BAK'

RESTORE FILELISTONLY FROM DISK ='D:/巡逻历史数据/HIS200610BA2004.BAK'
RESTORE DATABASE HIS200610BA2004
FROM DISK ='D:/巡逻历史数据/HIS200610BA2004.BAK'

WITH REPLACE,
MOVE 'ba2004_Data' TO 'C:/临时文件夹/HIS200610BA2004.MDF' ,
MOVE 'ba2004_Log' TO 'C:/临时文件夹/HIS200610BA2004.LDF'

BACKUP DATABASE HIS200610BA2004 TO DISK ='D:/巡逻历史数据/HIS200610BA2004.BAK'

就是这样创建的数据库,备分后在还原就出上面的问题了。
 
寻找一个复制数据库的方法::
我原来是:
BACKUP DATABASE BA2004 TO DISK ='D:/巡逻历史数据/temp.BAK'

--RESTORE FILELISTONLY FROM DISK ='D:/巡逻历史数据/HIS200610BA2004.BAK'
RESTORE DATABASE HIS200610BA2004
FROM DISK ='D:/巡逻历史数据/temp.BAK'

WITH REPLACE,
MOVE 'ba2004_Data' TO 'C:/临时文件夹/HIS200610BA2004.MDF' ,
MOVE 'ba2004_Log' TO 'C:/临时文件夹/HIS200610BA2004.LDF'

BACKUP DATABASE HIS200610BA2004 TO DISK ='D:/巡逻历史数据/HIS200610BA2004.BAK'
这么复制数据库在备份的,但这样备份出来的没法还原
谁给介绍个方法
 
你是什么数据库?
 
'C:/临时文件夹/'你执行还原操作之前,这个目录存在吗?SQL Server的还原必须还原到一个已经存在的目录中。
另外复制数据库的方法有很多,一个就是你的备份还原,还有一个是通过DTS包执行,再一个就是先把原数据库脱机,复制文件后,再激活。
脱机再激活的方法如下:
EXEC sp_detach_db 'pubs', 'true'
EXEC sp_attach_db @dbname = N'pubs',
@filename1 = N'c:/Program Files/Microsoft SQL Server/MSSQL/Data/pubs.mdf',
@filename2 = N'c:/Program Files/Microsoft SQL Server/MSSQL/Data/pubs_log.ldf'

无日志文件的激活
EXEC sp_detach_db @dbname = 'pubs'
EXEC sp_attach_single_file_db @dbname = 'pubs',
@physname = 'c:/Program Files/Microsoft SQL Server/MSSQL/Data/pubs.mdf'
 
对了,如果你是用命令的形式来还原数据库,建议你先用企业管理器里面的备份还原功能测试一下你自己用命令备份的文件能否还原,然后就应该知道问题所在点了!
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
738
SUNSTONE的Delphi笔记
S
S
回复
0
查看
730
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部