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à.
Esecuzione di varie attività per istanze database Oracle
Di seguito viene descritto come eseguire attività DBA varie sulle istanze database Amazon RDS che eseguono Oracle. Per fornire un'esperienza di servizio gestito, Amazon RDS non fornisce accesso shell alle istanze database e limita l'accesso a certe procedure e tabelle di sistema che richiedono privilegi avanzati.
Argomenti
Creazione ed eliminazione di directory nello spazio di archiviazione dati principale
Puoi usare la procedura in Amazon RDS per creare director rdsadmin.rdsadmin_util.create_directory
. Puoi creare fino a 10000 directory, tutte posizionate nello spazio principale di storage dei dati. Puoi usare la procedura Amazon RDS in per eliminare le director rdsadmin.rdsadmin_util.drop_directory
.
Le procedure create_directory
e drop_directory
hanno il seguente parametro obbligatorio.
Nome del parametro | Tipo di dati | Default | Campo obbligatorio | Descrizione |
---|---|---|---|---|
|
VARCHAR2 |
— |
Sì |
Il nome della directory. |
L'esempio seguente crea una nuova directory denominata PRODUCT_DESCRIPTIONS
.
EXEC rdsadmin.rdsadmin_util.create_directory(p_directory_name => 'product_descriptions');
Il dizionario dati memorizza il nome della directory in maiuscolo. Puoi elencare le directory eseguendo query su DBA_DIRECTORIES
. Il sistema seleziona il percorso host effettivo automaticamente. L'esempio seguente mostra ottiene il percorso di directory per la directory denominata PRODUCT_DESCRIPTIONS
:
SELECT DIRECTORY_PATH FROM DBA_DIRECTORIES WHERE DIRECTORY_NAME='PRODUCT_DESCRIPTIONS'; DIRECTORY_PATH ---------------------------------------- /rdsdbdata/userdirs/01
Il nome utente master per l'istanza database ha privilegi di lettura e scrittura nella nuova directory e può concedere l'accesso ad altri utenti. I privilegi EXECUTE
non sono disponibili per le directory su una istanza database. Le directory vengono create nello spazio principale dello storage dei dati e consumeranno spazio e larghezza di banda I/O.
L'esempio seguente elimina la directory denominata PRODUCT_DESCRIPTIONS
.
EXEC rdsadmin.rdsadmin_util.drop_directory(p_directory_name => 'product_descriptions');
Nota
È inoltre possibile eliminare una directory utilizzando il comando Oracle SQL DROP
DIRECTORY
.
Il rilascio di una directory non rimuove i suoi contenuti. Poiché il metodo rdsadmin.rdsadmin_util.create_directory
può riutilizzare percorsi, i file nelle directory eliminate possono apparire in una directory appena creata. Prima di eliminare una directory, si consiglia di utilizzare UTL_FILE.FREMOVE
per rimuovere i file dalla directory. Per ulteriori informazioni, consulta la sezione relativa alla Procedura FREMOVE
Generazione di un elenco dei file in una directory di istanze database
Puoi usare la procedura in Amazon RDS per elencare i file in una director rdsadmin.rds_file_util.listdir
. Questa procedura non è supportata su una replica Oracle. La procedura listdir
include i seguenti parametri.
Nome del parametro | Tipo di dati | Default | Campo obbligatorio | Descrizione |
---|---|---|---|---|
|
varchar2 |
— |
Sì |
Il nome della directory da elencare. |
Nel seguente esempio vengono assegnati i privilegi di lettura/scrittura nella directory PRODUCT_DESCRIPTIONS
all'utente rdsadmin
e quindi elenca i file in questa directory.
GRANT READ,WRITE ON DIRECTORY PRODUCT_DESCRIPTIONS TO rdsadmin; SELECT * FROM TABLE(rdsadmin.rds_file_util.listdir(p_directory => 'PRODUCT_DESCRIPTIONS'));
Lettura dei file in una directory di istanze database
Puoi usare la procedura in Amazon RDS per leggere un file di test rdsadmin.rds_file_util.read_text_file
. La procedura read_text_file
include i seguenti parametri.
Nome del parametro | Tipo di dati | Default | Campo obbligatorio | Descrizione |
---|---|---|---|---|
|
varchar2 |
— |
Sì |
Il nome della directory che contiene il file . |
|
varchar2 |
— |
Sì |
Nome del file da leggere. |
Nell'esempio seguente viene creato il file rice.txt
nella directory PRODUCT_DESCRIPTIONS
.
declare fh sys.utl_file.file_type; begin fh := utl_file.fopen(location=>'PRODUCT_DESCRIPTIONS', filename=>'rice.txt', open_mode=>'w'); utl_file.put(file=>fh, buffer=>'AnyCompany brown rice, 15 lbs'); utl_file.fclose(file=>fh); end; /
L'esempio seguente legge il file rice.txt
dalla directory PRODUCT_DESCRIPTIONS
.
SELECT * FROM TABLE (rdsadmin.rds_file_util.read_text_file( p_directory => 'PRODUCT_DESCRIPTIONS', p_filename => 'rice.txt'));
Accesso ai file Opatch
Opatch è una utility Oracle che consente l'applicazione e il rollback delle patch al software Oracle. Il meccanismo Oracle per determinare quali patch sono state applicate a un database è il comando opatch lsinventory
. Per aprire le richieste di assistenza per i clienti BYOL (Bring Your Own Licence), il supporto Oracle richiede il file lsinventory
e talvolta il file lsinventory_detail
generato da Opatch.
Per offrire un'esperienza di servizio gestito, Amazon RDS non fornisce accesso shell a Opatch. Invece, l'lsinventory-
nella directory BDUMP contiene le informazioni sulla patch relative alla versione corrente del motore. Quando esegui un aggiornamento minore o importante, Amazon RDS aggiorna dbv
.txtlsinventory-
entro un'ora dall'applicazione della patch. Per verificare le patch applicate, leggere dbv
.txtlsinventory-
. Questa operazione è simile all'esecuzione del comando dbv
.txtopatch lsinventory
.
Nota
Gli esempi riportati in questa sezione presuppongono che la directory BDUMP sia denominata BDUMP
. In una replica di lettura il nome della directory BDUMP è diverso. Per informazioni su come ottenere il nome BDUMP eseguendo una query V$DATABASE.DB_UNIQUE_NAME
su una replica di lettura, consulta Elenco di file.
I file di caricamento dati utilizzano la convenzione di denominazione Amazon RDS lsinventory-
e dbv
.txtlsinventory_detail-
, dove dbv
.txtdbv
è il nome completo della versione DB. Il file lsinventory-
è disponibile in tutte le versioni DB. Il corrispondente dbv
.txtlsinventory_detail-
è disponibile su 19.0.0.0, ru-2020-01.rur-2020-01.r1 o versioni successive.dbv
.txt
Ad esempio, se la versione del database è 19.0.0.0.ru-2021-07.rur-2021-07.r1, i file di inventario hanno i seguenti nomi.
lsinventory-19.0.0.0.ru-2021-07.rur-2021-07.r1.txt lsinventory_detail-19.0.0.0.ru-2021-07.rur-2021-07.r1.txt
Assicurarsi di scaricare i file corrispondenti alla versione corrente del motore DB.
Per scaricare un modello di inventario utilizzando la console
Apri la console Amazon RDS all'indirizzo https://console.aws.amazon.com/rds/
. -
Nel pannello di navigazione, scegliere Databases (Database).
-
Scegliere il nome dell'istanza di database che ha il file di log che si desidera visualizzare.
-
Scegliere la scheda Logs & events (Log ed eventi).
-
Scorrere fino alla sezione Logs (Log).
-
Nella sezione Log cercare
lsinventory
. -
Selezionare il file a cui si desidera accedere, quindi scegliere Scarica.
Per leggere lsinventory-
in un client SQL, è possibile utilizzare un'istruzione dbv
.txtSELECT
. Per questa tecnica, utilizzare una delle seguenti funzioni rdsadmin
: rdsadmin.rds_file_util.read_text_file
o rdsadmin.tracefile_listing
.
Nella query di esempio seguente sostituire dbv
con la versione di Oracle DB. Ad esempio, la versione del DB potrebbe essere 19.0.0.ru-2020-04.rur-2020-04.r1.
SELECT text FROM TABLE(rdsadmin.rds_file_util.read_text_file('BDUMP', 'lsinventory-
dbv
.txt'));
Per leggere lsinventory-
in un client SQL, è possibile scrivere un programma PL/SQL. Questo programma utilizza dbv
.txtutl_file
per leggere il file e dbms_output
per stamparlo. Questi sono pacchetti forniti da Oracle.
Nel programma di esempio seguente sostituire dbv
con la versione di Oracle DB. Ad esempio, la versione del DB potrebbe essere 19.0.0.ru-2020-04.rur-2020-04.r1.
SET SERVEROUTPUT ON DECLARE v_file SYS.UTL_FILE.FILE_TYPE; v_line VARCHAR2(1000); v_oracle_home_type VARCHAR2(1000); c_directory VARCHAR2(30) := 'BDUMP'; c_output_file VARCHAR2(30) := 'lsinventory-
dbv
.txt'; BEGIN v_file := SYS.UTL_FILE.FOPEN(c_directory, c_output_file, 'r'); LOOP BEGIN SYS.UTL_FILE.GET_LINE(v_file, v_line,1000); DBMS_OUTPUT.PUT_LINE(v_line); EXCEPTION WHEN no_data_found THEN EXIT; END; END LOOP; END; /
Oppure interrogare rdsadmin.tracefile_listing
ed eseguire lo spooling dell'output in un file. Nell'esempio seguente viene eseguito lo spooling dell'output in /tmp/tracefile.txt
.
SPOOL /tmp/tracefile.txt SELECT * FROM rdsadmin.tracefile_listing WHERE FILENAME LIKE 'lsinventory%'; SPOOL OFF;
Gestione delle attività degli advisor
Oracle Database include un certo numero di advisor. Ogni advisor supporta attività automatizzate e manuali. Puoi utilizzare le procedure nel pacchetto rdsadmin.rdsadmin_util
per gestire alcune attività di advisor.
Le procedure delle attività di advisor sono disponibili nelle seguenti versioni del motore:
-
Oracle Database 21c (21.0.0)
-
Versione 19.0.0.0.ru-2021-01.rur-2021-01.r1 e versioni successive di Oracle Database 19c
Per ulteriori informazioni, consultare Versione 19.0.0.0.ru-2021-01.rur-2021-01.r1 nelle Note di rilascio di Amazon RDS for Oracle.
Argomenti
Impostazione dei parametri per le attività di advisor
Per impostare i parametri per alcune attività di advisor, utilizza la procedura Amazon RDS rdsadmin.rdsadmin_util.advisor_task_set_parameter
. La procedura advisor_task_set_parameter
include i seguenti parametri.
Nome del parametro | Tipo di dati | Default | Campo obbligatorio | Descrizione |
---|---|---|---|---|
|
varchar2 |
— |
Sì |
Il nome dell'attività di advisor di cui si desidera modificare i parametri. I valori seguenti sono validi:
|
|
varchar2 |
— |
Sì |
Il nome del parametro dell'attività. Per trovare parametri validi per un'attività di advisor, esegui la query riportata. Sostituisci
|
|
varchar2 |
— |
Sì |
Il valore di un parametro di attività. Per trovare valori validi per i parametri delle attività, esegui la query riportata. Sostituisci
|
Il seguente programma PL/SQL imposta ACCEPT_PLANS
su FALSE
per SYS_AUTO_SPM_EVOLVE_TASK
. L'attività automatizzata Gestione piano SQL verifica i piani e genera un report dei risultati, ma non evolve automaticamente i piani. Puoi utilizzare un report per identificare le nuove baseline del piano SQL e accettarle manualmente.
BEGIN rdsadmin.rdsadmin_util.advisor_task_set_parameter( p_task_name => 'SYS_AUTO_SPM_EVOLVE_TASK', p_parameter => 'ACCEPT_PLANS', p_value => 'FALSE'); END;
Il seguente programma PL/SQL imposta EXECUTION_DAYS_TO_EXPIRE
su 10
per AUTO_STATS_ADVISOR_TASK
. L'attività predefinita AUTO_STATS_ADVISOR_TASK
viene eseguita automaticamente nella finestra di manutenzione una volta al giorno. Nell'esempio viene impostato il periodo di conservazione per l'esecuzione dell'attività su 10 giorni.
BEGIN rdsadmin.rdsadmin_util.advisor_task_set_parameter( p_task_name => 'AUTO_STATS_ADVISOR_TASK', p_parameter => 'EXECUTION_DAYS_TO_EXPIRE', p_value => '10'); END;
Disattivazione di AUTO_STATS_ADVISOR_TASK
Per disabilitare AUTO_STATS_ADVISOR_TASK
, utilizza la procedura Amazon RDS rdsadmin.rdsadmin_util.advisor_task_drop
. La procedura advisor_task_drop
accetta il seguente parametro.
Nome del parametro | Tipo di dati | Default | Campo obbligatorio | Descrizione |
---|---|---|---|---|
|
varchar2 |
— |
Sì |
Il nome dell'attività di advisor da disabilitare. L'unico valore valido è |
Il seguente comando elimina AUTO_STATS_ADVISOR_TASK
.
EXEC rdsadmin.rdsadmin_util.advisor_task_drop('AUTO_STATS_ADVISOR_TASK')
Puoi riabilitare AUTO_STATS_ADVISOR_TASK
utilizzando rdsadmin.rdsadmin_util.dbms_stats_init
.
Riattivazione di AUTO_STATS_ADVISOR_TASK
Per riattivare AUTO_STATS_ADVISOR_TASK
, utilizzare la procedura Amazon RDS rdsadmin.rdsadmin_util.dbms_stats_init
. La procedura dbms_stats_init
non richiede parametri.
Il seguente comando abilita nuovamente AUTO_STATS_ADVISOR_TASK
.
EXEC rdsadmin.rdsadmin_util.dbms_stats_init()