Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Gestione delle viste RDS_X$ per le istanze database Oracle
Potrebbe essere necessario accedere alle tabelle fisse SYS.X$, accessibili solo da SYS. Per creare viste SYS.RDS_X$ sulle tabelle X$ idonee, utilizza le procedure incluse nel pacchetto rdsadmin.rdsadmin_util. All’utente master viene automaticamente concesso il privilegio SELECT … WITH GRANT OPTION sulle viste RDS_X$.
Le procedure rdsadmin.rdsadmin_util sono disponibili nei seguenti casi:
-
Istanze database esistenti che non sono mai state aggiornate e utilizzano le seguenti release:
-
21.0.0.0.ru-2023-10.rur-2023-10.r1e versioni successive alla 21c -
19.0.0.0.ru-2023-10.rur-2023-10.r1e versioni successive alla 19c
-
-
Qualsiasi nuova istanza database che crei
-
Qualsiasi istanza database esistente che hai aggiornato
Importante
Internamente, il pacchetto rdsadmin.rdsadmin_util crea viste sulle tabelle X$. Le tabelle X$ sono oggetti di sistema interni che non sono descritti nella documentazione di Oracle Database. Si consiglia di testare viste specifici nel database non di produzione e creare viste nel database di produzione solo sotto la guida del supporto Oracle.
Elenca le tabelle fisse X$ idonee per l’uso nelle viste RDS_X$
Per elencare le tabelle X$ idonee all’uso nelle viste RDS_X$, utilizza la procedura RDS rdsadmin.rdsadmin_util.list_allowed_sys_x$_views. Questa procedura non accetta parametri. Le seguenti istruzioni elencano tutte le tabelle X$ idonee (output di esempio incluso).
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'
L’elenco delle tabelle X$ idonee può cambiare nel corso del tempo. Per assicurarti che l’elenco delle tabelle fisse X$ idonee sia aggiornato, esegui di nuovo list_allowed_sys_x$_views periodicamente.
Creazione di viste SYS.RDS_X$
Per creare una vista RDS_X$ su una tabella X$ idonea, utilizza la procedura RDS rdsadmin.rdsadmin_util.create_sys_x$_view. Puoi creare viste solo per le tabelle elencate nell’output di rdsadmin.rdsadmin_util.list_allowed_sys_x$_views. La procedura create_sys_x$_view include i seguenti parametri.
| Nome del parametro | Tipo di dati | Default | Campo obbligatorio | Descrizione |
|---|---|---|---|---|
|
|
varchar2 |
Null |
Sì |
Un nome tabella |
|
|
Boolean |
FALSE |
No |
Un valore che indica se forzare la creazione di una vista |
Il seguente esempio crea una vista SYS.RDS_X$KGLOB sulla tabella X$KGLOB. Il formato per il nome della vista è RDS_.X$tablename
SQL> SET SERVEROUTPUT ON SQL> EXEC rdsadmin.rdsadmin_util.create_sys_x$_view('X$KGLOB'); PL/SQL procedure successfully completed.
La seguente query sul dizionario di dati elenca la vista SYS.RDS_X$KGLOB e ne mostra lo stato. All’utente master viene automaticamente concesso il privilegio SELECT ... WITH GRANT OPTION su questa vista.
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
Importante
Non è garantito che le tabelle X$ restino invariate prima e dopo l’esecuzione di un aggiornamento. RDS per Oracle elimina e ricrea le viste RDS_X$ sulle tabelle X$ durante un aggiornamento del motore. Quindi concede il privilegio SELECT
... WITH GRANT OPTION all’utente master. Dopo un aggiornamento, concedi i privilegi agli utenti del database secondo necessità sulle viste RDS_X$ corrispondenti.
Elenco delle viste SYS.RDS_X$
Per elencare le viste RDS_X$ esistenti, utilizza la procedura RDS rdsadmin.rdsadmin_util.list_created_sys_x$_views. La procedura elenca solo le viste create dalla procedura create_sys_x$_view. L’esempio seguente elenca le tabelle X$ con le viste RDS_X$ corrispondenti (output di esempio incluso).
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.
Eliminazione delle viste RDS_X$
Per eliminare una vista SYS.RDS_X$, utilizza la procedura RDS rdsadmin.rdsadmin_util.drop_sys_x$_view. Puoi impostare solo le viste elencate nell’output di rdsadmin.rdsadmin_util.list_allowed_sys_x$_views. La procedura drop_sys_x$_view accetta il seguente parametro.
| Nome del parametro | Tipo di dati | Default | Campo obbligatorio | Descrizione |
|---|---|---|---|---|
|
|
varchar2 |
Null |
Sì |
Un nome della tabella fissa |
L’esempio seguente elimina la vista RDS_X$KGLOB creata nella tabella X$KGLOB.
SQL> SET SERVEROUTPUT ON SQL> EXEC rdsadmin.rdsadmin_util.drop_sys_x$_view('X$KGLOB'); PL/SQL procedure successfully completed.
L’esempio seguente mostra che la vista SYS.RDS_X$KGLOB è stata eliminata (incluso l’output di esempio).
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