このトピックでは、SQL Server 2012以降を実行するApsaraDB RDS for SQL Serverインスタンスでサポートされるストアドプロシージャについて説明します。
RDSインスタンスのデータベース間でデータを複製する
T-SQLコマンド
sp_rds_copy_database
サポートされているRDSインスタンス
RDS High-availability Editionを実行するRDSインスタンス
RDS Basic Editionを実行するRDSインスタンス
説明
このストアドプロシージャは、ソースデータベースのデータを指定されたターゲットデータベースにレプリケートするために使用されます。 ソースデータベースとターゲットデータベースは、同じRDSインスタンスに作成されます。
RDSインスタンスの使用可能なストレージは、ソースデータベースのサイズの1.3倍以上である必要があります。
ApsaraDB MyBase for SQL Serverクラスターはサポートされていません。
使用法
USE db
GO
EXEC sp_rds_copy_database 'db' 、'db_copy'
GO
最初のパラメーターは、ソースデータベースの名前を指定します。
2番目のパラメーターは、ターゲットデータベースの名前を指定します。
データベースをオンラインモードに設定する
T-SQLコマンド
sp_rds_set_db_online
サポートされているRDSインスタンス
RDS High-availability Editionを実行するRDSインスタンス
RDS Basic Editionを実行するRDSインスタンス
説明
データベースをオフラインモードに設定した後、ALTER databaseステートメントを実行してデータベースをオンラインモードに設定することはできません。 この場合、このストアドプロシージャを使用して、データベースをオンラインモードに設定できます。
使用法
USE db
GO
EXEC sp_rds_set_db_online 'db'
GO
このパラメーターには、オンラインモードに設定するデータベースの名前を指定します。
RDSインスタンスの一部またはすべてのデータベースに対する権限をユーザーに付与する
T-SQLコマンド
sp_rds_set_all_db_privileges
サポートされているRDSインスタンス
RDS High-availability Editionを実行するRDSインスタンス
RDS Basic Editionを実行するRDSインスタンス
説明
このストアドプロシージャは、RDSインスタンスの一部またはすべてのデータベースに対する権限をユーザーに付与するために使用されます。
指定されたデータベースに対するユーザーの権限は、ユーザーに付与する権限以上である必要があります。
使用法
sp_rds_set_all_db_privileges 'user' 、'db_owner' 、'db1、db2. .. '
最初のパラメーターには、権限を付与するユーザーの名前を指定します。
2番目のパラメーターは、ユーザーに付与するデータベースロールを指定します。
3番目のパラメーターは、ユーザーに権限を付与するデータベースの名前を指定します。 1つ以上のデータベース名を入力できます。 複数のデータベース名を入力する場合は、データベース名をコンマ (,) で区切る必要があります。 このパラメーターを設定しない場合、すべてのデータベースの権限が付与されます。
インスタンスからデータベースを削除する
T-SQLコマンド
sp_rds_drop_database
サポートされているRDSインスタンス
RDS High-availability Editionを実行するRDSインスタンス
RDS Basic Editionは、このストアドプロシージャをサポートしていません。 RDS Basic Editionを実行しているRDSインスタンスからデータベースを削除する場合は、
DROP database db
ステートメントを実行します。必須データベース以外のデータベースのCLIで特権アカウントを使用してステートメントを実行する必要があります。 特権アカウントに、必要なデータベースに対する操作を実行する権限があることを確認します。 特権アカウントの詳細については、「ApsaraDB RDS For SQL Serverインスタンスのアカウント権限」をご参照ください。 詳細については、「アカウントの権限の変更」をご参照ください。
説明
このストアドプロシージャは、RDSインスタンスからデータベースを削除するために使用されます。 削除プロセス中に、システムはデータベースに関連付けられているすべてのオブジェクトを削除します。 RDSインスタンスがRDS High-availability Editionを実行している場合、システムは関連するイメージも削除し、データベースへの接続を閉じます。
使用法
USE db
GO
EXEC sp_rds_drop_database 'db'
GO
このパラメーターには、削除するデータベースの名前を指定します。
データベースの変更追跡の構成
T-SQLコマンド
sp_rds_change_tracking
サポートされているRDSインスタンス
RDS High-availability Editionを実行するRDSインスタンス
説明
このストアドプロシージャは、データベースの変更追跡を構成するために使用されます。
使用法
USE db
GO
EXEC sp_rds_change_tracking 'db',1
GO
最初のパラメーターには、変更の追跡を構成するデータベースの名前を指定します。
2番目のパラメーターは、変更追跡を有効にするかどうかを指定します。 有効な値:
1: 変更の追跡を有効にします。
0: 変更の追跡を無効にします。
変更データキャプチャの有効化
T-SQLコマンド
sp_rds_cdc_enable_db
サポートされているRDSインスタンス
RDS High-availability Editionを実行するRDSインスタンス
データベースとAlways On可用性グループがRDSインスタンスで実行されている場合、Always on可用性グループがRDSインスタンスから削除された後にのみ変更データキャプチャ (CDC) を使用できます。 CDCを使用しないことを推奨します。
説明
このストアドプロシージャは、データベースのCDCを有効にするために使用されます。
使用法
USE db
GO
-データベースレベルでCDCを有効にします。
EXEC sp_rds_cdc_enable_db
GO
-- 指定されたテーブルのCDCを有効にする
EXEC sys.sp_cdc_enable_table
@ source_schema = '<スキーマ名>' 、
@ source_name = '<テーブル名>' 、
@ role_name = '<CDCのロール名>'
CDCを無効にする
T-SQLコマンド
sp_rds_cdc_disable_db
サポートされているRDSインスタンス
RDS High-availability Editionを実行するRDSインスタンス
Always On可用性グループ機能を有効にする場合は、CDCを無効にすることを推奨します。
説明
このストアドプロシージャは、データベースのCDCを無効にするために使用されます。
使用法
USE db
GO
-データベースレベルでCDCを無効にします。
EXEC sp_rds_cdc_disable_db
GO
-指定されたテーブルのCDCを無効にします。
EXEC sys.sp_cdc_disable_table
@ source_schema = '<スキーマ名>' 、
@ source_name = '<テーブル名>' 、
@ capture_instance = '<CDCが有効になっているインスタンスの名前>'
-特定のテーブルに対してCDCが有効になっているインスタンスの名前を取得するメソッドです。
SELECT capture_instance
cdc.change_tablesから
WHERE source_schema = '<スキーマ名>'
AND source_name = '<テーブル名>'
RDSインスタンスのパラメーターの設定
T-SQLコマンド
sp_rds_configure
サポートされているRDSインスタンス
RDS High-availability Editionを実行するRDSインスタンス
RDS Basic Editionを実行するRDSインスタンス
説明
このストアドプロシージャは、RDSインスタンスのパラメーターを設定するために使用されます。 RDSインスタンスにセカンダリRDSインスタンスがスタンバイとして提供されている場合、システムは新しいパラメーター設定をセカンダリRDSインスタンスに同期します。 次の表に、サポートされるパラメーターを示します。 詳細については、「Microsoftドキュメント」をご参照ください。
パラメーター | 説明 | 使用例 |
充填率 (%) | インデックスページの塗りつぶし係数の割合。 |
|
最大ワーカースレッド | クエリを実行し、要求を並列に処理するワーカースレッドの最大数。 |
|
並列処理のコストしきい値 | 並列実行のオーバーヘッドしきい値。 |
|
最大並列度 | クエリの最大並列処理度。 |
|
最小サーバーメモリ (MB) | RDSインスタンスの最小メモリ量。 |
|
最大サーバーメモリ (MB) | RDSインスタンスの最大メモリ量。 |
|
ブロックされたプロセスしきい値 | ブロックされたプロセスのしきい値。 |
|
ネストされたトリガー | ネストされたトリガーを有効にするかどうかを指定します。 有効な値:
説明 このパラメーターは、5月2023日より前に作成されたRDSインスタンスではサポートされません。 |
|
アドホック分散クエリ | アドホック分散クエリを有効にするかどうかを指定します。 有効な値:
説明 このパラメーターは、5月2023日より前に作成されたRDSインスタンスではサポートされません。 |
|
clrが有効 | 共通言語ランタイム (CLR) を有効にするかどうかを指定します。 有効な値:
説明 このパラメーターは、5月2023日より前に作成されたRDSインスタンスではサポートされません。 |
|
デフォルトのフルテキスト言语 | デフォルトのフルテキスト検索言語。 有効な値:
説明 このパラメーターは、5月2023日より前に作成されたRDSインスタンスではサポートされません。 |
|
デフォルト言語 | デフォルトの言語。 有効な値:
説明 このパラメーターは、5月2023日より前に作成されたRDSインスタンスではサポートされません。 |
|
最大テキストreplサイズ (B) | レプリケーション中のテキストの最大サイズ。 説明 このパラメーターは、5月2023日より前に作成されたRDSインスタンスではサポートされません。 | 次のステートメントを実行して、最大サイズを100 MBに設定できます。
|
アドホックワークロードの最適化 | アドホックワークロード用に最適化された動的管理ビューを有効にするかどうかを指定します。 有効な値:
説明 このパラメーターは、5月2023日より前に作成されたRDSインスタンスではサポートされません。 |
|
クエリガバナーのコスト制限 | クエリの最大実行時間。 単位は秒です。 値0は、制限が課されないことを示す。 説明 このパラメーターは、5月2023日より前に作成されたRDSインスタンスではサポートされません。 |
|
回復間隔 (分) | 回復間隔。 説明 このパラメーターは、5月2023日より前に作成されたRDSインスタンスではサポートされません。 |
|
リモートログインタイムアウト (s) | リモートログインのタイムアウト期間。 説明 このパラメーターは、5月2023日より前に作成されたRDSインスタンスではサポートされません。 |
|
リモートクエリのタイムアウト (s) | リモートクエリのタイムアウト期間。 説明 このパラメーターは、5月2023日より前に作成されたRDSインスタンスではサポートされません。 |
|
クエリ待機 (s) | クエリがタイムアウトする前にリソースを待機する期間。 説明 このパラメーターは、5月2023日より前に作成されたRDSインスタンスではサポートされません。 |
|
クエリごとの最小メモリ (KB) | 各クエリで消費される最小メモリ量。 説明 このパラメーターは、5月2023日より前に作成されたRDSインスタンスではサポートされません。 |
|
使用法
EXEC sp_rds_configure '<パラメータ>',<パラメータ値>
最初のパラメーターは、設定するパラメーターの名前を指定します。
2番目のパラメーターは、パラメーターの値を指定します。
RDSインスタンスへのリンクサーバーの追加
T-SQLコマンド
sp_rds_add_linked_server
サポートされているRDSインスタンス
次のRDSインスタンスがサポートされています。
SQL Server 2012、SQL Server 2014、SQL Server 2016、SQL Server 2017、SQL Server 2019、SQL Server 2022 on RDS High-availability Editionを実行する標準RDSインスタンス。
RDS High-availability EditionでSQL Server 2012 EE、SQL Server 2014 EE、またはSQL Server 2016 EEを実行するRDSインスタンス。
RDS Cluster EditionでSQL Server 2017 EE、SQL Server 2019 EE、またはSQL Server 2022 EEを実行するRDSインスタンス。
汎用インスタンスファミリーまたは専用インスタンスファミリーに属するRDSインスタンス。 共有インスタンスファミリーに属するRDSインスタンスはサポートされていません。
説明
このストアドプロシージャは、RDSインスタンスにリンクサーバーを追加するために使用されます。 このストアドプロシージャは、分散トランザクションをサポートします。 RDSインスタンスにリンクサーバーを追加すると、リンクサーバーの設定が関連付けられたセカンダリRDSインスタンスにレプリケートされます。 この方法では、プライマリ /セカンダリの切り替え後にリンクサーバーを追加する必要はありません。
使用法
DECLARE
@ linked_server_name sysname = N'yangzhao_slb' 、@ data_source sysname = N' **** .sqlserver.rds.aliyuncs.com,3888 ', -- style: 10.1.10.1,1433
@ user_name sysname = N'ay15 '、@ password nvarchar(128) = N' ******* '、@ source_user_name sysname = N'test' 、@ source_password nvarchar(128) = N' ****** '、@ link_server_options xml
=N'
<rds_linked_server>
<config option="data access">true</config>
<config option="rpc">true</config>
<config option="rpc out">true</config>
</rds_linked_server>
'
EXEC sp_rds_add_linked_server
@ linked_server_name、@ data_source、@ user_name,
@ パスワード、@ source_user_name、@ source_password、@ link_server_options
RDSインスタンスのトレースフラグの設定
T-SQLコマンド
sp_rds_dbcc_trace
サポートされているRDSインスタンス
RDS High-availability Editionを実行するRDSインスタンス
RDS Basic Editionを実行するRDSインスタンス
説明
このストアドプロシージャは、RDSインスタンスのトレースフラグを設定するために使用されます。 このストアドプロシージャは、一部のトレースフラグのみをサポートします。 RDSインスタンスに設定したトレースフラグは、関連付けられたセカンダリRDSインスタンスに自動的にレプリケートされます。
使用法
EXEC sp_rds_dbcc_trace '1222' 、1/0
最初のパラメーターには、RDSインスタンスに設定するトレースフラグを指定します。
2番目のパラメーターは、トレースフラグを有効にするかどうかを指定します。 有効な値:
1: トレースフラグを有効にします。
0: トレースフラグを無効にします。
データベース名の変更
T-SQLコマンド
sp_rds_modify_db_name
サポートされているRDSインスタンス
RDS High-availability Editionを実行するRDSインスタンス
RDS Cluster Editionを実行するRDSインスタンス
RDS Basic Editionを実行するRDSインスタンス
説明
このストアドプロシージャは、データベースの名前を変更するために使用されます。 RDS High-availability EditionまたはRDS Cluster Editionを実行するRDSインスタンス上のデータベースの名前を変更すると、システムはRDSインスタンスとそのセカンダリインスタンス間のレプリケーション設定を自動的に再構築します。 再構築プロセス中に、RDSインスタンスのデータがバックアップおよび復元されます。 データベースが大量のストレージを占有する場合は、RDSインスタンスの使用可能なストレージが十分であることを確認してください。
使用法
USE db
GO
EXEC sp_rds_modify_db_name 'db' 、'new_db'
GO
最初のパラメーターは、データベースの元の名前を指定します。
2番目のパラメーターは、データベースの新しい名前を指定します。
サーバーロールの割り当てAssign server roles
T-SQLコマンド
sp_rds_set_server_role
サポートされているRDSインスタンス
RDS Basic Editionを実行するRDSインスタンス
説明
このストアドプロシージャは、ログオンユーザーにサーバーの役割を割り当てるために使用されます。 ロールには、setupadminとprocessadminが含まれます。 アカウント権限とアカウントの作成方法の詳細については、「ApsaraDB RDS For SQL Serverインスタンスのシステム管理者アカウントの作成」および「ApsaraDB RDS for SQL Serverインスタンスのアカウント権限」をご参照ください。
使用法
EXEC sp_rds_set_server_role @ login_name='test_login',@ server_role='setupadmin'
最初のパラメーターは、アカウント名を指定します。
2番目のパラメーターは、ロール名を指定します。 使用可能なロールはsetupadminとprocessadminです。
よくある質問
なぜですかKILLを使用して独自のプロセスを終了できません。
標準アカウントを使用してEXEC sp_rds_drop_database 'dbtest';
ステートメントを実行すると、エラーが報告されましたか?
特権アカウントを使用して、必要なデータベース以外のデータベースのCLIでステートメントを実行する必要があります。 特権アカウントに、必要なデータベースに対する操作を実行する権限があることを確認します。 特権アカウントの詳細については、「ApsaraDB RDS For SQL Serverインスタンスのアカウント権限」をご参照ください。 詳細については、「アカウントの権限の変更」をご参照ください。