Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Observação
Esse recurso será removido em uma versão futura do SQL Server. Evite usar esse recurso em novos trabalhos de desenvolvimento e planeje modificar aplicativos que atualmente usam esse recurso. Em vez disso, use os grupos de disponibilidade Always On.
Depois que o banco de dados espelho for preparado (consulte Preparar um banco de dados espelho para espelhamento (SQL Server)), você poderá estabelecer uma sessão de espelhamento de banco de dados. As instâncias do servidor principal, espelho e testemunha devem ser instâncias de servidor separadas, que devem estar em sistemas anfitriões separados.
Importante
Recomendamos que você configure o espelhamento de banco de dados fora do horário de pico, pois a configuração do espelhamento pode afetar o desempenho.
Observação
Uma determinada instância de servidor pode participar de várias sessões simultâneas de espelhamento de banco de dados com parceiros iguais ou diferentes. Uma instância de servidor pode ser um parceiro em algumas sessões e uma testemunha em outras sessões. A instância do servidor espelho deve estar executando a mesma edição do SQL Server que a instância do servidor principal. O espelhamento de banco de dados não está disponível em todas as edições do Microsoft SQL Server. Para obter uma lista de recursos suportados pelas edições do SQL Server, consulte Recursos com suporte nas edições do SQL Server 2016. Além disso, é altamente recomendável que eles sejam executados em sistemas comparáveis que possam lidar com cargas de trabalho idênticas.
Para estabelecer uma sessão de espelhamento de banco de dados
Crie o banco de dados espelho. Para obter mais informações, consulte Preparar um banco de dados espelho para espelhamento (SQL Server).
Configure a segurança em cada instância do servidor.
Cada instância de servidor numa sessão de espelhamento de base de dados requer um endpoint de espelhamento de base de dados. Se o ponto de extremidade não existir, você deverá criá-lo.
Observação
A forma de autenticação usada para o espelhamento de base de dados por uma instância de servidor é uma propriedade do seu ponto de extremidade de espelhamento de base de dados. Dois tipos de segurança de transporte estão disponíveis para espelhamento de banco de dados: Autenticação do Windows ou autenticação baseada em certificado. Para mais informações, consulte a Segurança de Transporte no espelhamento de bases de dados e nos Grupos de Disponibilidade Always On (SQL Server) .
Em cada servidor parceiro, verifique se existe um endpoint para espelhamento de banco de dados. Independentemente do número de sessões de espelhamento suportadas, a instância do servidor pode ter apenas um ponto de extremidade de espelhamento de banco de dados. Se pretendes usar esta instância de servidor exclusivamente para parceiros em sessões de espelhamento de base de dados, podes atribuir a função de parceiro à extremidade (ROLE**=**PARTNER). Se também pretenderes usar este servidor como testemunha noutras sessões de espelhamento de base de dados, atribui a função do endpoint como ALL.
Para executar uma instrução SET PARTNER, o STATE dos pontos de extremidade de ambos os parceiros deve ser definido como STARTED.
Para saber se uma instância de servidor tem um ponto de extremidade de espelhamento de bases de dados e para obter informações sobre a sua função e estado, nessa instância, use a seguinte instrução Transact-SQL:
SELECT role_desc, state_desc FROM sys.database_mirroring_endpointsImportante
Não reconfigure um ponto de extremidade de espelhamento de banco de dados que esteja em uso. Se existir um endpoint de espelhamento de base de dados e estiver em uso, recomendamos utilizar esse endpoint para cada sessão na instância do servidor. Descartar um endpoint em uso pode causar a reinicialização dele, interrompendo as conexões das sessões existentes, o qual pode ser interpretado como um erro por outras instâncias do servidor. Isso é particularmente importante no modo de alta segurança com falha automática, em que a reconfiguração do ponto de extremidade em um servidor parceiro pode causar uma falha automática. Além disso, se uma testemunha tiver sido definida para uma sessão, eliminar o endpoint de espelhamento do banco de dados pode fazer com que o servidor principal dessa sessão perca o quórum; caso isso aconteça, o banco de dados fica offline e os seus utilizadores são desconectados. Para obter mais informações, consulte Quórum: De que forma uma testemunha influencia a disponibilidade de um banco de dados (espelhamento de banco de dados).
Se uma das entidades envolvidas não tiver um endpoint, consulte Criar um Endpoint de Espelhamento de Base de Dados para Autenticação do Windows (Transact-SQL).
Se as instâncias do servidor estiverem em execução em contas de usuário de domínio diferentes, cada uma delas precisa de um logon no banco de dados mestre das outras. Se o login não existir, você deve criá-lo. Para obter mais informações, consulte Permitir acesso de rede a um ponto de extremidade de espelhamento de banco de dados usando a autenticação do Windows (SQL Server).
Para definir o servidor principal como parceiro no banco de dados espelho, conecte-se ao servidor espelho e emita a seguinte instrução:
ALTER DATABASE <database_name> DEFINIR PARCEIRO =<server_network_address>
onde <database_name> é o nome do banco de dados a ser espelhado (esse nome é o mesmo em ambos os parceiros) e <server_network_address> é o endereço de rede do servidor principal.
A sintaxe para um endereço de rede de servidor é a seguinte:
TCP://<endereço do sistema>:<porta>
onde <endereço do sistema> é uma cadeia de caracteres que identifica inequivocamente o sistema do computador de destino, e <porta> é o número da porta usado pelo ponto de extremidade de espelhamento da instância do servidor parceiro. Para obter mais informações, consulte Especificar um endereço de rede do servidor (espelhamento de banco de dados).
Por exemplo, na instância do servidor espelho, a instrução ALTER DATABASE a seguir define o parceiro como a instância original do servidor principal. O nome do banco de dados é AdventureWorks, o endereço do sistema é DBSERVER1 - o nome do sistema do parceiro - e a porta usada pelo ponto de extremidade de espelhamento do banco de dados do parceiro é 7022:
ALTER DATABASE AdventureWorks SET PARTNER = 'TCP://DBSERVER1:7022'Esta declaração prepara o servidor espelho para formar uma sessão quando for contatado pelo servidor principal.
Para definir o servidor espelho como parceiro no banco de dados principal, conecte-se ao servidor principal e emita a seguinte instrução:
ALTER DATABASE <database_name> DEFINIR =<server_network_address> PARCEIRO
Para obter mais informações, consulte a etapa 4.
Por exemplo, na instância do servidor principal, a instrução ALTER DATABASE a seguir define o parceiro como a instância original do servidor espelho. O nome do banco de dados é AdventureWorks, o endereço do sistema é DBSERVER2 - o nome do sistema do parceiro - e a porta usada pelo ponto de extremidade de espelhamento do banco de dados do parceiro é 7025:
ALTER DATABASE AdventureWorks SET PARTNER = 'TCP://DBSERVER2:7022'A inserção desta instrução no servidor principal inicia a sessão de espelhamento de base de dados.
Por padrão, uma sessão é definida como segurança total da transação (SAFETY é definida como FULL), que inicia a sessão no modo síncrono de alta segurança sem failover automático. Você pode reconfigurar a sessão para ser executada no modo de alta segurança com failover automático ou no modo assíncrono de alto desempenho, da seguinte maneira:
Modo de alta segurança com failover automático
Se você quiser que uma sessão de modo de alta segurança ofereça suporte ao failover automático, adicione uma instância do servidor testemunha. Para obter mais informações, consulte Adicionar uma testemunha de espelhamento de banco de dados usando a autenticação do Windows (Transact-SQL).
Modo de alto desempenho
Como alternativa, se não se pretende failover automático e se prefere enfatizar o desempenho em detrimento da disponibilidade, desative a segurança transacional. Para mais informações, consulte Alterar a Segurança da Transação numa Sessão de Espelhamento de Base de Dados (Transact-SQL).
Observação
No modo de alto desempenho, WITNESS deve ser definido como OFF. Para obter mais informações, consulte Quórum: Como uma testemunha afeta a disponibilidade do banco de dados (espelhamento de banco de dados).
Exemplo
Observação
O exemplo a seguir estabelece uma sessão de espelhamento de banco de dados entre parceiros para um banco de dados espelho existente. Para obter informações sobre como criar um banco de dados espelho, consulte Preparar um banco de dados espelho para espelhamento (SQL Server)=.
O exemplo mostra as etapas básicas para criar uma sessão de espelhamento de banco de dados sem testemunha. Os dois parceiros são as instâncias de servidor padrão em dois sistemas de computador (PARTNERHOST1 e PARTNERHOST5). As duas instâncias de parceiro executam a mesma conta de usuário de domínio do Windows (MYDOMAIN\dbousername).
Na instância do servidor principal (instância padrão em PARTNERHOST1), crie um ponto de extremidade que ofereça suporte a todas as funções usando a porta 7022:
--create an endpoint for this instance CREATE ENDPOINT Endpoint_Mirroring STATE=STARTED AS TCP (LISTENER_PORT=7022) FOR DATABASE_MIRRORING (ROLE=ALL) GO --Partners under same domain user; login already exists in master.Observação
Para um exemplo de como configurar um login, consulte Permitir acesso de rede a um endpoint de espelhamento de base de dados usando a autenticação do Windows (SQL Server).
Na instância do servidor espelho (instância padrão em PARTNERHOST5), crie um ponto de extremidade que ofereça suporte a todas as funções usando a porta 7022:
--create an endpoint for this instance CREATE ENDPOINT Endpoint_Mirroring STATE=STARTED AS TCP (LISTENER_PORT=7022) FOR DATABASE_MIRRORING (ROLE=ALL) GO --Partners under same domain user; login already exists in master.Na instância do servidor principal (em PARTNERHOST1), faça backup do banco de dados:
BACKUP DATABASE AdventureWorks TO DISK = 'C:\AdvWorks_dbmirror.bak' WITH FORMAT GONa instância do servidor espelho (em
PARTNERHOST5), restaure o banco de dados:RESTORE DATABASE AdventureWorks FROM DISK = 'Z:\AdvWorks_dbmirror.bak' WITH NORECOVERY GODepois de criar o backup completo do banco de dados, você deve criar um backup de log no banco de dados principal. Por exemplo, a instrução Transact-SQL a seguir faz backup do log no mesmo arquivo usado pelo backup de banco de dados anterior:
BACKUP LOG AdventureWorks TO DISK = 'C:\AdventureWorks.bak' GOAntes de iniciar a sincronização, deve aplicar os backups de log necessários (e quaisquer backups de log subsequentes).
Por exemplo, a seguinte instrução Transact-SQL restaura o primeiro log de C:\AdventureWorks.bak:
RESTORE LOG AdventureWorks FROM DISK = 'C:\ AdventureWorks.bak' WITH FILE=1, NORECOVERY GONa instância do servidor espelho, defina a instância do servidor no PARTNERHOST1 como o parceiro (tornando-o o servidor principal inicial):
USE master; GO ALTER DATABASE AdventureWorks SET PARTNER = 'TCP://PARTNERHOST1:7022' GOImportante
Por padrão, uma sessão de espelhamento de banco de dados é executada no modo síncrono, o que depende da segurança total da transação (SAFETY está definido como FULL). Para fazer com que uma sessão seja executada no modo assíncrono e de alto desempenho, defina SAFETY como OFF. Para obter mais informações, consulte modos operacionais de espelhamento de banco de dados.
Na instância do servidor principal, configure a instância do servidor em
PARTNERHOST5como parceiro (tornando-o o servidor de espelho inicial):USE master; GO ALTER DATABASE AdventureWorks SET PARTNER = 'TCP://PARTNERHOST5:7022' GOOpcionalmente, se pretendes utilizar o modo de alta segurança com failover automático, configura a instância do servidor witness. Para obter mais informações, consulte Adicionar uma testemunha de espelhamento de banco de dados usando a autenticação do Windows (Transact-SQL).
Observação
Para obter um exemplo completo mostrando a configuração de segurança, preparando o banco de dados espelho, configurando os parceiros e adicionando uma testemunha, consulte Configurando o espelhamento de banco de dados (SQL Server).
Ver também
Configurando o espelhamento de banco de dados (SQL Server)
ALTERAR BASE DE DADOS (Transact-SQL)
Permitir acesso de rede a um ponto de extremidade de espelhamento de banco de dados usando a Autenticação do Windows (SQL Server)
Preparar um banco de dados espelho para espelhamento (SQL Server)
Criar um endpoint de espelhamento de base de dados para autenticação do Windows (Transact-SQL)
espelhamento de banco de dados e envio de logs (SQL Server)
Espelhamento de Banco de Dados (SQL Server)
espelhamento e replicação de banco de dados (SQL Server)
Configurando o espelhamento de banco de dados (SQL Server)
Especificar um endereço de rede do servidor (espelhamento de banco de dados)
Modos de Operação de Espelhamento de Banco de Dados