Esecuzione di varie attività per 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à.

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.

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

p_directory_name

VARCHAR2

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 nella documentazione di Oracle.

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

p_directory

varchar2

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

p_directory

varchar2

Il nome della directory che contiene il file .

p_filename

varchar2

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-dbv.txt nella directory BDUMP contiene le informazioni sulla patch relative alla versione corrente del motore. Quando esegui un aggiornamento minore o importante, Amazon RDS aggiorna lsinventory-dbv.txt entro un'ora dall'applicazione della patch. Per verificare le patch applicate, leggere lsinventory-dbv.txt. Questa operazione è simile all'esecuzione del comando opatch 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-dbv.txt e lsinventory_detail-dbv.txt, dove dbv è il nome completo della versione DB. Il file lsinventory-dbv.txt è disponibile in tutte le versioni DB. Il corrispondente lsinventory_detail-dbv.txt è disponibile su 19.0.0.0, ru-2020-01.rur-2020-01.r1 o versioni successive.

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
  1. Apri la console Amazon RDS all'indirizzo https://console.aws.amazon.com/rds/.

  2. Nel pannello di navigazione, scegliere Databases (Database).

  3. Scegliere il nome dell'istanza di database che ha il file di log che si desidera visualizzare.

  4. Scegliere la scheda Logs & events (Log ed eventi).

  5. Scorrere fino alla sezione Logs (Log).

  6. Nella sezione Log cercare lsinventory.

  7. Selezionare il file a cui si desidera accedere, quindi scegliere Scarica.

Per leggere lsinventory-dbv.txt in un client SQL, è possibile utilizzare un'istruzione SELECT. 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-dbv.txt in un client SQL, è possibile scrivere un programma PL/SQL. Questo programma utilizza utl_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.

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

p_task_name

varchar2

Il nome dell'attività di advisor di cui si desidera modificare i parametri. I valori seguenti sono validi:

  • AUTO_STATS_ADVISOR_TASK

  • INDIVIDUAL_STATS_ADVISOR_TASK

  • SYS_AUTO_SPM_EVOLVE_TASK

  • SYS_AUTO_SQL_TUNING_TASK

p_parameter

varchar2

Il nome del parametro dell'attività. Per trovare parametri validi per un'attività di advisor, esegui la query riportata. Sostituisci p_task_name con un valore valido per p_task_name:

COL PARAMETER_NAME FORMAT a30 COL PARAMETER_VALUE FORMAT a30 SELECT PARAMETER_NAME, PARAMETER_VALUE FROM DBA_ADVISOR_PARAMETERS WHERE TASK_NAME='p_task_name' AND PARAMETER_VALUE != 'UNUSED' ORDER BY PARAMETER_NAME;

p_value

varchar2

Il valore di un parametro di attività. Per trovare valori validi per i parametri delle attività, esegui la query riportata. Sostituisci p_task_name con un valore valido per p_task_name:

COL PARAMETER_NAME FORMAT a30 COL PARAMETER_VALUE FORMAT a30 SELECT PARAMETER_NAME, PARAMETER_VALUE FROM DBA_ADVISOR_PARAMETERS WHERE TASK_NAME='p_task_name' AND PARAMETER_VALUE != 'UNUSED' ORDER BY PARAMETER_NAME;

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

p_task_name

varchar2

Il nome dell'attività di advisor da disabilitare. L'unico valore valido è AUTO_STATS_ADVISOR_TASK.

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()