Array
(
)

Implementar rotina de backup para dados em SQLExpress

Davi Pinheiro
   - 09 nov 2010

Oi pessoal,

Desenvolvi um sistema e estou no final, agora gostaria de implementar uma rotina para fazer backup dos dados que estão gravados no banco de dados SQLExpress e posteriormente restaurar estes dados. Alguem pode me ajudar?

Celonet
   - 10 nov 2010

Boa tarde,   nesse link explica um pouco como fazer!   http://social.msdn.microsoft.com/Forums/pt-BR/vscsharppt/thread/940bb8e1-37f7-4ffb-b570-42840758dd77   http://msdn.microsoft.com/pt-br/library/ms162133.aspx

Celonet
   - 10 nov 2010

nesse tbm   http://www.linhadecodigo.com.br/artigo/2326/Gerando-backup-no-SqlServer-via-c%C3%B3digoSqlCommand-e-DMO.aspx

Davi Pinheiro
   - 11 nov 2010

Pessoal, consegui gerar o backup com o seguinte código, obrigado

Porem, agora não estou conseguindo fazer a restauração do backup, vocês podem me ajudar?

Desde já, obrigado.

private void btBackup_Click(object sender, EventArgs e)
        {
            var filePath = (@"C:\Backups\sbLuto2.bak");

            try
            {
                var sc = new ServerConnection(".\\SQLEXPRESS");
                var server = new Server(sc);
                if (server.Databases["dbLuto2"] != null)
                {
                    MessageBox.Show("chegou");
                    //Criando o diretorio do Backup
                    if (!Directory.Exists(@"C:\Backups"))
                    {
                        Directory.CreateDirectory(@"C:\Backups");
                    }
                    // Criando o objeto Backup
                    var bak = new Backup();
                    bak.Incremental = false;
                    bak.Action = BackupActionType.Database;
                    //string data = DateTime.Now.Date.ToString("MM-dd-yy");
                    bak.BackupSetName = "dbLuto2_Backup";// +data;

                    // Definindo o banco de dados a ser salvo
                    bak.Database = "dbLuto2";

                    bak.Checksum = true;

                    // Adcionando um destino para o backup
                    bak.Devices.Add(new BackupDeviceItem(filePath, DeviceType.File));

                    // Executando o backup
                    bak.SqlBackup(server);
                }

            }
            catch (Exception ex)
            {
                MessageBox.Show("Erroa ao fazer o backup = "+ex.Message);

            }
        }

Davi Pinheiro
   - 11 nov 2010

Esqueci de postar o código que está dando erro

Da erro na seguinte linha ( res.SqlRestore(server); )

e o erro é ( Restore failed for server 'Davi-PC\SQLExpress';

var filePath = (@"C:\Backups\sbLuto2.bak");
            try
            {
                var sc = new ServerConnection(".\\SQLEXPRESS");
                var server = new Server(sc);
                if (server.Databases["dbLuto2"] != null)
                {
                    var res = new Restore();
                   
                    var bdi = new BackupDeviceItem(filePath, DeviceType.File);

                    res.Action = RestoreActionType.Database;
                   
                    //res.NoRecovery = false;
                   
                    res.Devices.Add(bdi);
                   
                    res.Database = "dbLuto2";

                    res.Checksum = true;
                   
                    res.SqlRestore(server);

                    MessageBox.Show("Restauração do banco realizada com sucesso!!!");
                }

            }
            catch (Exception ex)
            {
                MessageBox.Show("Erroa ao fazer a restauração = " + ex.Message);

            }

Davi Pinheiro
   - 11 nov 2010

Pessoal, consegui fazer o restore do banco, o código estava com um erro no nome do banco. Outro detalhe é que para fazer a restauração o SQL Server Management deve estar fechado ou desconectado ao banco.