すべてのプロダクト
Search
ドキュメントセンター

ApsaraDB RDS:ストアドプロシージャ

最終更新日:Dec 18, 2024

このトピックでは、SQL Server 2012以降を実行するApsaraDB RDSインスタンスでサポートされるストアドプロシージャについて説明します。

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 master
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 master
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 Cluster Editionを実行するRDSインスタンス

説明

このストアドプロシージャは、データベースの変更データキャプチャ (CDC) を有効にするために使用されます。

使用法

USE db
GO
-- Enable CDC for a database.
EXEC sp_rds_cdc_enable_db
GO
-- Enable CDC for a table.
EXEC sys.sp_cdc_enable_table
    @source_schema = '<Schema name>',
    @source_name = '<Table name>',
    @role_name = '<Role name of CDC>' 

CDCを無効にする

T-SQLコマンド

sp_rds_cdc_disable_db

サポートされているRDSインスタンス

RDS High-availability EditionおよびRDS Cluster Editionを実行するRDSインスタンス

説明

このストアドプロシージャは、データベースのCDCを無効にするために使用されます。

使用法

USE db
GO
-- Disable CDC for a database.
EXEC sp_rds_cdc_disable_db
GO
-- Disable CDC for a table.
EXEC sys.sp_cdc_disable_table
    @source_schema = '<Schema name>',
    @source_name = '<Table name>',
    @capture_instance = '<Name of the instance on which CDC is enabled>'
    
-- Obtain the name of the instance on which CDC is enabled for a table.
SELECT capture_instance
FROM cdc.change_tables
WHERE source_schema = '<Schema name>'
    AND source_name = '<Table name>' 

RDSインスタンスのパラメーターの設定

T-SQLコマンド

sp_rds_configure

サポートされているRDSインスタンス

  • RDS High-availability Editionを実行するRDSインスタンス

  • RDS Basic Editionを実行するRDSインスタンス

説明

このストアドプロシージャは、RDSインスタンスのパラメーターを設定するために使用されます。 RDSインスタンスにセカンダリRDSインスタンスがスタンバイとして提供されている場合、システムは新しいパラメーター設定をセカンダリRDSインスタンスに同期します。 次の表に、サポートされるパラメーターを示します。 詳細については、「Microsoftドキュメント」をご参照ください。

パラメーター

説明

充填率 (%)

インデックスページの塗りつぶし係数の割合。

EXEC sp_rds_configure 'fill factor (%)'、90;

最大ワーカースレッド

クエリを実行し、要求を並列に処理するワーカースレッドの最大数。

EXEC sp_rds_configure 'max worker threads' 、100;

並列処理のコストしきい値

並列実行のオーバーヘッドしきい値。

EXEC sp_rds_configure 'cost threshold for parallelism '、30;

最大並列度

クエリの最大並列処理度。

EXEC sp_rds_configure 'max degree of parallelism ', 4;

最小サーバーメモリ (MB)

RDSインスタンスの最小メモリ量。

EXEC sp_rds_configure 'min server memory (MB)'、1024;

最大サーバーメモリ (MB)

RDSインスタンスの最大メモリ量。

EXEC sp_rds_configure 'max server memory (MB)'、4096;

ブロックされたプロセスしきい値

ブロックされたプロセスのしきい値。

EXEC sp_rds_configure 'ブロックされたプロセスしきい値' 、20;

ネストされたトリガー

ネストされたトリガーを有効にするかどうかを指定します。 有効な値:

  • 0: ネストされたトリガーを無効にします。

  • 1: ネストされたトリガーを有効にします。

説明

このパラメーターは、5月2023日より前に作成されたRDSインスタンスではサポートされません。

EXEC sp_rds_configure「ネストされたトリガー」、1;

アドホック分散クエリ

アドホック分散クエリを有効にするかどうかを指定します。 有効な値:

  • 0: アドホック分散クエリを無効にします。

  • 1: アドホック分散クエリを有効にします。

説明

このパラメーターは、5月2023日より前に作成されたRDSインスタンスではサポートされません。

EXEC sp_rds_configure 'アドホック分散クエリ' 、1;

clrが有効

共通言語ランタイム (CLR) を有効にするかどうかを指定します。 有効な値:

  • 0: CLRを無効にします。

  • 1: CLRを有効にします。

説明

このパラメーターは、5月2023日より前に作成されたRDSインスタンスではサポートされません。

EXEC sp_rds_configure 'clr enabled '、1;

デフォルトのフルテキスト言语

デフォルトのフルテキスト検索言語。 有効な値:

  • 0: デフォルトの言語を使用します。 デフォルトの言語は、オペレーティングシステムのロケールによって決まります。

  • 1033: 英語を使用します。

説明

このパラメーターは、5月2023日より前に作成されたRDSインスタンスではサポートされません。

EXEC sp_rds_configure 'デフォルトのフルテキスト言語' 、0;

デフォルト言語

デフォルトの言語。 有効な値:

  • 0: デフォルトの言語を使用します。 デフォルトの言語は、オペレーティングシステムのロケールによって決まります。

  • 1033: 英語を使用します。

説明

このパラメーターは、5月2023日より前に作成されたRDSインスタンスではサポートされません。

EXEC sp_rds_configure「デフォルト言語」、1033;

最大テキストreplサイズ (B)

レプリケーション中のテキストの最大サイズ。

説明

このパラメーターは、5月2023日より前に作成されたRDSインスタンスではサポートされません。

次のステートメントを実行して、最大サイズを100 MBに設定できます。

EXEC sp_rds_configure 'max text repl size (B)'、104857600;

アドホックワークロードの最適化

アドホックワークロード用に最適化された動的管理ビューを有効にするかどうかを指定します。 有効な値:

  • 0: アドホックワークロード用に最適化された動的管理ビューを無効にします。

  • 1: アドホックワークロード用に最適化された動的管理ビューを有効にします。

説明

このパラメーターは、5月2023日より前に作成されたRDSインスタンスではサポートされません。

EXEC sp_rds_configure 'アドホックワークロードの最適化' 、1;

クエリガバナーのコスト制限

クエリの最大実行時間。 単位は秒です。 値0は、制限が課されないことを示す。

説明

このパラメーターは、5月2023日より前に作成されたRDSインスタンスではサポートされません。

EXEC sp_rds_configure 'クエリガバナ費用制限' 、10;

回復間隔 (分)

回復間隔。

説明

このパラメーターは、5月2023日より前に作成されたRDSインスタンスではサポートされません。

EXEC sp_rds_configure 'recovery interval (min)'、60;

リモートログインタイムアウト (s)

リモートログインのタイムアウト期間。

説明

このパラメーターは、5月2023日より前に作成されたRDSインスタンスではサポートされません。

EXEC sp_rds_configure 'remote login timeout (s)'、30;

リモートクエリのタイムアウト (s)

リモートクエリのタイムアウト期間。

説明

このパラメーターは、5月2023日より前に作成されたRDSインスタンスではサポートされません。

EXEC sp_rds_configure 'remote query timeout (s)'、60;

クエリ待機 (s)

クエリがタイムアウトする前にリソースを待機する期間。

説明

このパラメーターは、5月2023日より前に作成されたRDSインスタンスではサポートされません。

EXEC sp_rds_configure 'query wait (s)'、5;

クエリごとの最小メモリ (KB)

各クエリで消費される最小メモリ量。

説明

このパラメーターは、5月2023日より前に作成されたRDSインスタンスではサポートされません。

EXEC sp_rds_configure 'min memory per query (KB)'、1024;

疑いのあるxactの解像度

システムが不確実な分散トランザクションを処理する方法。 有効な値:

  • 0: 自動処理を無効にします。 これは、RDS Cluster Editionを実行しないRDSインスタンスのデフォルト値です。 システムは不確実な分散トランザクションを自動的に処理せず、手動処理が必要です。

  • 1: 不確実な分散トランザクションが自動的にコミットされると仮定する。 システムが不確実なトランザクションを処理するのに十分な情報を有していない場合、トランザクションは自動的にコミットされる。

  • 2: 不確実な分散トランザクションが自動的にロールバックされると仮定する。 これは、RDS Cluster Editionを実行するRDSインスタンスのデフォルト値です。 不確実な分散トランザクションがシステムにコミットされた場合、不確実な分散トランザクションは自動的にロールバックされます。

EXEC sp_configure 'in-broad xact resolution' 、2;

使用法

EXEC sp_rds_configure '<Parameter>',<Parameter value>
  • 最初のパラメーターは、設定するパラメーターの名前を指定します。

  • 2番目のパラメーターは、パラメーターの値を指定します。

RDSインスタンスへのリンクサーバーの追加

T-SQLコマンド

sp_rds_add_linked_server

サポートされているRDSインスタンス

  • 汎用インスタンスファミリーまたは専用インスタンスファミリーに属するRDSインスタンス。 共有インスタンスファミリーはサポートされていません。 インスタンスファミリーの詳細については、「インスタンスファミリー」をご参照ください。

  • サブスクリプションおよび従量課金RDSインスタンス。 サーバーレスRDSインスタンスはサポートされていません。 詳細については、「概要」をご参照ください。

説明

このストアドプロシージャは、RDSインスタンスにリンクサーバーを追加するために使用されます。 このストアドプロシージャは、分散トランザクションをサポートします。 RDSインスタンスにリンクサーバーを追加すると、リンクサーバーの設定が関連付けられたセカンダリRDSインスタンスにレプリケートされます。 この方法では、プライマリ /セカンダリの切り替え後にリンクサーバーを追加する必要はありません。

使用法

DECLARE
@linked_server_name sysname = N'yangzhao_slb', --The name of the linked server.
@data_source sysname = N'****.sqlserver.rds.aliyuncs.com,3888', --The IP address and port of the destination RDS instance. Format: IP address,Port.
@user_name sysname = N'ay15' , --The logon username of the destination RDS instance.
@password nvarchar(128) = N'******', --The logon password of the destination RDS instance.
@source_user_name sysname = N'test', --The logon username for creating a linked server on the current RDS instance.
@source_password nvarchar(128) = N'******', --The logon password for creating a linked server on the current RDS instance.
--The configuration items that are required to connect the RDS instance to the server. The configuration items are specified in the XML format. In this example, the configuration items include data access, rpc, and rpc out.
@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,
@password,
@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インスタンス

説明

このストアドプロシージャは、ログオンユーザーにサーバーの役割を割り当てるために使用されます。 ロールには、setupadminprocessadminが含まれます。 アカウント権限とアカウントの作成方法の詳細については、「ApsaraDB RDS For SQL Serverインスタンスのシステム管理者アカウントの作成」および「ApsaraDB RDS for SQL Serverインスタンスのアカウント権限」をご参照ください。

使用法

EXEC sp_rds_set_server_role @login_name='test_login',@server_role='setupadmin'
  • 最初のパラメーターは、アカウント名を指定します。

  • 2番目のパラメーターは、ロール名を指定します。 使用可能なロールはsetupadminprocessadminです。

よくある質問

なぜですかKILLを使用して独自のプロセスを終了できません。 標準アカウントを使用してEXEC sp_rds_drop_database 'dbtest'; ステートメントを実行すると、エラーが報告されましたか?

特権アカウントを使用して、必要なデータベース以外のデータベースのCLIでステートメントを実行する必要があります。 特権アカウントに、必要なデータベースに対する操作を実行する権限があることを確認します。 特権アカウントの詳細については、「ApsaraDB RDS For SQL Serverインスタンスのアカウント権限」をご参照ください。 詳細については、「アカウントの権限の変更」をご参照ください。