this 문서를 기반으로 데이터베이스 백업/복원을 위해 작은 WPF 응용 프로그램을 만들었습니다.백업 파일에서 데이터베이스를 복원 할 수 없습니다
코드 : 나는 백업 파일 button1을 클릭하면 예상대로
using System.Windows;
using Microsoft.SqlServer.Management.Smo;
namespace DBManager
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow
{
private Server srv;
private Database db;
private BackupDeviceItem bdi;
private int recoverymod;
public MainWindow()
{
InitializeComponent();
srv = new Server();
db = srv.Databases["MyDB"];
recoverymod = (int) db.DatabaseOptions.RecoveryModel;
bdi = new BackupDeviceItem("Test_Full_Backup1", DeviceType.File);
}
private void button1_Click(object sender, RoutedEventArgs e)
{
BackupDB();
}
private void button2_Click(object sender, RoutedEventArgs e)
{
RestoreDB();
}
public void BackupDB()
{
var bk = new Backup
{
Action = BackupActionType.Database,
BackupSetDescription = "Full backup of MyDB",
BackupSetName = "MyDB Backup",
Database = "MyDB"
};
bk.Devices.Add(bdi);
bk.Incremental = false;
bk.LogTruncation = BackupTruncateLogType.Truncate;
bk.SqlBackup(srv);
label1.Content = "Backup finished";
bk.Devices.Remove(bdi);
}
public void RestoreDB()
{
db.Drop();
var rs = new Restore { NoRecovery = true };
rs.Devices.Add(bdi);
rs.Database = "MyDB";
rs.SqlRestore(srv);
label1.Content = "Restoration finished";
db = srv.Databases["MyDB"];
rs.Devices.Remove(bdi);
db.RecoveryModel = (RecoveryModel) recoverymod;
}
}
}
생성됩니다.
button2를 누르면 "복원 완료"메시지가 표시되고 모든 내용이 정상적으로 보였지만 사용하는 다른 응용 프로그램으로 데이터베이스에 액세스 할 수 없습니다.
SQL Management Studio에서 데이터베이스 이름 뒤에 "복원 중 ..."이 표시되고 복원 프로세스가 완료되지 않는 것처럼 보입니다.
비주얼 스튜디오 2010 및 SQL Server 2012
SQL Server Management Studio라는 도구를 이미 만들었습니다. –
알고 있지만 대부분의 대상 사용자는 기술 스킬이 없습니다 –
기술 사용자가 아닌 사용자가 SQL 데이터베이스를 복원 할 수 있도록 하시겠습니까? 그것은 정말 나쁜 생각처럼 보입니다. –