Ошибка при восстановлении резервной копии sql - PullRequest
0 голосов
/ 18 ноября 2011

Я восстанавливаю базу данных из файла с именем databasebkup.bak (сохраненного в C:\\databasebkup.bak) в базу данных Sql Server 2005 с именем MyDatabase.

Я ссылался на Microsoft.SqlServer.Management.Common;Microsoft.SqlServer.Management.Sdk.Sfc; и Microsoft.SqlServer.Management.Smo вмой код, который выглядит следующим образом:

Microsoft.SqlServer.Management.Smo.Server smoServer = new Server(
                                                        new ServerConnection("."));
Database db = smoServer.Databases["MyDatabase"];
string dbPath = Path.Combine(db.PrimaryFilePath, "MyDatabase.mdf");
string logPath = Path.Combine(db.PrimaryFilePath, "MyDatabase_Log.ldf");

Restore restore = new Restore();
var deviceItem = new BackupDeviceItem("C:\\databasebkup.bak", DeviceType.File);

restore.Devices.Add(deviceItem);
restore.Database = "C:\\databasebkup.bak";

//restore.FileNumber = restoreFileNumber;
restore.Action = RestoreActionType.Database;
restore.ReplaceDatabase = true;
restore.SqlRestore(smoServer);

db.SetOnline();
smoServer.Refresh();
db.Refresh();

Но при восстановлении он возвращает эту ошибку:

Не удалось восстановить имя сервера сервера '

Может кто-нибудь сказать мне, где я иду не так?

Ответы [ 2 ]

1 голос
/ 18 ноября 2011

Попробуйте изменить:

restore.Database = "C:\\databasebkup.bak";

до:

restore.Database = "MyDatabase";

Кроме того, похоже, что вы подключаетесь с использованием аутентификации Windows; убедитесь, что у текущего пользователя есть права на резервное копирование.

0 голосов
/ 18 ноября 2011

Вы указали имя файла резервной копии в неправильном свойстве и совершенно забыли указать само имя базы данных.Прочитайте документацию для свойств Database и MediaName еще раз.

http://msdn.microsoft.com/en-us/library/microsoft.sqlserver.management.smo.restore.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...