Хотите восстановить резервную копию базы данных со связанного сервера A в базу данных, расположенную на связанном сервере B, используя C #. предпочитаю использовать SMO.
Я могу восстановить из локальной резервной копии на локальную машину.
{
conn = new ServerConnection
{
ConnectionString = @"Data Source =
(localdb)\MSSQLLocalDb;Initial Catalog=master;Integrated Security=true",
};
try
{
//Restore Full
srv = new Server(conn);
//lsrv = srv.LinkedServers[@"DEVSQL\ALPHA"]; need to figure out how to restore to linked server instead of local.
//srv.KillAllProcesses("G4TestNew");
var res = new Restore();
res.Database = "G4TestNew";
res.Action = RestoreActionType.Database;
filePath = @"\\CABCSERVER\Database\Temp\Full.bak";
res.Devices.AddDevice(filePath, DeviceType.File);
res.ReplaceDatabase = true;
res.NoRecovery = true;
var dataFile = new RelocateFile("G4Test", @"C:\TBD\G4Test.mdf");
var logFile = new RelocateFile("G4Test_log", @"C:\TBD\G4TestNew.ldf");
res.RelocateFiles.Add(dataFile);
res.RelocateFiles.Add(logFile);
res.SqlRestore(srv);
}
РЕДАКТИРОВАТЬ (Добавление более подробно) :.
В этом случае доступ к связанным серверам осуществляется через «проверку подлинности сервера SQL», и приложение не имеет доступа к учетным данным, необходимым для прямого подключения, и может использовать «Интегрированную безопасность» для подключения только к локальной базе данных.