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'
스트레치 사용 SQL Server 데이터베이스의 이름입니다. 이 매개 변수는 선택 사항입니다.
Important
Stretch Database는 SQL Server 2022(16.x) 및 Azure SQL 데이터베이스에서 사용되지 않습니다. 데이터베이스 엔진의 이후 버전에서는 이 기능이 제거됩니다. 새 개발 작업에서는 이 기능을 사용하지 않도록 하고, 현재 이 기능을 사용하는 애플리케이션은 수정하세요.
@server_address= N'azure_server_fully_qualified_address'
Azure 서버의 정규화된 주소입니다.
@database_name 값을 제공하지만 지정된 데이터베이스가 스트레치를 사용하도록 설정되지 않은 경우 @server_address 값을 제공해야 합니다.
@database_name 값을 제공하고 지정된 데이터베이스가 Stretch-enabled인 경우 @server_address 값을 제공할 필요가 없습니다. @server_address 값을 제공하는 경우 저장 프로시저는 이를 무시하고 스트레치 사용 데이터베이스와 이미 연결된 기존 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 | 에 대한 link_state_desc 값에 해당하는 다음 값 중 하나입니다.-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 | 정상 | NULL | NULL |