專用 Exadata 基礎架構上的自治式 AI 資料庫 Oracle Database 功能
本文提供在專用 Exadata 基礎架構上使用自治式 AI 資料庫中的 Oracle AI Database 功能和選項的相關資訊。
如需 Autonomous AI Database Serverless 部署中的等效資訊,請參閱 Autonomous AI Database for Experienced Database Users 。
您可以根據其父項自治式容器資料庫 (ACD) 的資料庫軟體版本,在 Oracle Database 19c 或 Oracle AI Database 26ai 佈建自治式 AI 資料庫。例如,若要使用 Oracle AI Database 26ai 建立自治式 AI 資料庫,您必須選擇 Oracle 資料庫軟體版本為 26ai 的 ACD。如需這些資料庫版本所支援的完整資料庫功能清單,請參閱 Oracle Help Center 上的 Oracle Database 26ai 或 Oracle Database 19c 。
自治式 AI 資料庫可為您設定並最佳化資料庫。您不需要執行管理作業來設定資料庫。此服務不提供僅用於資料庫管理的 SQL 命令。同樣地,其他管理介面和公用程式 (例如 RMAN) 也無法使用。
讓我們討論 Oracle 資料庫在自治式 AI 資料庫中的部分主要功能:
-
資料和暫時表格空間:會自動設定資料庫的預設資料和暫時表格空間。預設資料表格空間的名稱是 DATA。
-
資料庫字元集:資料庫字元集是 Unicode AL32UTF8。
-
預存資料加密:預存資料會使用 AES256 (進階加密標準 256 位元加密金鑰) 演算法進行加密。
注意:在 2021 年 9 月之前建立的自治式 AI 資料庫預設會使用 AES128 演算法。
如有需要,您可以使用 ALTER TABLESPACE 命令來變更表格空間的加密演算法。例如,若要將 DATA 表格空間的加密演算法變更為 AES256,請輸入:
ALTER TABLESPACE data ENCRYPTION ONLINE USING 'AES256' REKEY;
-
資料壓縮:對於自治式 AI 異動處理工作負載,預設不會啟用壓縮。對於自治式 AI 湖倉一體工作負載,預設會對所有表格啟用混合分欄壓縮。
啟用或停用壓縮,或使用
CREATE TABLE或ALTER TABLE命令中的table_compression子句為表格指定不同的壓縮方法。 -
資料庫存取:您無法直接存取資料庫節點、本機檔案系統、SYSTEM 或 SYSAUX 表格空間。
-
平行執行:依照預設,不會對「自治式 AI 交易處理」工作負載啟用平行執行 (SQL 敘述句內的平行執行)。不過,對於自治式 AI 湖倉一體工作負載,預設會啟用平行執行,而 SQL 敘述句的平行程度則是根據系統中的 CPU 數目和連線到資料庫時所使用的資料庫服務來設定。
-
您可以使用
parallel_clause或使用提示來修改表格或索引的平行程度。例如,您可以使用下列 SQL 命令,在您的階段作業中停用平行 DML:ALTER SESSION DISABLE PARALLEL DML;如需平行 DML 作業的詳細資訊,請參閱 Oracle Database 19c VLDB and Partitioning Guide 或 Oracle Database 26ai VLDB and Partitioning Guide。
-
如果您手動建立索引並指定 parallel_clause ,則建立索引之後,仍會保留平行屬性。在此情況下,一般使用者無法以平行方式執行 SQL 敘述句。將 parallel_clause 值變更為 NOPARALLEL 或將 PARALLEL 屬性設為 1 以指定序列執行:
ALTER INDEX *index_name* NOPARALLEL;或
ALTER INDEX *index_name* PARALLEL 1;
-
最新的自治式 AI 資料庫功能
自治式 AI 資料庫包含最新的 Oracle Database 功能。
自主 AI 資料庫包括以下功能:
-
根據應用程式工作負載中的變更,自動執行索引管理作業,例如建立、重建及刪除索引。請參閱 Oracle Database 19c Administrator's Guide 中的 Managing Auto Indexes 或 Oracle Database 26ai Administrator's Guide ,瞭解詳細資訊。
-
在傳統 DML 工作負載執行時自動收集即時統計資料。因為統計資料在
DBMS_STATS工作之間可能已過時,所以為傳統 DML 收集線上統計資料可協助最佳化處理程式產生更多的最佳計畫。線上統計資料旨在減少過時統計資料會讓最佳化處理程式誤導的可能性。您可以透過 PL/SQL 套裝程式、資料說明視觀表以及提示,管理和存取傳統 DML 的統計資料。如需更多資訊,請參閱 Oracle Database 19c SQL Tuning Guide 或 Oracle Database 26ai SQL Tuning Guide 中的 Real-Time Statistics 。 -
以更頻繁的方式自動收集統計資料。高頻率自動最佳化處理程式統計資料收集可補足標準統計資料收集工作。依照預設,收集每 15 分鐘就會進行一次,這表示統計資料有較少過時的時間。請參閱 Oracle Database 19c SQL Tuning Guide 或 Oracle Database 26ai SQL Tuning Guide 中的 Configuring High-Frequency Automatic Optimizer Statistics Collection ,瞭解詳細資訊。
-
隔離「資源管理程式」針對在 Oracle 資料庫中耗用過多系統資源而終止的 SQL 敘述句執行計畫。您可以使用
DBMS_SQLQ套裝程式中的程序,指定 SQL 敘述句資源使用量的限制,以設定其隔離設定值。當 SQL 敘述句超過上述任一資源使用量限制時,就會終止 SQL 敘述句並隔離執行計畫。如此一來,資料庫就會防止高資源的 SQL 敘述句重複執行。請參閱 Oracle Database 19c Administrator's Guide 或 Oracle Database 26ai Administrator's Guide 中的 Quarantine for Execution Plans for SQL Statements Consuming Excessive System Resources ,瞭解詳細資訊。 -
最佳化應用程式 (例如 Internet of Things (IoT) 應用程式) 的高頻單列插入。請參閱 Oracle Database 19c Performance Tuning Guide 或 Oracle Database 26ai Performance Tuning Guide 中的 Enabling High Performance Data Streaming With the Memoptimized Rowstore 。
ADMIN 使用者與 SYS 使用者
在專用 Exadata 基礎架構上的 Oracle Autonomous AI Database 中,預先定義的管理使用者為 ADMIN。在 Oracle Database 中,預先定義的管理使用者為 SYS。雖然這兩個使用者在其各自的資料庫中提供相同的用途,但它們並不相同,而且沒有相同的權限集。
由於專用 Exadata 基礎架構上的 Oracle Autonomous AI Database 會實施安全控制並為您執行管理資料庫作業,因此 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 TABLE、CREATE ANY PROCEDURE) 的所有系統權限都會受到 COMMON_SCHEMA_ACCESS 鎖定,而 ADMIN 使用者則無法將它用於通用使用者綱要。
不同於內部部署的 Oracle 資料庫,其中 ANY 關鍵字適用於除 SYS 以外的所有使用者, ANY 權限僅適用於自治式 AI 資料庫中的非通用使用者。
注意事項
-
若要尋找通用使用者清單,您可以以 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;
資料庫初始化參數
自治式 AI 資料庫會在您佈建資料庫時自動設定資料庫初始化參數。您不需要設定任何初始化參數,即可開始使用服務。然而,如有需要,您可以修改某些參數。
可修改的初始化參數清單
注意:按一下下列清單中的初始化參數,即可進一步瞭解初始化參數。如需下方無法點選的參數,請參閱 Oracle Database 19c Reference 或 Oracle Database 26ai 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 AI Database
TIME_ZONE
UNDO_RETENTION (min=300 and max=86400)
SYSDATE_AT_DBTIMEZONE 選取自治式 AI 資料庫 SYSDATE 的時區
SYSDATE_AT_DBTIMEZONE 可針對呼叫 SYSDATE 與 SYSTIMESTAMP 所傳回的日期與時間值,在階段作業中啟用特殊處理。
視 SYSDATE_AT_DBTIMEZONE 的值而定,您可以根據預設的「自治式 AI 資料庫」時區、「世界協調時間 (UTC)」或根據您在資料庫中設定的時區來查看日期和時間。
| 特性 | 描述 | |
|---|---|---|
| 參數類型 | 布林 | |
| 預設值 | FALSE |
|
| 可修改 | ALTER SESSION, ALTER SYSTEM |
|
| 值範圍 | TRUE |
FALSE |
預設自治式 AI 資料庫時區
預設的自治式 AI 資料庫時區為世界標準時間 (UTC),預設呼叫 SYSDATE 和 SYSTIMESTAMP 會傳回 UTC 中的日期和時間。
若要變更資料庫時區,您可以執行下列敘述句。
此範例會將資料庫時區設為 UTC-5。
ALTER DATABASE SET TIME_ZONE='-05:00';
此範例設定美國東岸的資料庫時區:America/New_York,時間會在 DST 交換器自動調整:
ALTER DATABASE SET TIME_ZONE='America/New_York';
注意:您必須重新啟動「自治式 AI 資料庫」執行處理,變更才會生效。
設定資料庫時區之後,SYSDATE 和 SYSTIMESTAMP 預設會繼續以 UTC 傳回日期和時間 (SYSDATE_AT_DBTIMEZONE 預設為 FALSE)。如果您在階段作業中將 SYSDATE_AT_DBTIMEZONE 設為 TRUE,則 SYSDATE 和 SYSTIMESTAMP 會傳回資料庫時區。
請參閱 Oracle Database 19c 中的設定資料庫時區或 Oracle Database 26ai ,瞭解在 ALTER DATABASE 使用 SET TIME_ZONE 子句的詳細資訊。
在階段作業中使用 SYSDATE_AT_DBTIMEZONE
階段作業中的 SYSDATE_AT_DBTIMEZONE 為 FALSE 時,呼叫 SYSDATE 和 SYSTIMESTAMP 會根據預設的「自治式 AI 資料庫」時區 (國際標準時間 (UTC) 傳回值。
階段作業中的 SYSDATE_AT_DBTIMEZONE 為 TRUE 時,對 SYSDATE 或 SYSTIMESTAMP 的呼叫會根據資料庫時區傳回日期與時間。
注意:將 SYSDATE_AT_DBTIMEZONE 設為 TRUE 只會影響在應用程式 SQL 中使用 SYSDATE 和 SYSTIMESTAMP 作為運算子 (例如,在查詢、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 工作表」中執行 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