本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
管理 Oracle 資料庫執行個體的 RDS_X$ 檢視
您可能需要存取只能由 SYS 存取的 SYS.X$ 固定資料表。若要在合格 X$ 資料表上建立 SYS.RDS_X$ 檢視,請使用 rdsadmin.rdsadmin_util 套件中的程序。您的主要使用者會自動獲得 RDS_X$ 檢視的 SELECT … WITH GRANT OPTION 權限。
這些 rdsadmin.rdsadmin_util 程序適用於下列情況:
-
從未升級的現有資料庫執行個體,並使用以下版本:
-
21.0.0.0.ru-2023-10.rur-2023-10.r1和更新的 21c 版本 -
19.0.0.0.ru-2023-10.rur-2023-10.r1和更新的 19c 版本
-
-
您建立的任何新資料庫執行個體
-
您已升級的任何現有資料庫執行個體
重要
在內部,rdsadmin.rdsadmin_util 套件會在 X$ 資料表上建立檢視。這些 X$ 資料表是 Oracle Database 文件中未描述的內部系統物件。建議您在非生產資料庫中測試特定檢視,並且只在 Oracle Support 的指導下,在生產資料庫中建立檢視。
列出可在 RDS_X$ 檢視中使用的 X$ 固定資料表
若要列出可在 RDS_X$ 檢視中使用的 X$ 資料表,請使用 RDS 程序 rdsadmin.rdsadmin_util.list_allowed_sys_x$_views。此程序不接受任何參數。下列陳述式會列出所有符合資格的 X$ 資料表 (包含範例輸出)。
SQL> SET SERVEROUTPUT ON SQL> SELECT * FROM TABLE(rdsadmin.rdsadmin_util.list_allowed_sys_x$_views); 'X$BH' 'X$K2GTE' 'X$KCBWBPD' 'X$KCBWDS' 'X$KGLLK' 'X$KGLOB' 'X$KGLPN' 'X$KSLHOT' 'X$KSMSP' 'X$KSPPCV' 'X$KSPPI' 'X$KSPPSV' 'X$KSQEQ' 'X$KSQRS' 'X$KTUXE' 'X$KQRFP'
符合資格 X$ 資料表的清單可能會隨著時間而變更。為了確保您的符合資格 X$ 固定資料表清單是最新的,請定期重新執行 list_allowed_sys_x$_views。
建立 SYS.RDS_X$ 檢視
若要在符合資格 X$ 資料表上建立 RDS_X$ 檢視,請使用 RDS 程序 rdsadmin.rdsadmin_util.create_sys_x$_view。您只能為 rdsadmin.rdsadmin_util.list_allowed_sys_x$_views 的輸出中列出的資料表建立檢視。create_sys_x$_view 程序接受下列參數。
| 參數名稱 | 資料類型 | 預設 | 必要 | 描述 |
|---|---|---|---|---|
|
|
varchar2 |
Null |
是 |
有效的 |
|
|
Boolean |
FALSE |
否 |
指出是否強制建立已存在於 |
下列範例會在 X$KGLOB 資料表上建立 SYS.RDS_X$KGLOB 檢視。檢視名稱的格式為 RDS_。X$tablename
SQL> SET SERVEROUTPUT ON SQL> EXEC rdsadmin.rdsadmin_util.create_sys_x$_view('X$KGLOB'); PL/SQL procedure successfully completed.
下列資料字典查詢會列出 SYS.RDS_X$KGLOB 檢視並顯示其狀態。您的主要使用者會自動獲得此檢視的 SELECT ... WITH GRANT OPTION 權限。
SQL> SET SERVEROUTPUT ON SQL> COL OWNER FORMAT A30 SQL> COL OBJECT_NAME FORMAT A30 SQL> COL STATUS FORMAT A30 SQL> SET LINESIZE 200 SQL> SELECT OWNER, OBJECT_NAME, STATUS FROM DBA_OBJECTS WHERE OWNER = 'SYS' AND OBJECT_NAME = 'RDS_X$KGLOB'; OWNER OBJECT_NAME STATUS ------------------------------ ------------------------------ ------------------------------ SYS RDS_X$KGLOB VALID
重要
X$ 資料表不保證在升級前後保持不變。RDS for Oracle 在引擎升級期間捨棄並重新建立 X$ 資料表上的 RDS_X$ 檢視。然後,它會將 SELECT
... WITH GRANT OPTION 權限授予主要使用者。升級之後,請視需要在對應的 RDS_X$ 檢視上將權限授予資料庫使用者。
列出 SYS.RDS_X$ 檢視
若要列出現有 RDS_X$ 檢視,請使用 RDS 程序 rdsadmin.rdsadmin_util.list_created_sys_x$_views。程序只會列出 create_sys_x$_view 程序建立的檢視。下列範例列出具有對應 RDS_X$ 檢視的 X$ 資料表 (包含範例輸出)。
SQL> SET SERVEROUTPUT ON SQL> COL XD_TBL_NAME FORMAT A30 SQL> COL STATUS FORMAT A30 SQL> SET LINESIZE 200 SQL> SELECT * FROM TABLE(rdsadmin.rdsadmin_util.list_created_sys_x$_views); XD_TBL_NAME STATUS ------------------------------ ------------------------------ X$BH VALID X$K2GTE VALID X$KCBWBPD VALID 3 rows selected.
捨棄 RDS_X$ 檢視
若要捨棄 SYS.RDS_X$ 檢視,請使用 RDS 程序 rdsadmin.rdsadmin_util.drop_sys_x$_view。您只能捨棄 rdsadmin.rdsadmin_util.list_allowed_sys_x$_views 的輸出中列出的檢視。drop_sys_x$_view 程序接受下列參數。
| 參數名稱 | 資料類型 | 預設 | 必要 | 描述 |
|---|---|---|---|---|
|
|
varchar2 |
Null |
是 |
有效的 |
下列範例會捨棄在 X$KGLOB 資料表上建立的 RDS_X$KGLOB 檢視。
SQL> SET SERVEROUTPUT ON SQL> EXEC rdsadmin.rdsadmin_util.drop_sys_x$_view('X$KGLOB'); PL/SQL procedure successfully completed.
下列範例顯示已捨棄 SYS.RDS_X$KGLOB 檢視 (包含範例輸出)。
SQL> SET SERVEROUTPUT ON SQL> COL OWNER FORMAT A30 SQL> COL OBJECT_NAME FORMAT A30 SQL> COL STATUS FORMAT A30 SQL> SET LINESIZE 200 SQL> SELECT OWNER, OBJECT_NAME, STATUS FROM DBA_OBJECTS WHERE OWNER = 'SYS' AND OBJECT_NAME = 'RDS_X$KGLOB'; no rows selected