SQL Server 2005:使用带有多个文件组和全文目录的sp_attach_db或CREATE DATABASE附加数据库

时间:2011-05-03 16:21:16

标签: sql sql-server database sql-server-2005

在SQL Server 2005 SP3中使用“sp_attach_db”或CREATE DATABASE将具有多个文件组的数据库和从服务器A到服务器B的完整文本目录附加时出现问题。所有数据库文件(主数据,辅助数据,日志,全文目录)都已从服务器A复制到服务器B.

我遇到了类似的问题(SQL Server 2005: Attach database using sp_attach_db with full text catalog),但此示例只有主数据文件,主日志文件和全文目录

现在我面临添加更多文件组的问题,当我尝试运行下面的示例命令时,它会失败

CREATE DATABASE DBNAME ON 
    (FILENAME = 'C:\Databases\DBNAME\Data\DBNAME_data.mdf'), 
    (FILENAME = 'C:\Databases\DBNAME\Data\DBNAME_indexes.ndf'), 
    (FILENAME = 'C:\Databases\DBNAME\Data\DBNAME1_data.ndf'), 
    (FILENAME = 'C:\Databases\DBNAME\Logs\DBNAME_log.ldf'), 
    (FILENAME = 'C:\Databases\DBNAME\Data\FTData') 
FOR ATTACH;
GO

错误讯息:

Msg 5120, Level 16, State 101, Line 1
Unable to open the physical file "C:\Databases\DBNAME\Data\FTData". Operating system error 5: "5(Access is denied.)".

我使用过这个Microsoft页面(http://msdn.microsoft.com/en-us/library/ms176061.aspx)作为我的向导,但它没有这样的例子。我知道这必须是可能的,我错过了什么!?

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

弄清楚我需要做什么。无论这是正确的方式还是一种解决方法,我都不确定。这就是我所做的....首先我从创建数据库列表中删除了全文目录,因为它遇到了问题(无论我怎么做)并且能够创建/附加数据库(尽管我确实得到了警告)

CREATE DATABASE DBNAME ON 
    (FILENAME = 'C:\Databases\DBNAME\Data\DBNAME_data.mdf'), 
    (FILENAME = 'C:\Databases\DBNAME\Data\DBNAME_indexes.ndf'), 
    (FILENAME = 'C:\Databases\DBNAME\Data\DBNAME1_data.ndf'), 
    (FILENAME = 'C:\Databases\DBNAME\Logs\DBNAME_log.ldf')
FOR ATTACH;
GO

然后我从这里获得了全文目录的逻辑名称和路径......

SELECT * FROM SYS.DATABASE_FILES  WHERE TYPE_DESC = 'FULLTEXT'

然后使数据库脱机,重新创建全文目录,然后将数据库重新联机...

ALTER DATABASE DBNAME SET OFFLINE
ALTER DATABASE DBNAME MODIFY FILE ( NAME = sysft_cat_full_text , FILENAME = 'C:\Databases\DBNAME\Data\FTData\cat_full_text')
ALTER DATABASE DBNAME SET ONLINE

到目前为止,我还没有重建目录