繁体   English   中英

使用SMO备份带有C#Windows Forms应用程序的SQL Server 2005数据库时,备份失败

[英]Using SMO to backup SQL Server 2005 Database with C# Windows Forms Application, Back up failed

这是我用来备份数据库的代码,我按照本教程操作 ,如您所见,这些代码是相同的。 我填写变量后出现错误。 我得到的错误是

服务器“ RITZEL-PC \\ SQLEXPRESS”的备份失败。

备份功能:

    public void BackupDatabase(String databaseName, String userName, String password,        String serverName, String destinationPath)
    {
        Backup sqlBackup = new Backup();

        sqlBackup.Action = BackupActionType.Database;
        sqlBackup.BackupSetDescription = "ArchiveDataBase:" + DateTime.Now.ToShortDateString();
        sqlBackup.BackupSetName = "Archive";

        sqlBackup.Database = databaseName;

        BackupDeviceItem deviceItem = new BackupDeviceItem(destinationPath, DeviceType.File);
        ServerConnection connection = new ServerConnection(serverName, userName, password);
        Server sqlServer = new Server(connection);

        Database db = sqlServer.Databases[databaseName];

        sqlBackup.Initialize = true;
        sqlBackup.Checksum = true;
        sqlBackup.ContinueAfterError = true;

        sqlBackup.Devices.Add(deviceItem);
        sqlBackup.Incremental = false;

        sqlBackup.ExpirationDate = DateTime.Now.AddDays(3);
        sqlBackup.LogTruncation = BackupTruncateLogType.Truncate;

        sqlBackup.FormatMedia = false;

        sqlBackup.SqlBackup(sqlServer);
    }

点击按钮

    private void BackUp_Btn_Click(object sender, EventArgs e)
    {
        String databaseName = @"D:\MY_THESIS\WORKING FILES\NNIT-RMS.mdf";
        String userName = "NNIT-Admin";
        String password = "password";
        String serverName = @"RITZEL-PC\SQLEXPRESS";
        String destinationPath = @"D:\";

        BackupDatabase(databaseName,userName,password,serverName,destinationPath);

    }

数据库信息我还不能发布图像,但是我上传了一个屏幕截图。 看到这里: http : //img268.imageshack.us/img268/9250/sqlg.jpg

为了备份数据库,进程SQL Server根据需要运行,以对备份目标文件夹具有正确的文件夹权限。

根据我的经验,除非SQL Server进程以本地管理员身份运行,否则它没有写根目录权限。

如果打开SSMS并尝试将数据库备份到目标路径,则可能会遇到相同的问题。

尝试将备份文件夹更改为驱动器根目录或“我的文档”文件夹以外的其他文件夹。

不要再次分配字符串值,只需删除它们并按以下方式调用备份:

BackupSqlDatabase("YourDataBaseName","sa","password","ServerName","C:\\YourDataBaseName.bak");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM