最近去一个客户那,说他们的账套文件备份后(用金蝶账套管理)还原不上,老提示一个数据库文件被使用
我打开数据库后一看属性,这个数据库有两个MDF和两个LDF文件,我从来没见过这个问题
多出来的日志文件可以删除掉,可多出来的MDF文件(只有2M大)就怎么也删除不掉了,说是不是空白的。
我试着用导出把里边的数据想导到一个新建的数据库里,结果导到22%就没反应了。
哪位老大帮帮忙看我这要怎么办才能把它转成一组文件
我打开数据库后一看属性,这个数据库有两个MDF和两个LDF文件,我从来没见过这个问题
多出来的日志文件可以删除掉,可多出来的MDF文件(只有2M大)就怎么也删除不掉了,说是不是空白的。
我试着用导出把里边的数据想导到一个新建的数据库里,结果导到22%就没反应了。
哪位老大帮帮忙看我这要怎么办才能把它转成一组文件
楼主使用强制还原可以不?
1.把数据库备份后,删除原数据库后,重新强制恢复,还是恢复成四个文件了
2.把数据库分离后,删除掉多余的两个文件,附加数据库时出错。
3.到数据属性里,删除多余的文件,结果只有日志文件那个能被删除(而且只成功一个,我再试的时候删除的掉可恢复不了说是少了一个文件),数据那个就删不掉。也就是说,现在我的这个数据库有三个文件,两个MDF和一个LDF咋办!
我试了,恢复回来还是四个
--创建测试数据库
CREATE DATABASE db
ON PRIMARY(
NAME='db_data',
FILENAME= 'c:\db_data.mdf'),
FILEGROUP db_fg1(
NAME = 'db_fg1_data',
FILENAME = 'c:\db_fg1_data.ndf'),
FILEGROUP db_fg2(
NAME = 'db_fg2_data',
FILENAME = 'c:\db_fg2_data.ndf')
LOG ON(
NAME='db_log',
FILENAME ='c:\db.ldf')
GO--在文件组db_fg1上创建表,并单独创建该文件组的备份
CREATE TABLE db.dbo.tb(id int) ON db_fg1
BACKUP DATABASE db FILEGROUP='db_fg1' TO DISK='c:\db_fg1.bak' WITH FORMAT
GO在其他文件组上创建表
CREATE TABLE db.dbo.ta(id int) ON [PRIMARY]
CREATE TABLE db.dbo.tc(id int) ON db_fg2
INSERT db.dbo.tb SELECT id FROM sysobjects
--备份每个文件组,并且备份事务日志
BACKUP DATABASE db FILEGROUP='PRIMARY' TO DISK='c:\db_primary.bak' WITH FORMAT
BACKUP DATABASE db FILEGROUP='db_fg1' TO DISK='c:\db_fg1_new.bak' WITH FORMAT
BACKUP DATABASE db FILEGROUP='db_fg2' TO DISK='c:\db_fg2.bak' WITH FORMAT
BACKUP LOG db TO DISK='c:\db_log.bak' WITH FORMAT
GO--删除数据库
DROP DATABASE db
GO--从文件组备份中恢复数据
RESTORE DATABASE db FILEGROUP='PRIMARY' FROM DISK='c:\db_primary.bak' WITH NORECOVERY,REPLACE
RESTORE DATABASE db FILEGROUP='db_fg1' FROM DISK='c:\db_fg1.bak' WITH NORECOVERY
RESTORE DATABASE db FILEGROUP='db_fg2' FROM DISK='c:\db_fg2.bak' WITH NORECOVERY
RESTORE LOG db FROM DISK='c:\db_log.bak' WITH RECOVERY
SELECT COUNT(*) FROM db.dbo.tb
GO--删除测试数据库
DROP DATABASE db
========================
应该是重复安装SQL,所以系统中有多个SQL SERVER实例。每个实例都有你说的数据库
========================
这样的话,不应该恢复一个数据库的时候还有两个MDF文件吧?要是NDF还是可能