Atualizei recentemente o banco de dados do SQL Server 2000 para 2008 R2.
O que eu fiz foi:
- Desligar o serviço SQL Server 2000 (expresso) na máquina antiga,
- Mova os arquivos de dados ( mydatabase.mdf e mydatabase.ldf ) para a nova máquina,
- Execute o SQL Server Management Studio 2008,
- Conecte-se ao mecanismo de banco de dados local,
- Anexe arquivos de dados ao banco de dados.
- Altere o nível de compatibilidade do banco de dados para SQL 2008 (100).
Pergunta: O que mais devo fazer para concluir a migração?
Eu quero:
- use novos recursos, como soma de verificação e modelo de recuperação completa,
- tornar esse banco de dados exatamente como foi criado no SQL 2008 R2,
- torne esse banco de dados totalmente compatível, correto e perfeito para o novo mecanismo de banco de dados SQL 2008 R2.
Em outras palavras: eu só quero saber como converter correta e completamente o banco de dados SQL 2000 antigo para o novo banco de dados 2008 R2, tenha a calma de que tudo está bem e fique feliz com todos os novos recursos.
Estou fazendo essa pergunta, porque encontrei muitos sites na Internet que dizem tantas coisas diferentes que me deixam confuso: alguns dizem que é necessário reconstruir índices, outro diz para fazer outras coisas ... e agora não sei nada, por isso quero ouvir a opinião de pessoas experientes e instruções claras e passo a passo. Eu trabalho para uma empresa muito pequena, estou sozinha e não quero estragar tudo.
Senhor, estou realmente impressionado com a sua resposta, não esperava tanto.
Então, alguns comentários:
O banco de dados está agora em produção. Como eu disse, ele foi atualizado usando o método deattach-attach, como descrevi na primeira postagem e conforme descrito no MSDN: http://msdn.microsoft.com/en-us/library/ms189625.aspx Ele precisava ser feito rapidamente, então fui forçado a fazer dessa maneira. Vamos esquecer o quão inapropriado poderia ser e focar na situação atual.
Os usuários / persmissão não são um problema aqui - são poucos e as permissões são simples.
O aplicativo que usa banco de dados é compatível com o SQL 2000 até 2012, portanto também não é um problema.
O arquivo de banco de dados (MDF) não é grande - apenas cerca de 1 GB.
Mais algumas perguntas:
Você recomenda o uso do método de backup / restauração, mas fiz como descrito acima; posso encontrar problemas agora? Tudo funcionou sem nenhum problema.
Sobre o modelo de soma de verificação e recuperação completa: ele não estava disponível / ativado no SQL 2000, então eu quero usá-los agora. Você disse que a única coisa que preciso fazer é ativar essas opções nas propriedades do banco de dados? Eu li em algum lugar, que não é suficiente e também devo reconstruir índices ou algo assim. Eu realmente não sei, só estou perguntando.
Estou preparando para migrar esse banco de dados para o SQL 2012 - então, primeiro, foi do SQL 2000 para 2008 R2, agora será do 2008 R2 para 2012 (era impossível fazer isso diretamente devido à falta de suporte dos bancos de dados SQL 2000 no SQL 2012). Então eu entendo que devo seguir seu guia: faça backup em 2008 R2 e restaure em 2012, e faça o resto de suas dicas, certo?
Por favor, explique-me o método de backup / restauração: É como um despejo de banco de dados para consultas SQL e, em seguida, restaurando-o executando várias consultas? Esse método, a propósito, "desfragmentará" meu banco de dados? Caso contrário, como desfragmentar / otimizar manualmente?
Como estávamos usando o SQL 2000 Express por anos (sem interface de gerenciamento), estávamos fazendo backups simplesmente parando o mecanismo e RAR o diretório DATA. Por enquanto, como estamos no SQL 2008, isso ainda não é melhor do que usar a função de backup no Management Studio?
Modo de recuperação completa com backups freqüentes do log de transações - onde está armazenado o log de transações - é o arquivo LDF? Como devo fazer o backup corretamente?
Sei que minhas perguntas podem parecer bobagens, não sou administrador profissional de banco de dados, mas sou a única pessoa aqui que pode executar essa tarefa "hard core" como atualizar o mecanismo de banco de dados. Também tenho certeza de que seu conhecimento ajudará muito outras pessoas como eu.
Muito obrigado pelo seu tempo e conhecimento, eu realmente aprecio isso.
fonte
Respostas:
A etapa principal a ser executada é executar o Supervisor de Atualização no banco de dados SQL Server 2000 e solucionar todos os problemas relatados por ele.
Como prática recomendada, use a ferramenta Upgrade Advisor no banco de dados herdado do SQL Server 2000 e importe um arquivo de rastreamento para a ferramenta Upgrade Advisor para análise. O arquivo de rastreamento permite que o Supervisor de Atualização detecte problemas que podem não aparecer em uma simples varredura do banco de dados, como o TSQL incorporado nos aplicativos. Você pode capturar traços de TSQL usando o SQL Profiler no servidor SQL Server 2000 durante o horário normal e analisá-los usando o Supervisor de Atualização.
Portanto, o restante das etapas seria:
No dia da migração:
DBCC CHECKDB ('<db_name_goes_here>' ) WITH ALL_ERRORMSGS,NO_INFOMSGS, DATA_PURITY
DBCC UPDATEUSAGE('database_name') WITH COUNT_ROWS
Update Statistics table_name with FULLSCAN
sp_recompile 'procedureName'
SP_REFRESHVIEW view_name
No SQL Server 2005 e versões posteriores , o Database Mail foi introduzido. Então você precisa migrar do SQLMail para o Database Mail.
Além disso, se você tiver alguma replicação, precisará redefini-la. Se algum DR, como loggingping ou Mirroring (novo em 2005 e posteriores, mas depreciado em 2012), você também precisará redefini-lo.
Os pacotes antigos do DTS precisam ser migrados para o SSIS usando
C:\Program Files\Microsoft SQL Server\100\DTS\Binn\DTSMigrationWizard.exe
(linha de comando) ou usando o Assistente de Migração de Pacotes .Além disso, você pode usar meu script encontrado em /dba//a/36701/8783 . No entanto, ele usa o método desanexar / anexar, eu recomendo que você use o método BACKUP / RESTORE . Mude o script de acordo.
Como uma nota rodapé:
Vamos resolver suas perguntas ...
Consulte a minha resposta. Isso ajudará você a elaborar adequadamente um plano de migração. Sempre teste seu plano de migração em um UAT (não produção) junto com o teste de aplicativo adequado por usuários corporativos.
CHECKSUM
é novo no SQL Server 2005 e superior. Eu o cobri como parte das etapas de migração descritas acima.full recovery model
não é novo. Depende do seu tipo de negócio e determina a quantidade de dados que você pode perder em caso de desastre.O modo de recuperação completa com backups freqüentes do log de transações permitirá restaurar o ponto no tempo e o local, reduzindo a quantidade de perda de dados.
Não entendo isso completamente! Mas as etapas de migração acima ajudarão você. Você só precisa restaurar o banco de dados e alterar o nível de compatibilidade 10,
100
juntamente com as etapas acima.Você deve ter cuidado com isso, pois isso também exigirá alterações no código do aplicativo. Se o código do seu aplicativo for alterado para usar os novos recursos do SQL Server 2008 R2, você não encontrará nenhum problema - FORNECIDO que você fez um teste de regressão completo do seu aplicativo em um ambiente UAT ou DEV. Isso lhe dará mais confiança quando você faz a migração real no PROD.
Nota: Acima estão as etapas que eu lembro e tenho certeza de que nada foi deixado de fora. Se perceber que perdi algumas coisas, adicionarei ou outros especialistas neste site - fique à vontade para adicionar!
Tudo o que foi descrito acima precisa primeiro ser reproduzido em um ambiente de NÃO PRODUÇÃO para evitar surpresas durante a migração real.
----------
Mais algumas perguntas:
Se tudo funcionou bem e você conseguiu anexar o banco de dados, NÃO, você não terá problemas. Desanexar / Anexar vs Backup / Restauração é apenas um método de como você move seus bancos de dados para um local diferente. Apenas para sua informação. O backup / restauração é mais seguro e confiável, como se algo desse errado (nos piores casos), então você tem um backup para restaurar e recuperar seus bancos de dados.
Como eu disse, a soma de verificação é nova na versão 2005 e posteriores. É um mecanismo pelo qual o SQL Server detectará corrupção de página, principalmente devido a E / S. Consulte a minha resposta aqui para mais detalhes.
Para ativar o CHECKSUM e alterar o modelo de recuperação para COMPLETO, você pode fazer isso usando o código T-SQL abaixo:
Nota: Depois de definir as opções do banco de dados, elas serão mantidas quando você fizer a migração de 2008R2 para 2012.
Sim por favor. Como eu disse, a restauração de backup é o método preferido , a menos que você tenha um bom motivo para não fazer isso.
O backup / restauração é ... semelhante ao dump and load usado no Sybase, Oracle ou provavelmente no MySQL também. É apenas o SQL Server o chama .. backup / restore.
A deve ler: Noções básicas sobre backups do SQL Server por Paul Randall.
Sintaxe simples (para sintaxe completa, consulte BOL ):
Em seguida, a restauração pode ser feita no servidor de destino como:
- supondo que o layout do disco do destino não corresponda ao do servidor de origem
- supondo que o layout do disco do destino corresponda ao do servidor de origem
O backup / restauração não desfragmentará seu banco de dados. Você precisa usar o Alter Index Reorganize ou Rebuild, dependendo do seu nível de fragmentação.
Como você é novo no SQL Server, recomendo que você use o Ola Hallengren's:
Parar o mecanismo é a pior coisa que você pode fazer para fazer um backup!
Leia o link de Paul sobre os backups que mencionei e use o script de Ola. A Microsoft possui um artigo da KB com o script para fazer backups automatizados - Como agendar e automatizar backups de bancos de dados do SQL Server no SQL Server Express
Todo banco de dados do SQL Server possui um log que registra todas as transações e modificações no banco de dados feitas por cada transação. O log de transações é um componente crítico de qualquer banco de dados.
A extensão de convenção de nomenclatura usual para o log de transações é '.LDF', mas pode ser qualquer.
Não vou escrever mais sobre isso, pois isso tornará a resposta muito enxuta. Consulte Gerenciamento de log de transações e minha resposta aqui também possui excelentes links.
EDIT: 24/08/2016. Isso ajudará futuros leitores:
Se você estiver migrando toda a instância de uma versão para outra, eu recomendo usar a solução baseada no PowerShell
Start-SqlMigration
fonte