Attività comuni per i database - Amazon Relational Database Service

Attività comuni per i database

Puoi creare, eliminare o ripristinare i database sulla tua istanza database RDS per Db2. La creazione, l’eliminazione o il ripristino di database richiede un’autorità SYSADM di livello superiore, di cui l’utente principale non dispone. Puoi invece utilizzare le stored procedure di Amazon RDS.

Puoi anche eseguire attività di gestione comuni come il monitoraggio, la manutenzione e la raccolta di informazioni sui tuoi database.

Creazione di un database

Per creare un database sulla tua istanza database RDS per Db2, chiama la stored procedure rdsadmin.create_database. Per ulteriori informazioni, consulta CREATE DATABASE command nella documentazione di IBM Db2.

Nota

Se intendi modificare il parametro db2_compatibility_vector, modificalo prima di creare un database. Per ulteriori informazioni, consulta Impostazione del parametro db2_compatibility_vector.

Per creare un database:
  1. Connettiti al database rdsadmin utilizzando il nome utente e la password principali dell’istanza database RDS per Db2. Nell’esempio seguente, sostituisci master_username e master_password con le tue informazioni.

    db2 "connect to rdsadmin user master_username using master_password"
  2. Crea un database chiamando rdsadmin.create_database. Per ulteriori informazioni, consulta rdsadmin.create_database.

    db2 "call rdsadmin.create_database('database_name')"
  3. (Facoltativo) Crea database aggiuntivi chiamando rdsadmin.create_database per ogni database che desideri creare. Ogni istanza database Db2 può contenere fino a 50 database. Per ulteriori informazioni, consulta rdsadmin.create_database.

    db2 "call rdsadmin.create_database('database_name')"
  4. (Facoltativo) Assicurati che il database sia stato creato utilizzando uno dei metodi seguenti:

    • Chiama rdsadmin.list_databases. Per ulteriori informazioni, consulta rdsadmin.list_databases.

    • Esegui il seguente comando SQL:

      db2 "select varchar(r.task_type,25) as task_type, r.database_name, varchar(r.lifecycle,15) as lifecycle, r.created_at, r.database_name, varchar(bson_to_json(task_input_params),256) as input_params, varchar(r.task_output,1024) as task_output from table(rdsadmin.get_task_status(null,null,'create_database')) as r order by created_at desc"

Configurazione delle impostazioni per un database

Per configurare le impostazioni per un database sulla tua istanza database RDS per Db2, chiama la stored procedure rdsadmin.set_configuration. Ad esempio, puoi configurare il numero di buffer o manipolatori di buffer da creare durante un’operazione di ripristino.

Per configurare le impostazioni per un database
  1. Connettiti al database rdsadmin utilizzando il nome utente e la password principali dell’istanza database RDS per Db2. Nell’esempio seguente, sostituisci master_username e master_password con le tue informazioni.

    db2 "connect to rdsadmin user master_username using master_password"
  2. (Facoltativo) Controlla le impostazioni di configurazione correnti chiamando rdsadmin.show_configuration. Per ulteriori informazioni, consulta rdsadmin.show_configuration.

    db2 "call rdsadmin.show_configuration('name')"
  3. Configura le impostazioni per il database chiamando rdsadmin.set_configuration. Per ulteriori informazioni, consulta rdsadmin.set_configuration.

    db2 "call rdsadmin.set_configuration( 'name', 'value')"

Modifica dei parametri del database

Amazon RDS per Db2 utilizza tre tipi di parametri: parametri di configurazione del gestore di database, variabili di registro e parametri di configurazione del database. È possibile aggiornare i primi due tipi tramite gruppi di parametri e l’ultimo tipo tramite la stored procedure rdsadmin.update_db_param.

Nota

È possibile modificare solo i valori di parametri esistenti. Non è possibile aggiungere nuovi parametri non supportati da RDS per Db2.

Per ulteriori informazioni su questi parametri e su come modificarne i valori, consulta Parametri di Amazon RDS per Db2.

Configurazione della conservazione dei log

Per configurare il tempo per cui Amazon RDS mantiene i file di log per il tuo database RDS per Db2, chiama la stored procedure rdsadmin.set_archive_log_retention.

Per configurare la conservazione dei log per un database
  1. Connettiti al database rdsadmin utilizzando il nome utente e la password principali dell’istanza database RDS per Db2. Nell’esempio seguente, sostituisci master_username e master_password con le tue informazioni.

    db2 "connect to rdsadmin user master_username using master_password"
  2. (Facoltativo) Controlla la configurazione corrente per la conservazione dei log chiamando rdsadmin.show_archive_log_retention. Per ulteriori informazioni, consulta rdsadmin.show_archive_log_retention.

    db2 "call rdsadmin.show_archive_log_retention( ?, 'database_name')"
  3. Configura la conservazione dei log per il database chiamando rdsadmin.set_archive_log_retention. Per ulteriori informazioni, consulta rdsadmin.set_archive_log_retention.

    db2 "call rdsadmin.set_archive_log_retention( ?, 'database_name', 'archive_log_retention_hours')"

Elencare le informazioni relative ai log

Per elencare i dettagli sui file di log di archivio, ad esempio la dimensione totale di archiviazione utilizzata, chiama la stored procedure rdsadmin.list_archive_log_information.

Per elencare le informazioni relative ai log per un database
  1. Connettiti al database rdsadmin utilizzando il nome utente e la password principali dell’istanza database RDS per Db2. Nell’esempio seguente, sostituisci master_username e master_password con le tue informazioni.

    db2 "connect to rdsadmin user master_username using master_password"
  2. Chiama rdsadmin.list_archive_log_information per ottenere un elenco di informazioni sui file di log. Per ulteriori informazioni, consulta rdsadmin.list_archive_log_information.

    db2 "call rdsadmin.list_archive_log_information( ?, 'database_name')"

Disattivazione di un database

Per disattivare un database sulla tua istanza database RDS per Db2, chiama la stored procedure rdsadmin.deactivate_database.

Per impostazione predefinita, Amazon RDS attiva un database quando si crea un database su un’istanza database RDS per Db2. È possibile disattivare i database di uso meno frequente per risparmiare risorse di memoria.

Per disattivare un database
  1. Connettiti al database rdsadmin utilizzando il nome utente e la password principali dell’istanza database RDS per Db2. Nell’esempio seguente, sostituisci master_username e master_password con le tue informazioni.

    db2 "connect to rdsadmin user master_username using master_password"
  2. Disattiva un database chiamando rdsadmin.deactivate_database. Per ulteriori informazioni, consulta rdsadmin.deactivate_database.

    db2 "call rdsadmin.deactivate_database( ?, 'database_name')"

Attivazione di un database

Per attivare un database su un’istanza database RDS per Db2 autonoma, chiama la stored procedure rdsadmin.activate_database.

Per impostazione predefinita, Amazon RDS attiva un database quando si crea un database su un’istanza database RDS per Db2. È possibile disattivare i database di uso meno frequente per risparmiare risorse di memoria, quindi attivare in seguito un database disattivato.

Per attivare un database
  1. Connettiti al database rdsadmin utilizzando il nome utente e la password principali dell’istanza database RDS per Db2. Nell’esempio seguente, sostituisci master_username e master_password con le tue informazioni.

    db2 "connect to rdsadmin user master_username using master_password"
  2. Attiva un database chiamando rdsadmin.activate_database. Per ulteriori informazioni, consulta rdsadmin.activate_database.

    db2 "call rdsadmin.activate_database( ?, 'database_name')"

Riattivazione di un database

Per riattivare un database su un’istanza database RDS per Db2 di origine replica, chiama la stored procedure rdsadmin.reactivate_database. Dopo aver apportato modifiche alle configurazioni del database, potrebbe essere necessario riattivare un database su un’istanza database RDS per Db2. Per stabilire se è necessario riattivare un database, connettiti al database ed esegui db2 get db cfg show detail.

Puoi anche chiamare questa stored procedure per riattivare un database su un’istanza database RDS per Db2 autonoma dopo aver apportato modifiche alla configurazione del database. In alternativa, è possibile riattivare un database su un’istanza database RDS per Db2 autonoma chiamando prima la stored procedure rdsadmin.deactivate_database e poi la stored procedure rdsadmin.activate_database. Per ulteriori informazioni, consultare Disattivazione di un database e Attivazione di un database.

Per riattivare un database
  1. Connettiti al database rdsadmin utilizzando il nome utente e la password principali dell’istanza database RDS per Db2. Nell’esempio seguente, sostituisci master_username e master_password con le tue informazioni.

    db2 "connect to rdsadmin user master_username using master_password"
  2. Riattiva un database chiamando rdsadmin.reactivate_database. Per ulteriori informazioni, consulta rdsadmin.reactivate_database.

    db2 "call rdsadmin.reactivate_database( ?, 'database_name')"

Eliminazione di un database.

Per eliminare un database dalla tua istanza database RDS per Db2, chiama la stored procedure rdsadmin.drop_database. Per ulteriori informazioni, consulta Dropping databases nella documentazione di IBM Db2.

Nota

È possibile eliminare un database chiamando la stored procedure solo se sono soddisfatte determinate condizioni. Per ulteriori informazioni, consulta Note per l'utilizzo per rdsadmin.drop_database.

Per eliminare un database
  1. Connettiti al database rdsadmin utilizzando il nome utente e la password principali dell’istanza database RDS per Db2. Nell’esempio seguente, sostituisci master_username e master_password con le tue informazioni.

    db2 "connect to rdsadmin user master_username using master_password"
  2. Elimina un database chiamando rdsadmin.drop_database. Per ulteriori informazioni, consulta rdsadmin.drop_database.

    db2 "call rdsadmin.drop_database('database_name')"

Ripristino di un database

Per spostare un database da un bucket Amazon S3 alla tua istanza database RDS per Db2, chiama la stored procedure rdsadmin.restore_database. Per ulteriori informazioni, consulta RESTORE DATABASE command nella documentazione di IBM Db2.

Per ripristinare un database
  1. Connettiti al database rdsadmin utilizzando il nome utente e la password principali dell’istanza database RDS per Db2. Nell’esempio seguente, sostituisci master_username e master_password con le tue informazioni.

    db2 "connect to rdsadmin user master_username using master_password"
  2. (Facoltativo) Controlla le impostazioni di configurazione correnti per ottimizzare l’operazione di ripristino chiamando rdsadmin.show_configuration. Per ulteriori informazioni, consulta rdsadmin.show_configuration.

    db2 "call rdsadmin.show_configuration('name')"
  3. Configura le impostazioni per ottimizzare l’operazione di ripristino chiamando rdsadmin.set_configuration. L’impostazione esplicita di questi valori può migliorare le prestazioni durante il ripristino di database con grandi volumi di dati. Per ulteriori informazioni, consulta rdsadmin.set_configuration.

    db2 "call rdsadmin.set_configuration( 'name', 'value')"
  4. Ripristina il database chiamando rdsadmin.restore_database. Per ulteriori informazioni, consulta rdsadmin.restore_database.

    db2 "call rdsadmin.restore_database( ?, 'database_name', 's3_bucket_name', 's3_prefix', restore_timestamp, 'backup_type')"
  5. (Facoltativo) Assicurati che il database sia stato ripristinato chiamando rdsadmin.list_databases e controllando che il database ripristinato sia elencato. Per ulteriori informazioni, consulta rdsadmin.list_databases.

  6. Riporta online il database e applica ulteriori log delle transazioni chiamando rdsadmin.rollforward_database. Per ulteriori informazioni, consulta rdsadmin.rollforward_database.

    db2 "call rdsadmin.rollforward_database( ?, 'database_name', 's3_bucket_name', s3_prefix, 'rollforward_to_option', 'complete_rollforward')"
  7. (Facoltativo) Controlla lo stato della stored procedure rdsadmin.rollforward_database chiamando la stored procedure rdsadmin.rollforward_status.

  8. Se hai impostato complete_rollforward su FALSE nel passaggio precedente, devi terminare di riportare online il database chiamando rdsadmin.complete_rollforward. Per ulteriori informazioni, consulta rdsadmin.complete_rollforward.

    db2 "call rdsadmin.complete_rollforward( ?, 'database_name')"
  9. (Facoltativo) Controlla lo stato della stored procedure rdsadmin.complete_rollforward chiamando la stored procedure rdsadmin.rollforward_status.

Elencare i database

Puoi elencare tutti i database in esecuzione su Amazon RDS per Db2 chiamando la funzione definita dall’utente rdsadmin.list_databases.

Per elencare i tuoi database
  1. Connettiti al database rdsadmin utilizzando il nome utente e la password principali dell’istanza database RDS per Db2. Nell’esempio seguente, sostituisci master_username e master_password con le tue informazioni.

    db2 "connect to rdsadmin user master_username using master_password"
  2. Elenca i tuoi database chiamando rdsadmin.list_databases. Per ulteriori informazioni, consulta rdsadmin.list_databases.

    db2 "select * from table(rdsadmin.list_databases())"

Raccolta di informazioni sui database

Per raccogliere informazioni su un database su un’istanza database RDS per Db2, chiama la stored procedure rdsadmin.db2pd_command. Queste informazioni possono essere utili per il monitoraggio dei database o per la risoluzione dei problemi.

Per raccogliere informazioni su un database
  1. Connettiti al database rdsadmin utilizzando il nome utente e la password principali dell’istanza database RDS per Db2. Nell’esempio seguente, sostituisci master_username e master_password con le tue informazioni.

    db2 "connect to rdsadmin user master_username using master_password"
  2. Raccogli informazioni sul database chiamando rdsadmin.db2pd_command. Per ulteriori informazioni, consulta rdsadmin.db2pd_command.

    db2 "call rdsadmin.db2pd_command('db2pd_cmd')"

Forzare la disconnessione di applicazioni dai database

Per forzare la disconnessione di applicazioni da un database su un’istanza database RDS per Db2, chiama la stored procedure rdsadmin.force_application. Prima di eseguire la manutenzione dei database, forza la disconnessione delle applicazioni dai database.

Per forzare la disconnessione delle applicazioni da un database
  1. Connettiti al database rdsadmin utilizzando il nome utente e la password principali dell’istanza database RDS per Db2. Nell’esempio seguente, sostituisci master_username e master_password con le tue informazioni.

    db2 "connect to rdsadmin user master_username using master_password"
  2. Forza la disconnessione delle applicazioni da un database chiamando rdsadmin.force_application. Per ulteriori informazioni, consulta rdsadmin.force_application.

    db2 "call rdsadmin.force_application( ?, 'applications')"

Generazione di report sulle prestazioni

È possibile generare report sulle prestazioni con una procedura o uno script. Per informazioni sull’utilizzo di una procedura, consulta DBSUMMARY procedure ‐ Generate a summary report of system and application performance metrics nella documentazione di IBM Db2.

Db2 include un file db2mon.sh nella sua directory ~sqllib/sample/perf. L’esecuzione dello script produce un report completo e a basso costo sulle metriche SQL. Per scaricare il file db2mon.sh e i file di script correlati, consulta la directory perf nel repository GitHub IBM db2-samples.

Per generare report sulle prestazioni con lo script
  1. Connettiti al database Db2 utilizzando il nome utente e la password principali dell’istanza database RDS per Db2. Nell’esempio seguente, sostituisci master_username e master_password con le tue informazioni.

    db2 connect to rdsadmin user master_username using master_password
  2. Crea un pool di buffer denominato db2monbp con una dimensione di pagina 4096 chiamando rdsadmin.create_bufferpool. Per ulteriori informazioni, consulta rdsadmin.create_bufferpool.

    db2 "call rdsadmin.create_bufferpool('database_name','db2monbp',4096)"
  3. Crea un tablespace temporaneo denominato db2montmptbsp che utilizza il pool di buffer db2monbp chiamando rdsadmin.create_tablespace. Per ulteriori informazioni, consulta rdsadmin.create_tablespace.

    db2 "call rdsadmin.create_tablespace('database_name',\ 'db2montmptbsp','db2monbp',4096,1000,100,'T')"
  4. Apri lo script db2mon.sh e modifica la riga relativa alla connessione a un database.

    1. Rimuovi la seguente riga.

      db2 -v connect to $dbName
    2. Sostituisci la riga del passaggio precedente con la riga seguente. Nell’esempio seguente, sostituisci master_username e master_password con il nome utente principale e la password principale per la tua istanza database RDS per Db2.

      db2 -v connect to $dbName user master_username using master_password
    3. Rimuovi le seguenti righe.

      db2 -v create bufferpool db2monbp db2 -v create user temporary tablespace db2montmptbsp bufferpool db2monbp db2 -v drop tablespace db2montmptbsp db2 -v drop bufferpool db2monbp
  5. Esegui lo script db2mon.sh per generare un report a determinati intervalli. Nell’esempio seguente, sostituisci absolute_path con il percorso completo del file di script, rds_database_alias con il nome del database e seconds con il numero di secondi (da 0 a 3600) tra le generazioni di report.

    absolute_path/db2mon.sh rds_database_alias seconds | tee -a db2mon.out

    Examples (Esempi)

    L’esempio seguente mostra che il file di script si trova nella directory perf sotto la directory home.

    /home/db2inst1/sqllib/samples/perf/db2mon.sh rds_database_alias seconds | tee -a db2mon.out
  6. Elimina il pool di buffer e il tablespace creati per il file db2mon.sh. Nell’esempio seguente, sostituisci master_username e master_password con il nome utente principale e la password principale per la tua istanza database RDS per Db2. Sostituisci database_name con il nome del tuo database. Per ulteriori informazioni, consultare rdsadmin.drop_tablespace e rdsadmin.drop_bufferpool.

    db2 connect to rdsadmin user master_username using master_password db2 "call rdsadmin.drop_tablespace('database_name','db2montmptbsp')" db2 "call rdsadmin.drop_bufferpool('database_name','db2monbp')"