Esecuzione di attività di database comuni 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à.

Esecuzione di attività di database comuni per le istanze database Oracle

Di seguito, viene descritto come eseguire determinate attività DBA comuni relative ai database nelle istanze database Amazon RDS che eseguono Oracle. Per offrire un'esperienza di servizio gestito, Amazon RDS non fornisce accesso shell alle istanze database. Amazon RDS limita anche l'accesso ad alcune procedure di sistema e tabelle che richiedono privilegi avanzati.

Modifica del nome globale di un database

Puoi usare la procedura in Amazon RDS per modificare il nome globale di un database rdsadmin.rdsadmin_util.rename_global_name. La procedura rename_global_name include i seguenti parametri.

Nome del parametro Tipo di dati Default Campo obbligatorio Descrizione

p_new_global_name

varchar2

Il nuovo nome globale per il database.

Il database deve essere aperto affinché la modifica del nome abbia luogo. Per ulteriori informazioni sulla modifica del nome globale di un database, consulta ALTER DATABASE nella documentazione di Oracle.

L'esempio seguente modifica il nome globale del database in new_global_name.

EXEC rdsadmin.rdsadmin_util.rename_global_name(p_new_global_name => 'new_global_name');

Creazione e dimensionamento di spazi tabelle

Amazon RDS supporta Oracle Managed Files (OMF) solo per i file di dati, i file di log e i file di controllo. Quando crei file di dati e file di log, non puoi specificare i nomi fisici dei file.

Per impostazione predefinita, se non si specifica una dimensione del file di dati, gli spazi di tabella vengono creati con il valore predefinito di AUTOEXTEND ON e nessuna dimensione massima. Nell'esempio seguente, lo spazio di tabella users1 è estensibile automaticamente.

CREATE TABLESPACE users1;

A causa di queste impostazioni predefinite, gli spazi tabelle possono aumentare e occupare tutto lo storage allocato. Consigliamo di specificare una dimensione massima appropriata per spazi tabelle permanenti e temporanei e che monitori attentamente l'utilizzo di spazio.

L'esempio seguente crea uno spazio tabella denominato users2 con una dimensione iniziale di 1 gigabyte. Poiché la dimensione di un file di dati è specificata, ma AUTOEXTEND ON non è specificato, lo spazio di tabella non è estensibile automaticamente.

CREATE TABLESPACE users2 DATAFILE SIZE 1G;

L'esempio seguente crea uno spazio tabella denominato users3 con una dimensione iniziale di 1 gigabyte, estensibile automaticamente e una dimensione massima di 10 gigabyte:

CREATE TABLESPACE users3 DATAFILE SIZE 1G AUTOEXTEND ON MAXSIZE 10G;

L'esempio seguente crea uno spazio tabella temporaneo denominato temp01.

CREATE TEMPORARY TABLESPACE temp01;

Puoi ridimensionare uno spazio tabella di file di grandi dimensioni utilizzando ALTER TABLESPACE. Puoi specificare le dimensioni in kilobyte (K), megabyte (M), gigabyte (G), o terabyte (T). L'esempio seguente ridimensiona uno spazio tabella di un file di grandi dimensioni denominato users_bf a 200 MB.

ALTER TABLESPACE users_bf RESIZE 200M;

L'esempio seguente aggiunge un file di dati aggiuntivo a uno spazio tabella di un file di piccole dimensioni denominato users_sf.

ALTER TABLESPACE users_sf ADD DATAFILE SIZE 100000M AUTOEXTEND ON NEXT 250m MAXSIZE UNLIMITED;

Impostazione dello spazio di tabella predefinito

Puoi usare la procedura in Amazon RDS per impostare lo spazio di tabella predefinito rdsadmin.rdsadmin_util.alter_default_tablespace. La procedura alter_default_tablespace include i seguenti parametri.

Nome del parametro Tipo di dati Default Campo obbligatorio Descrizione

tablespace_name

varchar

Il nome dello spazio tabella predefinito.

L'esempio seguente imposta lo spazio tabella predefinito su users2:

EXEC rdsadmin.rdsadmin_util.alter_default_tablespace(tablespace_name => 'users2');

Impostazione dello spazio di tabella temporaneo predefinito

Puoi usare la procedura in Amazon RDS per impostare lo spazio di tabella temporaneo predefinito rdsadmin.rdsadmin_util.alter_default_temp_tablespace. La procedura alter_default_temp_tablespace include i seguenti parametri.

Nome del parametro Tipo di dati Default Campo obbligatorio Descrizione

tablespace_name

varchar

Il nome dello spazio tabella predefinito temporaneo.

L'esempio seguente imposta lo spazio tabella predefinito temporaneo su temp01.

EXEC rdsadmin.rdsadmin_util.alter_default_temp_tablespace(tablespace_name => 'temp01');

Creazione di un spazio di tabella temporaneo nell'archivio dell'istanza

Per creare uno spazio di tabella temporaneo nell'archivio dell'istanza, utilizza la procedura Amazon RDS rdsadmin.rdsadmin_util.create_inst_store_tmp_tblspace. La procedura create_inst_store_tmp_tblspace include i seguenti parametri.

Nome del parametro Tipo di dati Default Campo obbligatorio Descrizione

p_tablespace_name

varchar

Il nome dello spazio di tabella temporaneo.

L'esempio seguente crea lo spazio di tabella temporaneo temp01 nell'archivio dell'istanza.

EXEC rdsadmin.rdsadmin_util.create_inst_store_tmp_tblspace(p_tablespace_name => 'temp01');
Importante

Durante l'esecuzione di rdsadmin_util.create_inst_store_tmp_tblspace, lo spazio di tabella temporaneo appena creato non viene impostato automaticamente come spazio di tabella temporaneo predefinito. Per impostarlo come predefinito, consulta Impostazione dello spazio di tabella temporaneo predefinito.

Per ulteriori informazioni, consulta Archiviazione di dati temporanei in un archivio dell'istanza RDS per Oracle.

Aggiunta di un file temporaneo all'archivio dell'istanza in una replica di lettura

Quando si crea uno spazio di tabella temporaneo in un'istanza database primaria, la replica di lettura non crea i file temporanei. Supponi che nella replica di lettura esista uno spazio di tabella temporaneo vuoto per uno dei seguenti motivi:

  • Hai eliminato un file temporaneo dallo spazio di tabella temporaneo nella replica di lettura. Per ulteriori informazioni, consulta Rilascio di file temporanei in una replica di lettura.

  • Hai creato un nuovo spazio di tabella temporaneo nell'istanza database primaria. In questo caso, RDS per Oracle sincronizza i metadati con la replica di lettura.

Puoi aggiungere un file temporaneo allo spazio di tabella temporaneo vuoto e archiviare il file temporaneo nell'archivio dell'istanza. Per creare un file temporaneo nell'archivio dell'istanza, utilizza la procedura Amazon RDS rdsadmin.rdsadmin_util.add_inst_store_tempfile. Puoi utilizzare questa procedura solo in una replica di lettura. La procedura include i seguenti parametri.

Nome del parametro Tipo di dati Default Campo obbligatorio Descrizione

p_tablespace_name

varchar

Il nome dello spazio di tabella temporaneo nella replica di lettura.

Nell'esempio seguente, lo spazio di tabella temporaneo vuoto temp01 è presente nella replica di lettura. Esegui il comando seguente per creare un file temporaneo per la tabella e archiviarlo nell'archivio dell'istanza.

EXEC rdsadmin.rdsadmin_util.add_inst_store_tempfile(p_tablespace_name => 'temp01');

Per ulteriori informazioni, consulta Archiviazione di dati temporanei in un archivio dell'istanza RDS per Oracle.

Rilascio di file temporanei in una replica di lettura

Non è possibile rilasciare uno spazio di tabella temporaneo esistente in una replica di lettura. Puoi modificare l'archivio dei file temporanei in una replica di lettura da Amazon EBS nell'archivio dell'istanza o dall'archivio dell'istanza ad Amazon EBS. Per raggiungere questi obiettivi, effettua le seguenti operazioni:

  1. Rilascia i file temporanei correnti nello spazio di tabella temporaneo nella replica di lettura.

  2. Crea nuovi file temporanei in un altro archivio.

Per rilasciare i file temporanei, utilizza la procedura Amazon RDS rdsadmin.rdsadmin_util. drop_replica_tempfiles. Puoi utilizzare questa procedura solo nelle repliche di lettura. La procedura drop_replica_tempfiles include i seguenti parametri.

Nome del parametro Tipo di dati Default Campo obbligatorio Descrizione

p_tablespace_name

varchar

Il nome dello spazio di tabella temporaneo nella replica di lettura.

Supponi che uno spazio di tabella temporaneo denominata temp01 si trovi nell'archivio dell'istanza della replica di lettura. Rilascia tutti i file temporanei in questo spazio di tabella eseguendo il comando seguente.

EXEC rdsadmin.rdsadmin_util.drop_replica_tempfiles(p_tablespace_name => 'temp01');

Per ulteriori informazioni, consulta Archiviazione di dati temporanei in un archivio dell'istanza RDS per Oracle.

Checkpoint di un database

Puoi usare la procedura in Amazon RDS per eseguire il checkpoint del database rdsadmin.rdsadmin_util.checkpoint. La procedura checkpoint non ha parametri.

L'esempio seguente esegue il checkpoint del database.

EXEC rdsadmin.rdsadmin_util.checkpoint;

Impostazione del ripristino distribuito

Puoi usare le procedure rdsadmin.rdsadmin_util.enable_distr_recovery e disable_distr_recovery in Amazon RDS per impostare il ripristino distribuito. Le procedure non hanno parametri.

L'esempio seguente abilita il ripristino distribuito.

EXEC rdsadmin.rdsadmin_util.enable_distr_recovery;

L'esempio seguente disabilita il ripristino distribuito.

EXEC rdsadmin.rdsadmin_util.disable_distr_recovery;

Impostazione del fuso orario del database

È possibile impostare il fuso orario del database Amazon RDS Oracle nei modi seguenti:

  • L'opzione Timezone

    L'opzione Timezone modifica il fuso orario a livello di host e interessa tutte le colonne e valori data come SYSDATE. Per ulteriori informazioni, consulta Fuso orario Oracle.

  • La procedura Amazon RDS rdsadmin.rdsadmin_util.alter_db_time_zone

    La procedura alter_db_time_zone modifica il fuso orario solo per certi tipi di dati e non modifica SYSDATE. Ci sono limitazioni aggiuntive per l'impostazione del fuso orario elencato nella Documentazione di Oracle.

Nota

È inoltre possibile impostare il fuso orario predefinito per Oracle Scheduler. Per ulteriori informazioni, consulta Impostazione del fuso orario per i job di Oracle Scheduler.

La procedura alter_db_time_zone include i seguenti parametri.

Nome del parametro Tipo di dati Default Campo obbligatorio Descrizione

p_new_tz

varchar2

Il nuovo fuso orario come regione denominata o un offset assoluto da Coordinated Universal Time (UTC). Gli offset validi sono compresi tra -12.00 e +14.00.

Il seguente esempio imposta il fuso orario su UTC più tre ore.

EXEC rdsadmin.rdsadmin_util.alter_db_time_zone(p_new_tz => '+3:00');

L'esempio seguente imposta il fuso orario sul fuso orario della regione Africa/Algeri.

EXEC rdsadmin.rdsadmin_util.alter_db_time_zone(p_new_tz => 'Africa/Algiers');

Dopo aver modificato il fuso orario utilizzando la procedura alter_db_time_zone, devi riavviare l'istanza database per rendere effettive le modifiche. Per ulteriori informazioni, consulta Riavvio di un'istanza database. Per informazioni sull'aggiornamento dei fusi orari, consulta Considerazioni sul fuso orario.

Lavorare con le tabelle esterne Oracle

Le Tabelle esterne Oracle sono tabelle con dati che non si trovano nel database. Invece, i dati si trovano nei file esterni ai quali il database può accedere. Utilizzando le tabelle esterne, puoi accedere ai dati senza caricarli nel database. Per ulteriori informazioni sulle tabelle esterne, consulta Gestione delle tabelle esterne nella documentazione Oracle.

Con Amazon RDS, puoi archiviare i file della tabella esterna negli oggetti della directory. Puoi creare un oggetto di directory o puoi utilizzare uno predefinito nel database Oracle, ad esempio la directory DATA_PUMP_DIR. Per informazioni sulla creazione di oggetti di directory, consulta Creazione ed eliminazione di directory nello spazio di archiviazione dati principale. Puoi eseguire query sulla visualizzazione ALL_DIRECTORIES per elencare gli oggetti di directory per l'istanza database Amazon RDS Oracle.

Nota

Gli oggetti directory puntano allo spazio principale dello storage dei dati (volume Amazon EBS) utilizzato dall'istanza. Lo spazio usato—insieme a file di dati, log delle modifiche, audit, traccia e altri file— fa parte dello storage allocato.

Puoi spostare un file di dati esterno da un database Oracle a un altro utilizzando il pacchetto DBMS_FILE_TRANSFER o UTL_FILE. I file dati esterni si spostano da una directory nel database origine a una directory specificata nel database di destinazione. Per ulteriori informazioni su DBMS_FILE_TRANSFER, consulta Importazione utilizzando Oracle Data Pump.

Dopo aver spostato il file dei dati esterno puoi crearci una tabella esterna. L'esempio seguente crea una tabella esterna che utilizza il file emp_xt_file1.txt nella directory USER_DIR1.

CREATE TABLE emp_xt ( emp_id NUMBER, first_name VARCHAR2(50), last_name VARCHAR2(50), user_name VARCHAR2(20) ) ORGANIZATION EXTERNAL ( TYPE ORACLE_LOADER DEFAULT DIRECTORY USER_DIR1 ACCESS PARAMETERS ( RECORDS DELIMITED BY NEWLINE FIELDS TERMINATED BY ',' MISSING FIELD VALUES ARE NULL (emp_id,first_name,last_name,user_name) ) LOCATION ('emp_xt_file1.txt') ) PARALLEL REJECT LIMIT UNLIMITED;

Immaginiamo che desideri spostare i dati che si trovano nell'istanza database Amazon RDS Oracle nel file di dati esterno. In questo caso, puoi popolare il file di dati esterno creando una tabella esterna e selezionando i dati dalla tabella nel database. Ad esempio, la seguente istruzione SQL crea la tabella esterna orders_xt eseguendo la query sulla tabella orders nel database.

CREATE TABLE orders_xt ORGANIZATION EXTERNAL ( TYPE ORACLE_DATAPUMP DEFAULT DIRECTORY DATA_PUMP_DIR LOCATION ('orders_xt.dmp') ) AS SELECT * FROM orders;

In questo esempio, i dati sono popolati nel file orders_xt.dmp nella directory DATA_PUMP_DIR.

Generazione di report sulle prestazioni con AWR (Automatic Workload Repository)

Per raccogliere i dati sulle prestazioni e generare report, Oracle consiglia AWR (Automatic Workload Repository). AWR richiede Oracle Database Enterprise Edition e una licenza per i pacchetti di diagnostica e ottimizzazione. Per abilitare AWR, impostare il parametro di inizializzazione CONTROL_MANAGEMENT_PACK_ACCESS su DIAGNOSTIC o DIAGNOSTIC+TUNING.

Utilizzo di report AWR in RDS

Per generare report AWR, puoi eseguire script quali awrrpt.sql. Questi script vengono installati nel server host del database. In Amazon RDS non è possibile accedere direttamente all'host. Tuttavia, puoi ottenere copie di script SQL da un'altra installazione di Oracle Database.

Puoi inoltre utilizzare AWR eseguendo procedure nel pacchetto PL/SQL SYS.DBMS_WORKLOAD_REPOSITORY. Puoi utilizzare questo pacchetto per gestire baseline e snapshot, nonché visualizzare report ASH e AWR. Ad esempio, per generare un report AWR in formato di testo, esegui la procedura DBMS_WORKLOAD_REPOSITORY.AWR_REPORT_TEXT. Tuttavia, non puoi raggiungere questi report AWR da AWS Management Console.

Quando utilizzi AWR, ti consigliamo di utilizzare le procedure rdsadmin.rdsadmin_diagnostic_util. Puoi utilizzare queste procedure per generare quanto segue:

  • Report AWR

  • Report ASH (Active Session History)

  • Report ADDM (Automatic Database Diagnostic Monitor)

  • File di dump di Export di Oracle Data Pump di dati AWR

Le procedure rdsadmin_diagnostic_util salvano i report nel file system dell'istanza database. Puoi accedere a questi report dalla console. Puoi inoltre accedere ai report utilizzando le procedure rdsadmin.rds_file_util e accedere ai report copiati in Simple Storage Service (Amazon S3) mediante l'opzione Integrazione S3. Per ulteriori informazioni, consulta Lettura dei file in una directory di istanze database e Integrazione Amazon S3.

Puoi utilizzare le procedure rdsadmin_diagnostic_util nelle seguente per versioni del motore database Amazon RDS for Oracle:

  • Tutte le versioni di Oracle Database 21c

  • 19.0.0.0.ru-2020-04.rur-2020-04.r1 e versioni successive di Oracle Database 19c

Per un blog che spiega come utilizzare i report diagnostici in uno scenario di replica, consulta il post relativo alla generazione di report AWR per le repliche di lettura di Amazon RDS per Oracle.

Parametri comuni per il pacchetto di utilità di diagnostica

In genere i seguenti parametri vengono utilizzati durante la gestione di AWR e ADDM con il pacchetto rdsadmin_diagnostic_util.

Parametro Tipo di dati Default Campo obbligatorio Descrizione

begin_snap_id

NUMBER

ID dello snapshot iniziale.

end_snap_id

NUMBER

ID dello snapshot finale.

dump_directory

VARCHAR2

BDUMP

No

La directory in cui scrivere il report o esportare il file. Se si specifica una directory non predefinita, l'utente che esegue le procedure rdsadmin_diagnostic_util deve disporre delle autorizzazioni di scrittura per la directory.

p_tag

VARCHAR2

No

Una stringa che può essere utilizzata per distinguere tra i backup per indicare lo scopo o l'utilizzo dei backup, ad esempio incremental o daily.

Puoi specificare fino a 30 caratteri. I caratteri validi sono: a-z, A-Z, 0-9, un carattere di sottolineatura (_), un trattino (-) e un punto (.). Il tag non rileva la distinzione tra maiuscole e minuscole. RMAN memorizza sempre i tag in maiuscolo, indipendentemente dalle maiuscole e minuscole utilizzate durante l'inserimento.

I tag non devono essere univoci, quindi più backup possono avere lo stesso tag. Se non specifichi un tag, RMAN assegna automaticamente un tag di default utilizzando il formato TAGYYYYMMDDTHHMMSS, dove YYYY è l'anno, MM è il mese, DD è il giorno, HH è l'ora (nel formato 24 ore), MM sono i minuti e SS sono i secondi. La data e l'ora indicano quando RMAN ha avviato il backup. Ad esempio, un backup con il tag di default TAG20190927T214517 indica un backup iniziato il 27/09/2019 alle 21:45:17.

Il parametro p_tag è supportato nelle seguenti versioni del motore database RDS for Oracle:

  • Oracle Database 21c (21.0.0)

  • Oracle Database 19c (19.0.0), usando le versioni 19.0.0.0.ru-2021-10.rur-2021-10.r1 e successive

report_type

VARCHAR2

HTML

No

Il formato del report. I valori validi sono TEXT e HTML.

dbid

NUMBER

No

Un identificatore di database (DBID) valido visualizzato nella vista DBA_HIST_DATABASE_INSTANCE per Oracle. Se questo parametro non viene specificato, RDS utilizza il DBID corrente, mostrato nella vista V$DATABASE.DBID.

In genere i seguenti parametri vengono utilizzati durante la gestione di ASH con il pacchetto rdsadmin_diagnostic_util.

Parametro Tipo di dati Default Campo obbligatorio Descrizione

begin_time

DATE

L'ora di inizio dell'analisi ASH.

end_time

DATE

L'ora di fine dell'analisi ASH.

slot_width

NUMBER

0

No

La durata degli slot (in secondi) utilizzati nella sezione "Attività superiore" del report ASH. Se questo parametro non è specificato, l'intervallo di tempo tra begin_time e end_time utilizza un massimo di 10 slot.

sid

NUMBER

Null

No

L'ID della sessione

sql_id

VARCHAR2

Null

No

L'ID SQL.

wait_class

VARCHAR2

Null

No

Il nome della classe di attesa.

service_hash

NUMBER

Null

No

L'hash del nome del servizio.

module_name

VARCHAR2

Null

No

Il nome del modulo.

action_name

VARCHAR2

Null

No

Il nome dell'operazione.

client_id

VARCHAR2

Null

No

L'ID specifico dell'applicazione della sessione del database.

plsql_entry

VARCHAR2

Null

No

Il punto di ingresso PL/SQL.

Generazione di un report AWR

Per generare un report AWR, utilizza la procedura rdsadmin.rdsadmin_diagnostic_util.awr_report.

Nell'esempio seguente viene generato un report AWR per l'intervallo di snapshot da 101 a 106. Il file di testo di output è denominato awrrpt_101_106.txt. Puoi accedere a questo report da AWS Management Console.

EXEC rdsadmin.rdsadmin_diagnostic_util.awr_report(101,106,'TEXT');

Nell'esempio seguente viene generato un report HTML per l'intervallo di snapshot da 63 a 65. Il file HTML di output è denominato awrrpt_63_65.html. La procedura scrive il report nella directory di database non predefinita denominata AWR_RPT_DUMP.

EXEC rdsadmin.rdsadmin_diagnostic_util.awr_report(63,65,'HTML','AWR_RPT_DUMP');

Estrazione di dati AWR in un file di dump

Per estrarre i dati AWR in un file di dump, utilizza la procedura rdsadmin.rdsadmin_diagnostic_util.awr_extract.

Nell'esempio seguente viene estratto l'intervallo di snapshot da 101 a 106. Il file di dump di output è denominato awrextract_101_106.dmp. Puoi accedere a questo file tramite la console.

EXEC rdsadmin.rdsadmin_diagnostic_util.awr_extract(101,106);

Nell'esempio seguente viene estratto l'intervallo di snapshot da 63 a 65. Il file di dump di output è denominato awrextract_63_65.dmp. Il file viene archiviato nella directory di database non predefinita denominata AWR_RPT_DUMP.

EXEC rdsadmin.rdsadmin_diagnostic_util.awr_extract(63,65,'AWR_RPT_DUMP');

Generazione di un report ADDM

Per generare un report ADDM, utilizza la procedura rdsadmin.rdsadmin_diagnostic_util.addm_report.

Nell'esempio seguente viene generato un report ADDM per l'intervallo di snapshot da 101 a 106. Il file di testo di output è denominato addmrpt_101_106.txt. È possibile accedere al report tramite la console.

EXEC rdsadmin.rdsadmin_diagnostic_util.addm_report(101,106);

Nell'esempio seguente viene generato un report ADDM per l'intervallo di snapshot da 63 a 65. Il file di testo di output è denominato addmrpt_63_65.txt. Il file viene archiviato nella directory di database non predefinita denominata ADDM_RPT_DUMP.

EXEC rdsadmin.rdsadmin_diagnostic_util.addm_report(63,65,'ADDM_RPT_DUMP');

Generazione di un report ASH

Per generare un report ASH, utilizza la procedura rdsadmin.rdsadmin_diagnostic_util.ash_report.

Nell'esempio seguente viene generato un report ASH che include i dati da 14 minuti fa fino all'ora corrente. Il nome del file di output utilizza il formato ashrptbegin_timeend_time.txt, dove begin_time e end_time utilizzano il formato YYYYMMDDHH24MISS. Puoi accedere al file tramite la console.

BEGIN rdsadmin.rdsadmin_diagnostic_util.ash_report( begin_time => SYSDATE-14/1440, end_time => SYSDATE, report_type => 'TEXT'); END; /

Nell'esempio seguente viene generato un report ASH che include i dati dal 18 novembre 2019 alle 18.07 fino al 18 novembre 2019 alle 18.15. Il nome del report HTML di output è ashrpt_20190918180700_20190918181500.html. Il file viene archiviato nella directory di database non predefinita denominata AWR_RPT_DUMP.

BEGIN rdsadmin.rdsadmin_diagnostic_util.ash_report( begin_time => TO_DATE('2019-09-18 18:07:00', 'YYYY-MM-DD HH24:MI:SS'), end_time => TO_DATE('2019-09-18 18:15:00', 'YYYY-MM-DD HH24:MI:SS'), report_type => 'html', dump_directory => 'AWR_RPT_DUMP'); END; /

Accesso ai report AWR dalla console o da CLI

Per accedere ai report AWR o esportare file di dump, puoi usare o. AWS Management Console AWS CLI Per ulteriori informazioni, consulta Download di un file di log di database.

Per utilizzare i collegamenti di database Oracle con le istanze database Amazon RDS nello stesso Virtual Private Cloud (VPC) o VPC in peering, le due istanze database devono avere un instradamento valido tra loro. Verifica l'instradamento valido tra le istanze database utilizzando le tabelle di routing VPC e la lista di controllo accessi della rete (ACL).

Il gruppo di sicurezza di ogni istanza database deve permettere l'ingresso e l'uscita dall'altra istanza database. Le regole in entrata e in uscita possono riferirsi ai gruppi di sicurezza dallo stesso VPC o da un VPC in peering. Per ulteriori informazioni, consulta Aggiornamento dei gruppi di sicurezza a gruppi di sicurezza VPC in peering di riferimento.

Se hai configurato un server DNS personalizzato utilizzando il set opzioni DHCP nel VPC, il server DNS personalizzato deve essere in grado di risolvere il nome del target del collegamento di database. Per ulteriori informazioni, consulta Impostazione di un server DNS personalizzato.

Per ulteriori informazioni sull'utilizzo di collegamenti di database con Oracle Data Pump, consulta Importazione utilizzando Oracle Data Pump.

Impostazione dell'edizione predefinita per un'istanza database

Puoi ridefinire gli oggetti di database in un ambiente privato che si chiama edizione. Puoi utilizzare una ridefinizione basata sull'edizione per aggiornare gli oggetti di database dell'applicazione con tempo di inattività minimo.

Puoi impostare l'edizione predefinita di un'istanza database Oracle Amazon RDS usando la procedura in Amazon RDS rdsadmin.rdsadmin_util.alter_default_edition.

L'esempio seguente imposta l'edizione predefinita per l'istanza database Oracle Amazon RDS su RELEASE_V1.

EXEC rdsadmin.rdsadmin_util.alter_default_edition('RELEASE_V1');

L'esempio seguente imposta l'edizione predefinita per l'istanza database Amazon RDS Oracle a quella predefinita di Oracle.

EXEC rdsadmin.rdsadmin_util.alter_default_edition('ORA$BASE');

Per ulteriori informazioni sulla ridefinizione Oracle basata sull'edizione, consulta le Informazioni sulla edizione e sulla ridefinizione basata sull'edizione nella documentazione di Oracle.

Abilitazione dell'audit per la tabella SYS.AUD$

Puoi utilizzare la procedura SYS.AUD$ in Amazon RDS per abilitare l'audit sulla tabella di trail dell'audit del database rdsadmin.rdsadmin_master_util.audit_all_sys_aud_table. L'unica proprietà dell'audit supportata è ALL. Non è possibile sottoporre o non sottoporre ad audit singole istruzioni o operazioni.

L'abilitazione dell'audit è supportata per le istanze database Oracle che eseguono le seguenti versioni:

  • Oracle Database 21c (21.0.0)

  • Oracle Database 19c (19.0.0)

La procedura audit_all_sys_aud_table include i seguenti parametri.

Nome del parametro Tipo di dati Default Campo obbligatorio Descrizione

p_by_access

booleano

true

No

Impostato su true per l'audit di BY ACCESS. Impostato su false per l'audit di BY SESSION.

La seguente query restituisce l'attuale configurazione dell'audit di SYS.AUD$ per un database.

SELECT * FROM DBA_OBJ_AUDIT_OPTS WHERE OWNER='SYS' AND OBJECT_NAME='AUD$';

I seguenti comandi abilitano l'audit di ALL su SYS.AUD$ BY ACCESS.

EXEC rdsadmin.rdsadmin_master_util.audit_all_sys_aud_table; EXEC rdsadmin.rdsadmin_master_util.audit_all_sys_aud_table(p_by_access => true);

Il seguente comando abilita l'audit di ALL su SYS.AUD$ BY SESSION.

EXEC rdsadmin.rdsadmin_master_util.audit_all_sys_aud_table(p_by_access => false);

Per ulteriori informazioni, consulta la sezione relativa all'AUDIT (Audit tradizionale) nella documentazione Oracle.

Disabilitazione dell'audit per la tabella SYS.AUD$

Puoi utilizzare la procedura SYS.AUD$ in Amazon RDS per disabilitare l'audit sulla tabella di trail dell'audit del database rdsadmin.rdsadmin_master_util.noaudit_all_sys_aud_table. Questa procedura non richiede parametri.

La seguente query restituisce l'attuale configurazione dell'audit di SYS.AUD$ per un database:

SELECT * FROM DBA_OBJ_AUDIT_OPTS WHERE OWNER='SYS' AND OBJECT_NAME='AUD$';

Il seguente comando disabilita l'audit di ALL su SYS.AUD$.

EXEC rdsadmin.rdsadmin_master_util.noaudit_all_sys_aud_table;

Per ulteriori informazioni, consulta la sezione relativa a NOAUDIT (Audit tradizionale) nella documentazione Oracle.

Pulizia di compilazioni dell'indice online interrotte

Per pulire compilazioni dell'indice online non riuscite, utilizza la procedura Amazon RDS rdsadmin.rdsadmin_dbms_repair.online_index_clean.

La procedura online_index_clean include i seguenti parametri.

Nome del parametro Tipo di dati Default Campo obbligatorio Descrizione

object_id

binary_integer

ALL_INDEX_ID

No

L'ID oggetto dell'indice. In genere, puoi utilizzare l'ID oggetto dal testo dell'errore ORA-08104.

wait_for_lock

binary_integer

rdsadmin.rdsadmin_dbms_repair.lock_wait

No

Specifica rdsadmin.rdsadmin_dbms_repair.lock_wait, l'impostazione predefinita, per cercare di ottenere un blocco sull'oggetto sottostante e riprovare finché non viene raggiunto un limite interno se il blocco non va a buon fine.

Specifica rdsadmin.rdsadmin_dbms_repair.lock_nowait per cercare di ottenere un blocco sull'oggetto sottostante ma non riprovare se il blocco non va a buon fine.

L'esempio seguente pulisce una compilazione di indice online non riuscita:

declare is_clean boolean; begin is_clean := rdsadmin.rdsadmin_dbms_repair.online_index_clean( object_id => 1234567890, wait_for_lock => rdsadmin.rdsadmin_dbms_repair.lock_nowait ); end; /

Per ulteriori informazioni, consulta ONLINE_INDEX_CLEAN Function nella documentazione Oracle.

Ignorare blocchi corrotti

Per ignorare blocchi corrotti durante le scansioni di indici e tabelle, utilizza il pacchetto rdsadmin.rdsadmin_dbms_repair.

Le seguenti procedure eseguono il wrapping della funzionalità della procedura sys.dbms_repair.admin_table e non accettano parametri:

  • rdsadmin.rdsadmin_dbms_repair.create_repair_table

  • rdsadmin.rdsadmin_dbms_repair.create_orphan_keys_table

  • rdsadmin.rdsadmin_dbms_repair.drop_repair_table

  • rdsadmin.rdsadmin_dbms_repair.drop_orphan_keys_table

  • rdsadmin.rdsadmin_dbms_repair.purge_repair_table

  • rdsadmin.rdsadmin_dbms_repair.purge_orphan_keys_table

Le seguenti procedure accettano gli stessi parametri delle loro controparti nel pacchetto DBMS_REPAIR per database Oracle:

  • rdsadmin.rdsadmin_dbms_repair.check_object

  • rdsadmin.rdsadmin_dbms_repair.dump_orphan_keys

  • rdsadmin.rdsadmin_dbms_repair.fix_corrupt_blocks

  • rdsadmin.rdsadmin_dbms_repair.rebuild_freelists

  • rdsadmin.rdsadmin_dbms_repair.segment_fix_status

  • rdsadmin.rdsadmin_dbms_repair.skip_corrupt_blocks

Per ulteriori informazioni sulla gestione del danneggiamento del database, vedere DBMS_REPAIR nella documentazione Oracle.

Esempio Risposta a blocchi danneggiati

Questo esempio mostra il flusso di lavoro di base per rispondere ai blocchi danneggiati. I passaggi dipenderanno dalla posizione e dalla natura del danneggiamento del blocco.

Importante

Prima di tentare di riparare i blocchi danneggiati, esaminare attentamente la documentazione di DBMS_REPAIR.

Per saltare i blocchi danneggiati durante le scansioni di indice e tabella
  1. Esegui le procedure seguenti per creare tabelle di riparazione se non esistono già.

    EXEC rdsadmin.rdsadmin_dbms_repair.create_repair_table; EXEC rdsadmin.rdsadmin_dbms_repair.create_orphan_keys_table;
  2. Esegui le procedura seguenti per verificare l'esistenza di record e cancellarli se appropriato.

    SELECT COUNT(*) FROM SYS.REPAIR_TABLE; SELECT COUNT(*) FROM SYS.ORPHAN_KEY_TABLE; SELECT COUNT(*) FROM SYS.DBA_REPAIR_TABLE; SELECT COUNT(*) FROM SYS.DBA_ORPHAN_KEY_TABLE; EXEC rdsadmin.rdsadmin_dbms_repair.purge_repair_table; EXEC rdsadmin.rdsadmin_dbms_repair.purge_orphan_keys_table;
  3. Esegui la procedura seguente per verificare la presenza di blocchi corrotti.

    SET SERVEROUTPUT ON DECLARE v_num_corrupt INT; BEGIN v_num_corrupt := 0; rdsadmin.rdsadmin_dbms_repair.check_object ( schema_name => '&corruptionOwner', object_name => '&corruptionTable', corrupt_count => v_num_corrupt ); dbms_output.put_line('number corrupt: '||to_char(v_num_corrupt)); END; / COL CORRUPT_DESCRIPTION FORMAT a30 COL REPAIR_DESCRIPTION FORMAT a30 SELECT OBJECT_NAME, BLOCK_ID, CORRUPT_TYPE, MARKED_CORRUPT, CORRUPT_DESCRIPTION, REPAIR_DESCRIPTION FROM SYS.REPAIR_TABLE; SELECT SKIP_CORRUPT FROM DBA_TABLES WHERE OWNER = '&corruptionOwner' AND TABLE_NAME = '&corruptionTable';
  4. Esegui la procedura skip_corrupt_blocks per abilitare o disabilitare l'omissione della corruzione per le tabelle interessate. A seconda della situazione, potrebbe essere necessario estrarre i dati in una nuova tabella e quindi eliminare la tabella contenente il blocco danneggiato.

    Esegui la procedura seguente per ignorare la corruzione per le tabelle interessate.

    begin rdsadmin.rdsadmin_dbms_repair.skip_corrupt_blocks ( schema_name => '&corruptionOwner', object_name => '&corruptionTable', object_type => rdsadmin.rdsadmin_dbms_repair.table_object, flags => rdsadmin.rdsadmin_dbms_repair.skip_flag); end; / select skip_corrupt from dba_tables where owner = '&corruptionOwner' and table_name = '&corruptionTable';

    Esegui la procedura seguente per non ignorare la corruzione.

    begin rdsadmin.rdsadmin_dbms_repair.skip_corrupt_blocks ( schema_name => '&corruptionOwner', object_name => '&corruptionTable', object_type => rdsadmin.rdsadmin_dbms_repair.table_object, flags => rdsadmin.rdsadmin_dbms_repair.noskip_flag); end; / select skip_corrupt from dba_tables where owner = '&corruptionOwner' and table_name = '&corruptionTable';
  5. Dopo aver completato tutti i lavori di riparazione, eseguire le procedure seguenti per eliminare le tabelle di ripristino.

    EXEC rdsadmin.rdsadmin_dbms_repair.drop_repair_table; EXEC rdsadmin.rdsadmin_dbms_repair.drop_orphan_keys_table;

Ridimensionamento di spazi di tabella, file di dati e file temporanei

Come impostazione predefinita, gli spazi tabelle Oracle sono creati con l'estensione automatica attivata e nessuna dimensione massima. A causa delle impostazioni predefinite, gli spazi tabella possono a volte diventare troppo grandi. Consigliamo di specificare una dimensione massima appropriata per spazi tabelle permanenti e temporanei e che monitori attentamente l'utilizzo di spazio.

Ridimensionamento degli spazi di tabella permanenti

Per ridimensionare uno spazio di tabella permanente in un'istanza database RDS per Oracle, utilizza una delle seguenti procedure Amazon RDS:

  • rdsadmin.rdsadmin_util.resize_datafile

  • rdsadmin.rdsadmin_util.autoextend_datafile

La procedura resize_datafile include i seguenti parametri.

Nome del parametro Tipo di dati Default Campo obbligatorio Descrizione

p_data_file_id

numero

L'identificatore del file di dati da ridimensionare.

p_size

varchar2

Le dimensioni del file di dati. Specifica le dimensioni in byte (impostazione predefinita), kilobyte (K), megabyte (M) o gigabyte (G).

La procedura autoextend_datafile include i seguenti parametri.

Nome del parametro Tipo di dati Default Campo obbligatorio Descrizione

p_data_file_id

numero

L'identificatore del file di dati da ridimensionare.

p_autoextend_state

varchar2

Lo stato della funzionalità di estensione automatica. Specifica ON per estendere automaticamente il file di dati e OFF per disattivare l'estensione automatica.

p_next

varchar2

No

Le dimensioni del successivo incremento del file di dati. Specifica le dimensioni in byte (impostazione predefinita), kilobyte (K), megabyte (M) o gigabyte (G).

p_maxsize

varchar2

No

Lo spazio massimo su disco consentito per l'estensione automatica. Specifica le dimensioni in byte (impostazione predefinita), kilobyte (K), megabyte (M) o gigabyte (G). È possibile specificare UNLIMITED per rimuovere il limite di dimensione del file.

L'esempio seguente ridimensiona il file di dati da 4 a 500 MB.

EXEC rdsadmin.rdsadmin_util.resize_datafile(4,'500M');

L'esempio seguente disattiva l'estensione automatica per il file di dati 4. Attiva l'estensione automatica per il file di dati 5, con un incremento di 128 MB e nessuna dimensione massima.

EXEC rdsadmin.rdsadmin_util.autoextend_datafile(4,'OFF'); EXEC rdsadmin.rdsadmin_util.autoextend_datafile(5,'ON','128M','UNLIMITED');

Ridimensionamento degli spazi di tabella temporanei

Per ridimensionare uno spazio di tabella temporaneo in un'istanza database RDS per Oracle, inclusa una replica di lettura, utilizza una delle seguenti procedure Amazon RDS:

  • rdsadmin.rdsadmin_util.resize_temp_tablespace

  • rdsadmin.rdsadmin_util.resize_tempfile

  • rdsadmin.rdsadmin_util.autoextend_tempfile

La procedura resize_temp_tablespace include i seguenti parametri.

Nome del parametro Tipo di dati Default Campo obbligatorio Descrizione

p_temp_tablespace_name

varchar2

Il nome dello spazio tabella temporaneo da ridimensionare.

p_size

varchar2

La dimensione dello spazio di tabella. Specifica le dimensioni in byte (impostazione predefinita), kilobyte (K), megabyte (M) o gigabyte (G).

La procedura resize_tempfile include i seguenti parametri.

Nome del parametro Tipo di dati Default Campo obbligatorio Descrizione

p_temp_file_id

numero

L'identificatore del file temporaneo da ridimensionare.

p_size

varchar2

Le dimensioni del file temporaneo. Specifica le dimensioni in byte (impostazione predefinita), kilobyte (K), megabyte (M) o gigabyte (G).

La procedura autoextend_tempfile include i seguenti parametri.

Nome del parametro Tipo di dati Default Campo obbligatorio Descrizione

p_temp_file_id

numero

L'identificatore del file temporaneo da ridimensionare.

p_autoextend_state

varchar2

Lo stato della funzionalità di estensione automatica. Specifica ON per estendere automaticamente il file temporaneo e OFF per disattivare l'estensione automatica.

p_next

varchar2

No

Le dimensioni del successivo incremento del file temporaneo. Specifica le dimensioni in byte (impostazione predefinita), kilobyte (K), megabyte (M) o gigabyte (G).

p_maxsize

varchar2

No

Lo spazio massimo su disco consentito per l'estensione automatica. Specifica le dimensioni in byte (impostazione predefinita), kilobyte (K), megabyte (M) o gigabyte (G). È possibile specificare UNLIMITED per rimuovere il limite di dimensione del file.

I seguenti esempi ridimensionano uno spazio di tabella temporaneo denominato TEMP alla dimensione di 4 GB.

EXEC rdsadmin.rdsadmin_util.resize_temp_tablespace('TEMP','4G');
EXEC rdsadmin.rdsadmin_util.resize_temp_tablespace('TEMP','4096000000');

Il seguente esempio ridimensiona uno spazio tabella temporaneo basato sul file temporaneo con l'identificatore file 1 alla dimensione di 2 MB.

EXEC rdsadmin.rdsadmin_util.resize_tempfile(1,'2M');

L'esempio seguente disattiva l'estensione automatica per il file temporaneo 1. Imposta la dimensione massima dell'estensione automatica del file temporaneo da 2 a 10 GB, con un incremento di 100 MB.

EXEC rdsadmin.rdsadmin_util.autoextend_tempfile(1,'OFF'); EXEC rdsadmin.rdsadmin_util.autoextend_tempfile(2,'ON','100M','10G');

Per maggiori informazioni sulle repliche di lettura per le istanze database Oracle, consulta Utilizzo di repliche di lettura per Amazon RDS per Oracle.

Eliminazione del cestino riciclaggio

Quando si rilascia una tabella, il database Oracle non rimuove immediatamente lo spazio di storage. Il database rinomina la tabella inserendola insieme agli eventuali oggetti associati in un cestino riciclaggio. L'eliminazione del cestino riciclaggio rimuove questi elementi e rilascia il relativo spazio di storage.

Per rimuovere l'intero cestino riciclaggio, utilizza la procedura Amazon RDS rdsadmin.rdsadmin_util.purge_dba_recyclebin. Tuttavia, questa procedura non può eliminare dal cestino riciclaggio gli oggetti SYS e RDSADMIN. Se è necessario eliminare questi oggetti, contatta AWS Support.

Nell'esempio seguente viene eliminato l'intero cestino riciclaggio.

EXEC rdsadmin.rdsadmin_util.purge_dba_recyclebin;

Impostazione dei valori di default visualizzati per la redazione completa

Per modificare i valori di default visualizzati per la redazione completa sull'istanza Oracle Amazon RDS, utilizza la procedura rdsadmin.rdsadmin_util.dbms_redact_upd_full_rdct_val di Amazon RDS. Tenere presente che viene creata una policy di redazione con il pacchetto PL/SQL DBMS_REDACT, come spiegato nella documentazione del database Oracle. La procedura dbms_redact_upd_full_rdct_val specifica i caratteri da visualizzare per i diversi tipi di dati influenzati da una policy esistente.

La procedura dbms_redact_upd_full_rdct_val include i seguenti parametri.

Nome del parametro Tipo di dati Default Campo obbligatorio Descrizione

p_number_val

number

Null

No

Modifica il valore di default per le colonne del tipo di dati NUMBER.

p_binfloat_val

binary_float

Null

No

Modifica il valore di default per le colonne del tipo di dati BINARY_FLOAT.

p_bindouble_val

binary_double

Null

No

Modifica il valore di default per le colonne del tipo di dati BINARY_DOUBLE.

p_char_val

char

Null

No

Modifica il valore di default per le colonne del tipo di dati CHAR.

p_varchar_val

varchar2

Null

No

Modifica il valore di default per le colonne del tipo di dati VARCHAR2.

p_nchar_val

nchar

Null

No

Modifica il valore di default per le colonne del tipo di dati NCHAR.

p_nvarchar_val

nvarchar2

Null

No

Modifica il valore di default per le colonne del tipo di dati NVARCHAR2.

p_date_val

data

Null

No

Modifica il valore di default per le colonne del tipo di dati DATE.

p_ts_val

timestamp

Null

No

Modifica il valore di default per le colonne del tipo di dati TIMESTAMP.

p_tswtz_val

timestamp with time zone

Null

No

Modifica il valore di default per le colonne del tipo di dati TIMESTAMP WITH TIME ZONE.

p_blob_val

blob

Null

No

Modifica il valore di default per le colonne del tipo di dati BLOB.

p_clob_val

clob

Null

No

Modifica il valore di default per le colonne del tipo di dati CLOB.

p_nclob_val

nclob

Null

No

Modifica il valore di default per le colonne del tipo di dati NCLOB.

L'esempio seguente modifica il valore di default redatto in * per il tipo di dati CHAR:

EXEC rdsadmin.rdsadmin_util.dbms_redact_upd_full_rdct_val(p_char_val => '*');

L'esempio seguente modifica i valori di default redatti per i tipi di dati NUMBERDATE e CHAR:

BEGIN rdsadmin.rdsadmin_util.dbms_redact_upd_full_rdct_val( p_number_val=>1, p_date_val=>to_date('1900-01-01','YYYY-MM-DD'), p_varchar_val=>'X'); END; /

Dopo aver modificato i valori di default per la redazione completa con la procedura dbms_redact_upd_full_rdct_val, riavvia l'istanza database per rendere effettiva la modifica. Per ulteriori informazioni, consulta Riavvio di un'istanza database.