none
Attach de Bases de dados RRS feed

  • Pergunta

  • Boa tarde a todos,

    estou com a seguinte problema.

    Tenho uma copia da pasta "data" onde tenho certa de 4000 Bd's e necessito de repor o sistema.

    existe alguma forma de efectuar o attach destas BD's sem ser "uma a uma".

    Agradeço a vossa preciosa ajuda.

    Nuno

    terça-feira, 17 de março de 2020 14:17

Respostas

  • Nuno,

    Todos os bancos de dados possuem somente um arquivo de dados e log?

    Particularmente falando eu nunca fiz isso com esta quantidade, já utilizei algo similar com um número bem menor, algo próximo a 100 bases de dados. Em adicional, os arquivos de log eu não realizei o processo de attach, foi somente os arquivos .MDF. 

    Um passo inicial pode ser utilizar este link:

    https://www.mssqltips.com/sqlservertip/5011/script-to-attach-multiple-sql-server-mdf-files/

    O primeiro passo seria obter a lista de arquivos que você possui, armazenando a relação de nomes dentro de uma tabela, para isso poderíamos utilizar a Extended Procedure XP_CMDShell, fazendo uso do comando dir.

    Veja o exemplo abaixo:

    -- Habilitando o XP_CMDShell --
    Exec sp_configure 'xp_cmdshell',1
    Reconfigure With Override
    Go
    
    -- Criando Tabela para armazenar os arquivos --
    Create Table ListaDeArquivos
     (NumeroDoArquivo Int Primary Key Identity(1,1),
      NomedoArquivo Varchar(300) Null)
    Go
    
    -- Inserindo o resultado do XP_CMDShell na Tabela --
    Insert Into ListaDeArquivos
    EXEC master..xp_cmdshell 'dir *.mdf /on /w /b'
    Go
    
    -- Confirmando os dados dados --
    Select * From ListaDeArquivos
    Go

    Veja se estes passos iniciais te ajudam a ter uma ideia do caminho.

    Há um certo tempo utilizei este link para um outro cenário:

    https://social.msdn.microsoft.com/forums/sqlserver/en-US/00b886c7-e0b9-47a7-bd16-8fd1f063e4a5/attach-sql-db-via-powershell


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | MTAC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]


    Júnior, 

    Obrigado.

    Tenho ambos os ficheiros (LDF e MDF).

    vou verificar os links fornecido e tentar essa abordagem e ver o que consigo.

    • Marcado como Resposta Nuno Morgado segunda-feira, 22 de junho de 2020 09:31
    terça-feira, 17 de março de 2020 19:19

Todas as Respostas

  • Nuno,

    Todos os bancos de dados possuem somente um arquivo de dados e log?

    Particularmente falando eu nunca fiz isso com esta quantidade, já utilizei algo similar com um número bem menor, algo próximo a 100 bases de dados. Em adicional, os arquivos de log eu não realizei o processo de attach, foi somente os arquivos .MDF. 

    Um passo inicial pode ser utilizar este link:

    https://www.mssqltips.com/sqlservertip/5011/script-to-attach-multiple-sql-server-mdf-files/

    O primeiro passo seria obter a lista de arquivos que você possui, armazenando a relação de nomes dentro de uma tabela, para isso poderíamos utilizar a Extended Procedure XP_CMDShell, fazendo uso do comando dir.

    Veja o exemplo abaixo:

    -- Habilitando o XP_CMDShell --
    Exec sp_configure 'xp_cmdshell',1
    Reconfigure With Override
    Go
    
    -- Criando Tabela para armazenar os arquivos --
    Create Table ListaDeArquivos
     (NumeroDoArquivo Int Primary Key Identity(1,1),
      NomedoArquivo Varchar(300) Null)
    Go
    
    -- Inserindo o resultado do XP_CMDShell na Tabela --
    Insert Into ListaDeArquivos
    EXEC master..xp_cmdshell 'dir *.mdf /on /w /b'
    Go
    
    -- Confirmando os dados dados --
    Select * From ListaDeArquivos
    Go

    Veja se estes passos iniciais te ajudam a ter uma ideia do caminho.

    Há um certo tempo utilizei este link para um outro cenário:

    https://social.msdn.microsoft.com/forums/sqlserver/en-US/00b886c7-e0b9-47a7-bd16-8fd1f063e4a5/attach-sql-db-via-powershell


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | MTAC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]


    terça-feira, 17 de março de 2020 18:06
  • Nuno,

    Todos os bancos de dados possuem somente um arquivo de dados e log?

    Particularmente falando eu nunca fiz isso com esta quantidade, já utilizei algo similar com um número bem menor, algo próximo a 100 bases de dados. Em adicional, os arquivos de log eu não realizei o processo de attach, foi somente os arquivos .MDF. 

    Um passo inicial pode ser utilizar este link:

    https://www.mssqltips.com/sqlservertip/5011/script-to-attach-multiple-sql-server-mdf-files/

    O primeiro passo seria obter a lista de arquivos que você possui, armazenando a relação de nomes dentro de uma tabela, para isso poderíamos utilizar a Extended Procedure XP_CMDShell, fazendo uso do comando dir.

    Veja o exemplo abaixo:

    -- Habilitando o XP_CMDShell --
    Exec sp_configure 'xp_cmdshell',1
    Reconfigure With Override
    Go
    
    -- Criando Tabela para armazenar os arquivos --
    Create Table ListaDeArquivos
     (NumeroDoArquivo Int Primary Key Identity(1,1),
      NomedoArquivo Varchar(300) Null)
    Go
    
    -- Inserindo o resultado do XP_CMDShell na Tabela --
    Insert Into ListaDeArquivos
    EXEC master..xp_cmdshell 'dir *.mdf /on /w /b'
    Go
    
    -- Confirmando os dados dados --
    Select * From ListaDeArquivos
    Go

    Veja se estes passos iniciais te ajudam a ter uma ideia do caminho.

    Há um certo tempo utilizei este link para um outro cenário:

    https://social.msdn.microsoft.com/forums/sqlserver/en-US/00b886c7-e0b9-47a7-bd16-8fd1f063e4a5/attach-sql-db-via-powershell


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | MTAC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]


    Júnior, 

    Obrigado.

    Tenho ambos os ficheiros (LDF e MDF).

    vou verificar os links fornecido e tentar essa abordagem e ver o que consigo.

    • Marcado como Resposta Nuno Morgado segunda-feira, 22 de junho de 2020 09:31
    terça-feira, 17 de março de 2020 19:19