クラウド表を使用したロギングおよび診断情報の格納
表データがOracle Managed Cloud Storageに存在し、表データがデータベース・ストレージを使用しないクラウド表を作成できます。
- クラウド表について
データベース内表の代替としてクラウド表を作成できます。すべてのクラウド表データは、Oracle管理オブジェクト・ストレージに格納されます。Oracle Managed Object Storageは、Autonomous Databaseによって作成および管理される、データベースの外部の外部ストレージです。 - クラウド表の作成
Autonomous Databaseでクラウド表を作成するステップを示します。 - クラウド表のノート
クラウド表のノートを示します。
親トピック: 開発
クラウド表について
クラウド表は、データベース内表の代替として作成できます。すべてのクラウド表データは、Oracle管理オブジェクト・ストレージに格納されます。Oracle Managed Object Storageは、Autonomous Databaseによって作成および管理される、データベースの外部の外部ストレージです。
クラウド表を使用すると、使用頻度の低いアプリケーション・ロギング・データ、診断情報を格納したり、他のデータを格納できます。Autonomous Databaseで実行されない既存のアプリケーションでは、この種の情報をローカル・ファイル・システム上のファイルに格納できます(たとえば、UTL_FILE
APIを使用します)。このようなロギング・メカニズムおよび関連ファイルは、アプリケーション・エラーを診断して解決する必要がある場合に非常に役立ちます。ただし、データベース表への情報の格納では、使用頻度の低いデータに大量のデータベース記憶域を使用することがあります。クラウド表を使用すると、永続データはデータベース・ストレージを使用せずにOracle管理対象オブジェクト・ストレージに保存されます。
クラウド表に対するSELECTおよびDMLの制限事項
クラウド表は、いくつかの制限がある通常のデータベース表と同様に機能します。SELECT文およびDMLデータ操作文を使用できますが、次の例外があります。
MERGE
文はサポートされません。LOB
列は、10MBのデータに制限されています。- DML同時実行性の制御は異なるため、次のようになります。
LOCK TABLE
は、データベース表の場合と同じように同時DMLを妨げない場合があります。INSERT
は表のロックを取得しないため、INSERTは同時DML操作によってブロックされることはありません。UPDATE
操作とDELETE
操作はどちらも、クラウド表に対する排他ロックを取得します。したがって、UPDATE
またはDELETE
トランザクションは、クラウド表での同時UPDATE
またはDELETE
操作をブロックします。
- NOT NULL制約のみが適用されます。
- DMLは、他の表と同様に読取り/書込みAutonomous Databaseで使用できます。クラウド表では、リフレッシュ可能クローンでのDML操作も可能です。
クラウド表では、次のものはサポートされません。
- 索引
- Invisible Columns
- 仮想列
- DMLトリガー
- 996列以上
- ブール・データ型列
ライフサイクル管理操作およびクラウド表
クラウド表データは、Oracle管理オブジェクト・ストレージに格納されます。つまり、Autonomous Databaseでの特定の操作では、次のようにクラウド表がデータベース内表とは異なる方法で処理されます:
-
クラウド表データは、Autonomous Databaseインスタンスのバックアップおよびリカバリから除外されます(データはバックアップされず、クラウド表データはリストアできません)。
-
クラウド表データは、Oracle管理対象オブジェクト・ストレージを介して保護されます。
-
Autonomous Databaseインスタンスの状態に影響するライフサイクル管理操作は、クラウド表に格納されているデータには影響しません。
オブジェクト・ストレージのクラウド表ネーミングは、OCIDに基づいてAutonomous Databaseインスタンスごとに一意に定義されます。つまり、既存のデータベースに対して新しいOCIDを変更または導入する操作は、クラウド表に影響を与えます。次に、クラウド表データに対するライフサイクル操作の影響を示します。
ライフサイクル操作 | クラウド表データ可用性 |
---|---|
同じリージョン・データベース・クローン | クラウド表データはクラウド表データなしでクローニングされます |
リージョン間のデータベース・クローン | クラウド表データはクラウド表データなしでクローニングされます |
同じリージョン(ローカル)のAutonomous Data Guardスタンバイ | クラウド表およびクラウド表データにアクセスできます |
クロスリージョンAutonomous Data Guardスタンバイ | クラウド表は、クラウド表データなしでスタンバイで使用できます。 |
同じリージョン(ローカル)のバックアップベースのディザスタ・リカバリ・ピア | クラウド表およびクラウド表データにアクセスできます |
クロスリージョン・バックアップベースのディザスタ・リカバリ・ピア | クラウド表は、クラウド表データなしでスタンバイで使用できます。 |
Autonomous DatabaseインスタンスのSCN/タイムスタンプに影響するライフサイクル管理操作。次のものが含まれます:
|
クラウド表は引き続き更新され、クラウド表データの古い状態は保持またはリストアされません。つまり、現在のクラウド表データのみが使用可能です。 |
次を含むライフサイクル管理操作:
|
クラウド表またはクラウド表データへの影響なし |
親トピック: クラウド表を使用したロギングおよび診断情報の格納
クラウド表の作成
Autonomous Databaseでクラウド表を作成するステップを示します。
クラウド表を作成するには:
クラウド表を削除する場合は、DROP TABLE
を使用します。
たとえば:
DROP TABLE CLOUD_TABLE_TEST;
クラウド表はごみ箱をサポートしていません。
詳細は、クラウド表のノートを参照してください。
親トピック: クラウド表を使用したロギングおよび診断情報の格納
クラウド表ノート
クラウド表のノートを示します。
-
クラウド表に対して
SELECT
、INSERT
およびUPDATE
権限を付与できます。クラウド表に他の権限を付与することはできません。詳細は、「権限とロール認可の構成」を参照してください。
-
クラウド表の制約は、
RELY DISABLE NOVALIDATE
モードの制約に限定されます。つまり、制約は適用されません。これに対する唯一の例外は、NOT NULL
制約です。クラウド表では、デフォルト・モード(
ENABLE VALIDATE
)を含むすべてのNOT NULL
制約モードがサポートされています。PRIMARY KEY
、UNIQUE
、FOREIGN KEY
およびNOT NULL
制約がサポートされています。CHECK
制約はサポートされていません。制約は、
COLUMN_LIST
の一部としてインラインで宣言できます。たとえば、次のとおりです。
BEGIN
DBMS_CLOUD.CREATE_CLOUD_TABLE
( table_name => 'CLOUD_TAB_WITH_CONSTRAINTS', column_list => 'PK INTEGER, DATE_ID INT REFERENCES DATE_DIM(DATE_ID) RELY DISABLE NOVALIDATE, VAL NUMBER NOT NULL, CONSTRAINT CLOUD_TAB_PK PRIMARY KEY(PK) RELY DISABLE NOVALIDATE'); END; /クラウド表のその他の制限事項については、クラウド表のノートを参照してください。
-
DBMS_CLOUD
パッケージは実行者権限のパッケージです。DBMS_CLOUD.CREATE_CLOUD_TABLE
プロシージャでは、実行者のスキーマに表のみを作成できます。詳細は、「実行者権限および定義者権限句」を参照してください。
-
DBMS_CLOUD.CREATE_CLOUD_TABLE
プロシージャ・コールのcolumn_list
パラメータには、CREATE TABLE
のDEFAULT
句のように機能するDEFAULT
句を含めることができます。詳細は、CREATE TABLEを参照してください。たとえば、次のとおりです。
BEGIN
DBMS_CLOUD.CREATE_CLOUD_TABLE
( table_name => 'CLOUD_TABLE_TEST_DEFAULT', column_list => 'I INTEGER, STR2 VARCHAR2(32) DEFAULT ''ABC'''); END; /その後、デフォルト値で挿入できます。たとえば、次のとおりです。
INSERT INTO cloud_table_test_default (i) VALUES (1); 1 row created. INSERT INTO cloud_table_test_default VALUES (2, default); 1 row created. INSERT INTO cloud_table_test_default VALUES (3, null); 1 row created. INSERT INTO cloud_table_test_default VALUES (4, 'xyz'); 1 row created. COMMIT; Commit complete. SELECT * FROM cloud_table_test_default ORDER BY i; I STR2 - ---- 1 ABC 2 ABC 3 null 4 xyz
親トピック: クラウド表を使用したロギングおよび診断情報の格納