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 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 | 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 |