AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 135195
Accepted
JohnG
JohnG
Asked: 2016-04-14 09:26:14 +0800 CST2016-04-14 09:26:14 +0800 CST 2016-04-14 09:26:14 +0800 CST

produzir voluntariamente um erro com DBCC CheckDb

  • 772

Alguém saberia como posso fazer o DBCC CheckDB produzir um erro? Estou testando um script e preciso do DBCC Checkdb no modo mais simples para retornar um erro, também ao tentar reparar e ao tentar entrar no modo monousuário...

O comando dbcc checkdb simples que estou usando faz parte de um arquivo em lote e é o seguinte:

OSQL -S MYPC -E -d MyDB -l 10 -Q "DBCC CHECKDB(AG_DB_STORESQL)" -b -o c:\MyFolder\MSSQL_DB_CHECK.Log

Se nenhum erro for encontrado, o script será encerrado. Se forem encontrados erros, o script tenta corrigi-los com a opção REPAIR_REBUILD e, se isso falhar, o script tenta corrigi-los com a opção REPAIR_ALLOW_DATA_LOSS. Obviamente, antes de tentar reparar, o script tenta colocar o banco de dados no modo de usuário único (que também é uma armadilha de erro)

Então, tudo o que estou procurando é uma maneira de fazer com que o DBCC CheckDB retorne um erro.

dbcc-checkdb
  • 3 3 respostas
  • 1003 Views

3 respostas

  • Voted
  1. Best Answer
    Shanky
    2016-04-15T04:17:06+08:002016-04-15T04:17:06+08:00

    O script de demonstração de corrupção útil foi criado por Paul Randal . Estes são realmente bons e iriam ajudá-lo muito. Navegue pelos links abaixo

    • Bancos de dados e scripts de demonstração de corrupção

    • Usando a conexão DAC para corrigir tabelas de sistema corrompidas

    • Vários cenários de corrupção do banco de dados do SQL Server

    • 5
  2. Kin Shah
    2016-04-15T05:31:28+08:002016-04-15T05:31:28+08:00

    Alguém saberia como posso fazer o DBCC CheckDB produzir um erro?

    Use o ambiente letal dbcc writepage ({'dbname' | dbid}, fileid, pageid, offset, length, data [, directORbufferpool]) ON a TEST (NON-PROD) totalmente sandbox.

    Os propósitos de DBCC WRITEPAGE são:

    • Para permitir testes automatizados de DBCC CHECKDB e reparos pela equipe do SQL Server.
    • Para projetar corrupções para demonstrações e testes.
    • Para permitir a recuperação de desastres de última hora, editando manualmente um banco de dados ativo e corrompido.

    Além de "O Guru" Paul Randal , @SteveStedman tem uma boa série de Desafio de Corrupção de Banco de Dados (com solução - mas consulte mais tarde quando tentar resolvê-lo sozinho).

    • 5
  3. Ezequiel Tolnay
    2016-04-14T18:28:48+08:002016-04-14T18:28:48+08:00

    Você poderia criar uma produção armazenada para esta finalidade:

    CREATE PROCEDURE CheckDBRaiseError(@db varchar(255)) AS
    SET NOCOUNT ON
    IF OBJECT_ID('TEMPDB..#CheckDB') IS NOT NULL DROP TABLE #CheckDB
    CREATE TABLE #CheckDB
        ([Error] int, [Level] int, [State] int,  
         [MessageText] varchar(7000), [RepairLevel] int, [Status] int, 
         [DbId] int, [ObjectID] int, [IndexId] int, [PartitionId] int, 
         [AllocUnitId] int, [File] int, [Page] int, [Slot] int,  
         [RefFile] int, [RefPage] int, [RefSlot] int, [Allocation] int); 
    INSERT INTO #CheckDB
    EXEC ('DBCC CHECKDB('+@db+') WITH TABLERESULTS')
    DECLARE @Result varchar(4000)
    SELECT TOP 1 @Result = MessageText FROM #CheckDB WHERE MessageText LIKE 'CHECKDB%allocation errors%'
    IF @Result NOT LIKE '%0 allocation errors and 0 con%'
      RAISERROR('DBCC Error: %s', 20, 1, @Result) WITH LOG
    

    Em seguida, atualize sua linha de comando para

    OSQL -S MYPC -E -d MyDB -l 10 -Q "EXEC CheckDBRaiseError 'AG_DB_STORESQL'" -b -o c:\MyFolder\MSSQL_DB_CHECK.Log
    
    • 0

relate perguntas

  • Tempo limite no pacote SSIS executando DBCC CHECKDB

  • Erro de consistência DBCC CHECKDB

  • Noções básicas sobre DBCC CHECKDB, instantâneos e SQL Server Standard Edition

  • DBCC CHECKDB de longa duração

  • Dividindo DBCC CHECKDB em vários dias

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

    • 12 respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve