偶然一次开发人员要求将一个uat环境的Sqlserver 2008 restore 一个database 的时候遇到 Msg 3176,Level 16,State 1,Line 1 这种报错:
备份的文件:db_c3_gzct_uat_tips.mdf.bak
|
Msg 3176,Line 1
File 'D:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLdb_c3_gzct_uat_tips.mdf' is claimed by 'c3_model_prod_tips_data'(3) and 'c3_model_prod_tips_sys'(1). The WITH MOVE clause can be used to relocate one or more files.
Msg 3176,Line 1
File 'D:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLdb_c3_gzct_uat_tips.mdf' is claimed by 'c3_model_prod_tips_idx'(4) and 'c3_model_prod_tips_sys'(1). The WITH MOVE clause can be used to relocate one or more files.
Msg 3013,Line 1
RESTORE DATABASE is terminating abnormally.
由于选的是GUI的界面操作,最后转化成scripts发现这个备份集其实有4个不同的文件如下(后从源环境检查数据文件也是4个):
RESTORE DATABASE db_c3_gzct_uat_tips
FROM? DISK = 'E:db_c3_gzct_uat_tips_db_20100914.bak'
WITH
MOVE 'c3_model_prod_tips_sys' TO N'D:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLdb_c3_gzct_uat_tips.mdf',?
MOVE 'c3_model_prod_tips_data' TO N'D:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLdb_c3_gzct_uat_tips.mdf',?
MOVE 'c3_model_prod_tips_idx' TO N'D:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLdb_c3_gzct_uat_tips.mdf',?
MOVE 'c3_model_prod_tips_Log' TO N'D:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLdb_c3_gzct_uat_tips.ldf'
GO
很明显sys、data、idx这3个数据文件均指向同一个db_c3_gzct_uat_tips.mdf文件 ,应该指向不同路径或指定不同文件名
RESTORE DATABASE db_c3_gzct_uat_tips
FROM? DISK = 'E:db_c3_gzct_uat_tips_db_20100914.bak'
WITH
MOVE 'c3_model_prod_tips_sys' TO N'D:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLdb_c3_gzct_uat_tips_sys.mdf', ?
MOVE 'c3_model_prod_tips_data' TO N'D:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLdb_c3_gzct_uat_tips_data.mdf',?
MOVE 'c3_model_prod_tips_idx' TO N'D:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLdb_c3_gzct_uat_tips_idx.mdf',?
MOVE 'c3_model_prod_tips_Log' TO N'D:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLdb_c3_gzct_uat_tips.ldf'
GO
最后restore database 成功。
【Reference】:http://msdn.microsoft.com/en-us/library/bb326318(v=sql.105).aspx
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!