Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

bioshock

Problema com Database SQL

Mensagens Recomendadas

bioshock

Boas,

Eu com o Access nunca tive este tipo de problemas mas surgiu-me agora um que não sei mesmo como hei de fazer..

Eu tenho um processo que faz backup das bases de dados, e eu fazia perfeitamente o backup da BD em Access, o problema está em fazer backup da BD em SQL, pois diz que o processo está a ser utilizado.

De que forma é que posso dar a volta a isto? Obrigado!  :D

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
bioshock

E como estás a fazer o backup? Não me digas que estás a tentar copiar o ficheiro?

Sim, sempre o fiz com o Access e funcionava.

Penso que tens de usar o Sql Dump, é o que uso quando trabalho com Mysql

Para que serve mais concretamente?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
jpaulino

Sim, sempre o fiz com o Access e funcionava.

Pois, mas o Access é bem diferente ... não tem processo nem é um SGBD.

Tens varias maneiras de o fazer:

Usando um Stored Procedure

http://weblogs.sqlteam.com/tarad/archive/2008/05/21/60606.aspx

Script para automação

http://www.sqldbatips.com/showarticle.asp?ID=27

Código usando SqlServer.Management

http://www.mindfiresolutions.com/Backup-SQL-Database-Through-Code-In-VBNET-846.php

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
bioshock

Imports Microsoft.SqlServer.Management.Common
Imports Microsoft.SqlServer.Management.Smo
Dim WithEvents oBackup As New Backup
    Private Sub BackupSqlDatabase()

        Dim conn As New ServerConnection("\SQLEXPRESS", "", "") ' -- set SQL server connection given the server name, user name and password
        Dim oSQLServer As New Server(conn) '--create the SMO server object using connection

        Dim OrigBackupPath As String = oSQLServer.Information.MasterDBPath.Replace(Application.StartupPath & "\DataBase123.mdf", Application.StartupPath & "\Backup\DataBase123BACKUP.mdf") ' -- set the path where backup file will be stored

        Dim bkDevItem As New BackupDeviceItem(OrigBackupPath, DeviceType.File) ' -- create SMO.Backupdevice object

        With oBackup ' Set the backup object property 
            .Action = BackupActionType.Database
            .Database = DataBase123.mdf
            .Devices.Add(bkDevItem)
            .Initialize = True
            .Checksum = True
            .ContinueAfterError = True
            .Incremental = False
            .LogTruncation = BackupTruncateLogType.Truncate
            .SqlBackup(oSQLServer) ' backup SQL database
        End With

    End Sub

Tentei adaptar o código, mas dá-me erro na declaração da variavel "oBackup"  (não detecta " As New Backup " mas os imports estão a funcionar bem, e por consequencia tenho alguns erros nas linhas: BackupDeviceItem, BackupActionType, BackupTruncateLogType.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
bioshock

Boas pmaster,

Eu já resolvi o problema, precisava de exportar a dll smoextended e funcionou. Mas isto tem uns "não!". Quero com isto dizer que sou obrigado a fazer o backup para a pasta backup do SQL..não me deixa escolher o directório.

Mas vou dar uma vista de olhos nesse exemplo do macoratti. Obrigado!  :thumbsup:

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pmaster

Penso que com este exemplo do marcoratti dá para escolheres o destino do backup, digo isto por causa deste excerto:

Dim cmdBackup As New SqlCommand("BACKUP DATABASE [" & nomeDB & "] TO DISK = '" & backupFile & "'", cn)

Por causa do "to disk"

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
bioshock

Assim de gás pelo que exemplo que estive a fazer, ele apenas me dá erro nesta linha:

Dim sqlUtils As New SqlServer

Pelo que andei a ler pelo google, parece que preciso de alguns componentes do SQL 2005, mas eu uso SQL 2008.. :hmm:

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
bioshock

"Requirements

Visual Studio .NET 2005 (For source code)

.NET Framework 2.0

Microsoft SQL Server 2000 or Microsoft SQL Express 2005 or Microsoft SQL Server 2005 client components (For SQL-DMO Library)"

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
bioshock

Bem, este problema também já está resolvido. (A Library..)

O problema é que eu não consigo especificar onde guardar o backup. Pelo código que eu tenho ele obrigatoriamente mete na pasta backup\ do SQL Server

   

    Dim a As SQLDMO.Backup
        Dim svr As SQLDMO._SQLServer
        Try
            a = New SQLDMO.BackupClass()
            svr = New SQLDMO.SQLServerClass()

            svr.LoginSecure = False
            svr.Connect("Root\SQLEXPRESS", "sa", "123")

            a.Action = SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database
            a.Database = "BaseDados"
            a.Files = "BackupBaseDados.mdf"
            a.BackupSetName = "BaseDados"
            a.BackupSetDescription = "Database backup"
            a.Initialize = True
            a.SQLBackup(svr)

            svr.DisConnect()
            svr = Nothing
        Catch ex As Exception
            MessageBox.Show(ex.ToString)
        End Try

Se alguém souber como alterar o caminho do backup..que apite  :thumbsup:

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
duduml

Basta criares um form de configuração onde o user mete os dados, guardas num .txt e depois no evento load carregas as vars com os valores....

é isso que queres???

EDIT:

ou queres mesmo escolher apenas um caminho?


"use windows, você merece!"

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
bioshock

A linha de código: "a.Files" já está direccionada para a pasta \Data\Backup do SQL. E mesmo que eu ponha outra pasta ele vai assumir \Data\Backup\NomeDaPastaQueEuEscolhi... ou seja, wrong!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.