Eu tenho um cluster de VM projetado para armazenar várias instâncias do SQL Server. Usamos vários provedores de armazenamento (ou seja, 3PAR, XIV) que precisam ser alterados agora (não é relevante para qual marca). No Oracle no Linux usamos VLM/Oracle ASM para realizar a troca de armazenamento enquanto a instância Oracle permanece online. Preciso trocar o armazenamento de discos usados como partições User_DB, User_DB_Logs e Backup no Windows. Existe alguma coisa que eu possa fazer no mundo SQL Server / Windows Server para alcançá-lo?
SQL Server Std & Enterprise 2012-2017
Windows Server 2012 R2 - 2019
EDIÇÃO 1:
Estou procurando opções como gravar dados e fazer login em dois destinos ao mesmo tempo (usando uma instância MSSQL) ou espelhamento de disco no nível do Windows Server / VMware, o que me permitiria fazer uma troca a quente uma vez que ambos os discos estivessem sincronizados.
Minha configuração tem bem mais de 500 instâncias individuais do SQL Server, muitas com mais de 100 bancos de dados. A solução deve ser orquestrada e bastante genérica.
Até onde eu sei, não há nada parecido no mundo Windows/MSSQL, mas este fórum me surpreendeu o suficiente para levantar essa questão de qualquer maneira.
EDIÇÃO 2:
Acabei com a ideia de criar um segundo conjunto de meus bancos de dados na mesma instância, pois eles estão localizados principalmente. Isso me permitiria ter uma cópia do meu conjunto de banco de dados localizado em discos recém-introduzidos (apoiados por um novo provedor de armazenamento por trás da VM). Na minha configuração, preciso migrar apenas bancos de dados de usuários (incluindo seus logs), todo o resto permanece em seu conjunto de unidades atual (os backups são fáceis de mover). Portanto, o que preciso fazer agora é forçar uma das tecnologias de HA disponíveis a criar uma cópia do meu conjunto de banco de dados na mesma instância do SQL Server. Portanto, o plano que tenho é assim:
- Gire novos discos para dados de banco de dados SQL e logs de banco de dados
- Apresente-os ao Windows e ao SQL Server
- Configure uma replicação transacional de todos os bancos de dados do usuário na mesma instância do SQL Server, alterando os nomes dos bancos de dados e sua localização física nas unidades
- Quando tudo estiver sincronizado, interrompa o tráfego SQL, renomeie conjuntos de banco de dados e faça failover no banco de dados localizado em unidades novas
- Limpar (bancos de dados antigos, replicação, pools de buffer etc.)
Isso me permitiria introduzir novas unidades com tempo mínimo de folga.
Você pode pensar em algo mais rápido do que (não envolvendo a introdução de novas instâncias do SQL Server)?
Siga o processo aqui: Mover arquivos de banco de dados para mover os bancos de dados para o novo armazenamento. Você pode deixar a instância online, mas cada banco de dados precisará estar OFFLINE enquanto seus arquivos são copiados para o novo local.
Como alternativa, você pode apresentar as novas unidades, desligar o SQL Server, copiar todos os arquivos para as novas unidades, desmontar as unidades antigas, montar as novas unidades nas mesmas pastas ou letras das unidades antigas e reiniciar o SQL Server.
Em ambos os casos, faça backups de seus bancos de dados antes de iniciar NÃO exclua nenhum arquivo das unidades antigas até que você tenha migrado com sucesso para as novas unidades e feito novos backups de seus bancos de dados.
Para fazer isso, use Backup/Restauração, não Replicação Transnacional. A replicação é mais complicada, cara e não suporta tabelas sem chave primária ou todos os objetos de banco de dados. Então, para cada banco de dados:
Então, depois de cavar e aplicar esta solução em situações do mundo real, posso compartilhar com você que é possível migrar seu SQL Server (DBs do sistema, usuários ou até mesmo os arquivos de instalação) usando as ferramentas do Windows Server. Tudo que você tem a fazer é:
Existem limitações para este processo e é obviamente caro para I\O e definitivamente irá desacelerar sua instância do SQL Server, mas o mais importante - é possível movê-lo enquanto ele permanece online o tempo todo, que era a principal necessidade para o meu solução.