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 / 73541
Accepted
Brad
Brad
Asked: 2014-08-09 11:45:57 +0800 CST2014-08-09 11:45:57 +0800 CST 2014-08-09 11:45:57 +0800 CST

Falha na restauração "WITH REPLACE" com os mesmos nomes de arquivos lógicos

  • 772

O uso de WITH REPLACE quando os nomes de arquivos lógicos correspondem (para evitar o uso de WITH MOVE) falha quando o backup é de uma versão diferente do SQL? Eu tenho um backup do SQL 2008, mas quando tentei restaurá-lo usando WITH REPLACE em uma pasta do SQL 2012, apesar dos nomes de arquivos lógicos correspondentes no backup do banco de dados e no banco de dados que estou substituindo, está falhando, dando-me o erro de 'pesquisa de diretório' .

sql-server backup
  • 2 2 respostas
  • 1292 Views

2 respostas

  • Voted
  1. Best Answer
    Brad
    2014-08-10T05:11:14+08:002014-08-10T05:11:14+08:00

    Esta é a resposta que encontrei para o motivo pelo qual a localização automática do arquivo não funciona no SQL 2012 para mim. Não acredito que tenha algo a ver com o backup ser do SQL 2008.

    No SQL Server 2012, durante a restauração de um backup completo sem cláusulas MOVE que indicam a localização física de destino de cada arquivo, sobre um banco de dados existente, o algoritmo de localização automática de arquivos requer: não apenas uma correspondência de nome lógico entre o arquivo declarado no backupset e qualquer arquivo fornecido no banco de dados existente, mas também o GUID do arquivo, a ID do arquivo e o LSN de criação devem corresponder. Se algum desses atributos não corresponder, o local físico usado para esse arquivo lógico é aquele armazenado no conjunto de backup. Este requisito adicional foi implementado para corrigir este último cenário que acabei de expor que foi considerado um defeito.

    Isso foi retirado deste artigo do MSDN: http://blogs.msdn.com/b/ialonso/archive/2012/06/08/sql-server-changes-behavior-in-cases-where-file-autolocation-is- invocado-durante-a-fase-de-planejamento-de-uma-restauração-completa-com-replace-clause.aspx

    • 4
  2. Aaron Bertrand
    2014-08-09T13:49:43+08:002014-08-09T13:49:43+08:00

    WITH REPLACErefere-se ao banco de dados , não a seus arquivos (embora o efeito líquido seja o mesmo, eu acho).

    Se você tiver nomes de arquivo que correspondam a um banco de dados existente e tentar restaurá-lo como um banco de dados diferente, será necessário usar WITH MOVEpara impedir que o SQL Server tente substituir os arquivos existentes (o que não poderá fazer).

    O que está acontecendo no seu caso, quase certamente, é que seu backup de banco de dados de 2008 tem seus arquivos de dados em um caminho como:

    C:\...\MSSQL.100\...\Data\
    

    Mas na máquina SQL Server 2012, essa pasta não existe; vai ser:

    C:\...\MSSQL.110\...\Data\
    

    (As diferenças podem ser ainda mais pronunciadas se for uma instância nomeada.)

    Então você tem duas opções neste momento:

    1. Determine a(s) pasta(s) que o backup espera, usando RESTORE FILELISTONLY, e crie essas pastas, certificando-se de que a conta de serviço do SQL Server tenha permissões de leitura/gravação/modificação.
    2. Use WITH MOVEe coloque os arquivos em um local válido.

    Uma terceira opção extremamente boba que menciono apenas para completar é que você pode voltar ao servidor de 2008, mover o banco de dados para uma pasta que corresponda a uma pasta existente no novo servidor, fazer um novo backup e restaurar. Não faça isso. Apenas pare de tentar evitar digitar WITH MOVE...

    • 1

relate perguntas

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

  • Backups de banco de dados no Oracle - Exportar o banco de dados ou usar outras ferramentas?

  • 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