3

これを使用して、データベースを正常にバックアップします。

Server myServer = new Server(@"PC-1\INSTANCE1");   
private void button1_Click(object sender, EventArgs e)
    {
        try
        {
            if (saveFileDialog1.ShowDialog() == DialogResult.OK)
            {

                Backup bkpDBFull = new Backup();
                bkpDBFull.Action = BackupActionType.Database;
                bkpDBFull.Database = "MyDatabase";
                BackupDeviceItem bkpDevice = new BackupDeviceItem(saveFileDialog1.FileName, DeviceType.File);
                bkpDBFull.Devices.Add(bkpDevice);
                bkpDBFull.BackupSetName = "Sample";
                bkpDBFull.BackupSetDescription = "Sample";
                bkpDBFull.SqlBackup(myServer);
            }
        }
        catch (SmoException ex)
        {
            throw new SmoException(ex.Message, ex.InnerException);
        }
    }

しかし、復元でエラーが発生しましたRestore failed for Server 'PC-1\INSTANCE1'.

    private void button2_Click(object sender, EventArgs e)
    {
        if (openFileDialog1.ShowDialog() == DialogResult.OK)
        {
            Restore restoreDB = new Restore();
            restoreDB.Database = "MyDatabase";
            restoreDB.Action = RestoreActionType.Database;
            BackupDeviceItem bkpDevice = new BackupDeviceItem(openFileDialog1.FileName, DeviceType.File);
            restoreDB.Devices.Add(bkpDevice);
            restoreDB.ReplaceDatabase = true;
            restoreDB.SqlRestore(myServer);
        }
    }

バックアップと復元の両方で同じサーバーを使用しています。同じサーバーとデータベースを使用してバックアップが成功したのに、復元に失敗したのはなぜですか?

4

1 に答える 1

0

除外すべきことの 1 つは、マシン名のハイフンが気に入らないということです。これは実際にはすべきではありません。サーバー名として IP アドレスを使用しようとすると、これが除外されます。

他の人が言っているように、使用中のデータベースである可能性が高くなります。

于 2013-08-23T09:56:43.197 に答える