locked
Attach de arquivo mdf - SQL 2000 RRS feed

  • Pergunta

  • Sr(s),

    Estou precisando recuperar um banco de dados do SQL 2000 para poder migra-lo para uma nova versão, porém quando eu tento atachar o mdf o SQL acusa o seguinte erro:

    "Error 602: Could not find row in sysindexes for database ID 8, object ID 1, index ID 1. Run DBCC CHECKTABLE on sysindexes."

    Existe a possibilidade de subir este datafile direto em uma versão mais recente?


    W.Marrane
    terça-feira, 18 de janeiro de 2011 21:15

Respostas

  • Olá W. Marrane,

    conforme mensagem de erro abaixo seu DB se encontra em estado de corrupção (desculpe te dar a má notícia)

    SQL Server detected a logical consistency-based I/O error: incorrect pageid (expected 1:511232; actual 0:0). It occurred during a read of page (1:511232) in database ID 5 at offset 0x000000f9a00000 in file 'C:\Banco\MANAD.mdf'.

    Uma pagina de dados que deveria ter o ID 1:511232 está com 0:0 e portanto há uma corrupção em seu banco de dados. Até o momento não temos como saber o quão corrompida está sua base de dados.

    Algumas alternativas:

    1- Entre em contato com o Microsoft Support CTS e abra um chamado para que nos possamos tentar te ajudar a resolver este problema (não crie muitas expectativas pois a melhor forma de resolver um problema de corrupção com o DB seria um backup)
    Veja o link: http://www.microsoft.com/products/ee/transform.aspx?ProdName=Microsoft+SQL+Server&EvtSrc=MSSQLServer&EvtID=824
    ===========
    User Action
    Look for Hardware Failure
    Run hardware diagnostics and correct any problems. Also examine the Microsoft Windows system and application logs and the SQL Server error log to see whether the error occurred because of hardware failure. Fix any hardware-related problems that are contained in the logs.

    If you have persistent data corruption problems, try to swap out different hardware components to isolate the problem. Check to make sure that the system does not have write-caching enabled on the disk controller. If you suspect write-caching to be the problem, contact your hardware vendor.

    Finally, you might find it useful to switch to a new hardware system. This switch may include reformatting the disk drives and reinstalling the operating system.

    Restore from Backup
    If the problem is not hardware-related and a known clean backup is available, restore the database from the backup.

    Consider changing the databases to use the PAGE_VERIFY CHECKSUM option. For information about PAGE_VERIFY, see Understanding and Managing the suspect_pages Table.
    ===========

    - Este problema normalmente ocorre devido a problemas de Hardware

    2- Reproduza o problema novamente e nos mande o ErrorLog do SQL para que possamos tentar investigar um pouco mais.

    3- (Não recomendada ultima opção!!!) siga os procedimentos abaixo:
    3a. você pode criar um DB com o mesmo nome e tamanho do DB que se encontra com problemas
    3b. coloque este DB em modo offline
    3c. substitua o arquivo que você criou pelo arquivo com problemas (lembre-se os arquivos MDF e de Log devem possuir o mesmo tamanho)
    3d. coloque este DB em modo online novamente e veja se o SQL consegue iniciar o DB
    3e. Caso isto funcione execute um Backup imediatamente e execute:
    Use myDB
    dbcc
    checkdb
    você verá ao final da execução do DBCC o nível de corrupção da sua base. veja exemplo abaixo:
    CHECKDB found 100 allocation errors and 50 consistency errors in database 'myDB'.
    DBCC execution completed. If DBCC printed error messages, contact your system administrator.

    3f. conforme o nível de corrupção você pode executar um DBCC conforme abaixo:
    Use myDB
    alter database MyDB set SINGLE_USER
    GO
    dbcc
    checkdb ('MyDB',
    repair_allow_data_loss)

    De qualquer maneira eu não criaria muitas expectativas em relação a esta DB.

    Artigos Relacionados:
    How to troubleshoot Msg 824 in SQL Server - http://support.microsoft.com/kb/2015756

    Abraços,


    Fábio Oliveira Support Engieer | Microsoft Enterprise and Developer Support

    quarta-feira, 26 de janeiro de 2011 19:30

Todas as Respostas

  • Este arquivo MDF é da versão do SQL Server 2000 mesmo?

    Porque este erro pode ser sua base que está corrompida.Vc não tem o backup desta base de dados? Caso sim, tente fazer o restore do backup e veja se vai acusar o mesmo erro, acho improvável...

    Se possível, execute DBCC CHECKDB no banco de dados.

    • Sugerido como Resposta CarlosHB quinta-feira, 20 de janeiro de 2011 10:29
    quarta-feira, 19 de janeiro de 2011 10:21
  • Infelizmete não tem backup... recebi o arquivo e to tentando fazer com que volta a vida.

     

    Existe alguma outra coisa que podemos fazer? Eu nem consigo atachar o banco.


    W.Marrane
    quarta-feira, 19 de janeiro de 2011 16:12
  • Qual a versao do sql na qual esta tentando attachar o arquivo? e o arquivo é de qual versao do sql?
    quarta-feira, 19 de janeiro de 2011 16:46
    Moderador
  • W.Marrane,

    Mas você esta utilizando o SQL Server 2000?

    A possibilidade de atachar/desatachar bancos de dados não esta presente. Você já tem o arquivo de dados?

    Aparentemente existe alguma índice corrompido em sua base de dados. Tente utilizar o DBCC CheckDB.


    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]
    quinta-feira, 20 de janeiro de 2011 00:19
    Moderador
  • Marrane,

    O mais seguro seria instalar a versão original do banco de dados apenas para subir este datafile. MDF e depois fazer um backup;

    Abraço

    Angelo Cortesi

     

    quinta-feira, 20 de janeiro de 2011 13:45
  • Angelo,

    Concordo com a sua orientação, mas isso eu recomendo fazer em outra máquina, para evitar maiores problemas neste ambiente.


    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]
    quinta-feira, 20 de janeiro de 2011 23:54
    Moderador
  • Sr(s),

    Fui surpreendi após a minha analise que esta datafile é de versão 2005, porém eu nem sequer consigo atchar. Ao atachar o banco ja é apresentado um erro.

     

    TITLE: Microsoft SQL Server Management Studio
    ------------------------------

    Attach database failed for Server 'SIGAS04'.  (Microsoft.SqlServer.Smo)

    For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=9.00.1399.00&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=Attach+database+Server&LinkId=20476

    ------------------------------
    ADDITIONAL INFORMATION:

    An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)

    ------------------------------

    SQL Server detected a logical consistency-based I/O error: incorrect pageid (expected 1:511232; actual 0:0). It occurred during a read of page (1:511232) in database ID 5 at offset 0x000000f9a00000 in file 'C:\Banco\MANAD.mdf'.  Additional messages in the SQL Server error log or system event log may provide more detail. This is a severe error condition that threatens database integrity and must be corrected immediately. Complete a full database consistency check (DBCC CHECKDB). This error can be caused by many factors; for more information, see SQL Server Books Online.
    Could not open new database 'MANAD'. CREATE DATABASE is aborted. (Microsoft SQL Server, Error: 824)

    For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&EvtSrc=MSSQLServer&EvtID=824&LinkId=20476

    ------------------------------
    BUTTONS:

    OK
    ------------------------------

    Preciso recuperar esse banco e não faço ideia como proceder.


    W.Marrane
    segunda-feira, 24 de janeiro de 2011 13:46
  • Olá W. Marrane,

    conforme mensagem de erro abaixo seu DB se encontra em estado de corrupção (desculpe te dar a má notícia)

    SQL Server detected a logical consistency-based I/O error: incorrect pageid (expected 1:511232; actual 0:0). It occurred during a read of page (1:511232) in database ID 5 at offset 0x000000f9a00000 in file 'C:\Banco\MANAD.mdf'.

    Uma pagina de dados que deveria ter o ID 1:511232 está com 0:0 e portanto há uma corrupção em seu banco de dados. Até o momento não temos como saber o quão corrompida está sua base de dados.

    Algumas alternativas:

    1- Entre em contato com o Microsoft Support CTS e abra um chamado para que nos possamos tentar te ajudar a resolver este problema (não crie muitas expectativas pois a melhor forma de resolver um problema de corrupção com o DB seria um backup)
    Veja o link: http://www.microsoft.com/products/ee/transform.aspx?ProdName=Microsoft+SQL+Server&EvtSrc=MSSQLServer&EvtID=824
    ===========
    User Action
    Look for Hardware Failure
    Run hardware diagnostics and correct any problems. Also examine the Microsoft Windows system and application logs and the SQL Server error log to see whether the error occurred because of hardware failure. Fix any hardware-related problems that are contained in the logs.

    If you have persistent data corruption problems, try to swap out different hardware components to isolate the problem. Check to make sure that the system does not have write-caching enabled on the disk controller. If you suspect write-caching to be the problem, contact your hardware vendor.

    Finally, you might find it useful to switch to a new hardware system. This switch may include reformatting the disk drives and reinstalling the operating system.

    Restore from Backup
    If the problem is not hardware-related and a known clean backup is available, restore the database from the backup.

    Consider changing the databases to use the PAGE_VERIFY CHECKSUM option. For information about PAGE_VERIFY, see Understanding and Managing the suspect_pages Table.
    ===========

    - Este problema normalmente ocorre devido a problemas de Hardware

    2- Reproduza o problema novamente e nos mande o ErrorLog do SQL para que possamos tentar investigar um pouco mais.

    3- (Não recomendada ultima opção!!!) siga os procedimentos abaixo:
    3a. você pode criar um DB com o mesmo nome e tamanho do DB que se encontra com problemas
    3b. coloque este DB em modo offline
    3c. substitua o arquivo que você criou pelo arquivo com problemas (lembre-se os arquivos MDF e de Log devem possuir o mesmo tamanho)
    3d. coloque este DB em modo online novamente e veja se o SQL consegue iniciar o DB
    3e. Caso isto funcione execute um Backup imediatamente e execute:
    Use myDB
    dbcc
    checkdb
    você verá ao final da execução do DBCC o nível de corrupção da sua base. veja exemplo abaixo:
    CHECKDB found 100 allocation errors and 50 consistency errors in database 'myDB'.
    DBCC execution completed. If DBCC printed error messages, contact your system administrator.

    3f. conforme o nível de corrupção você pode executar um DBCC conforme abaixo:
    Use myDB
    alter database MyDB set SINGLE_USER
    GO
    dbcc
    checkdb ('MyDB',
    repair_allow_data_loss)

    De qualquer maneira eu não criaria muitas expectativas em relação a esta DB.

    Artigos Relacionados:
    How to troubleshoot Msg 824 in SQL Server - http://support.microsoft.com/kb/2015756

    Abraços,


    Fábio Oliveira Support Engieer | Microsoft Enterprise and Developer Support

    quarta-feira, 26 de janeiro de 2011 19:30
  • 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:59
    Moderador