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 / 242317
Accepted
igelr
igelr
Asked: 2019-07-09 00:02:43 +0800 CST2019-07-09 00:02:43 +0800 CST 2019-07-09 00:02:43 +0800 CST

Transações no modo de emergência do SQL Server

  • 772

Eu sei que enquanto o banco de dados está marcado como usuários suspeitos não pode iniciar novas transações, e o único acesso é via modo de emergência que dá acesso somente leitura. Eu quero saber como as transações são tratadas neste caso

  • primeiro quando um banco de dados é marcado como suspeito
  • em segundo lugar quando usamos o modo de emergência

Eles são revertidos normalmente?

Obrigado.

sql-server transaction
  • 2 2 respostas
  • 113 Views

2 respostas

  • Voted
  1. Best Answer
    Shanky
    2019-07-09T01:09:25+08:002019-07-09T01:09:25+08:00

    primeiro quando um banco de dados é marcado como suspeito

    Pode haver outros motivos, mas o mais comum é quando você tem algum problema com o arquivo de dados ou arquivo de log do banco de dados e ele passa pela recuperação de falhas após o SQL Server ser reiniciado, pois o SQL Server não poderá recuperar o banco de dados devido a corrupção , informações incorretas ou ausentes em um dos arquivos (dados ou log) que ele possui para marcar o banco de dados como suspeito. Aprenda como tornar o banco de dados suspeito (apenas para fins de teste. Escusado será dizer que, por favor, não tente isso no Prod e até mesmo no UAT).

    em segundo lugar, quando usamos o modo de emergência.

    Em qualquer caso, você deseja obter acesso ao conteúdo do banco de dados, mas não pode porque foi marcado como suspeito. Você pode então colocar o banco de dados no modo de emergência, que é um "banco de dados inconsistente" fornecido a você sem fazer uma recuperação completa de falhas. Observe que nem sempre você pode ser bem-sucedido.

    Eles são revertidos normalmente?

    Quando você usa o modo de emergência, você perde toda a possibilidade de colocar o banco de dados online, então você o força a "meio que ficar online com dados inconsistentes" usando o modo de emergência. Quando você faz isso, nenhuma recuperação acontece e você recebe apenas acesso de leitura ao banco de dados inconsistente. Depois disso, quando você executa o checkdb com repair_allow_data_loss, todos os tipos de ações são tomadas para colocar o banco de dados online em estado consistente; isso repair_allow_data_lossremoverá qualquer coisa que possa bloquear o banco de dados para ficar online.

    Colocar o banco de dados em emergência e depois recuperá-lo não deve ser tratado como um método para resolver problemas de banco de dados suspeitos. A restauração de um bom backup deve ser a maneira preferida.

    Também sugiro que você leia o blog de Paul Randal

    • 2
  2. Ahmad Abuhasna
    2019-07-09T01:14:59+08:002019-07-09T01:14:59+08:00

    Inicialmente gostaria de definir o que significa transação: Uma transação é uma unidade de trabalho que é executada em um banco de dados. Transações são unidades ou sequências de trabalho realizadas em uma ordem lógica, seja de forma manual por um usuário ou automaticamente por algum tipo de programa de banco de dados.

    quando uma transação é enviada para o servidor de banco de dados, ele reserva alguma memória, localiza a localização do banco de dados, tenta acessá-lo e começa a procurar a localização dos dados dentro do banco de dados.

    O banco de dados do SQL Server vai para o modo suspeito devido a muitos motivos abaixo são os mais comuns, se algum problema importante acontecer com o banco de dados, ele se tornará totalmente \ parcialmente inacessível e o SQL Server não poderá iniciar a transação nele.

    • Falha de hardware
    • Desligamento incorreto do servidor de banco de dados
    • Corrupção dos arquivos de banco de dados
    • Arquivos de dispositivo indisponíveis: se o arquivo que
    • Arquivos de banco de dados indisponíveis
    • Recurso de banco de dados usado pelo sistema operacional

    O modo de emergência do SQL Server (modo de reparo para corrigir "banco de dados inconsistente") é usado para recuperar o banco de dados de qualquer falha se o banco de dados estiver acessível, já que o banco de dados está no modo de reparo, você pode executar, editar em algumas tabelas do sistema e ler do normal tabelas para garantir que o banco de dados não tenha nenhum problema após o reparo.

    • 0

relate perguntas

  • SQL Server - Como as páginas de dados são armazenadas ao usar um índice clusterizado

  • Preciso de índices separados para cada tipo de consulta ou um índice de várias colunas funcionará?

  • Quando devo usar uma restrição exclusiva em vez de um índice exclusivo?

  • Quais são as principais causas de deadlocks e podem ser evitadas?

  • Como determinar se um Índice é necessário ou necessário

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