다음을 통해 공유


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