Gestione delle viste RDS_X$ per le istanze database Oracle - Amazon Relational Database Service

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.r1 e versioni successive alla 21c

    • 19.0.0.0.ru-2023-10.rur-2023-10.r1 e 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

p_x$_tbl

varchar2

Null

Un nome tabella X$ valido. Il valore deve essere una delle tabelle X$ segnalati da list_allowed_sys_x$_views.

p_force_creation

Boolean

FALSE

No

Un valore che indica se forzare la creazione di una vista RDS_X$ già esistente per una tabella X$. Per impostazione predefinita, RDS non crea una vista se questa esiste già. Per forzare la creazione, imposta questo parametro su TRUE.

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

p_x$_tbl

varchar2

Null

Un nome della tabella fissa X$ valido. Il valore deve essere una delle tabelle fisse X$ riportate da list_created_sys_x$_views.

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