Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Alta disponibilidade do SQL Server:adicionar novo disco a uma instância de cluster de failover existente


Em meu artigo anterior, expliquei o processo passo a passo de instalação de um nó na instância de cluster de failover do SQL Server existente. Junto com isso, também demonstrei o failover manual e o failover automático.

Neste artigo, demonstrarei o processo de adicionar um disco em um cluster de failover e, em seguida, mover o banco de dados existente para uma nova unidade.

Primeiramente, para adicionar um disco no cluster, devemos realizar os seguintes passos:
1. Crie um novo disco virtual iSCSI.
2. Conecte-se ao novo disco virtual iSCSI usando o iniciador iSCSI dos nós do cluster de failover.
3. Adicione um novo disco a um armazenamento de cluster de failover existente.
4. Mova o arquivo de banco de dados de amostra para o novo disco.
Primeiro, deixe-me fazer uma breve introdução à configuração de demonstração. Eu criei quatro máquinas virtuais no meu computador. Aqui estão os detalhes:
Máquina Virtual Nome do host Endereço IP Propósito
Controlador de domínio DC.Local 192.168.1.110 Esta máquina virtual será usada como controlador de domínio.
SAN SAN.DC.Local 192.168.1.111 Esta máquina virtual será usada como SAN virtual. Criei dois discos virtuais iSCSI que conectarei de nós de cluster de failover usando o iniciador iSCSI.
Nó SQL primário SQL01.DC.Local 192.168.1.112 Nesta máquina virtual, instalaremos a instância clusterizada de failover.
Nó SQL secundário SQL02.DC.Local 192.168.1.113 Nesta máquina virtual, instalaremos o nó secundário da instância de cluster de failover.

Em SAN.DC.Local , criei três unidades iSCSI. Os detalhes são os seguintes:
nome da unidade iSCSI Propósito
Sql-data Nesta unidade, estamos armazenando arquivos de banco de dados de bancos de dados de usuários e arquivos TempDB.
Sql-log Nesta unidade, estamos armazenando os arquivos de log dos bancos de dados do usuário.
quórum Esta unidade é usada como quorum.

Segue a captura de tela da nossa configuração:


Criar um disco iSCSI


Como mencionei acima, devemos primeiro criar uma unidade virtual iSCSI. Nesse caso, usarei o PowerShell para criar e configurar discos virtuais iSCSI de tamanho fixo. O tamanho do disco virtual é de 8 GB. Para criar uma nova unidade iSCSI, execute o seguinte comando.
New-IscsiVirtualDisk –Path F:\new-sql-data\new-sql-data.vhdx –SizeBytes (8GB) –UseFixed

Para verificar se o disco iSCSI foi criado com sucesso, abra o S servidor M gerente e clique em discos virtuais iSCSI no painel esquerdo. Veja a seguinte imagem:



Agora devemos criar um destino iSCSI. Os servidores remotos podem se conectar a um disco virtual usando o nome de destino. Aqui, criarei um destino chamado new-sql-data . Para criar um destino iSCSI chamado “new-sql-data ” e atribua-o a SQL02.dc.Local e SQL02.dc.Local , execute o seguinte comando.
New-IscsiServerTarget -TargetName "new-sql-data" -InitiatorIds @("IQN:iqn.1991-05.com.microsoft:sql01.dc.local", "IQN:iqn.1991-05.com.microsoft:sql02.dc.local")

Depois que o destino iSCSI for criado, devemos atribuir nosso disco virtual ao destino iSCSI. Para isso, execute a seguinte consulta:
Add-IscsiVirtualDiskTargetMapping -TargetName new-sql-data –Path "F:\new-sql-data\new-sql-data.vhdx"

Depois que o mapeamento de destino for concluído com êxito, atualize o painel do disco virtual iSCSI no Gerenciador do Servidor. Veja a seguinte imagem:


Conecte-se ao novo disco virtual iSCSI usando o iniciador iSCSI dos nós do cluster de failover


Agora, vamos nos conectar a esta unidade a partir do SQL01.dc.local nó usando RDP.

Para se conectar ao disco virtual iSCSI usando o iniciador iSCSI, abra o iniciador iSCSI e clique no botão Atualizar botão para descobrir o alvo. Agora você pode escolher o nome de destino apropriado em "Descobertas " caixa de texto. Selecione o destino apropriado e clique em C conectar . Veja a seguinte imagem:



Assim que estivermos conectados ao disco virtual, você poderá ver o disco no D isco M gerente seção em C computador M administração . Para usar o disco dentro do cluster, devemos realizar as seguintes tarefas:
  • Coloque o disco online. Para fazer isso, clique com o botão direito do mouse em D isco 4 e selecione On-line . Veja a imagem a seguir:


  • Quando o disco estiver online, inicialize o disco. Para fazer isso, clique com o botão direito do mouse em Disco 4 e selecione Inicializar disco . Veja a imagem a seguir:


  • Depois que o disco for inicializado, clique com o botão direito do mouse em Disco 4 e selecione Novo Volume Simples para criar uma partição. Veja a imagem a seguir:



Da mesma forma, devemos conectar a unidade virtual do SQL02.dc.local nó. Para fazer isso, conecte o SQL02.dc.local nó usando RDP, abra o iniciador iSCSI e clique no botão Atualizar botão para descobrir o alvo. Agora você pode escolher o nome de destino apropriado em Destinos descobertos caixa de texto. Selecione o destino apropriado e clique em C conectar . Veja a seguinte imagem:


Adicione o novo disco a um armazenamento de cluster de failover existente.


Para adicionar este disco ao armazenamento do cluster, conecte-se a SQL01.Dc.Local usando RDP, abra o F além C brilho M gerente , conecte-se a SQLCluster.DC.Local , selecione D riscos no painel esquerdo e clique em A dd disco . A caixa de diálogo “Adicionar disco ao cluster” será aberta. Nesta caixa de diálogo, o novo disco clusterizado será exibido. Veja a seguinte imagem:



Depois que o novo disco for adicionado, você poderá vê-lo no menu de disco do Gerenciador de Cluster de Failover. Veja a seguinte imagem:


Mova o arquivo de banco de dados de amostra para o novo disco.


Depois que o disco for adicionado, vamos mover um arquivo de banco de dados de amostra para a nova unidade. Eu criei um banco de dados chamado de modabase em SQL01.dc.local . Queremos mover seu arquivo de dados para o novo disco. Para fazer isso, conecte-se ao PowerShell e, em seguida, conecte-se à instância do SQL Server usando o comando ‘SQLCmd ' comando.

Quando estiver conectado à instância, execute o comando a seguir para desanexar o banco de dados.
exec sp_detach_db [demodatabase]
go

Depois que o banco de dados for desanexado, copie o arquivo de dados da unidade F (unidade antiga) para a unidade E (nova unidade) e execute o seguinte comando para anexar o banco de dados.
CREATE DATABASE demodatabase
    ON (FILENAME = 'E:\SQLData\demodatabase.mdf'),   
    (FILENAME = 'F:\SQLLog\demodatabase_log.ldf')   
    FOR ATTACH; 
GO

Ao executar o comando acima, você receberá o seguinte erro:
Msg 5184, Level 16, State 2, Server SQLCLUST, Line 1
Cannot use file 'E:\SQLData\demodatabase.mdf' for clustered server. Only formatted files on which the cluster resource of the server has a dependency can be used. Either the disk resource containing the file is not present in the cluster group or the cluster resource of the Sql Server does not have a dependency on it.

Este erro ocorre porque não adicionamos o novo disco ao grupo de recursos do cluster e à dependência AND da função MSSQLSERVER. Veja a seguinte imagem:



Para corrigir esse erro, devemos adicionar o novo disco à função MSSQLSERVER. Para fazer isso, abra o Failover Cluster Manager, clique em Select Roles, clique com o botão direito do mouse no SQL Server (MSSQLSERVER ) e escolha Adicionar armazenamento . Veja a seguinte imagem:



O Adicionar armazenamento caixa de diálogo será aberta. Na lista de armazenamento disponível, escolha o disco que criamos. Veja a seguinte imagem:



Depois de adicionar o armazenamento, podemos verificá-lo na guia de recursos da função MSSQLSERVER. Veja a seguinte imagem:



Uma vez que o disco é adicionado, precisamos também adicioná-lo à dependência do SQL Server AND . Para fazer isso, clique com o botão direito do mouse em SQL Server na lista de recursos em MSSQLSERVER função e selecione P propriedades . No P propriedades caixa de diálogo, vá para Dependências guia e selecione Disco de cluster 4 na caixa suspensa em Recursos coluna.



Depois que o recurso de disco for adicionado, tente anexar o banco de dados usando o seguinte comando:
CREATE DATABASE demodatabase
    ON (FILENAME = 'E:\SQLData\demodatabase.mdf'),   
    (FILENAME = 'F:\SQLLog\demodatabase_log.ldf')   
    FOR ATTACH; 
GO

O comando será executado com sucesso. Para verificar se o arquivo foi copiado para o local apropriado, execute a seguinte consulta no PowerShell.
select db_name(database_id) as [database name], physical_name from sys.master_files where db_name(database_id) ='demodatabase'

Segue a saída:
Database Name		physical_name
------------ 		---------------------------------
demodatabase		E:\SQLData\demodatabase.mdf
demodatabase		F:\SQLLog\demodatabase_log.ldf

Como você pode ver, o arquivo de banco de dados foi movido para a nova unidade.

Resumo


Neste artigo, expliquei o processo passo a passo de adicionar um disco a uma instância clusterizada de failover do SQL Server existente. No próximo artigo, explicarei como mover bancos de dados do sistema para um novo disco em cluster.

Fique atento!