数据文件备份还原问题问题
--创建包含多个文件组的数据库
create database db
on primary(
name=N'db_data',
filename=N'c:\db_data.mfd'
),
filegroup db_fg1(
name=N'db_fg1_data',
filename=N'c:\db_fg1_data.ndf'
),
filegroup db_fg2(
name=N'db_fg2_data',
filename=N'c:\db_fg2_data.ndf'
)
Log on(
name=N'db_log',
filename=N'c:\db.ldf'
)
go
--在不同的文件组db_fg1上创建表
create table db.dbo.tb_primary(
id int
)on [primary]
create table db.dbo.tb_fg1(
id int
) on db_fg1
create table db.dbo.tb_fg2(
id int
)on db_fg2
go
--备份文件组db_fg1(文件组还原必须同时还原primary文件,故需同时备份)
alter database db set recovery full--or bulk_logged
go--这是我自己加的,如果没改revovery模式,将会提示simple模式下,备份失败
backup database db
filegroup=N'primary',
filegroup=N'db_fg1'
to disk=N'c:\db_fg1.bak'
with format--重写
go
--测试删除数据库
drop database db
go
--从文件组备份中恢复数据库
restore database db
filegroup=N'primary',
filegroup=N'db_fg1'
from disk=N'c:\db_fg1.bak'
---------到这里都正常
--检查
select count(*) from db.dbo.tb_fg1
go
---------问题在最后,查询时时提示:
服务器: 消息 927,级别 14,状态 2,行 1
无法打开数据库 'db'。该数据库正处于还原操作中途。
查看企业管理器时数据库为灰色,(正在装载)
还原改为:
restore database db
filegroup=N'primary',
filegroup=N'db_fg1'
from disk=N'c:\db_fg1.bak'
with recovery
提示:
服务器: 消息 3032,级别 16,状态 2,行 1
一个或多个选项(recovery)不支持该语句。请查阅文档以了解所支持的选项。
重启服务,刷新也不行,请问各位是哪里问题,有没有遇到过类似的问题。
作者: zxl2235 发布时间: 2011-06-15
--测试删除数据库 drop database db go --从文件组备份中恢复数据库 restore database db filegroup=N'primary', filegroup=N'db_fg1' from disk=N'c:\db_fg1.bak' ---------到这里都正常 go ----这是还差个 go --检查 select count(*) from db.dbo.tb_fg1 go
作者: qianjin036a 发布时间: 2011-06-15
SQL code
---------到这里都正常 go ----这里还差个 go --检查
作者: qianjin036a 发布时间: 2011-06-15
作者: mingpei0703 发布时间: 2011-06-15
作者: misterliwei 发布时间: 2011-06-15
居然还写错了字!
SQL code
---------到这里都正常
go ----这里还差个 go
--检查
加了个go还是不行,sqlserver2000的
作者: zxl2235 发布时间: 2011-06-15
restore database db filegroup=N'primary', filegroup=N'db_fg1' from disk=N'c:\db_fg1.bak' with partial --加上它2000下,2005可加可不加
作者: misterliwei 发布时间: 2011-06-15
select count(*) from db.dbo.tb_fg2
作者: ap0405140 发布时间: 2011-06-15
楼主这个案例,执行以下SQL会报错的喔.
select count(*) from db.dbo.tb_fg2
他就是要这个效果。
作者: misterliwei 发布时间: 2011-06-15
SQL code
restore database db
filegroup=N'primary',
filegroup=N'db_fg1'
from disk=N'c:\db_fg1.bak'
with partial --加上它2000下,2005可加可不加
报错:
--
服务器: 消息 3135,级别 16,状态 2,行 1
文件 'c:\db_fg1.bak' 中的备份集是由 BACKUP DATABASE...FILE=<name> 创建的,无法用于此还原操作。
服务器: 消息 3013,级别 16,状态 1,行 1
RESTORE DATABASE 操作异常终止。
作者: zxl2235 发布时间: 2011-06-15