

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
<a name="Appendix.Oracle.CommonDBATasks.Misc"></a>

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. 

**Topics**
+ [Creazione ed eliminazione di directory nello spazio di archiviazione dati principale](#Appendix.Oracle.CommonDBATasks.NewDirectories)
+ [Generazione di un elenco dei file in una directory di istanze database](#Appendix.Oracle.CommonDBATasks.ListDirectories)
+ [Lettura dei file in una directory di istanze database](#Appendix.Oracle.CommonDBATasks.ReadingFiles)
+ [Accesso ai file Opatch](#Appendix.Oracle.CommonDBATasks.accessing-opatch-files)
+ [Gestione delle attività degli advisor](#Appendix.Oracle.CommonDBATasks.managing-advisor-tasks)
+ [Trasporto di tablespace](rdsadmin_transport_util.md)

## Creazione ed eliminazione di directory nello spazio di archiviazione dati principale
<a name="Appendix.Oracle.CommonDBATasks.NewDirectories"></a>

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  |  —  |  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 di archiviazione dati principale e consumano spazio e larghezza di I/O banda. 

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](https://docs.oracle.com/database/121/ARPLS/u_file.htm#ARPLS70924) nella documentazione di Oracle.

## Generazione di un elenco dei file in una directory di istanze database
<a name="Appendix.Oracle.CommonDBATasks.ListDirectories"></a>

Puoi usare la procedura in Amazon RDS per elencare i file in una director `rdsadmin.rds_file_util.listdir`. Questa procedura non è supportata in una replica Oracle. La procedura `listdir` include i seguenti parametri. 


****  

| Nome del parametro | Tipo di dati | Default | Campo obbligatorio | Descrizione | 
| --- | --- | --- | --- | --- | 
|  `p_directory`  |  varchar2  |  —  |  Sì  |  Il nome della directory da elencare.  | 

L'esempio seguente concede all'utente read/write i privilegi sulla directory `PRODUCT_DESCRIPTIONS``rdsadmin`, 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
<a name="Appendix.Oracle.CommonDBATasks.ReadingFiles"></a>

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  |  —  |  Sì  |  Il nome della directory che contiene il file .  | 
|  `p_filename`  |  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
<a name="Appendix.Oracle.CommonDBATasks.accessing-opatch-files"></a>

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](USER_LogAccess.Concepts.Oracle.md#USER_LogAccess.Concepts.Oracle.WorkingWithTracefiles.ViewingBackgroundDumpDest).

I file di inventario utilizzano la convenzione di denominazione di Amazon RDS `lsinventory-dbv.txt` e`lsinventory_detail-dbv.txt`, dove si *dbv* trova il nome completo della versione del database. Il file `lsinventory-dbv.txt` è disponibile in tutte le versioni DB. Il `lsinventory_detail-dbv.txt` corrispondente è disponibile nelle versioni 19.0.0.0, ru-2020-01.rur-2020-01.r1 o nelle 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.

### Console
<a name="Appendix.Oracle.CommonDBATasks.accessing-opatch-files.console"></a>

**Per scaricare un modello di inventario utilizzando la console**

1. Aprire la console Amazon RDS all'indirizzo [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Nel pannello di navigazione, scegliere **Databases (Database)**.

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

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

1. Scorrere fino alla sezione **Logs (Log)**.

1. Nella sezione **Log** cercare `lsinventory`.

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

### SQL
<a name="Appendix.Oracle.CommonDBATasks.accessing-opatch-files.sql"></a>

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 seguente query di esempio, sostituiscila *dbv* con la tua 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'));
```

### PL/SQL
<a name="Appendix.Oracle.CommonDBATasks.accessing-opatch-files.plsql"></a>

Per leggerla `lsinventory-dbv.txt` in un client SQL, puoi scrivere un PL/SQL programma. Questo programma utilizza `utl_file` per leggere il file e `dbms_output` per stamparlo. Questi sono pacchetti forniti da Oracle. 

Nel seguente programma di esempio, sostituiscilo *dbv* con la tua 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
<a name="Appendix.Oracle.CommonDBATasks.managing-advisor-tasks"></a>

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](https://docs.aws.amazon.com/AmazonRDS/latest/OracleReleaseNotes/oracle-version-19-0.html#oracle-version-RU-RUR.19.0.0.0.ru-2021-01.rur-2021-01.r1) nelle *Note di rilascio di Amazon RDS for Oracle*.

**Topics**
+ [Impostazione dei parametri per le attività di advisor](#Appendix.Oracle.CommonDBATasks.setting-task-parameters)
+ [Disattivazione di AUTO\$1STATS\$1ADVISOR\$1TASK](#Appendix.Oracle.CommonDBATasks.dropping-advisor-task)
+ [Riattivazione di AUTO\$1STATS\$1ADVISOR\$1TASK](#Appendix.Oracle.CommonDBATasks.recreating-advisor-task)

### Impostazione dei parametri per le attività di advisor
<a name="Appendix.Oracle.CommonDBATasks.setting-task-parameters"></a>

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  |  —  |  Sì  |  Il nome dell'attività di advisor di cui si desidera modificare i parametri. I valori seguenti sono validi: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.Misc.html)  | 
|  `p_parameter`  |  varchar2  |  —  |  Sì  |  Il nome del parametro dell'attività. Per trovare parametri validi per un'attività di advisor, esegui la query riportata. Sostituisci *p\$1task\$1name* con un valore valido`p_task_name`: <pre>COL PARAMETER_NAME FORMAT a30<br />COL PARAMETER_VALUE FORMAT a30<br />SELECT PARAMETER_NAME, PARAMETER_VALUE<br />FROM DBA_ADVISOR_PARAMETERS<br />WHERE TASK_NAME='p_task_name'<br />AND PARAMETER_VALUE != 'UNUSED'<br />ORDER BY PARAMETER_NAME;</pre>  | 
|  `p_value`  |  varchar2  |  —  |  Sì  |  Il valore di un parametro di attività. Per trovare valori validi per i parametri delle attività, esegui la query riportata. Sostituire *p\$1task\$1name* con un valore valido: `p_task_name` <pre>COL PARAMETER_NAME FORMAT a30<br />COL PARAMETER_VALUE FORMAT a30<br />SELECT PARAMETER_NAME, PARAMETER_VALUE<br />FROM DBA_ADVISOR_PARAMETERS<br />WHERE TASK_NAME='p_task_name'<br />AND PARAMETER_VALUE != 'UNUSED'<br />ORDER BY PARAMETER_NAME;</pre>  | 

Il seguente PL/SQL programma è impostato `ACCEPT_PLANS` su `FALSE` for`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 PL/SQL programma è `EXECUTION_DAYS_TO_EXPIRE` impostato su `10` for`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\$1STATS\$1ADVISOR\$1TASK
<a name="Appendix.Oracle.CommonDBATasks.dropping-advisor-task"></a>

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  |  —  |  Sì  |  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\$1STATS\$1ADVISOR\$1TASK
<a name="Appendix.Oracle.CommonDBATasks.recreating-advisor-task"></a>

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