Partilhar via


sys.sp_rda_test_connection (Transact-SQL)

Aplica-se a: SQL Server 2016 (13.x) e versões posteriores

Testa a conexão do SQL Server com o servidor remoto do Azure e relata problemas que podem impedir a migração de dados.

Sintaxe

EXECUTE sys.sp_rda_test_connection
    @database_name = N'db_name'
    , @server_address = N'azure_server_fully_qualified_address'
    , @azure_username = N'azure_username'
    , @azure_password = N'azure_password'
    , @credential_name = N'credential_name'
[ ; ]

Argumentos

@database_name= N'db_name'

O nome do banco de dados do SQL Server habilitado para Stretch. Esse parâmetro é opcional.

Importante

O banco de dados de ampliação foi preterido no SQL Server 2022 (16.x) e no Banco de Dados SQL do Azure. Esse recurso será removido em uma versão futura do mecanismo de banco de dados. Evite usar esse recurso em desenvolvimentos novos e planeje modificar os aplicativos que atualmente o utilizam.

@server_address= N'azure_server_fully_qualified_address'

O endereço totalmente qualificado do servidor do Azure.

  • Se você fornecer um valor para @database_name, mas o banco de dados especificado não estiver habilitado para Stretch, será necessário fornecer um valor para @server_address.

  • Se você fornecer um valor para @database_name e o banco de dados especificado estiver habilitado para Stretch, não será necessário fornecer um valor para @server_address. Se você fornecer um valor para @server_address, o procedimento armazenado o ignorará e usará o servidor do Azure existente já associado ao banco de dados habilitado para Stretch.

@azure_username= N'azure_username'

O nome de usuário do servidor remoto do Azure.

@azure_password= N'azure_password'

A senha do servidor remoto do Azure.

@credential_name= N'credential_name'

Em vez de fornecer um nome de usuário e senha, você pode fornecer o nome de uma credencial armazenada no banco de dados habilitado para Stretch.

Valores do código de retorno

Em caso de sucesso, sp_rda_test_connection retorna o erro 14855 (STRETCH_MAJOR, STRETCH_CONNECTION_TEST_PROC_SUCCEEDED) com gravidade EX_INFO e um código de retorno de sucesso.

Em caso de falha, sp_rda_test_connection retorna o erro 14856 (STRETCH_MAJOR, STRETCH_CONNECTION_TEST_PROC_FAILED) com gravidade EX_USER e um código de retorno de erro.

Conjunto de resultados

Nome da coluna Tipo de dados Descrição
link_state int Um dos seguintes valores, que correspondem aos valores de link_state_desc.

- 0
- 1
- 2
- 3
- 4
link_state_desc varchar(32) Um dos valores a seguir, que correspondem aos valores anteriores para link_state.

-SAUDÁVEL
O entre o SQL Server e o servidor remoto do Azure está íntegro.
- ERROR_AZURE_FIREWALL
O firewall do Azure está impedindo o vínculo entre o SQL Server e o servidor remoto do Azure.
- ERROR_NO_CONNECTION
O SQL Server não pode estabelecer uma conexão com o servidor remoto do Azure.
- ERROR_AUTH_FAILURE
Uma falha de autenticação está impedindo o link entre o SQL Server e o servidor remoto do Azure.
-ERRO
Um erro que não é um problema de autenticação, um problema de conectividade ou um problema de firewall está impedindo o link entre o SQL Server e o servidor remoto do Azure.
error_number int O número do erro. Se não houver erro, esse campo será NULL.
error_message nvarchar(1024) A mensagem de erro. Se não houver erro, esse campo será NULL.

Permissões

Requer permissões de db_owner.

Exemplos

Verificar a conexão do SQL Server com o servidor remoto do Azure

EXEC sys.sp_rda_test_connection @database_name = N'<Stretch-enabled database>';
GO

Os resultados mostram que o SQL Server não pode se conectar ao servidor remoto do Azure.

link_state link_state_desc error_number error_message
2 ERROR_NO_CONNECTION <Número de erro relacionado à conexão> <Mensagem de erro relacionada à conexão>

Verificar o firewall do Azure

USE <Stretch-enabled database>
GO
EXECUTE sys.sp_rda_test_connection;
GO

Os resultados mostram que o firewall do Azure está impedindo o link entre o SQL Server e o servidor remoto do Azure.

link_state link_state_desc error_number error_message
1 ERROR_AZURE_FIREWALL <Número de erro relacionado ao firewall> <Mensagem de erro relacionada ao firewall>

Verifique as credenciais de autenticação

USE <Stretch-enabled database>
GO
EXECUTE sys.sp_rda_test_connection;
GO

Os resultados mostram que uma falha de autenticação está impedindo o link entre o SQL Server e o servidor remoto do Azure.

link_state link_state_desc error_number error_message
3 ERROR_AUTH_FAILURE <Número de erro relacionado à autenticação> <Mensagem de erro relacionada à autenticação>

Verificar o status do servidor remoto do Azure

USE <SQL Server database>
GO
EXECUTE sys.sp_rda_test_connection
    @server_address = N'<server name>.database.windows.net',
    @azure_username = N'<user name>',
    @azure_password = N'<password>';
GO

Os resultados mostram que a conexão está íntegra e que você pode habilitar o Stretch Database para o banco de dados especificado.

link_state link_state_desc error_number error_message
0 HEALTHY NULO NULO