A divisão de dados, logs e TempDB é importante usando uma SAN com o SQL 2008

3

Eu não sou um administrador de servidores. Então seja gentil. Mas eu estava apenas em uma conferência e em uma das aulas de treinamento, o instrutor explicou algumas práticas recomendadas do SQL DBA. Uma delas era separar Mdf, Ldf e TempDB em drives diferentes para aumentar o desempenho.

Agora, no nosso escritório, temos um san. Os administradores do sistema criaram 3 drives sanitários, um para dados, um para logs e um para o TempDB.

Minha intuição me diz que foi um esforço desperdiçado ... foi?

Eu não conheço muitos detalhes, mas se você perguntar, tentarei preencher as especificações necessárias para responder a essa pergunta com precisão.

    
por MVCylon 01.10.2012 / 15:25

3 respostas

5

Arquivos de banco de dados, arquivos de log de transações e arquivos de dados temporários são geralmente colocados em volumes diferentes para reduzir a contenção de E / S entre eles, e isso pode ser estendido ainda mais criando vários arquivos de dados para cada banco de dados, espalhando-os por mais volumes e informando ao SQL Server onde tabelas e índices específicos devem ser armazenados; Então, sim, essa é uma prática comum para DBAs e pode, de fato, levar a ganhos significativos de desempenho.

Também é verdade que pode se tornar completamente sem sentido ao usar uma SAN; Dependendo de como a SAN foi realmente configurada, diferentes LUNs (volumes) podem ser mapeados para qualquer conjunto de discos phsyical, matrizes RAID e controladores de armazenamento e, portanto, a contenção de E / S entre dois LUNs pode variar de "completamente isolada" a "efetivamente compartilhando os mesmos discos". Portanto, a menos que o DBA esteja trabalhando em conjunto com o administrador de armazenamento, pedir diferentes LUNs para espalhar arquivos de banco de dados entre eles pode se tornar um esforço totalmente desperdiçado.

No entanto, separar arquivos de banco de dados e arquivos de log de transações é considerado uma melhor prática não apenas para desempenho, mas também para confiabilidade: devido ao mecanismo de armazenamento transacional usado pelo SQL Server (e a mecanismos semelhantes usados por praticamente qualquer DBMS existente) , os arquivos de log podem ser usados para reproduzir transações em um cenário de recuperação de desastre, permitindo que o sistema recupere o que aconteceu depois que o último backup foi realizado. Mas, para que isso funcione, você não quer perder arquivos de dados e arquivos de log ao mesmo tempo, então é melhor pelo menos colocá-los em volumes diferentes, mesmo que não haja ganho de desempenho com isso.

    
por 01.10.2012 / 16:45
2

O motivo pelo qual você separa os arquivos de banco de dados dos arquivos de log é porque o acesso ao banco de dados é aleatório e o acesso ao log é sequencial. A prática recomendada determina que você não misture esses dois tipos de E / S no mesmo disco, independentemente de como esse disco é apresentado ao servidor (Local, DAS, iSCSI, etc.). Então não, não foi um esforço desperdiçado.

Quanto ao tempdb, parece ser a recomendação da Microsoft que você separe isso dos bancos de dados:

link

    
por 01.10.2012 / 16:24
0

A E / S em um disco para logs só será sequencial se contiver apenas um arquivo de log. Adicione outro e você terá E / S aleatória.

    
por 31.03.2017 / 13:54