Tôi sử dụng SQL Server SMO để khôi phục tệp .bak sang cơ sở dữ liệu mới, nhưng không hoạt động.smo khôi phục cơ sở dữ liệu
sql server 2012 và smo phiên bản đối tượng là từ phiên bản sdk mới nhất 11.0
tập tin bak đã được tạo ra sử dụng quản lý phòng thu sql 2012, cùng pc địa phương, trên pc mã hóa giống như tốt.
Thông báo lỗi tôi nhận được là:
Khôi phục thất bại cho Server 'MÁY CHỦ'.
Mã của tôi có vấn đề gì?
string dbPath = Path.Combine(@"d:\my data", dbName + "_db" + ".mdf");
string logPath = Path.Combine(@"d:\my data", dbName + "_db" + "_Log.ldf");
Restore restore = new Restore();
BackupDeviceItem deviceItem = new BackupDeviceItem("d:\template.BAK", DeviceType.File);
restore.Devices.Add(deviceItem);
restore.Database = dbName + "_db";
RelocateFile relocateDataFile = new RelocateFile("Data", dbPath);
RelocateFile relocateLogFile = new RelocateFile("Log", logPath);
restore.RelocateFiles.Add(relocateDataFile);
restore.RelocateFiles.Add(relocateLogFile);
restore.Action = RestoreActionType.Database;
restore.ReplaceDatabase = true;
restore.SqlRestore(server);
CẬP NHẬT: Tôi surrended giải pháp SMO, và cố gắng
using (SqlConnection connection = new SqlConnection("Data Source=server;user id=sa;password=xxxxx;"))
{
using (SqlCommand command = new SqlCommand(@"RESTORE DATABASE beauty01 FROM DISK = 'd:\template.bak' WITH RECOVERY, MOVE 'beauty1' TO 'D:\MyData\beauty01_Data.mdf', MOVE 'beauty1_log' TO 'd:\Mydata\beauty01_Log.ldf', REPLACE", connection))
{
connection.Open();
// Add the parameters for the SelectCommand.
command.CommandType = CommandType.Text;
command.ExecuteNonQuery();
}
} >> work good.
Cảm ơn tất cả.
Có ngoại lệ bên trong không? Vui lòng kiểm tra trong gỡ lỗi, điều đó có thể sẽ cung cấp cho bạn lý do thực sự. – Bridge
Ngoài ra, bạn có chắc chắn bạn không cố gắng ghi đè lên các tệp đã tồn tại không? Nếu bạn sử dụng cùng một 'dbName', bạn có thể có dữ liệu và tệp nhật ký có cùng tên - hãy thử kiểm tra xem tệp có tồn tại trước không, và nếu có, đừng thử tạo lại nó. – Bridge
Không thể mở thiết bị sao lưu 'd: \ template.BAK'. Lỗi hệ điều hành 123 (Tên tệp, tên thư mục hoặc cú pháp nhãn khối lượng không chính xác.). >> .bak được tạo bởi studio quản lý sql 2012 và smo là phiên bản chính xác (phiên bản 11). –