[英]Restoring a DB with FullTextSearch To a Different DB same server
I need to make a copy of a production Database and restore it to a different database on the same production server.我需要制作生产数据库的副本并将其还原到同一生产服务器上的不同数据库。 I do not have a development SQL Server to practice on.
我没有一个开发 SQL 服务器来练习。 The DB to be copied has Full Text Search enabled.
要复制的数据库已启用全文搜索。 The problem I am encountering is the restore of the NDF has the same name as the Original production database.
我遇到的问题是 NDF 的还原与原始生产数据库具有相同的名称。 This is shown below using SSMS.
这在下面使用 SSMS 显示。
The ndf file has the same name. ndf 文件具有相同的名称。 It seems to contain a GUID as part of the name.
它似乎包含一个 GUID 作为名称的一部分。 Whereas the mdf's and ldf's names use the database name.
而 mdf 和 ldf 的名称使用数据库名称。
How do I restore the backup of the database to a different database on the same server without causing an error?如何将数据库的备份还原到同一服务器上的不同数据库而不导致错误?
Here is my attempt to do it in code.这是我尝试在代码中做到这一点。 Since I do not have a development server, will this work?
由于我没有开发服务器,这可以吗?
USE [master]
Declare @newNDF as varchar(100) = 'E:\DATA\ftrow_FTC_titles{' + cast(NewID() as varchar(100)) +'}.ndf'
RESTORE DATABASE [Data]
FROM DISK = N'E:\Backup\Data_02 Aug 8 2022.bak' WITH FILE = 1,
MOVE N'Data_02' TO N'E:\DATA\Data.mdf',
MOVE N'Data_02_log' TO N'E:\DATA\Data_log.ldf',
Move N'ftrow_FTC_titles{4E13037C-2F3F-49A3-B194-228F86A4F958}.ndf' to @NewNdf,
NOUNLOAD,
REPLACE,
STATS = 5;
GO
Since SSMS uses the same file name in the restore, does this imply that there is only one ndf that services every database on this server?由于 SSMS 在还原中使用相同的文件名,这是否意味着只有一个 ndf 为该服务器上的每个数据库提供服务? Won't I get a File Name (ndf) in use error?
我不会收到文件名 (ndf) 使用中的错误吗?
Can I just rename the NDF?我可以重命名 NDF 吗? Does it have to contain a GUID?
它是否必须包含 GUID? If so how do I make that happen in SSMS?
如果是这样,我如何在 SSMS 中实现这一点? Is it better to use Code as shown above?
使用如上所示的代码更好吗?
Here is what worked for me.这对我有用。
RESTORE FILELISTONLY FROM DISK = '\\SqlServerName\E$\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Backup\Data_02Aug_15_2022.bak
Select newid()
. Select newid()
。 USE [master]使用 [主]
RESTORE DATABASE [Data]恢复数据库 [数据]
FROM DISK = N'\SQLServerName\E$\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Backup\Data_02Aug_15_2022.bak' WITH FILE = 1, FROM DISK = N'\SQLServerName\E$\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Backup\Data_02Aug_15_2022.bak' WITH FILE = 1,
MOVE N'Data_02' TO N'E:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\Data.mdf',
MOVE N'Data_02_log' TO N'E:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\Data_log.ldf',
Move N'ftrow_FTC_titles' to N'E:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\ftrow_FTC_titles{C5DFD204-0159-4EBD-945B-A31EB8672118}.ndf',
NOUNLOAD,名词加载,
REPLACE,代替,
STATS = 5;统计 = 5;
GO GO
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.