専用Exadataインフラストラクチャ上のAutonomous DatabaseのOracle Database機能

この記事では、専用Exadataインフラストラクチャ上のAutonomous DatabaseでのOracle Databaseの機能およびオプションの使用方法について説明します。

Autonomous Databaseサーバーレス・デプロイメントでの同等の情報については、経験豊富なデータベース・ユーザーのためのAutonomous Databaseを参照してください。

Autonomous Databaseによってデータベースが自動的に構成および最適化されます。データベースを構成するために管理操作を実行する必要はありません。データベース管理にのみ使用されるSQLコマンドは、このサービスでは使用できません。同様に、RMANなどの他の管理インタフェースおよび管理ユーティリティも使用できません。

Oracleデータベースの主要な機能の一部がAutonomous Databaseでどのように処理されますか:

  • データおよび一時表領域: データベースのデフォルトのデータおよび一時表領域は自動的に構成されます。デフォルトのデータ表領域の名前はDATAです。
  • データベース・キャラクタ・セット: データベース・キャラクタ・セットはUnicode AL32UTF8です。
  • 格納されるデータの暗号化:格納されるデータは、AES256 (Advanced Encryption Standard 256ビット暗号キー)アルゴリズムを使用して暗号化されます。
    ノート

    2021年9月より前に作成されたAutonomous Databasesでは、デフォルトでAES128アルゴリズムが使用されます。
    必要に応じて、ALTER TABLESPACEコマンドを使用して、表領域の暗号化アルゴリズムを変更できます。たとえば、DATA表領域の暗号化アルゴリズムをAES256に変更するには、次のように入力します:
    ALTER TABLESPACE data ENCRYPTION ONLINE USING 'AES256' REKEY;
  • データ圧縮: Autonomous Transaction Processingワークロードの場合、圧縮はデフォルトで有効になっていません。Autonomous Data Warehouseワークロードの場合、すべての表に対してハイブリッド列圧縮がデフォルトで有効になっています。

    圧縮を有効または無効にしたり、表に対して異なる圧縮方法を指定するには、CREATE TABLEまたはALTER TABLEコマンドでtable_compression句を使用します。

  • データベース・アクセス: データベース・ノードまたはローカル・ファイル・システム、およびSYSTEMまたはSYSAUX表領域に直接アクセスすることはできません。
  • パラレル実行: Autonomous Transaction Processingワークロードの場合、デフォルトでパラレル実行(SQL文内の並列度)は有効になっていません。ただし、Autonomous Data Warehouseワークロードの場合は、デフォルトでパラレル実行が有効になっており、SQL文の並列度は、システム内のCPU数と、データベースへの接続時に使用するデータベース・サービスに基づいて設定されます。
    • 表または索引の並列度は、parallel_clauseを使用するか、ヒントを使用して変更できます。たとえば、次のSQLコマンドを使用して、セッション内のパラレルDMLを無効にできます:
      ALTER SESSION DISABLE PARALLEL DML;

      パラレルDML操作の詳細は、『Oracle Database VLDBおよびパーティショニング・ガイド』を参照してください。

    • 手動で索引を作成し、parallel_clauseを指定した場合、索引の作成後もパラレル属性が残ります。この場合、エンドユーザーに気づかれずにSQL文がパラレルに実行される可能性があります。シリアル実行を指定するには、parallel_clause値をNOPARALLELに変更するか、PARALLEL属性を1に設定します:
       ALTER INDEX index_name NOPARALLEL;

      または

       ALTER INDEX index_name PARALLEL 1; 

最新のAutonomous Database機能

Autonomous Databaseには最新のOracle Database機能が含まれています。

Autonomous Databaseには、次の機能が含まれています:

  • アプリケーション・ワークロードの変更に基づいて、索引の作成、再構築、削除などの索引管理タスクを自動化します。詳細は、『Oracle Database管理者ガイド』自動索引の管理に関する項を参照してください。

  • 従来のDMLワークロードの実行中にリアルタイム統計を自動収集します。統計は、DBMS_STATSジョブの後、次のDBMS_STATSジョブまでの間に古くなっている可能性があるため、従来のDMLに対してオンライン統計収集を行うことによって、オプティマイザがより最適な計画を生成しやすくなります。オンライン統計は、古い統計によってオプティマイザが判断を誤る可能性を減らすことを目的としています。PL/SQLパッケージ、データ・ディクショナリ・ビューおよびヒントを使用して、従来のDMLの統計の管理およびアクセスができます。詳細は、『Oracle Database SQLチューニング・ガイド』リアルタイム統計に関する項を参照してください。

  • より頻繁に統計を自動収集します。高頻度自動オプティマイザ統計収集によって標準の統計収集ジョブが補完されます。デフォルトでは、この収集は15分ごとに実行されます。つまり、統計が失効するまでの時間が短くなります。詳細は、『Oracle Database SQLチューニング・ガイド』高頻度自動オプティマイザ統計収集の構成に関する項を参照してください。

  • Oracleデータベース内の過剰なシステム・リソースを消費するためにリソース・マネージャによって終了されるSQL文の実行計画を隔離します。SQL文の隔離設定を構成するには、DBMS_SQLQパッケージ内のプロシージャを使用してリソース消費の制限を指定します。SQL文がこれらのリソース消費制限のいずれかを超えると、SQL文は終了し、実行計画は隔離されます。このようにして、データベースは、高リソースのSQL文が繰り返し実行されないようにします。詳細は、『Oracle Database管理者ガイド』過剰なシステム・リソースを消費するSQL文の実行計画の隔離に関する項を参照してください。

  • Internet of Things (IoT)アプリケーションなどのアプリケーションに対して高頻度単一行挿入を最適化します。『Oracle Databaseパフォーマンス・チューニング・ガイド』Memoptimizeされた行ストアを使用した高パフォーマンス・データ・ストリーミングの有効化に関する項を参照してください。

ADMINユーザーとSYSユーザー

Oracle Autonomous Database on Dedicated Exadata Infrastructureの場合、事前定義済の管理ユーザーはADMINです。Oracle Databaseでの事前定義済の管理ユーザーは、SYSです。この2人のユーザーはそれぞれのデータベースで同じ目的を果たしますが、同一ではなく、持っている権限セットが異なります。

Oracle Autonomous Database on Dedicated Exadata Infrastructureではセキュリティ制御が適用され、管理データベース・タスクが自動的に実行されるため、ADMINユーザーにはSYSユーザーほど多くの権限がありません。Oracle DatabaseでADMINユーザーになくSYSユーザーにはある権限を次に示します:

ALTER LOCKDOWN PROFILE
BACKUP ANY TABLE
BECOME USER
CREATE ANY JOB
CREATE ANY LIBRARY
CREATE LIBRARY
CREATE LOCKDOWN PROFILE
CREATE PLUGGABLE DATABASE
DEQUEUE ANY QUEUE
DROP LOCKDOWN PROFILE
EM EXPRESS CONNECT
ENQUEUE ANY QUEUE
EXPORT FULL DATABASE
FLASHBACK ANY TABLE
FLASHBACK ARCHIVE ADMINISTER
GRANT ANY PRIVILEGE
GRANT ANY ROLE
IMPORT FULL DATABASE
INHERIT ANY PRIVILEGES
LOGMINING
MANAGE ANY FILE GROUP
MANAGE ANY QUEUE
MANAGE FILE GROUP
USE ANY JOB RESOURCE
USE ANY SQL TRANSLATION PROFILE

ANYキーワードを持つすべてのシステム権限(SELECT ANY TABLECREATE ANY PROCEDUREなど)はCOMMON_SCHEMA_ACCESSロックダウンを尊重し、ADMINユーザーは共通ユーザー・スキーマに対してそれを使用できません。

ANYキーワードがSYSを除くすべてのユーザーに適用されるオンプレミス上のOracleデータベースとは異なり、ANY権限は、Autonomous Databaseの非共通ユーザーに対してのみ機能します。

ヒント:

共通ユーザーのリストを検索するには、ADMINユーザーとして次の問合せを実行できます:
select username 
from dba_users 
where common ='YES' 
order by username;

ヒント:

ANYキーワードで使用できる権限のリストを表示するには、ADMINユーザーとして次の問合せを実行できます:
select distinct(privilege)
from dba_sys_privs 
where grantee like 'ADMIN' and privilege like '%ANY%' 
order by privilege;

データベース初期化パラメータ

データベースをプロビジョニングすると、Autonomous Databaseによってデータベース初期化パラメータが自動的に構成されます。サービスの使用を開始するために初期化パラメータを設定する必要はありません。ただし、一部のパラメータは必要に応じて変更できます。

変更可能な初期化パラメータのリスト

ノート

詳細は、次のリストの初期化パラメータをクリックしてください。クリックできないパラメータは、『Oracle Databaseリファレンス』を参照してください。
ALLOW_ROWID_COLUMN_TYPE
APPROX_FOR_AGGREGATION
APPROX_FOR_COUNT_DISTINCT
APPROX_FOR_PERCENTILE
AWR_PDB_AUTOFLUSH_ENABLED
CONTAINER_DATA
CURRENT_SCHEMA (Session only by using ALTER SESSION)
CURSOR_SHARING
DB_BLOCK_CHECKING
DDL_LOCK_TIMEOUT
FIXED_DATE
GLOBAL_NAMES
HEAT_MAP
IGNORE_SESSION_SET_PARAM_ERRORS
INMEMORY_OPTIMIZED_ARITHMETIC (Allowed only with ALTER SYSTEM)
INMEMORY_QUERY (Allowed with ALTER SYSTEM and ALTER SESSION)
JOB_QUEUE_PROCESSES (You can only lower its value or bring it back to the original value)
LDAP_DIRECTORY_ACCESS
MAX_IDLE_TIME
NLS_CALENDAR
NLS_COMP
NLS_CURRENCY
NLS_DATE_FORMAT
NLS_DATE_LANGUAGE
NLS_DUAL_CURRENCY
NLS_ISO_CURRENCY
NLS_LANGUAGE
NLS_LENGTH_SEMANTICS
NLS_NCHAR_CONV_EXCP
NLS_NUMERIC_CHARACTERS
NLS_SORT
NLS_TERRITORY
NLS_TIME_FORMAT
NLS_TIME_TZ_FORMAT
NLS_TIMESTAMP_FORMAT
NLS_TIMESTAMP_TZ_FORMAT
OPTIMIZER_CAPTURE_SQL_PLAN_BASELINES (Session only by using ALTER SESSION)
OPTIMIZER_IGNORE_HINTS
OPTIMIZER_IGNORE_PARALLEL_HINTS
OPTIMIZER_INMEMORY_AWARE (Allowed with ALTER SYSTEM and ALTER SESSION)
OPTIMIZER_MODE
PARALLEL_MIN_DEGREE
PARALLEL_DEGREE_LIMIT
PLSCOPE_SETTINGS
PLSQL_CCFLAGS
PLSQL_DEBUG
PLSQL_OPTIMIZE_LEVEL
PLSQL_WARNINGS
QUERY_REWRITE_INTEGRITY
RECYCLEBIN
RESULT_CACHE_MODE
SESSION_EXIT_ON_PACKAGE_STATE_ERROR
SQL_TRACE (Allowed only with ALTER SESSION)
STATISTICS_LEVEL (Session only by using ALTER SESSION)
SYSDATE_AT_DBTIMEZONE
TIME_ZONE
UNDO_RETENTION (min=300 and max=86400)

SYSDATE_AT_DBTIMEZONE

SYSDATE_AT_DBTIMEZONEは、SYSDATEおよびSYSTIMESTAMPへのコールで返される日時値に対するセッションでの特別な処理を有効にします。

SYSDATE_AT_DBTIMEZONEの値に応じて、デフォルトのAutonomous Databaseタイム・ゾーン、協定世界時(UTC)、またはデータベースに設定したタイム・ゾーンに基づく日時が表示されます。

プロパティ 説明
パラメータ型 Boolean
デフォルトの値 FALSE
変更可能 ALTER SESSION, ALTER SYSTEM
値の範囲 TRUE | FALSE

デフォルトのAutonomous Databaseタイムゾーン

デフォルトのAutonomous Databaseタイム・ゾーンは、Coordinated Universal Time (UTC)であり、デフォルトではSYSDATEおよびSYSTIMESTAMPをコールすると、日付と時刻がUTCで返されます。

データベースのタイム・ゾーンを変更するには、次の文を実行します。この例では、データベースのタイム・ゾーンをUTC-5に設定しています。

ALTER DATABASE SET TIME_ZONE='-05:00';
ノート

変更を有効にするには、Autonomous Databaseインスタンスを再起動する必要があります。

データベースのタイム・ゾーンの設定後、デフォルトでは、SYSDATEおよびSYSTIMESTAMPは引き続きUTCで日時を返します(SYSDATE_AT_DBTIMEZONEはデフォルトでFALSEです)。セッションでSYSDATE_AT_DBTIMEZONETRUEに設定すると、SYSDATEおよびSYSTIMESTAMPはデータベースのタイム・ゾーンを返します。

ALTER DATABASESET TIME_ZONE句を使用する方法の詳細は、データベースのタイム・ゾーンの設定を参照してください。

セッションでのSYSDATE_AT_DBTIMEZONEの使用

セッションでSYSDATE_AT_DBTIMEZONEFALSEの場合、SYSDATEおよびSYSTIMESTAMPをコールすると、デフォルトのAutonomous Databaseタイム・ゾーンであるCoordinated Universal Time (UTC)に基づいて値が返されます。

セッションでSYSDATE_AT_DBTIMEZONETRUEの場合、SYSDATEまたはSYSTIMESTAMPをコールすると、データベースのタイム・ゾーンに基づいて日付と時刻が返されます。

ノート

SYSDATE_AT_DBTIMEZONETRUEに設定すると、アプリケーションSQLの演算子としてのSYSDATEおよびSYSTIMESTAMPの使用にのみ影響します(たとえば、問合せ、DMLおよびCTAS操作の場合)。このパラメータを使用する場合は、クライアント/セッションのタイムゾーンがデータベースのタイムゾーンと一致することをお薦めします。

次の例では、SYSDATE_AT_DBTIMEZONEパラメータ値に基づいて、2つの異なるタイム・ゾーンの日時が返されます:

SQL> SELECT DBTIMEZONE FROM DUAL;

DBTIMEZONE
_____________
-05:00

SQL> ALTER SESSION SET SYSDATE_AT_DBTIMEZONE=FALSE;

Session altered.

SQL> SELECT SYSTIMESTAMP FROM DUAL;

SYSTIMESTAMP
______________________________________
27-JAN-22 06.59.45.708082000 PM GMT

SQL> ALTER SESSION SET SYSDATE_AT_DBTIMEZONE=TRUE;

Session altered.

SQL> SELECT SYSTIMESTAMP FROM DUAL;

SYSTIMESTAMP
_________________________________________
27-JAN-22 02.14.47.578946000 PM -05:00 
ノート

データベース・アクションのSQLワークシートでSYSDATEまたはSYSTIMESTAMP問合せを実行すると、返される日時の値はUTCになります(SYSDATE_AT_DBTIMEZONEパラメータがTRUEまたはFALSEに設定されている場合)。データベース・アクションでの作業時にデータベースのタイム・ゾーンを取得するには、次のようにTO_CHAR()を使用します:

SQL> SELECT TO_CHAR(SYSTIMESTAMP,'YYYY-MM-DD"T"HH24:MI:SS TZH":"TZM') FROM DUAL;

TO_CHAR(SYSTIMESTAMP,'YYYY-MM-DD"T"HH24:MI:SSTZH":"TZM')
___________________________________________________________
2022-01-27T14:15:00 -05:00