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 / 291063
Accepted
Java
Java
Asked: 2021-05-06 12:37:11 +0800 CST2021-05-06 12:37:11 +0800 CST 2021-05-06 12:37:11 +0800 CST

Estratégia para relatórios de espera com diferentes versões de banco de dados

  • 772

Estou tentando encontrar uma solução para restaurar o banco de dados com um arquivo de backup completo e, em seguida, com logs de transações de hora em hora que serão criados a cada hora através do site FTP.

Então, aqui está um cenário.

Eu me conecto ao site FTP do provedor de dados e obtenho um arquivo de backup completo primeiro e restauro o banco de dados com 24 logs de transações diariamente. Então, farei uma corrida noturna (por volta das 12h) para atualizar todos os logs de transações dos dados do dia anterior.

Aprendi que existe uma opção chamada Standby, então tentei fazer backup completo com espera, mas parece que não posso fazer isso porque o banco de dados precisa ser atualizado. Recebi este erro quando tentei Restaurar backup completo com o modo "Standby":

insira a descrição da imagem aqui

Este backup não pode ser restaurado usando WITH STANDBY porque é necessária uma atualização do banco de dados. Reeditar o RESTORE sem WITH STANDBY confirma isso. Agora, como a opção standby não é uma opção, qual deve ser a maneira de ler os dados do banco de dados se estivermos tentando continuar fazendo a restauração do log de transações todos os dias (com 24 arquivos)?

Estou voltando à maneira de restaurar o banco de dados usando NORECOVERYo backup completo e, em seguida, todos os outros arquivos de log de transações (porque com RECOVERYo modo, não posso restaurar os adicionais posteriormente).

Mas, preciso acessar o banco de dados para ler dados regularmente e consultar os dados. Não tenho certeza se existe uma maneira de ler os dados (durante o horário de trabalho) quando tentamos atualizar o banco de dados com logs de transações. Não é como se pudéssemos mudar do RECOVERYmodo durante o horário de trabalho para o NORECOVERYmodo durante o lote noturno, correto? Tenho que configurar como dois bancos de dados separados (um para restauração e outro para de alguma forma pegar dados de outro banco de dados). Não tenho certeza de que isso seja possível.

O que devo fazer?

Basicamente, precisamos obter os dados atualizados de outra empresa através de FTP. Depois de obter os dados, o desenvolvedor precisa usá-los para criar relatórios.

sql-server restore
  • 2 2 respostas
  • 99 Views

2 respostas

  • Voted
  1. Best Answer
    user229088
    2021-05-07T01:31:03+08:002021-05-07T01:31:03+08:00

    As opções mais fáceis são atualizar a instância de origem para a mesma versão do destino (ou garantir que as versões do mecanismo de banco de dados sejam compatíveis) ou executar uma restauração de um backup completo todos os dias para atualizar.

    Por exemplo, digamos que a origem seja o SQL Server 2008 e o destino seja o SQL Server 2012. A atualização da instalação de origem do SQL Server 2008 para o SQL Server 2012 ajudaria a garantir uma correspondência de versão do banco de dados para que STANDBYpudesse ser usada.

    A aplicação de alterações a uma versão inferior do SQL Server exigirá um pouco de esforço de desenvolvimento.

    • 3
  2. Ronaldo
    2021-05-09T04:39:02+08:002021-05-09T04:39:02+08:00

    O artigo de Jonathan Kehayias Database Version vs Database Compatibility Level traz algumas informações interessantes relacionadas a essa mensagem de erro:

    Quando um banco de dados é aberto pela primeira vez em uma versão mais recente do SQL Server, o banco de dados é atualizado automaticamente pelo mecanismo de banco de dados. Se você fizer um backup de um banco de dados SQL Server 2000 chamado ExampleDB e restaurá-lo em um servidor SQL Server 2008, o seguinte será gerado durante o processo de restauração:

    Processed 1412 pages for database 'ExampleDB', file 'ExampleDB' on file 1.
    Processed 2 pages for database 'ExampleDB', file 'ExampleDB_log' on file 1.
    Converting database 'ExampleDB' from version 539 to the current version 655.
    Database 'ExampleDB' running the upgrade step from version 539 to version 551.
    Database 'ExampleDB' running the upgrade step from version 551 to version 552.
    Database 'ExampleDB' running the upgrade step from version 552 to version 611.
    Database 'ExampleDB' running the upgrade step from version 611 to version 621.
    Database 'ExampleDB' running the upgrade step from version 621 to version 622.
    Database 'ExampleDB' running the upgrade step from version 622 to version 625.
    Database 'ExampleDB' running the upgrade step from version 625 to version 626.
    Database 'ExampleDB' running the upgrade step from version 626 to version 627.
    Database 'ExampleDB' running the upgrade step from version 627 to version 628.
    Database 'ExampleDB' running the upgrade step from version 628 to version 629.
    Database 'ExampleDB' running the upgrade step from version 629 to version 630.
    Database 'ExampleDB' running the upgrade step from version 630 to version 631.
    Database 'ExampleDB' running the upgrade step from version 631 to version 632.
    Database 'ExampleDB' running the upgrade step from version 632 to version 633.
    Database 'ExampleDB' running the upgrade step from version 633 to version 634.
    Database 'ExampleDB' running the upgrade step from version 634 to version 635.
    Database 'ExampleDB' running the upgrade step from version 635 to version 636.
    Database 'ExampleDB' running the upgrade step from version 636 to version 637.
    Database 'ExampleDB' running the upgrade step from version 637 to version 638.
    Database 'ExampleDB' running the upgrade step from version 638 to version 639.
    Database 'ExampleDB' running the upgrade step from version 639 to version 640.
    Database 'ExampleDB' running the upgrade step from version 640 to version 641.
    Database 'ExampleDB' running the upgrade step from version 641 to version 642.
    Database 'ExampleDB' running the upgrade step from version 642 to version 643.
    Database 'ExampleDB' running the upgrade step from version 643 to version 644.
    Database 'ExampleDB' running the upgrade step from version 644 to version 645.
    Database 'ExampleDB' running the upgrade step from version 645 to version 646.
    Database 'ExampleDB' running the upgrade step from version 646 to version 647.
    Database 'ExampleDB' running the upgrade step from version 647 to version 648.
    Database 'ExampleDB' running the upgrade step from version 648 to version 649.
    Database 'ExampleDB' running the upgrade step from version 649 to version 650.
    Database 'ExampleDB' running the upgrade step from version 650 to version 651.
    Database 'ExampleDB' running the upgrade step from version 651 to version 652.
    Database 'ExampleDB' running the upgrade step from version 652 to version 653.
    Database 'ExampleDB' running the upgrade step from version 653 to version 654.
    Database 'ExampleDB' running the upgrade step from version 654 to version 655.
    RESTORE DATABASE successfully processed 1412 pages in 14.468 seconds (7.852 MB/sec).
    

    As versões de banco de dados interno para SQL não estão documentadas nos Manuais Online. No entanto, graças a Paul Randal (@PaulRandal) e seu artigo de perguntas e respostas no TechNet , temos a seguinte lista:

    Os bancos de dados SQL Server 7.0 têm o número de versão 515 Os bancos de
    dados SQL Server 2000 têm o número de versão 539 Os
    bancos de dados SQL Server 2005 têm o número de versão 611/612 Os bancos de
    dados SQL Server 2008 têm o número de versão 655

    Parece que quando você pretende usar a WITH STANDBYopção que o processo de atualização não deve ser necessário, ou a restauração falhará como você experimentou.

    Eu nunca notei esse processo de atualização até que Paul White compartilhou o link em outro post onde eu erroneamente relacionei essa atualização com o nível de compatibilidade. Achei que valeria a pena compartilhar aqui também.

    • 2

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