sys.sp_rda_test_connection (Transact-SQL)
适用于:SQL Server 2016 (13.x) 及更高版本
测试从 SQL Server 到远程 Azure 服务器的连接,并报告可能导致数据迁移的问题。
语法
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'
[ ; ]
参数
@database_name= N'db_name'
已启用 Stretch 的 SQL Server 数据库的名称。 此参数是可选的。
重要
SQL Server 2022 (16.x) 和 Azure SQL 数据库中已弃用 Stretch Database。 在数据库引擎的未来版本中将删除此功能。 请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。
@server_address= N'azure_server_fully_qualified_address'
Azure 服务器的完全限定地址。
如果为@database_name提供值,但指定的数据库未启用 Stretch,则必须为@server_address提供值。
如果为@database_name提供值,并且指定的数据库已启用 Stretch,则无需为@server_address提供值。 如果为 @server_address 提供值,则存储过程将忽略它,并使用已与已启用 Stretch 的数据库关联的现有 Azure 服务器。
@azure_username= N'azure_username'
远程 Azure 服务器的用户名。
@azure_password= N'azure_password'
远程 Azure 服务器的密码。
@credential_name= N'credential_name'
你可以提供存储在已启用 Stretch 的数据库中的凭据的名称,而不是提供用户名和密码。
返回代码值
如果成功,sp_rda_test_connection
则返回严重性和EX_INFO
成功返回代码的错误 14855(STRETCH_MAJOR, STRETCH_CONNECTION_TEST_PROC_SUCCEEDED
)。
如果失败,sp_rda_test_connection
则返回严重性和EX_USER
错误代码为 14856 (STRETCH_MAJOR, STRETCH_CONNECTION_TEST_PROC_FAILED
) 的错误。
结果集
列名称 | 数据类型 | 说明 |
---|---|---|
link_state |
int | 以下值之一,对应于 < a0 link_state_desc /&a0> 的值。- 0 - 1 2- - 3 - 4 |
link_state_desc |
varchar(32) | 以下值之一,对应于上述值。link_state -健康 SQL Server 和远程 Azure 服务器之间的运行状况良好。 - ERROR_AZURE_FIREWALL Azure 防火墙阻止 SQL Server 和远程 Azure 服务器之间的链接。 - ERROR_NO_CONNECTION SQL Server 无法连接到远程 Azure 服务器。 - ERROR_AUTH_FAILURE 身份验证失败正在阻止 SQL Server 和远程 Azure 服务器之间的链接。 -错误 不是身份验证问题、连接问题或防火墙问题的错误是阻止 SQL Server 与远程 Azure 服务器之间的链接。 |
error_number |
int | 错误的编号。 如果没有错误,则此字段为 NULL。 |
error_message |
nvarchar(1024) | 错误消息。 如果没有错误,则此字段为 NULL。 |
权限
需要 db_owner 权限。
示例
检查从 SQL Server 到远程 Azure 服务器的连接
EXEC sys.sp_rda_test_connection @database_name = N'<Stretch-enabled database>';
GO
结果显示 SQL Server 无法连接到远程 Azure 服务器。
link_state | link_state_desc | error_number | error_message |
---|---|---|---|
2 | ERROR_NO_CONNECTION | <与连接相关的错误号> | <与连接相关的错误消息> |
检查 Azure 防火墙
USE <Stretch-enabled database>
GO
EXECUTE sys.sp_rda_test_connection;
GO
结果显示,Azure 防火墙正在阻止 SQL Server 和远程 Azure 服务器之间的链接。
link_state | link_state_desc | error_number | error_message |
---|---|---|---|
1 | ERROR_AZURE_FIREWALL | <与防火墙相关的错误号> | <与防火墙相关的错误消息> |
检查身份验证凭据
USE <Stretch-enabled database>
GO
EXECUTE sys.sp_rda_test_connection;
GO
结果显示身份验证失败正在阻止 SQL Server 和远程 Azure 服务器之间的链接。
link_state | link_state_desc | error_number | error_message |
---|---|---|---|
3 | ERROR_AUTH_FAILURE | <身份验证相关的错误号> | <身份验证相关的错误消息> |
检查远程 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
结果显示连接正常,可以为指定的数据库启用 Stretch Database。
link_state | link_state_desc | error_number | error_message |
---|---|---|---|
0 | HEALTHY | Null | Null |
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈