分散データベース・スキーマの変更
Oracle Globally Distributed Databaseの重複表またはシャード表を変更する場合、それらの変更はシャード・カタログ・データベースから行う必要があります。
分散データベースに対してDDL操作を実行する前に、次のコマンドを使用してシャードDDLを有効にします
ALTER SESSION ENABLE SHARD DDL;
この文は、DDLによる変更が分散データベースの各シャードに伝播されるようにします。
伝播されるDDLによる変更は、ALTER TABLE
などの操作が含まれる"スキーマ関連"として定義されているコマンドです。各シャードに伝播される他の操作には、ユーザー管理を簡略化するためのCREATE、ALTER、DROP
ユーザー・コマンド、複数のシャードでの表領域の作成を簡略化するためのTABLESPACE
操作などがあります。
GRANT
およびREVOKE
操作はシャード・カタログから行うことができ、セッションでSHARD DDLを有効にしている場合は各シャードに伝播されます。より細かい制御が必要な場合は、各シャードに対してコマンドを直接発行できます。
DBMSパッケージ・コール(または同様の操作)などの操作は伝播されません。たとえば、シャード・カタログで統計を収集する操作は各シャードに伝播されません。
表に対するロックを必要とする操作(NOT NULL列の追加など)を実行する場合、DDL操作を実行するには各シャードで表に対するロックを取得する必要があることに留意することが重要です。単一インスタンスにDDLを適用するためのOracleのベスト・プラクティスがシャード環境に適用されます。
シャード・カタログで処理されるマルチシャード問合せは、各シャードのデータベース接続でリモート問合せを発行します。この場合、問合せによってそのシャードからデータを返されるかどうかにかかわらず、ユーザーが各シャードに対する適切な権限を持つようにすることが重要です。
関連項目:
重複表およびシャード表に使用する操作の詳細は、Oracle Database SQL言語リファレンスを参照してください