Meça duas vezes, corte uma vez – SQLBlog.org

Meça duas vezes, corte uma vez – SQLBlog.org

Meça duas vezes, corte uma vez - SQLBlog.org 1
cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br


T-SQL Tuesday # 127: Dicas e truques não-SQLUm conto de advertência para a terça-feira T-SQL deste mês, onde Kenneth Fisher (@ sqlstudent144) nos pede para escrever sobre dicas e truques que não são SQL. Vou falar sobre o SQL Server, mas o conceito abrangente aqui pode ser aplicado a qualquer coisa técnica (e não técnica).

No fim de semana, pretendia fazer alguma manutenção em um banco de dados … com mais de 60 TB, estava ficando complicado restaurar / CHECKDB. Havia várias tabelas muito grandes que haviam sido recentemente removidas de dados LOB estranhos e uma em particular – uma tabela estática atualmente, sozinha no seu próprio grupo de arquivos de 27 TB – em que eu estava de olho.

Meu plano era simplesmente reconstruir a tabela em um novo grupo de arquivos (com aproximadamente 5 TB), executar um EMPTYFILE contra cada um dos arquivos antigos e remova o grupo de arquivos antigo. Isso liberaria um espaço valioso em seus LUNs subjacentes e traria alguma sanidade aos nossos processos de validação de restauração e verificação lógica.

Estou tentando ficar longe das partes técnicas disso, mas é difícil. Um pouco de técnico aqui foi que eu não conseguia mover os dados LOB restantes para um novo grupo de arquivos (usando TEXTIMAGE_ON) por meio de uma reconstrução, então eu teria que criar uma nova tabela lá e migrar os dados.

Planejei minha estratégia, não muito diferente de qualquer outra migração substancial de dados … mova os dados em lotes, descarte a tabela antiga, renomeie a nova.

Destaquei uma inserção manual que representava o primeiro pedaço de linhas que eu moveria e, antes de perceber Além disso destacou os comandos drop and rename, pressione F5.

Leia Também  Troubleshooting Error 18456 – SQLBlog.org
cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br

Sim, oh cocô está certo.

Meu primeiro pensamento foi tirar o pó do meu currículo. Felizmente, esta tabela não é voltada para o cliente e meu dedo gordo não causou grandes interrupções. Também estou cercado por grandes colegas – pessoal de armazenamento e infra-estrutura que pode ajudar a alocar um novo LUN quase imediatamente, e colegas arquitetos como Andy, que são apenas vozes sãs da razão:

Você sabe que isso foi estúpido, então eu não vou te contar e te bater por isso.

Ele estava absolutamente certo e me lembrou que não havia muito o que fazer além de consertar. Demorou algumas horas, mas usei a restauração fragmentada para reviver aquela tabela, mover os dados e iniciar novamente.

As lições que aprendi incluem ser muito mais vigilante sobre a criação de scripts defensivos (e separados!) Para manutenção de uma só vez, e não confiar demais na minha capacidade de destacar e executar as partes certas de um script no momento certo. Consegui liberar ~ 32 TB de espaço em disco depois que tudo foi dito e feito, mas levou muito mais tempo e suor do que o planejado originalmente.

Não há nada mágico ou incrivelmente perspicaz aqui; apenas um lembrete de que, não importa quanto tempo estamos fazendo algo, somos todos humanos e nós estamos indo para cima. Este não será o meu último erro, prometo. Mas você precisa aprender com essas experiências e usá-las em seu benefício, e certifique-se de não cometer o mesmo erro pela segunda vez. Não se apresse, verifique três vezes seus scripts e não tente ser cirurgião à meia-noite.