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 / 28502
Accepted
bumble_bee_tuna
bumble_bee_tuna
Asked: 2012-11-11 18:29:18 +0800 CST2012-11-11 18:29:18 +0800 CST 2012-11-11 18:29:18 +0800 CST

Restaurar msdb do SQL Server 2008 R2 para a instância do SQL Server 2012

  • 772

Estou mudando de uma instância do SQL Server 2008 R2 para uma instância do SQL Server 2012 em uma caixa separada. Desejo restaurar msdbpara obter todos os meus trabalhos de agente e similares e estou recebendo o seguinte erro:

A restauração do banco de dados 'msdb' falhou.
(Microsoft.SqlServer.Management.RelationalEngineTasks)
System.Data.SqlClient.SqlError: O backup do banco de dados do sistema no dispositivo \10.0.0.3\BackUps\NOFAULT2010_msdb_FULL_20121016_220006.bak não pode ser restaurado porque foi criado por uma versão diferente do servidor (10.50.1600) do que este servidor (11.00.2100).
(Microsoft.SqlServer.SmoExtended)

Eu entenderia isso se estivesse tentando ir de 2012 para 2008, mas isso é novo para mim.

De qualquer forma, para fazer isso funcionar? Ou, se não for a melhor maneira de transferir os trabalhos do agente, usuários, blazi blah?

Obrigado

sql-server sql-server-2008-r2
  • 2 2 respostas
  • 12825 Views

2 respostas

  • Voted
  1. Best Answer
    Mike Walsh
    2012-11-11T19:01:12+08:002012-11-11T19:01:12+08:00

    Se você estivesse tentando restaurar um banco de dados de usuário - isso restauraria bem. O problema é que este é um banco de dados do sistema. Os bancos de dados do sistema são projetados para a versão do SQL em que deveriam funcionar. Para que o SQL Server 2008 R2 MSDBfuncione no SQL Server 2012, você não precisaria ter nenhum recurso diferente entre as duas versões. Faz sentido?

    A resposta curta Para trazer seus trabalhos, você os criaria no servidor antigo e aplicaria o script no novo. Você pode fazer isso simplesmente clicando com o botão direito e criando o script de cada trabalho, se tiver alguns. Ou olhando para um script com PowerShell ou alguma outra abordagem se você tiver uma tonelada e não quiser um de cada vez.

    Para obter os logins, você usaria o Sp_help_revloginscript que mencionei abaixo e um script para copiar as funções e permissões de nível de servidor do antigo e copiá-los para o novo.

    Basicamente, para 90% do que você traria, tenho certeza de que a resposta é "script" e, em seguida, aplique esse script no novo servidor e os logins, os trabalhos etc. Mastere MSDBbancos de dados projetados para SQL Server 2012.

    A resposta um pouco mais longa e uma discussão rápida sobre abordagens para migração/atualização

    Então, se você está tentando transferir todos esses objetos para o SQL Server 2012, você tem duas opções básicas em sua abordagem.

    1. Faça uma atualização no local. Atualize sua instância do SQL Server 2008 R2 para o SQL Server 2012.

    Prós - você obtém todas essas 'coisas' (trabalhos de agente, servidores vinculados, logins, alertas, operadores, perfil de e-mail, etc.) e não precisa copiar objetos.

    Contras - pode ser um pouco confuso, funciona bem hoje em dia e é compatível, mas sou paranóico e gostaria de ter certeza de que tenho sucesso e uma opção de reversão rápida (se houver problemas no novo servidor, basta reverter para o servidor antigo durante uma migração. Com uma atualização no local, é muito mais, bem, final).

    Você pode começar aqui para uma atualização no local.

    1. Migrar para um novo servidor...

    Nesse caso, basta inverter os prós e os contras de cima. A abordagem não é tão difícil ou extenuante. Requer apenas um bom planejamento. Basicamente você:

    • Em seu servidor antigo, crie o script de todos os objetos que deseja mover de acordo com as instruções e abordagem para cada tipo de objeto que normalmente pode ser encontrado nos Manuais Online (objetos como Trabalhos, Servidores Vinculados, Alertas do SQL Agent, etc.). .

    • Use uma ferramenta como sp_help_revloginpara mover seus logins e um script como este para mover as permissões de login.

    • Faça backup e restaure seus bancos de dados que já contêm usuários e permissões no banco de dados (eu gosto de fazer isso em vez de anexar desanexar porque ajuda a preservar a capacidade de reversão, mas já vi e fiz isso de qualquer maneira). planejando oferecer suporte aos bancos de dados no modo 2012 e os testei dessa maneira. Ou mantenha-os no modo 2008, se esse for o seu plano.

    • Execute esses scripts para todos os objetos como trabalhos, logins, etc. no novo servidor que você criou acima do servidor antigo (bom fazer a maioria deles após os bancos de dados. padrão para não está lá ou uma etapa T-SQL no banco de dados de um trabalho não está lá, etc.)

    A outra coisa boa sobre essa abordagem é que você pode fazer uma execução de teste com antecedência durante o horário comercial. teste sua lista de verificação, seu plano de reversão etc. e faça a preparação para a noite de lançamento.

    • 13
  2. Randy Sheldon
    2015-11-18T11:25:05+08:002015-11-18T11:25:05+08:00

    Este é um post antigo, mas gostaria de propor uma solução diferente.

    1. Em seu sistema Sql2012, restaure um backup do banco de dados SQL2008 MSDB, mas dê a ele um nome diferente durante a restauração ('msdb_2008'). Além disso, certifique-se de não substituir os arquivos originais. O processo de restauração atualizará a versão do banco de dados para SQL2012.

    2. Desanexe o banco de dados MSDB_2008 de sua instância SQL2012 (mas lembre-se de onde estão os arquivos recuperados!)

    3. Interrompa o serviço do SQL Server (o SQL Agent será interrompido como resultado)

    4. Navegue até a área onde estão seus arquivos MSDB originais e mova-os para uma subpasta para mantê-los seguros.

    5. Copie os arquivos de banco de dados MSDB_2008 para o caminho onde estavam os arquivos MSDB originais, renomeando-os no processo para corresponder aos arquivos MSDB originais.

    6. Reinicie o SQL Server.

    • -3

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

    Como ver a lista de bancos de dados no Oracle?

    • 8 respostas
  • Marko Smith

    Quão grande deve ser o mysql innodb_buffer_pool_size?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    restaurar a tabela do arquivo .frm e .ibd?

    • 10 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

    Como selecionar a primeira linha de cada grupo?

    • 6 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
    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
    pedrosanta Listar os privilégios do banco de dados usando o psql 2011-08-04 11:01:21 +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
  • Martin Hope
    bernd_k Quando devo usar uma restrição exclusiva em vez de um índice exclusivo? 2011-01-05 02:32:27 +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