Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

SQL Server backup failed for server xxxx

I'm trying to take a backup of a local SQL Server database to my local machine through c# code and I am getting Backup failed for server .

Code as follows:

using (var con = new SqlConnection(conn))
            {
                const string destination = "d:\\backups"+"/";
                var sqlServer = new Server(new ServerConnection(con));
                con.Open();
                var bkpDatabase = new Backup { Action = BackupActionType.Database, Database = name };
                var bkpDevice = new BackupDeviceItem(destination  + name + ".bak", DeviceType.File);

                bkpDatabase.Devices.Add(bkpDevice);
                bkpDatabase.Checksum = true;
                bkpDatabase.ContinueAfterError = true;
                bkpDatabase.Incremental = false;
                bkpDatabase.Initialize = true;
                // Perform the backup
                bkpDatabase.SqlBackup(sqlServer);

                con.Close();
            }

I have used the following references :

mircrosoft.sqlserver.smo;
mircrosoft.sqlserver.smoextended;
mircrosoft.sqlserver.management.sdk.sfc;
mircrosoft.sqlserver.connectioninfo;

Inner exception :

Microsoft.SqlServer.Management.Smo.FailedOperationException was caught
 HelpLink=http://go.microsoft.com/fwlink?       ProdName=Microsoft+SQL+Server&ProdVer=10.50.2500.0+((KJ_PCU_Main).110617-           0026+)&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptio    nText&EvtID=Backup+Server&LinkId=20476
 HResult=-2146233088
 Message=Backup failed for Server 'XXXXX'. 
 Source=Microsoft.SqlServer.SmoExtended
    Operation=Backup
   StackTrace:
   at Microsoft.SqlServer.Management.Smo.Backup.SqlBackup(Server srv)
   at DatabaseCreation.Program.BackupDatabase(String name, String conn) in   c:\Users\Documents\Visual Studio 2013\Projects\Databaseinstallation\DatabaseCreation\Program.cs:line 154
   InnerException: System.NullReferenceException
   HResult=-2147467261
   Message=Object reference not set to an instance of an object.
   Source=Microsoft.SqlServer.ConnectionInfo
   StackTrace:
        at Microsoft.SqlServer.Management.Common.ConnectionManager.get_IsOpen()
        at Microsoft.SqlServer.Management.Common.ConnectionManager.Connect()
        at Microsoft.SqlServer.Management.Common.ConnectionManager.PoolConnect()
        at      Microsoft.SqlServer.Management.Common.ConnectionManager.get_DatabaseEngineType()
        at Microsoft.SqlServer.Management.Smo.Server.GetExecutionManager()
        at Microsoft.SqlServer.Management.Smo.Server.get_ExecutionManager()
        at Microsoft.SqlServer.Management.Smo.SqlSmoObject.get_ServerVersion()
        at Microsoft.SqlServer.Management.Smo.Backup.Script(Server targetServer)
        at Microsoft.SqlServer.Management.Smo.Backup.SqlBackup(Server srv)
like image 893
user2189168 Avatar asked Dec 05 '25 03:12

user2189168


1 Answers

Maybe you have to escape the \ character in your destination path:

@"d:\backups"

or

"d:\\backups"

Try the following:

using (var con = new SqlConnection(conn))
{
    const string destination = "c:\\backups";
    var fileName = Path.Combine(destination, String.Format("{0}.bak", name));
    if (!Directory.Exists(destination))
        Directory.CreateDirectory(destination);
    var sqlServer = new Server(new ServerConnection(con));
    var bkpDatabase = new Backup
    {
        Action = BackupActionType.Database,
        Database = name
    };
    var bkpDevice = new BackupDeviceItem(fileName, DeviceType.File);
    bkpDatabase.Devices.Add(bkpDevice);
    bkpDatabase.Checksum = true;
    bkpDatabase.ContinueAfterError = true;
    bkpDatabase.Incremental = false;
    bkpDatabase.Initialize = true;
    bkpDatabase.SqlBackup(sqlServer);
}
like image 182
Alex Filipovici Avatar answered Dec 07 '25 20:12

Alex Filipovici



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!