Поделиться через


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 с поддержкой Stretch. Это необязательный параметр.

Внимание

Stretch Database устарел в SQL Server 2022 (16.x) и База данных SQL Azure. Эта функция будет удалена в будущей версии ядро СУБД. Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется.

@server_address= N'azure_server_fully_qualified_address'

Полный адрес сервера Azure.

  • Если вы предоставляете значение для @database_name, но указанная база данных не включена Stretch, необходимо указать значение для @server_address.

  • Если вы предоставляете значение для @database_name, а указанная база данных включена Stretch, то вам не нужно предоставлять значение для @server_address. Если вы предоставляете значение для @server_address, хранимая процедура игнорирует ее и использует существующий сервер Azure, уже связанный с базой данных с поддержкой Stretch.

@azure_username= N'azure_username'

Имя пользователя для удаленного сервера Azure.

@azure_password= N'azure_password'

Пароль для удаленного сервера Azure.

@credential_name= N'credential_name'

Вместо предоставления имени пользователя и пароля можно указать имя учетных данных, хранящихся в базе данных с поддержкой Stretch.

Значения кода возврата

В случае успешного выполнения sp_rda_test_connection возвращает ошибку 14855 (STRETCH_MAJOR, STRETCH_CONNECTION_TEST_PROC_SUCCEEDED) с серьезностью EX_INFO и кодом успешного возврата.

В случае сбоя sp_rda_test_connection возвращает ошибку 14856 (STRETCH_MAJOR, STRETCH_CONNECTION_TEST_PROC_FAILED) с серьезностью EX_USER и кодом возврата ошибки.

Результирующий набор

Имя столбца Тип данных Description
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