Oracle Database 在專用 Exadata 基礎架構上的 Autonomous Database 功能

本文提供有關在 Autonomous Database on Dedicated Exadata Infrastructure 中使用 Oracle Database 功能和選項的資訊。

如需 Autonomous Database Serverless 部署中的同等資訊,請參閱 Autonomous Database for Experienced Database Users

您可以根據父項自治式容器資料庫 (ACD) 的資料庫軟體版本,在 Oracle Database 19c 或 Oracle Database 23ai 佈建 Autonomous Database 。例如,若要使用 Oracle Database 23ai 建立 Autonomous Database ,您必須選擇 Oracle 資料庫軟體版本為 23ai 的 ACD。如需這些資料庫版本支援的資料庫功能完整清單,請參閱 Oracle Help Center 上的 Oracle Database 23aiOracle Database 19c

Autonomous Database 可為您設定和最佳化資料庫。您不需要執行設定資料庫的管理作業。本服務中不提供僅用於資料庫管理的 SQL 命令。同樣地,其他管理介面和公用程式 (例如 RMAN) 也無法使用。

讓我們討論 Oracle 資料庫在 Autonomous Database 中如何處理一些主要功能:

  • 資料和暫時表格空間:系統會自動設定資料庫的預設資料和暫時表格空間。預設資料表格空間的名稱是 DATA。
  • 資料庫字元集:資料庫字元集為 Unicode AL32UTF8。
  • 儲存的資料加密:儲存的資料會使用 AES256 (進階加密標準 256 位元加密金鑰) 演算法進行加密。

    附註:

    Autonomous Database 在 2021 年 9 月之前建立,預設使用 AES128 演算法。
    如有需要,您可以使用 ALTER TABLESPACE 命令來變更表格空間的加密演算法。例如,若要將 DATA 表格空間的加密演算法變更為 AES256,請輸入:
    ALTER TABLESPACE data ENCRYPTION ONLINE USING 'AES256' REKEY;
  • 資料壓縮:對於 Autonomous Transaction Processing 工作負載,預設不會啟用壓縮。對於 Autonomous Data Warehouse 工作負載,所有表格預設會啟用混合分欄壓縮

    使用 CREATE TABLEALTER TABLE 命令中的 table_compression 子句啟用或停用壓縮,或為表格指定不同的壓縮方法。

  • 資料庫存取:您沒有直接存取資料庫節點或本機檔案系統,以及 SYSTEM 或 SYSAUX 表格空間。
  • 平行執行:依照預設,不會對 Autonomous Transaction Processing 工作負載啟用平行執行 (SQL 敘述句內的平行執行)。不過,對於 Autonomous Data Warehouse 工作負載,預設會啟用平行執行,且 SQL 敘述句的平行程度會根據系統中的 CPU 數目,以及連線至資料庫時所使用的資料庫服務來設定。
    • 您可以使用 parallel_clause 或提示來修改表格或索引的平行程度。例如,您可以使用下列 SQL 命令在階段作業中停用平行 DML:
      ALTER SESSION DISABLE PARALLEL DML;

      請參閱 Oracle Database 19c VLDB and Partitioning GuideOracle Database 23ai VLDB and Partitioning Guide,瞭解有關平行 DML 作業的詳細資訊。

    • 如果您手動建立索引並指定 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 包含下列功能:

ADMIN 使用者和 SYS 使用者

Oracle Autonomous Database on Dedicated Exadata Infrastructure 中,預先定義的管理使用者為 ADMIN。在 Oracle Database 中,預先定義的管理使用者為 SYS。這兩個使用者在其個別的資料庫中具有相同的目的,但是它們並不相同而且也沒有相同的權限集。

由於 Oracle Autonomous Database on Dedicated Exadata Infrastructure 會實施安全控制並為您執行管理資料庫任務,因此 ADMIN 使用者的權限與 SYS 使用者沒有相同的權限。以下是 ADMIN 使用者沒有權限的清單,但是 Oracle Database 中的 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 使用者無法將其用於通用使用者綱要。

與 Oracle 內部部署資料庫不同,其中 ANY 關鍵字適用於 SYS 以外的所有使用者, 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 19c ReferenceOracle Database 23ai Reference 瞭解詳細資訊。
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
OPEN_CURSORS (Allowed range of values are 1000 to 4000)
OPEN_LINKS (You must set SCOPE=SPFILE and restart the Autonomous Database after modifying this parameter)
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 Select a Time Zone for SYSDATE on Autonomous Database
TIME_ZONE
UNDO_RETENTION (min=300 and max=86400)

SYSDATE_AT_DBTIMEZONE 選取 Autonomous Database 上 SYSDATE 的時區

SYSDATE_AT_DBTIMEZONE 可針對呼叫 SYSDATESYSTIMESTAMP 時傳回的日期和時間值,在階段作業中啟用特殊處理。

SYSDATE_AT_DBTIMEZONE 的值而定,您會看到以預設 Autonomous Database 時區 Coordinated Universal Time (UTC) 為基礎的日期和時間,或根據您在資料庫中設定的時區而定。

特性 描述
參數類型 布林
預設值 FALSE
可修改 ALTER SESSION, ALTER SYSTEM
值範圍 TRUE | FALSE

預設 Autonomous Database 時區

預設的 Autonomous Database 時區為「世界標準時間」(UTC),依預設,對 SYSDATESYSTIMESTAMP 的呼叫會傳回 UTC 中的日期與時間。

若要變更資料庫時區,您可以執行下列陳述式。此範例會將資料庫時區設為 UTC-5

ALTER DATABASE SET TIME_ZONE='-05:00';

附註:

您必須重新啟動 Autonomous Database 執行處理,才能讓變更生效。

設定資料庫時區之後,依照預設,SYSDATESYSTIMESTAMP 會繼續以 UTC 傳回日期和時間 (SYSDATE_AT_DBTIMEZONE 預設為 FALSE)。如果您在階段作業中將 SYSDATE_AT_DBTIMEZONE 設為 TRUE,則 SYSDATESYSTIMESTAMP 會傳回資料庫時區。

請參閱在 Oracle Database 中設定資料庫時區 19c在 Oracle Database 23ai 中設定資料庫時區,瞭解在 ALTER DATABASE 使用 SET TIME_ZONE 子句的詳細資訊。

在階段作業中使用 SYSDATE_AT_DBTIMEZONE

當階段作業中的 SYSDATE_AT_DBTIMEZONEFALSE 時,呼叫 SYSDATESYSTIMESTAMP 會根據預設的 Autonomous Database 時區 Coordinated Universal Time (UTC) 傳回值。

當階段作業中的 SYSDATE_AT_DBTIMEZONETRUE 時,呼叫 SYSDATESYSTIMESTAMP 會根據資料庫時區傳回日期與時間。

附註:

SYSDATE_AT_DBTIMEZONE 設為 TRUE 只會影響在應用程式 SQL 中使用 SYSDATESYSTIMESTAMP 作為運算子 (例如,在查詢、DML 和 CTAS 作業中)。使用此參數時,建議您的從屬端 / 階段作業時區與您的資料庫時區相符。

範例

下列範例會根據 SYSDATE_AT_DBTIMEZONE 參數值,傳回兩個不同時區的日期和時間:

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 工作表中執行 SYSDATESYSTIMESTAMP 查詢時,傳回的時間和日期值會以 UTC (SYSDATE_AT_DBTIMEZONE 參數設為 TRUEFALSE 時)。若要在「資料庫動作」中運作時取得資料庫時區,請使用 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