専用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機能が含まれています。 - ADMINユーザーおよびSYSユーザー
Oracle Autonomous Database on Dedicated Exadata Infrastructureでの事前定義済の管理ユーザーは、ADMINです。Oracle Databaseでの事前定義済の管理ユーザーは、SYSです。この2人のユーザーはそれぞれのデータベースで同じ目的を果たしますが、同一ではなく、持っている権限セットが異なります。 - データベース初期化パラメータ
データベースをプロビジョニングすると、Autonomous Databaseによってデータベース初期化パラメータが自動的に構成されます。サービスの使用を開始するために初期化パラメータを設定する必要はありません。ただし、一部のパラメータは必要に応じて変更できます。 - SYSDATE_AT_DBTIMEZONE
SYSDATE_AT_DBTIMEZONE
は、SYSDATE
およびSYSTIMESTAMP
へのコールで返される日時値に対するセッションでの特別な処理を有効にします。
親トピック: 経験豊富なデータベース・ユーザーの機能
最新の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 TABLE
、CREATE 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によってデータベース初期化パラメータが自動的に構成されます。サービスの使用を開始するために初期化パラメータを設定する必要はありません。ただし、一部のパラメータは必要に応じて変更できます。
変更可能な初期化パラメータのリスト
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_DBTIMEZONE
をTRUE
に設定すると、SYSDATE
およびSYSTIMESTAMP
はデータベースのタイム・ゾーンを返します。
ALTER DATABASE
でSET TIME_ZONE
句を使用する方法の詳細は、データベースのタイム・ゾーンの設定を参照してください。
セッションでのSYSDATE_AT_DBTIMEZONEの使用
セッションでSYSDATE_AT_DBTIMEZONE
がFALSE
の場合、SYSDATE
およびSYSTIMESTAMP
をコールすると、デフォルトのAutonomous Databaseタイム・ゾーンであるCoordinated Universal Time (UTC)に基づいて値が返されます。
セッションでSYSDATE_AT_DBTIMEZONE
がTRUE
の場合、SYSDATE
またはSYSTIMESTAMP
をコールすると、データベースのタイム・ゾーンに基づいて日付と時刻が返されます。
SYSDATE_AT_DBTIMEZONE
をTRUE
に設定すると、アプリケーション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