在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)作为我的向导,但它没有这样的例子。我知道这必须是可能的,我错过了什么!?
答案 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
到目前为止,我还没有重建目录