none
.bak substitui .ldf e .mdf : RRS feed

  • Pergunta

  • Pessoal,

    uma pergunta bem basica - tendo o arquivo .bak (backup) qual a utilidade dos arquivos .ldf e .mdf?

    []`s

     

    Valmir


    Valmir Lima
    quinta-feira, 5 de novembro de 2009 19:54

Todas as Respostas

  • Como assim???????


    Att,
    De Lima - MCITP SQL Server 2005/2008
    quinta-feira, 5 de novembro de 2009 20:16
  • Valmir,

    o arquivo .mdf é o arquivo de dados principal usado pelo SQL Server, enqto o .ldf é o arquivo de log de transações... 
    o arquivo .bak é apenas o backup... na hora de fazer o backup isso é tdo q vc precisa.. o backup do banco e do seu log.. 

    nao sei se era essa sua duvida.. senao tente explicar melhor.. 

    [ ]'s

    Felipe Ferreira
    http://weblogs.asp.net/felipeferreira
    MCT, 2X MCITP, MCPD, 6X MCTS
    quinta-feira, 5 de novembro de 2009 21:37
  • Valmir,

    Os arquivos .mdf(Master Data File) são reconhecidos pela SQL Server como arquivos de dados são justamente estes arquivos que armazenam dos dados existentes em suas respectivas tables e index que compõem seu banco de dados.

    Os arquivos .ldf(Log Data File) são reconhecidos como arquivos de log, estão estes arquivos responsável em armazenar de forma sequências do processamento realizado no SQL Server, ou seja, todas as instrução T-SQL processadas em seu servidor SQL Server são registradas neste arquivo.

    Os arquivos .bak(Backup) são um dos tipos de arquivos reconhecidos e interpretados pelo SQL Server como arquivos de backup, ou seja, arquivos que possuem informações cópias com base em uma posição do seu banco de dados.
    Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA
    sexta-feira, 6 de novembro de 2009 00:12
    Moderador
  • Junior e Felipe, muito obrigado pelas explicações.

    O Felipe captou bem o meu problema - tenho servidores SQL rodando e precisarei realizar o backup pois vamos migrar de hardware.

    Neste caso, eu vou precisar subir os arquivos .ldf e .mdf ou apenas o .bak é o suficiente?

    Eu vou precisar alocar fisicamente os arquivos .ldf e .mdf nessa nova maquina?

    Os arquivos .ldf e .mdf que tenho datam de 07/2009. Esses arquivos nao deveriam ser atualizados automaticamente sempre que realizamos um backup?

    Grande abraço

    Valmir
    Valmir Lima
    sexta-feira, 6 de novembro de 2009 11:13
  • Para migrar seu hw tu vai realizar um novo backup ele vai gerar um novo .bak  ou substituir o que tu já tem ou mesmo fazer um append dele. Quando tu restaurar esse arquivo na maquina nova ele vai recriar o .mdf e o .ldf .

    Os arquivos .ldf e .mdf devem ter a data da ultima utilização do teu banco ele não tem "nada a ver" com o backup (esse sim vai ter a data do teu backup)  , esses são os arquivos de dados do teu sistema.


    Att. Leandro Hexsel Bugalho
    sexta-feira, 6 de novembro de 2009 13:12
  • Olá Valmir,

    Quando você faz um backup de uma base de dados o mesmo será composto por todas as informações contidas na base de dados desde sua criação até o momento da execução do backup.

    Então com esse conceito, você precisará somente do arquivo .bak, que é justamente o arquivo gerado pelo backup da base de dados.

    No momento da restauração da base de dados através de um backup, o SQL Server automaticamente irá restaurar e alocar os arquivos .mdf e .ldf no diretório padrão que é, C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA.

    OBS: Isso se você não utilizar a opção WITH MOVE, pois a instrução MOVE faz com que a restauração do arquivo de dado e dos arquivos de log sejam feitas nos locais especificados.

    Veja um exemplo de um backup, e depois um restore sem a opção MOVE.
    Neste caso a restauração criará os arquivos de dados e de log no diretório padrão do SQL Server
    .

    -- BACKUP DA BASE DE DADOS

    BACKUP DATABASE DbLei

          TO DISK = 'C:\Backup\DbLei.bak'

          WITH STATS = 10, INIT

     

    -- MUDANDO O CONTEXTO

    USE master

    GO

     

    -- RESTAURANDO A BASE DE DADOS

    RESTORE DATABASE DbLei

          FROM DISK = 'C:\Backup\DbLei.bak'

          WITH RECOVERY, STATS = 10, REPLACE

    Agora veja um exemplo de um restore utilizando a opção MOVE.
    Para utilizar o mesmo é necessário informa onde será restaurado o arquivo de dados e de log, isso se você pretende deixa os dois arquivos alocados no mesmo diretório, na qual não é obrigatório, tanto podemos especificar um ou o outro.

    Veja o exemplo movendo os dois arquivos.

     

    -- RESTAURANDO A BASE DE DADOS E MOVENDO OS ARQUIVOS DE DADOS E DE LOG

    RESTORE DATABASE DbLei

          FROM DISK = 'C:\Backup\DbLei.bak'

          WITH

                RECOVERY, STATS = 10, REPLACE,

                MOVE 'DbLei'

                      TO 'C:\Backup\DbLei.mdf',

                MOVE 'DbLei_Log'

                      TO 'C:\Backup\DbLei.ldf'

    Agora caso você não especifique o local onde será armazenado como, por exemplo, o arquivo de log, o .ldf, e especificar o local onde será armazenado o arquivo de dados, o .mdf, o arquivo de log será restaurado no diretório padrão do SQL Server, já que o mesmo não foi explicitado junto com a opção MOVE.

    Veja agora um exemplo movendo somente o arquivo de log.

    -- RESTAURANDO A BASE DE DADOS E MOVENDO SOMENTE O AQUIVO DE LOG

    RESTORE DATABASE DbLei

          FROM DISK = 'C:\Backup\DbLei.bak'

          WITH RECOVERY, STATS = 10, REPLACE,

          MOVE 'DbLei_Log'

                TO 'C:\Backup\DbLei.ldf'

    Neste caso o arquivo .mdf será restaurado no diretório padrão do SQL Server.

    OBS: O local especificado poderá ser qualquer outro local, utilizei o mesmo do backup apenas para fim de didática.

    Caso tenha lhe ajudado não se esqueça de marca como útil, só assim ajudará a melhorar a qualidade do fórum.

    Heberton Melo
    MCP | MCTS em SQL Server 2008 | Projetista de Dados


    Blog: http://heberton-melo.spaces.live.com

    • Sugerido como Resposta Heberton Melo sexta-feira, 6 de novembro de 2009 13:39
    sexta-feira, 6 de novembro de 2009 13:37