locked
Migrar BD Sql 200 para Sql 2005 RRS feed

  • Pergunta

  • Olá pessoal!

    Estou tentando migrar meu banco  sql 200 para o sql 2005, mas tá dando o erro 3415 " "O banco de dados 'BD' não pode ser atualizado porque é somente leitura ou tem arquivos somente leitura".

    Agradeço resposta obrigado a todos.

    • Movido Richard Juhasz terça-feira, 20 de setembro de 2011 18:18 thread movida (De:SQL Server 2005)
    sábado, 17 de setembro de 2011 18:49

Respostas

  • Olá Pessoal! Deu certo aqui, tremenda coisa besta, mas como sou iniciante vou apanhando devagarzinho. Olha só o que fiz:

    Quando acesso o Management Studio Express, ele pede o seguinte:

     

    Server Name: SERVIDOR\SQLEXPRESS

    Authentication: SQL Server Authentication

    Login: SA

    Password: ********

     

    Eu entro dessa forma, e quando vou no database não aparece meus bancos de dados,é quando eu tento migrar do 2000 através do atach ou restore não consigo, fica nequele erro constante.

    O que eu fiz foi simples, apenas mudei o servidor:

    Server Name: SERVIDOR\SQLEXPRESS

    para

    Server Name: SERVIDOR

     

    tirei o \SQLEXPRESS e quando acessei meu database estava lá todos os meus bancos.

    Ai eu pergunto a vocês, está correto? posso acessar dessa forma. Percebei logo de cara que o formato da data é diferente do sql 2000, no qual eu usava o comando Format(DATA, "mm/dd/yyyy") para inserir um registro de data. No sql 2005 você não precisa desse comando pode mandar direto da caixa de texto que fica correto. Gostaria de uma opinião de vocês a respeito, e se tem algo mais que seja diferente do sql 2000? agradeço ajuda de todos.

    Abraços.

     

    segunda-feira, 10 de outubro de 2011 19:28

Todas as Respostas

  • Olá VpVJunior.

    Estou movendo sua thread para o fórum de SQL Server - Infra geral.

     

    Abraço.


    Richard Juhasz - Microsoft LATAM Forum Support Engineer
    http://www.forumguys.com.br
    terça-feira, 20 de setembro de 2011 18:18
  • VPV

    Como vc esta fazendo a migração?

    backup / restore, attach, inplace ?


    Att.
    Marcelo Fernandes

    MCP, MCDBA, MCSA, MCTS.
    Se útil, classifique!!!
    Me siga no twitter: @marcelodba

    terça-feira, 20 de setembro de 2011 21:32
    Moderador
  • VPV,

    O SQL Server 2005 possui suporte nativo ao SQL Server 2000 o que permite a migração direta dos seus bancos de dados, o que garante que um simples backup/restore possa ser utilizado.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
    quarta-feira, 21 de setembro de 2011 20:05
    Moderador
  • Apenas instalei o sql server 2005 express edition, desanexei o BD do sql 2000 e depois executei um atach e também um restore mas não deu certo. Tem algo errado nisso? agradeço a todos ajuda.
    quinta-feira, 22 de setembro de 2011 23:36
  • Seguinte: no windows explorer, botão direito do mouse, cheque para os arquivos mdf e ldf está marcada a propriedade somente leitura (read only). Provavelmente é isso. Desmarque este atributo de cada arquivo e tente anexar.


    SQL SERVER sempre
    sexta-feira, 23 de setembro de 2011 17:27
  • VpVJunior, concordo como Adeilson, tive esse mesmo problema uma vez.
    DBA SQL SERVER - MCTS SQL SERVER 2008 Twitter : afalanque
    sexta-feira, 23 de setembro de 2011 18:49
  • Adeilson! já tinha feito isso tb, mas continua no mesmo erro. Eu até já rodei o mesmo scrip que rodo no sql 200o para criar o banco e as procedures no sql 2005 e deu certo, pois achava que fosse alguma imcompatibilidade de estrutura. Tem algo mais que eu possa fazer? Obrigado.
    sexta-feira, 23 de setembro de 2011 20:44
  • VPV

    Assegure que o usuario que esta rodando o serviço tem direito de leitura e escrita no arquivo.

    veririfique se no SQL 2000 se os bancos estao em READ_WRITE antes de fazer o dettach


    Att.
    Marcelo Fernandes

    MCP, MCDBA, MCSA, MCTS.
    Se útil, classifique!!!
    Me siga no twitter: @marcelodba

    segunda-feira, 26 de setembro de 2011 11:33
    Moderador
  • VPV

    Após verificar se o usuário do serviço do SQL Server tem permissão sobre os arquivos conforme dica do Marcelo, consulte nas propriedades do database se a opção "Database Read-Only" não ficou ativa.

    Um abraço.

    Cesar Blumm

    http://sqlbrasil.blogspot.com

     


    Cesar Blumm http://sqlbrasil.blogspot.com http://sharepointtche.wordpress.com
    segunda-feira, 26 de setembro de 2011 20:35
  • Bom dia Marcelo!

     

    O usuário que estou acessando é o "Administrador" no windows e o "SA" no sql

    terça-feira, 27 de setembro de 2011 14:46
  • Bom dia Cesar!

    O database Read-Onley está desmarcado.

    Algo mais pessoal?

    Agradeço, pois tenho que migrar para o 2005 o masi breve possível.

    terça-feira, 27 de setembro de 2011 14:48
  • Boa Tarde Junior!

    Tenta executar o seguinte comando:

    USE master

    GO

    ALTER DATABASE [NomeBancoDeDados] SET  READ_WRITE WITH NO_WAIT

    GO

    ALTER DATABASE <NomeBancoDeDados> SET  SINGLE_USER

    WITH ROLLBACK IMMEDIATE

    GO

    USE master

    GO

    EXEC master.dbo.sp_detach_db @dbname = N'<NomeBancoDeDados>', @skipchecks = 'false'

    GO

    Se for executado com sucesso o Banco de Dados será desatachado da Instância.
    Depois você tenta "atachar" o Banco no 2005, com o comando:
    USE [master]
    GO
    CREATE DATABASE [NomeDoBancoDeDados] ON 
    ( FILENAME = N'<CaminhoArquivo MDF>' ),
    ( FILENAME = N'<CaminhoArquivo LDF>' )
     FOR ATTACH
    GO
    Abraço!

    terça-feira, 27 de setembro de 2011 20:50
  • Olá Pedro!

    NO 2000 FIZ DESSA FORMA COMO VOCÊ MANDOU:

    USE master
    GO
    ALTER DATABASE [MA] SET  READ_WRITE WITH NO_WAIT
    GO
    ALTER DATABASE MA SET  SINGLE_USER
    WITH ROLLBACK IMMEDIATE
    GO
    USE master
    GO
    EXEC master.dbo.sp_detach_db @dbname = N'MA', @skipchecks = 'false'

    EXECUTEI NO 2005

    USE [master]
    GO
    CREATE DATABASE [MA] ON
    ( FILENAME = N'C:\SICOP\MA\MA_PRI.MDF' ),
    ( FILENAME = N'C:\SICOP\MA\MA_LOG.LDF' )
     FOR ATTACH

    DEU O MESMO ERRO:

    Msg 3415, Level 16, State 1, Line 1
    O banco de dados 'MA' não pode ser atualizado porque é somente leitura ou tem arquivos somente leitura. Permita a gravação do banco de dados ou dos arquivos e execute a recuperação novamente.

     

    quinta-feira, 29 de setembro de 2011 14:19
  • Júnior!

    Você tem apenas um arquivo de dados (.MDF)?

    Não existe nenhum outro arquivo .NDF?

    quinta-feira, 29 de setembro de 2011 18:19
  • Pedro!

    Tenho apenas esses dois arquivos na pasta:

    C:\SICOP\MA\MA_PRI.MDF
    C:\SICOP\MA\MA_LOG.LDF

    sexta-feira, 30 de setembro de 2011 14:19
  • Olá pessoal!!

     

    Alguém tem mais alguma sugestão? obrigado.

    sexta-feira, 7 de outubro de 2011 14:08
  • Júnior!

    Por favor, poste o resultado dessa consulta:

    select file_id, type_desc, name, state_desc, is_read_only from sys.database_files

     

    Valeu

    sexta-feira, 7 de outubro de 2011 14:20
  • Júnior me desculpe!

    No SQL 2000 o comando é diferente, segue:

    SELECT * FROM master.dbo.sysdatabases

    GO

     

    Envie o resultado para o Banco de dados que você quer migrar!

     


     

    sexta-feira, 7 de outubro de 2011 15:19
  • Cara aconteceu isso comigo como fiz:

    Criei uma nova pasta dentro do diretorio onde queria que a base ficasse e realizei o restore ou attach dentro dessa nova pasta.

    segunda-feira, 10 de outubro de 2011 16:43
  • Olá Pessoal! Deu certo aqui, tremenda coisa besta, mas como sou iniciante vou apanhando devagarzinho. Olha só o que fiz:

    Quando acesso o Management Studio Express, ele pede o seguinte:

     

    Server Name: SERVIDOR\SQLEXPRESS

    Authentication: SQL Server Authentication

    Login: SA

    Password: ********

     

    Eu entro dessa forma, e quando vou no database não aparece meus bancos de dados,é quando eu tento migrar do 2000 através do atach ou restore não consigo, fica nequele erro constante.

    O que eu fiz foi simples, apenas mudei o servidor:

    Server Name: SERVIDOR\SQLEXPRESS

    para

    Server Name: SERVIDOR

     

    tirei o \SQLEXPRESS e quando acessei meu database estava lá todos os meus bancos.

    Ai eu pergunto a vocês, está correto? posso acessar dessa forma. Percebei logo de cara que o formato da data é diferente do sql 2000, no qual eu usava o comando Format(DATA, "mm/dd/yyyy") para inserir um registro de data. No sql 2005 você não precisa desse comando pode mandar direto da caixa de texto que fica correto. Gostaria de uma opinião de vocês a respeito, e se tem algo mais que seja diferente do sql 2000? agradeço ajuda de todos.

    Abraços.

     

    segunda-feira, 10 de outubro de 2011 19:28
  • Este post foi encerrado por ser considerado um post antigo.

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

    terça-feira, 5 de junho de 2018 17:41
    Moderador