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à.
Stored procedure relative ai database per RDS per Db2
Le stored procedure integrate descritte in questo argomento gestiscono i database per Amazon RDS per Db2. Per eseguire queste procedure, l’utente master deve prima connettersi al database rdsadmin.
Queste stored procedure vengono utilizzate in diverse attività. L'elenco non è completo.
Per informazioni sulla sintassi, i parametri, le note per l’utilizzo e gli esempi, fai riferimento alle seguenti stored procedure integrate.
Stored procedure
rdsadmin.create_database
Crea un database.
Sintassi
db2 "call rdsadmin.create_database( 'database_name', 'database_page_size', 'database_code_set', 'database_territory', 'database_collation', 'database_autoconfigure_str', 'database_non-restrictive')"
Parameters
Nota
Questa stored procedure non convalida la combinazione dei parametri richiesti. Quando si chiama rdsadmin.get_task_status, la funzione definita dall’utente potrebbe restituire un errore a causa di una combinazione di database_codeset, database_territory e database_collation non valida. Per ulteriori informazioni, consulta Choosing the code page, territory, and collation for your database
Il parametro seguente è obbligatorio:
database_name-
Il nome del database da creare. Il tipo di dati è
varchar.
I parametri seguenti sono facoltativi:
database_page_size-
La dimensione predefinita della pagina del database. Valori validi:
4096,8192,16384,32768. Il tipo di dati èinteger. Il valore predefinito è8192.Importante
Amazon RDS supporta l’atomicità di scrittura per pagine da 4, 8 e 16 KiB. Al contrario, le pagine da 32 KB rischiano scritture strappate o la scrittura di dati parziali sul disco. Se utilizzi pagine da 32 KiB, ti consigliamo di abilitare il point-in-time ripristino e i backup automatici. Altrimenti, corri il rischio di non riuscire a recuperare le pagine danneggiate. Per ulteriori informazioni, consultare Introduzione ai backup e Ripristino di un’istanza database a un punto temporale specifico per Amazon RDS.
database_code_set-
Il set di codici per il database. Il tipo di dati è
varchar. Il valore predefinito èUTF-8. database_territory-
Il codice di due lettere del paese per il database. Il tipo di dati è
varchar. Il valore predefinito èUS. database_collation-
La sequenza di regole di confronto che determina il modo in cui le stringhe di caratteri archiviate nel database vengono ordinate e confrontate. Il tipo di dati è
varchar.Valori validi:
-
COMPATIBILITY: una sequenza di regole di confronto IBM Db2 versione 2. -
EBCDIC_819_037: tabella codici ISO alfabeto latino, regole di confronto; CCSID 037 (EBCDIC inglese statunitense). -
EBCDIC_819_500: tabella codici ISO alfabeto latino, regole di confronto; CCSID 500 (EBCDIC internazionale). -
EBCDIC_850_037: tabella codici ASCII alfabeto latino, regole di confronto; CCSID 037 (EBCDIC inglese statunitense). -
EBCDIC_850_500: tabella codici ASCII alfabeto latino, regole di confronto; CCSID 500 (EBCDIC internazionale). -
EBCDIC_932_5026: tabella codici ASCII alfabeto giapponese, regole di confronto; CCSID 5026 (EBCDIC inglese statunitense). -
EBCDIC_932_5035: tabella codici ASCII alfabeto giapponese, regole di confronto; CCSID 5035 (EBCDIC internazionale). -
EBCDIC_1252_037: tabella codici Windows alfabeto latino, regole di confronto; CCSID 037 (EBCDIC inglese statunitense). -
EBCDIC_1252_500: tabella codici Windows alfabeto latino, regole di confronto; CCSID 500 (EBCDIC internazionale). -
IDENTITY: regole di confronto predefinite. Le stringhe vengono confrontate byte per byte. -
IDENTITY_16BIT: lo schema di codifica di compatibilità per UTF-16: sequenza di regole di confronto a 8 bit (CESU-8). Per ulteriori informazioni, consulta l’Unicode Technical Report #26sul sito web Unicode Consortium. -
NLSCHAR— Da utilizzare solo con la tabella codici thailandese (CP874). -
SYSTEM: se utilizziSYSTEM, il database applica automaticamente la sequenza di regole di confronto perdatabase_codesetedatabase_territory.
Il valore predefinito è
IDENTITY.Inoltre, RDS per Db2 supporta i seguenti gruppi di regole di confronto:
language-aware-collationelocale-sensitive-collation. Per ulteriori informazioni, consulta Choosing a collation for a Unicode databasenella documentazione di IBM Db2. -
database_autoconfigure_str-
La sintassi del comando
AUTOCONFIGURE, ad esempio'AUTOCONFIGURE APPLY DB'. Il tipo di dati èvarchar. L’impostazione predefinita è una stringa vuota o null.Per ulteriori informazioni, consulta AUTOCONFIGURE command
nella documentazione di IBM Db2. database_non-restrictive-
La concessione di autorità e privilegi predefiniti all'interno del database. Il tipo di dati è
varchar. Il valore predefinito èN.Valori validi:
-
N— Il database creato è restrittivo e non concede autorità o privilegi. -
Y— Il database creato non è restrittivo e concede una serie di autorizzazioni al gruppo speciale.PUBLICPer ulteriori informazioni, consulta Privilegi predefiniti concessi per la creazione di un databasenella documentazione. IBM Db2
-
Note per l’utilizzo
Se intendi modificare il parametro db2_compatibility_vector, modificalo prima di creare un database. Per ulteriori informazioni, consulta Impostazione del parametro db2_compatibility_vector.
Considerazioni speciali:
-
Il comando
CREATE DATABASEinviato all’istanza Db2 utilizza l’opzioneRESTRICTIVE. -
RDS per Db2 utilizza solo tablespace
AUTOMATIC STORAGE. -
RDS per Db2 utilizza i valori predefiniti per
NUMSEGSeDFT_EXTENT_SZ. -
RDS per Db2 utilizza la crittografia dell’archiviazione e non supporta la crittografia del database.
Per ulteriori informazioni su queste considerazioni, consulta CREATE DATABASE command
Prima di chiamare rdsadmin.create_database, è necessario connettersi al database rdsadmin. Nell'esempio seguente, sostituisci master_username e master_password con le informazioni sull'istanza DB RDS for Db2:
db2 connect to rdsadmin usermaster_usernameusingmaster_password
Per informazioni su come verificare lo stato della creazione di un database, consulta rdsadmin.get_task_status.
Per i messaggi di errore restituiti durante la chiamata di rdsadmin.create_database, consulta Errori delle stored procedure.
Esempi
L'esempio seguente crea un database chiamato TESTJP con una combinazione corretta di database_code_setdatabase_territory, e database_collation parametri per il Giappone:
db2 "call rdsadmin.create_database('TESTJP', 4096, 'IBM-437', 'JP', 'SYSTEM')"
rdsadmin.deactivate_database
Disattiva un database.
Sintassi
db2 "call rdsadmin.deactivate_database( ?, 'database_name')"
Parameters
Il parametro di output seguente è obbligatorio:
- ?
-
Un indicatore di parametro che genera un messaggio di errore. Questo parametro accetta solo
?
Il parametro di input seguente è obbligatorio:
database_name-
Il nome del database da disattivare. Il tipo di dati è
varchar.
Note per l’utilizzo
È possibile disattivare i database per risparmiare risorse di memoria o per apportare altre modifiche alla configurazione del database. Per riportare online i database disattivati, chiama la stored procedure rdsadmin.activate_database.
Non è possibile disattivare un database su un’istanza database di origine durante la replica chiamando la stored procedure rdsadmin.deactivate_database.
Per informazioni su come verificare lo stato della disattivazione di un database, consulta rdsadmin.get_task_status.
Per i messaggi di errore restituiti durante la chiamata di rdsadmin.deactivate_database, consulta Errori delle stored procedure.
Esempi
Nell’esempio seguente viene disattivato un database denominato TESTDB.
db2 "call rdsadmin.deactivate_database(?, 'TESTDB')"
rdsadmin.activate_database
Attiva un database.
Per ulteriori informazioni sulla differenza tra rdsadmin.reactivate_database e rdsadmin.activate_database, consulta Note per l’utilizzo.
Sintassi
db2 "call rdsadmin.activate_database( ?, 'database_name')"
Parameters
Il parametro di output seguente è obbligatorio:
- ?
-
Un indicatore di parametro che genera un messaggio di errore. Questo parametro accetta solo
?
Il parametro di input seguente è obbligatorio:
database_name-
Il nome del database da attivare. Il tipo di dati è
varchar.
Note per l’utilizzo
Tutti i database vengono attivati per impostazione predefinita al momento della creazione. Se per risparmiare risorse di memoria o apportare altre modifiche alla configurazione del database si disattiva un database su un’istanza database autonoma, chiama la stored procedure rdsadmin.activate_database per riattivarlo.
Questa stored procedure attiva solo un database che si trova su un’istanza database autonoma e che è stato disattivato chiamando la stored procedure rdsadmin.deactivate_database. Per attivare un database su un’istanza database di origine di replica, è necessario chiamare la stored procedure rdsadmin.reactivate_database.
Per informazioni su come verificare lo stato dell’attivazione di un database, consulta rdsadmin.get_task_status.
Per i messaggi di errore restituiti durante la chiamata di rdsadmin.activate_database, consulta Errori delle stored procedure.
Esempi
Nell’esempio seguente viene attivato un database denominato TESTDB.
db2 "call rdsadmin.activate_database(?, 'TESTDB')"
rdsadmin.reactivate_database
Riattiva un database.
Per informazioni sulle differenze tra rdsadmin.activate_database e rdsadmin.reactivate_database, consulta Note per l’utilizzo.
Sintassi
db2 "call rdsadmin.reactivate_database( ?, 'database_name')"
Parameters
Il parametro di output seguente è obbligatorio:
- ?
-
Un indicatore di parametro che genera un messaggio di errore. Questo parametro accetta solo
?
Il parametro di input seguente è obbligatorio:
database_name-
Il nome del database da riattivare. Il tipo di dati è
varchar.
Note per l’utilizzo
Quando si chiama la stored procedure rdsadmin.reactivate_database, questa prima disattiva il database chiamando la stored procedure rdsadmin.deactivate_database, quindi lo attiva chiamando la stored procedure rdsadmin.activate_database.
Dopo aver apportato modifiche alle configurazioni dei 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.
Per un database su un’istanza database autonoma, per la riattivazione è possibile utilizzare la stored procedure rdsadmin.reactivate_database. Oppure, se hai già chiamato la stored procedure rdsadmin.deactivate_database, puoi invece chiamare la stored procedure rdsadmin.activate_database.
Per un database su un’istanza database di origine di replica, per la riattivazione è necessario utilizzare la stored procedure rdsadmin.reactivate_database.
Per informazioni su come verificare lo stato della riattivazione di un database, consulta rdsadmin.get_task_status.
Per i messaggi di errore restituiti durante la chiamata di rdsadmin.reactivate_database, consulta Errori delle stored procedure.
Esempi
Nell’esempio seguente viene riattivato un database denominato TESTDB.
db2 "call rdsadmin.reactivate_database(?, 'TESTDB')"
rdsadmin.drop_database
Rimuovi un database.
Sintassi
db2 "call rdsadmin.drop_database('database_name')"
Parameters
Il parametro seguente è obbligatorio:
database_name-
Nome del database da rimuovere. Il tipo di dati è
varchar.
Note per l’utilizzo
È possibile eliminare un database chiamando rdsadmin.drop_database solo se sono soddisfatte le seguenti condizioni:
-
Non hai specificato il nome del database quando hai creato l’istanza database RDS per Db2 utilizzando la console Amazon RDS o la AWS CLI. Per ulteriori informazioni, consulta Creazione di un'istanza database.
-
Hai creato il database chiamando la stored procedure rdsadmin.create_database.
-
Hai ripristinato il database da un’immagine offline o di cui è stato eseguito il backup chiamando la stored procedure rdsadmin.restore_database.
Prima di chiamare rdsadmin.drop_database, è necessario connettersi al database rdsadmin. Nell'esempio seguente, sostituisci master_username e master_password con le informazioni sull'istanza DB RDS for Db2:
db2 connect to rdsadmin usermaster_usernameusingmaster_password
Per informazioni su come verificare lo stato dell’eliminazione di un database, consulta rdsadmin.get_task_status.
Per i messaggi di errore restituiti durante la chiamata di rdsadmin.drop_database, consulta Errori delle stored procedure.
Esempi
Nell’esempio seguente viene rimosso un database denominato TESTDB.
db2 "call rdsadmin.drop_database('TESTDB')"
rdsadmin.update_db_param
Aggiorna i parametri del database.
Sintassi
db2 "call rdsadmin.update_db_param( 'database_name', 'parameter_to_modify', 'changed_value', 'restart_database')"
Parameters
I parametri seguenti sono obbligatori:
database_name-
Il nome del database per cui eseguire l’attività. Il tipo di dati è
varchar. parameter_to_modify-
Il nome del parametro da modificare. Il tipo di dati è
varchar. Per ulteriori informazioni, consulta Parametri di Amazon RDS per Db2. changed_value-
Il valore in cui modificare il valore del parametro. Il tipo di dati è
varchar.
Il parametro seguente è facoltativo:
restart_database-
Specifica se RDS riavvia il database in caso fosse necessario un riavvio. Il tipo di dati è
varchar. Per modificarelogprimaryelogfilsiz, imposta questo parametro su'YES'.
Note per l’utilizzo
Per informazioni su come verificare lo stato dell’aggiornamento dei parametri del database, consulta rdsadmin.get_task_status.
Per i messaggi di errore restituiti durante la chiamata di rdsadmin.update_db_param, consulta Errori delle stored procedure.
Esempi
Esempio 1: aggiornamento di un parametro
Nell’esempio seguente il parametro archretrydelay viene aggiornato a 100 per un database chiamato TESTDB:
db2 "call rdsadmin.update_db_param( 'TESTDB', 'archretrydelay', '100')"
Esempio 2: rinvio della convalida degli oggetti
Nell’esempio seguente viene posticipata la convalida degli oggetti creati su un database denominato TESTDB per evitare il controllo delle dipendenze:
db2 "call rdsadmin.update_db_param( 'TESTDB', 'auto_reval', 'deferred_force')"
rdsadmin.set_configuration
Configura impostazioni specifiche per il database.
Sintassi
db2 "call rdsadmin.set_configuration( 'name', 'value')"
Parameters
I parametri seguenti sono obbligatori:
name-
Il nome dell’impostazione di configurazione. Il tipo di dati è
varchar. value-
Il valore dell’impostazione di configurazione. Il tipo di dati è
varchar.
Note per l’utilizzo
La tabella riportata di seguito mostra le impostazioni di configurazione che è possibile controllare con rdsadmin.set_configuration.
| Nome | Description |
|---|---|
|
|
Il numero di buffer da creare durante un’operazione di ripristino. Questo valore deve essere inferiore alla dimensione totale della memoria della classe dell’istanza database. Se questa impostazione non è configurata, Db2 determina il valore da utilizzare durante l’operazione di ripristino. Per ulteriori informazioni, vedete il comando RESTORE DATABASE |
|
|
Il numero di manipolatori di buffer da creare durante un’operazione di ripristino. Questo valore deve essere inferiore al doppio del numero di v CPUs per l'istanza DB. Se questa impostazione non è configurata, Db2 determina il valore da utilizzare durante l’operazione di ripristino. Per ulteriori informazioni, vedete il comando RESTORE DATABASE |
|
|
Il numero di percorsi (o I/O stream) da utilizzare durante un ripristino da un'operazione di Amazon S3. Per utilizzare questa impostazione di configurazione, è necessario disporre di più file di backup. Questo valore può migliorare le prestazioni durante il ripristino di database con grandi volumi di dati perché ripristina più file di backup del database in parallelo. Si consiglia di impostare questo valore in modo che corrisponda al numero dei file di backup del database. Per ulteriori informazioni, vedere il comando BACKUP DATABASE |
|
|
Speciifica se eseguire lo streaming dei dati di backup direttamente durante il ripristino anziché scaricare prima l'intero backup sull'istanza DB RDS for Db2 e poi estrarlo. L'impostazione |
Esempi
Esempio 1: Specificazione del numero di buffer da creare
Nell’esempio seguente, la configurazione RESTORE_DATABASE_NUM_BUFFERS viene impostata su 150.
db2 "call rdsadmin.set_configuration( 'RESTORE_DATABASE_NUM_BUFFERS', '150')"
Esempio 2: Specificazione del numero di manipolatori di buffer da creare
Nell’esempio seguente, la configurazione RESTORE_DATABASE_PARALLELISM viene impostata su 8.
db2 "call rdsadmin.set_configuration( 'RESTORE_DATABASE_PARALLELISM', '8')"
Esempio 3: Specificazione del numero di percorsi o I/O stream da utilizzare durante il ripristino
Nell’esempio seguente, la configurazione RESTORE_DATABASE_NUM_MULTI_PATHS viene impostata su 5.
db2 "call rdsadmin.set_configuration( 'RESTORE_DATABASE_NUM_MULTI_PATHS', '5')"
Esempio 4: impostazione del ripristino per lo streaming dei dati di backup
Nell’esempio seguente, la configurazione USE_STREAMING_RESTORE viene impostata su TRUE.
db2 "call rdsadmin.set_configuration( 'USE_STREAMING_RESTORE', 'TRUE')"
rdsadmin.show_configuration
Restituisce le impostazioni correnti che è possibile definire utilizzando la stored procedure rdsadmin.set_configuration.
Sintassi
db2 "call rdsadmin.show_configuration( 'name')"
Parameters
Il parametro seguente è facoltativo:
name-
Il nome dell’impostazione di configurazione per cui restituire informazioni. Il tipo di dati è
varchar.Le opzioni di configurazione valide sono:
-
RESTORE_DATABASE_NUM_BUFFERS— Il numero di buffer da creare durante un'operazione di ripristino. -
RESTORE_DATABASE_PARALLELISM— Il numero di manipolatori di buffer da creare durante un'operazione di ripristino. -
RESTORE_DATABASE_NUM_MULTI_PATHS— Il numero di percorsi (o I/O stream) da utilizzare durante un ripristino da un'operazione di ripristino da Amazon S3. -
USE_STREAMING_RESTORE— Speciifica se eseguire lo streaming dei dati di backup direttamente durante il ripristino anziché scaricare prima tutti i dati di backup sull'istanza DB RDS for Db2 e poi estrarli.
-
Note per l’utilizzo
Se non si specifica il nome di un’impostazione di configurazione, rdsadmin.show_configuration restituisce informazioni per tutte le impostazioni di configurazione che è possibile definire utilizzando la stored procedure rdsadmin.set_configuration.
Esempi
Nell’esempio seguente vengono restituite informazioni sulla configurazione RESTORE_DATABASE_PARALLELISM corrente.
db2 "call rdsadmin.show_configuration( 'RESTORE_DATABASE_PARALLELISM')"
rdsadmin.backup_database
Esegue il backup di un database da un'istanza DB RDS for Db2 su un bucket Amazon S3.
Sintassi
db2 "call rdsadmin.backup_database( ?, 'database_name', 's3_bucket_name', 's3_prefix', 'backup_type', 'compression_option', 'util_impact_priority', 'num_files', 'parallelism', 'num_buffers')"
Parameters
Il parametro di output seguente è obbligatorio:
- ?
-
Un indicatore di parametro che genera un messaggio di errore. Questo parametro accetta solo
?
I parametri di input seguenti sono obbligatori:
database_name-
Il nome del database di destinazione su un'istanza DB RDS for Db2 di cui eseguire il backup. Il tipo di dati è
varchar.Il database deve esistere nell'istanza DB. Non è possibile eseguire il backup del
rdsadmindatabase. s3_bucket_name-
Il nome del bucket Amazon S3 in cui desideri che risieda il backup. Il tipo di dati è
varchar.Il bucket S3 deve esistere prima della chiamata
rdsadmin.backup_database, trovarsi nello stesso database di destinazione nell'istanza DB RDS for Db2 di cui desideri eseguire il backup ed essere accessibile tramite il Regione AWS ruolo IAM associato all'istanza DB. s3_prefix-
Il prefisso del percorso verso Amazon S3 in cui RDS per Db2 carica i file di backup. Il tipo di dati è
varchar.Il prefisso è limitato a 1024 caratteri. Non deve includere una barra iniziale o finale (/). A causa di una limitazione IBM dello streaming su Amazon S3, consigliamo che il prefisso includa le sottodirectory.
Per una migliore gestione dei file, RDS for Db2 crea directory aggiuntive in seguito.
s3_prefixRDS for Db2 carica tutti i file di backup su.s3_prefix/dbi_resource_id/db_nameSe si imposta unnum_filesvalore superiore a1, ladb_namedirectory conterrà più di un file di backup.Di seguito è riportato un esempio di posizione Amazon S3 per i file di backup. Nell'esempio,
backups/dailyè il valore impostato per ils3_prefixparametro.backups/daily/db-5N7FXOY4GDP7RG2NSH2ZTAI2W4/SAMPLEDB backup_type-
Il tipo di backup che determina se il database rimane disponibile durante il backup. Il tipo di dati è
varchar.Valori validi:
-
OFFLINE— Il database non è disponibile durante il backup. Questo tipo è più veloce, ma causa tempi di inattività. -
ONLINE— Il database rimane disponibile durante il backup. Per impostazione predefinita,ONLINEè impostato suINCLUDE LOGS.
-
I parametri seguenti sono facoltativi:
compression_option-
Il tipo di algoritmo di compressione utilizzato che influisce sui tempi di backup, sull'utilizzo della CPU e sui costi di archiviazione. Il tipo di dati è
varchar. Il valore predefinito èNONE.Valori validi:
-
NONE— La dimensione del file più grande, il minor utilizzo della CPU e i costi di archiviazione più bassi. -
STANDARD— Compressione Db2 standard. Usilibdb2compr.so. -
ZLIB— Compressione Db2 migliorata. Utilizzalibdb2zcompr.so, ma richiede un uso più intensivo della CPU e il costo di archiviazione più costoso.
-
util_impact_priority-
L'impostazione che controlla l'impatto del backup sulle risorse di sistema. Il tipo di dati è
integer. Valori validi:1—100(dal più basso al più alto). Il valore predefinito è50.Valori inferiori riducono l'impatto del backup sulle risorse di sistema, ma possono aumentare il tempo necessario per eseguire il backup del database. Valori più elevati potrebbero completare il backup del database più rapidamente, ma potrebbero influire su altre operazioni. L'impatto effettivo dipende dall'utilizzo complessivo del sistema e dall'
util_impact_limimpostazione. È possibile visualizzare e modificare l'util_impact_limimpostazione in gruppi di parametri. Per ulteriori informazioni, consulta Parametri di Amazon RDS per Db2. num_files-
Il numero di flussi di caricamento paralleli su Amazon S3. Il tipo di dati è
integer. Valori validi:1-256.Ti consigliamo di impostare questo parametro solo dopo aver osservato le prestazioni di backup ai valori predefiniti calcolati automaticamente da Amazon RDS. Valori più alti potrebbero migliorare le prestazioni per i backup di grandi dimensioni, in particolare con connessioni a larghezza di banda elevata, ma a un certo punto, valori più alti peggiorano le prestazioni. Inoltre, assicurati di tenere conto delle risorse di sistema disponibili e della capacità di rete.
parallelism-
Il numero di tablespace che l'utilità di backup può leggere in parallelo. Il tipo di dati è
integer. Valori validi:1-256.Si consiglia di impostare questo parametro solo dopo aver osservato le prestazioni di backup al valore predefinito che il motore Db2 calcola automaticamente come valore ottimale. Se imposti questo parametro, Amazon RDS esegue la convalida rispetto ai processori disponibili e non eseguirà la richiesta di backup se la potenza di elaborazione è insufficiente.
num_buffers-
Il numero di buffer da utilizzare. Il tipo di dati è
integer. Valori validi:1-268435456.Ti consigliamo di impostare questo parametro solo dopo aver osservato le prestazioni di backup predefinite che Amazon RDS calcola automaticamente in base alla memoria. Se imposti questo parametro, Amazon RDS esegue la convalida in base alla memoria disponibile e non eseguirà la richiesta di backup se la memoria disponibile è insufficiente. Se esegui il backup su più sedi (
num_filesè impostato su più di1), un numero maggiore di buffer potrebbe migliorare le prestazioni. Se non locompression_optionimpostiNONE, puoi migliorare le prestazioni aumentandonum_bufferse.parallelism
Note per l’utilizzo
Questa procedura memorizzata crea attività di backup asincrone che trasmettono il backup del database direttamente al bucket Amazon S3 utilizzando l'integrazione Amazon S3. Puoi eseguire backup sia dal tuo server locale che da un'istanza DB RDS per Db2, trasmetterli in streaming su Amazon S3 e ripristinarli dove vuoi. Per informazioni sul ripristino di un database su un'istanza DB RDS for Db2, consulta. rdsadmin.restore_database
Prima di chiamare la stored procedure, esamina le seguenti considerazioni:
-
È possibile eseguire il backup di un solo database alla volta.
-
Non è possibile eseguire un backup e un ripristino contemporaneamente su un'istanza DB.
-
La crittografia lato server di Amazon S3 con AWS KMS (SSE-KMS) non è supportata. Anche se il bucket S3 è impostato su SSE-KMS, i file caricati nel bucket S3 non utilizzeranno la crittografia SSE-KMS.
-
Per eseguire lo streaming dei file di backup su Amazon S3, devi aver già configurato l'integrazione. Per ulteriori informazioni, consulta Integrazione di un’istanza database Amazon RDS per Db2 con Amazon S3.
-
Affinché un'istanza DB RDS for Db2 sia in grado di interagire con Amazon S3, è necessario disporre di un VPC e di un endpoint gateway Amazon S3 per l'utilizzo di sottoreti private. Per ulteriori informazioni, consultare Fase 1: creare un endpoint gateway VPC per Amazon S3 e Fase 2: verificare l’esistenza dell’endpoint gateway VPC per Amazon S3.
Prima di chiamare rdsadmin.backup_database, è necessario connettersi al database rdsadmin. Nell'esempio seguente, sostituisci master_username e master_password con le informazioni sull'istanza DB RDS for Db2:
db2 connect to rdsadmin usermaster_usernameusingmaster_password
Dopo aver eseguito il backup del database, assicuratevi di terminare la connessione.
terminate
Per informazioni sulla verifica dello stato del backup di un database, consulta. rdsadmin.get_task_status
Per i messaggi di errore restituiti durante la chiamata di rdsadmin.backup_database, consulta Errori delle stored procedure.
Esempi
Tutti gli esempi eseguono il backup di un database chiamato MYDB nel bucket Amazon S3 chiamato amzn-s3-demo-bucket e impostato su. s3_prefix backups/daily
Esempio #1: Specificazione del database offline e non disponibile con utilizzo medio e un singolo flusso di caricamento
Nell'esempio seguente, il database è offline, il che è più veloce ma significa che il database non è disponibile durante il backup. L'esempio non esegue alcuna compressione dei file, ha un impatto mediano sulle risorse di sistema e utilizza un singolo flusso di caricamento su Amazon S3.
db2 call "rdsadmin.backup_database( ?, 'MYDB', 'amzn-s3-demo-bucket', 'backups/daily', 'OFFLINE', 'NONE', 50, 1)"
Esempio #2: Specificazione del database online e disponibile con compressione avanzata, utilizzo mediano e pochi flussi di caricamento paralleli
Nell'esempio seguente, il database è online e disponibile durante il backup. L'esempio esegue una compressione avanzata, che si traduce in file di dimensioni ridotte, ma richiede un uso intensivo della CPU. Ha un impatto leggermente superiore alla media sulle risorse di sistema e utilizza cinque flussi di caricamento su Amazon S3.
db2 call "rdsadmin.backup_database( ?, 'MYDB', 'amzn-s3-demo-bucket', 'backups/daily', 'ONLINE', 'ZLIB', 60, 5)"
Esempio #3: Specificazione del database offline e non disponibile con impostazioni predefinite e calcoli di sistema
Nell'esempio seguente, il database è offline, il che è più veloce ma significa che il database non è disponibile durante il backup. L'esempio utilizza la compressione predefinita dei file e l'impatto sulle risorse di sistema. Consente inoltre a RDS for Db2 di calcolare il numero di flussi di caricamento paralleli su Amazon S3, i tablespace da leggere in parallelo e i buffer da utilizzare.
db2 "call rdsadmin.backup_database( ?, 'MYDB', 'amzn-s3-demo-bucket', 'backups/daily', 'OFFLINE')"
Esempio #4: Specificazione del database offline e non disponibile senza compressione, utilizzo elevato e calcoli personalizzati
Nell'esempio seguente, il database è offline, il che è più veloce ma significa che il database non è disponibile durante il backup. L'esempio non esegue alcuna compressione dei file, ha un impatto elevato sulle risorse di sistema e utilizza 20 flussi di caricamento su Amazon S3. Imposta il numero massimo di tablespace da leggere in parallelo, il che può causare il fallimento della richiesta di backup se la potenza di elaborazione è insufficiente. Imposta inoltre il numero massimo di buffer da utilizzare, il che può causare il fallimento della richiesta di backup se la memoria è insufficiente.
db2 "call rdsadmin.backup_database( ?, 'MYDB', 'amzn-s3-demo-bucket', 'backups/daily', 'OFFLINE', 'NONE', 90, 20, 256, 268435456)"
rdsadmin.restore_database
Ripristina un database da un bucket Amazon S3 su un’istanza database RDS per Db2.
Sintassi
db2 "call rdsadmin.restore_database( ?, 'database_name', 's3_bucket_name', 's3_prefix',restore_timestamp, 'backup_type')"
Parameters
Il parametro di output seguente è obbligatorio:
- ?
-
Un indicatore di parametro che genera un messaggio di errore. Questo parametro accetta solo
?
I parametri di input seguenti sono obbligatori:
database_name-
Il nome del database di destinazione da ripristinare in RDS per Db2. Il tipo di dati è
varchar.Ad esempio, se il nome del database di origine era
TESTDBimpostatodatabase_namesuNEWDB, Amazon RDS esegue il ripristinoNEWDBcome database di origine. s3_bucket_name-
Il nome del bucket Amazon S3 in cui risiede il backup. Il tipo di dati è
varchar. s3_prefix-
Il prefisso da utilizzare per la corrispondenza dei file durante il download. Il tipo di dati è
varchar.Se questo parametro è vuoto, verranno elaborati tutti i file nel bucket Amazon S3. Di seguito è riportato un prefisso di esempio.
backupfolder/SAMPLE.0.rdsdb.DBPART000.20230615010101 restore_timestamp-
Il timestamp dell’immagine di backup del database. Il tipo di dati è
varchar.Il timestamp è incluso nel nome del file di backup. Ad esempio,
20230615010101è il timestamp del nome fileSAMPLE.0.rdsdb.DBPART000.20230615010101.001. backup_type-
Il tipo di backup. Il tipo di dati è
varchar. Valori validi:OFFLINE,ONLINE.Utilizza
ONLINEper migrazioni con tempo di inattività prossimo allo zero. Per ulteriori informazioni, consulta Migrazione da Linux a Linux con tempo di inattività quasi nullo per Amazon RDS per Db2.
Note per l’utilizzo
È possibile utilizzare questa stored procedure per eseguire la migrazione di un’istanza database Db2 a un’istanza database RDS per Db2. Per ulteriori informazioni, consulta Utilizzo dei servizi AWS per migrare i dati da Db2 ad Amazon RDS per Db2. È inoltre possibile utilizzare questa stored procedure per creare più copie dello stesso database con nomi di database diversi che utilizzano la stessa immagine di ripristino.
Prima di chiamare la stored procedure, esamina le seguenti considerazioni:
-
Prima di ripristinare un database, è necessario fornire uno spazio di archiviazione per l'istanza DB RDS for Db2 superiore a quello del database Db2 originale su disco. Se l'opzione è abilitata
USE_STREAMING_RESTORE, quando ripristini il backup, Amazon RDS trasmette i file di backup direttamente dal bucket S3 all'istanza DB RDS for Db2. Se non lo abilitiUSE_STREAMING_RESTORE, devi fornire uno spazio di archiviazione per l'istanza DB RDS for Db2 uguale o superiore alla somma delle dimensioni del backup più il database Db2 originale su disco. Per ulteriori informazioni, consulta Insufficient disk space. -
Quando ripristini il backup, Amazon RDS estrae il file di backup sulla tua istanza database RDS per Db2. Ogni file di backup deve avere una dimensione pari o inferiore a 5 TB. Se un file di backup supera i 5 TB, devi dividerlo in file più piccoli.
-
Per ripristinare tutti i file utilizzando la stored procedure
rdsadmin.restore_database, non includere nei nomi dei file il suffisso numerico del file dopo il timestamp. Ad esempio,s3_prefixbackupfolder/SAMPLE.0.rdsdb.DBPART000.20230615010101ripristina i seguenti file:SAMPLE.0.rdsdb.DBPART000.20230615010101.001 SAMPLE.0.rdsdb.DBPART000.20230615010101.002 SAMPLE.0.rdsdb.DBPART000.20230615010101.003 SAMPLE.0.rdsdb.DBPART000.20230615010101.004 SAMPLE.0.rdsdb.DBPART000.20230615010101.005 -
RDS per Db2 non supporta l’archiviazione non automatica. Per ulteriori informazioni, consulta Tablespaces not restored.
-
RDS per Db2 non supporta routine non recintate. Per ulteriori informazioni, consulta Non-fenced routines not allowed.
-
Per migliorare le prestazioni delle operazioni di ripristino del database, è possibile configurare il numero di buffer, di manipolatori di buffer e il numero di percorsi di backup multipli da utilizzare con RDS. Per ottimizzare l'utilizzo dello storage e migliorare potenzialmente le prestazioni, puoi anche eseguire lo streaming diretto di un backup da Amazon S3. Per controllare la configurazione corrente, utilizza rdsadmin.show_configuration. Per modificare la configurazione, utilizza rdsadmin.set_configuration.
Per portare il database online e applicare log delle transazioni aggiuntivi dopo il ripristino del database, consulta rdsadmin.rollforward_database.
Per informazioni su come verificare lo stato del ripristino del database, consulta rdsadmin.get_task_status.
Per i messaggi di errore restituiti durante la chiamata di rdsadmin.restore_database, consulta Errori delle stored procedure.
Esempi
L'esempio seguente ripristina un backup offline con un singolo file o più file con: s3_prefix backupfolder/SAMPLE.0.rdsdb.DBPART000.20230615010101
db2 "call rdsadmin.restore_database( ?, 'SAMPLE', 'amzn-s3-demo-bucket', 'backupfolder/SAMPLE.0.rdsdb.DBPART000.20230615010101', 20230615010101, 'OFFLINE')"
rdsadmin.rollforward_database
Porta il database online e applica log delle transazioni aggiuntivi dopo aver ripristinato un database chiamando rdsadmin.restore_database.
Sintassi
db2 "call rdsadmin.rollforward_database( ?, 'database_name', 's3_bucket_name',s3_prefix, 'rollforward_to_option', 'complete_rollforward')"
Parameters
Il parametro di output seguente è obbligatorio:
- ?
-
Un indicatore di parametro che genera un messaggio di errore. Questo parametro accetta solo
?
I parametri di input seguenti sono obbligatori:
database_name-
Il nome del database su cui eseguire l’operazione. Il tipo di dati è
varchar. s3_bucket_name-
Il nome del bucket Amazon S3 in cui risiede il backup. Il tipo di dati è
varchar. s3_prefix-
Il prefisso da utilizzare per la corrispondenza dei file durante il download. Il tipo di dati è
varchar.Se questo parametro è vuoto, tutti i file verranno scaricati nel bucket S3. Di seguito è riportato un prefisso di esempio.
backupfolder/SAMPLE.0.rdsdb.DBPART000.20230615010101
I parametri seguenti sono facoltativi:
rollforward_to_option-
Il punto verso cui vuoi effettuare il roll forward. Il tipo di dati è
varchar. Valori validi:END_OF_LOGS,END_OF_BACKUPcon il timestamp nel formatoYYYY-MM-DD-HH.MM.SS. Il valore predefinito èEND_OF_LOGS. complete_rollforward-
Specifica se completare il processo di roll-forward. Il tipo di dati è
varchar. Il valore predefinito èTRUE.Se
TRUE, dopo il completamento il database è online e accessibile. SeFALSE, allora il database rimane in uno statoROLL-FORWARD PENDING.
Note per l’utilizzo
È possibile utilizzare rds.rollforward_database per un backup online che includa i log prodotti on-premises in molti scenari diversi.
Scenario 1: ripristino del database, roll forward dei log inclusi e messa online del database
Al termine di rdsadmin.restore_database(), utilizza la sintassi indicata nell’Esempio 1 per portare online il database con i log delle transazioni.
Scenario 2: messa online del database senza roll forward dei log inclusi.
Al termine di rdsadmin.restore_database(), utilizza la sintassi indicata nell’Esempio 2 per portare online il database senza i log delle transazioni.
Scenario 3: roll forward dei log inclusi nel backup e applicazione di log delle transazioni aggiuntivi man mano che vengono prodotti on-premises
Al termine del rdsadmin.restore_database(), utilizza la sintassi indicata nell’Esempio 3 o Esempio 4 per effettuare il roll forward dei log senza portare online il database.
Se imposti complete_rollforward su FALSE, il database è in uno stato ROLL-FORWARD PENDING e offline. Per portare il database online, devi chiamare rdsadmin.complete_rollforward.
Per informazioni su come verificare lo stato del roll-forward del database, consulta rdsadmin.rollforward_status.
Esempi
Esempio 1: messa online del database con i log delle transazioni
Nell’esempio seguente viene effettuato il roll forward a un backup online del database con i log delle transazioni con successiva messa online del database:
db2 "call rdsadmin.rollforward_database( ?, null, null, 'END_OF_LOGS', 'TRUE')"
Esempio 2: messa online del database senza i log delle transazioni
Nell’esempio seguente viene effettuato il roll forward a un backup online del database senza i log delle transazioni con successiva messa online del database:
db2 "call rdsadmin.rollforward_database( ?, 'TESTDB', 'amzn-s3-demo-bucket', 'logsfolder/, 'END_OF_BACKUP', 'TRUE')"
Esempio 3: messa online del database con i log delle transazioni non eseguita
Nell’esempio seguente viene effettuato il roll forward a un backup online del database con i log delle transazioni senza successiva messa online del database:
db2 "call rdsadmin.rollforward_database( ?, 'TESTDB', null, 'onlinebackup/TESTDB', 'END_OF_LOGS', 'FALSE')"
Esempio 4: messa online del database con log delle transazioni aggiuntivi non eseguita
Nell’esempio seguente viene effettuato il roll forward a un backup online del database con i log delle transazioni aggiuntivi senza successiva messa online del database:
db2 "call rdsadmin.rollforward_database( ?, 'TESTDB', 'amzn-s3-demo-bucket', 'logsfolder/S0000155.LOG', 'END_OF_LOGS', 'FALSE')"
rdsadmin.rollforward_status
Restituisce l’output di ROLLFORWARD DATABASE
.database_name QUERY STATUS
Sintassi
db2 "call rdsadmin.rollforward_status( ?, 'database_name')"
Parameters
Il parametro di output seguente è obbligatorio:
- ?
-
Un indicatore di parametro che genera un messaggio di errore. Questo parametro accetta solo
?
Il parametro di input seguente è obbligatorio:
database_name-
Il nome del database su cui eseguire l’operazione. Il tipo di dati è
varchar.
Note per l’utilizzo
Dopo aver chiamato rdsadmin.rollforward_database, puoi chiamare rdsadmin.rollforward_status per verificare lo stato del roll forward nel database.
Per informazioni su come verificare lo stato di questa stored procedure, consulta rdsadmin.get_task_status.
rdsadmin.complete_rollforward
Porta il database online da uno stato ROLL-FORWARD PENDING.
Sintassi
db2 "call rdsadmin.complete_rollforward( ?, 'database_name')"
Parameters
Il parametro di output seguente è obbligatorio:
- ?
-
Un indicatore di parametro che genera un messaggio di errore. Questo parametro accetta solo
?
Il parametro di input seguente è obbligatorio:
database_name-
Il nome del database che desideri portare online. Il tipo di dati è
varchar.
Note per l’utilizzo
Se hai chiamato rdsadmin.rollforward_database con complete_rollforward impostato su FALSE, il tuo database è in uno stato ROLL-FORWARD PENDING e offline. Per completare il roll forward e portare il database online, chiama rdsadmin.complete_rollforward.
Per informazioni su come verificare lo stato del completamento del processo di roll-forward, consulta rdsadmin.rollforward_status.
Esempi
Nell’esempio seguente il database TESTDB viene portato online:
db2 "call rdsadmin.complete_rollforward( ?, 'TESTDB')"
rdsadmin.db2pd_command
Raccoglie informazioni su un database RDS per Db2.
Sintassi
db2 "call rdsadmin.db2pd_command('db2pd_cmd')"
Parameters
Il parametro di input seguente è obbligatorio:
db2pd_cmd-
Il nome del comando
db2pdche desideri eseguire. Il tipo di dati èvarchar.Il parametro deve iniziare con un trattino. Per un elenco di parametri, consulta db2pd - Monitor and troubleshoot Db2 database command
nella documentazione di IBM Db2. Le seguenti opzioni non sono supportate:
-
-addnode -
-alldatabases -
-alldbp -
-alldbs -
-allmembers -
-alm_in_memory -
-cfinfo -
-cfpool -
-command -
-dbpartitionnum -
-debug -
-dump -
-everything -
-file | -o -
-ha -
-interactive -
-member -
-pagesNota
-pages summaryè supportato. -
-pdcollection -
-repeat -
-stack -
-totalmem
L’opzione secondaria
filenon è supportata, ad esempiodb2pd -db testdb -tcbstats file=tcbstat.out.L’utilizzo dell’opzione
stacksnon è supportato, ad esempiodb2pd -edus interval=5 top=10 stacks. -
Note per l’utilizzo
Questa stored procedure raccoglie informazioni che possono contribuire al monitoraggio e alla risoluzione dei problemi dei database RDS per Db2.
La stored procedure ricorre all’utility IBM db2pd per eseguire vari comandi. L’utility db2pd richiede l’autorizzazione SYSADM, di cui l’utente master RDS per Db2 non dispone. Tuttavia, con la stored procedure di Amazon RDS, l’utente master è in grado di ricorrere all’utility per eseguire vari comandi. Per ulteriori informazioni sull’utility, consulta db2pd - Monitor and troubleshoot Db2 database command
L’output è limitato a un massimo di 2 GB.
Per informazioni su come verificare lo stato della raccolta delle informazioni sul database, consulta rdsadmin.get_task_status.
Esempi
Esempio 1: restituzione del tempo di attività dell’istanza database
Nell’esempio seguente viene restituito il tempo di attività di un’istanza database RDS per Db2:
db2 "call rdsadmin.db2pd_command('-')"
Esempio 2: restituzione del tempo di attività del database
Nell’esempio seguente viene restituito il tempo di attività di un database denominato TESTDB:
db2 "call rdsadmin.db2pd_command('-db TESTDB -')"
Esempio 3: restituzione dell’utilizzo della memoria di un’istanza database
Nell’esempio seguente viene restituito l’utilizzo della memoria di un’istanza database RDS per Db2:
db2 "call rdsadmin.db2pd_command('-dbptnmem')"
Esempio 4: restituzione di set di memoria dell’istanza database e del database
Nell’esempio seguente vengono restituiti i set di memoria di un’istanza database RDS per Db2 e di un database denominato TESTDB:
db2 "call rdsadmin.db2pd_command('-inst -db TESTDB -memsets')"
rdsadmin.force_application
Forza la disconnessione delle applicazioni da un database RDS per Db2.
Sintassi
db2 "call rdsadmin.force_application( ?, 'applications')"
Parameters
Il parametro di output seguente è obbligatorio:
- ?
-
Un indicatore di parametro che genera un messaggio di errore. Questo parametro accetta solo
?
Il parametro di input seguente è obbligatorio:
applications-
Le applicazioni che desideri disconnettere da un database RDS per Db2. Il tipo di dati è
varchar. Valori validi:ALLoapplication_handle.Separa i nomi di più applicazioni con virgole. Esempio: '
application_handle_1,application_handle_2'.
Note per l’utilizzo
Questa stored procedure forza la disconnessione tutte le applicazioni da un database in modo da poter eseguire la manutenzione.
La stored procedure utilizza il comando IBM FORCE APPLICATION. Il comando FORCE APPLICATION richiede l’autorizzazione SYSADM, SYSMAINT o SYSCTRL, di cui l’utente master RDS per Db2 non dispone. Tuttavia, con la stored procedure di Amazon RDS, l’utente master è in grado di utilizzare il comando. Per ulteriori informazioni, consulta FORCE APPLICATION command
Per informazioni sulla verifica dello stato dell’esclusione di applicazioni da un database, consulta rdsadmin.get_task_status.
Esempi
Esempio 1: specifica di tutte le applicazioni
Nell’esempio seguente viene forzata la disconnessione di tutte le applicazioni da un database RDS per Db2:
db2 "call rdsadmin.force_application( ?, 'ALL')"
Esempio 2: specificazione di più applicazioni
Nell’esempio seguente viene forzata la disconnessione degli handle 9991, 8891 e 1192 da un database RDS per Db2:
db2 "call rdsadmin.force_application( ?, '9991, 8891, 1192')"
rdsadmin.set_archive_log_retention
Configura la quantità di tempo (in ore) della conservazione dei file di log archiviati per il database RDS per Db2 specificato.
Sintassi
db2 "call rdsadmin.set_archive_log_retention( ?, 'database_name', 'archive_log_retention_hours')"
Parameters
Il parametro di output seguente è obbligatorio:
- ?
-
Un indicatore di parametro che genera un messaggio di errore. Questo parametro accetta solo
?
I parametri di input seguenti sono obbligatori:
database_name-
Il nome del database per cui configurare la conservazione dei log archiviati. Il tipo di dati è
varchar. archive_log_retention_hours-
Il numero di ore della conservazione dei file di log archiviati. Il tipo di dati è
smallint. Il valore predefinito è0e il valore massimo è168(7 giorni).Se il valore è
0, Amazon RDS non conserva i file di log archiviati.
Note per l’utilizzo
Per impostazione predefinita, RDS per Db2 conserva i log per 5 minuti. Si consiglia di utilizzare strumenti di replica come AWS DMS CDC (Change Data Capture) o IBM Q Replication di impostare la conservazione dei log in tali strumenti per più di 5 minuti.
Per visualizzare l’impostazione corrente di conservazione dei log archiviati, chiama rdsadmin.show_archive_log_retention.
Non è possibile configurare l’impostazione di conservazione dei log archiviati nel database rdsadmin.
Esempi
Esempio 1: impostazione del tempo di conservazione
Nell’esempio seguente, il tempo di conservazione dei log archiviati per un database denominato TESTDB viene impostato su 24 ore.
db2 "call rdsadmin.set_archive_log_retention( ?, 'TESTDB', '24')"
Esempio 2: disabilitazione del tempo di conservazione
Nell’esempio seguente, il tempo di conservazione dei log archiviati per un database denominato TESTDB viene disabilitato.
db2 "call rdsadmin.set_archive_log_retention( ?, 'TESTDB', '0')"
rdsadmin.show_archive_log_retention
Restituisce l’impostazione corrente di conservazione dei log archiviati per il database specificato.
Sintassi
db2 "call rdsadmin.show_archive_log_retention( ?, 'database_name')"
Parameters
Il parametro di output seguente è obbligatorio:
- ?
-
Un indicatore di parametro che genera un messaggio di errore. Questo parametro accetta solo
?
Il parametro di input seguente è obbligatorio:
database_name-
Il nome del database di cui visualizzare l’impostazione di conservazione dei log archiviati. Il tipo di dati è
varchar.
Esempi
Nell’esempio seguente viene mostrata l’impostazione del tempo di conservazione dei log archiviati per un database denominato TESTDB.
db2 "call rdsadmin.show_archive_log_retention(?,'TESTDB')"
rdsadmin.list_archive_log_information
Restituisce dettagli sui file di log archiviati, come la dimensione, la data e l’ora di creazione e il nome dei singoli file di log, per il database specificato. Restituisce inoltre la quantità totale di archiviazione utilizzata dai file di log nel database.
Sintassi
db2 "call rdsadmin.list_archive_log_information( ?, 'database_name')"
Parameters
Il parametro di output seguente è obbligatorio:
- ?
-
Un indicatore di parametro che genera un messaggio di errore. Questo parametro accetta solo
?
Il parametro di input seguente è obbligatorio:
database_name-
Il nome del database di cui visualizzare le informazioni relative ai log archiviati. Il tipo di dati è
varchar.
Esempi
Nell’esempio seguente vengono restituite le informazioni relative ai log archiviati per un database denominato TESTDB.
db2 "call rdsadmin.list_archive_log_information( ?, 'TESTDB')"
rdsadmin.fgac_command
Esegue comandi di controllo degli accessi a grana fine (FGAC).
Sintassi
db2 "call rdsadmin.fgac_command( ?, 'database_name', 'fgac_cmd')"
Parameters
Il parametro di output seguente è obbligatorio:
- ?
-
Un indicatore di parametro che genera un messaggio di errore. Questo parametro accetta solo
?
I parametri di input seguenti sono obbligatori:
database_name-
Il nome del database su cui si desidera eseguire i comandi FGAC. Il tipo di dati è
varchar. fgac_cmd-
Il comando di controllo degli accessi dettagliato che si desidera eseguire. Il tipo di dati è
varchar.I seguenti comandi sono validi:
-
ALTER MASK— Modifica una maschera di colonna esistente nel controllo dell'accesso a righe e colonne (RCAC). -
ALTER PERMISSION— Modifica le proprietà di un'autorizzazione di riga esistente in RCAC. -
ALTER SECURITY POLICY— Modifica una politica di sicurezza esistente per RCAC. -
ALTER SECURITY LABEL— Modifica le proprietà di un'etichetta di sicurezza esistente nel controllo degli accessi basato su etichette (LBAC). -
ALTER TABLE— Modifica la struttura della tabella, inclusa l'aggiunta di controlli RCAC o LBAC. -
CREATE MASK— Crea una nuova maschera di colonna per RCAC. -
CREATE PERMISSION— Crea una nuova autorizzazione di riga per RCAC. -
CREATE SECURITY LABEL— Crea una nuova etichetta di sicurezza per LBAC. -
CREATE SECURITY POLICY— Crea una nuova politica di sicurezza per RCAC. -
DROP MASK— Elimina una maschera di colonna esistente. -
DROP PERMISSION— Elimina l'autorizzazione di una riga esistente. -
DROP SECURITY LABEL— Elimina un'etichetta di sicurezza da LBAC. -
DROP SECURITY POLICY— Elimina una politica di sicurezza RCAC esistente. -
GRANT EXEMPTION ON RULE— Consente a un utente di ignorare regole LBAC specifiche. -
GRANT SECURITY LABEL— Assegna un'etichetta di sicurezza LBAC a un utente. -
REVOKE EXEMPTION ON RULE— Rimuove l'esenzione di un utente dalle regole LBAC. -
REVOKE SECURITY LABEL— Rimuove un'etichetta di sicurezza LBAC da un utente.
-
Note per l’utilizzo
Questa stored procedure controlla l'accesso a livello di riga o colonna ai dati della tabella nel database su un'istanza DB RDS for Db2. RDS per Db2 supporta due tipi di FGAC sul database:
-
Controllo degli accessi basato su etichette (LBAC)
-
Controllo dell'accesso a righe e colonne (RCAC)
Prima di chiamare la stored procedure, esamina le seguenti considerazioni:
-
Per evitare una virgoletta singola ('), usa una virgoletta singola aggiuntiva. Gli esempi seguenti mostrano come fuggire
'apple''banana', e'fruit'.db2 "call rdsadmin.fgac_command( ?, 'testdb', 'CREATE SECURITY LABEL COMPONENT FRUITSET SET{''apple'',''banana''}')"db2 "call rdsadmin.fgac_command( ?, 'testdb', 'CREATE SECURITY LABEL COMPONENT FRUITTREE TREE(''fruit'' ROOT, ''apple'' UNDER ''fruit'', ''banana'' UNDER ''fruit'')')" -
Per evitare le parentesi ([]), usate una barra rovesciata (\). L'esempio seguente mostra come fuggire.
[''apple'',''banana'']db2 "call rdsadmin.fgac_command( ?, ' testdb', 'CREATE SECURITY LABEL COMPONENT FRUITARRAY ARRAY\[''apple'',''banana''\]')"
Esempi
Gli esempi seguenti eseguono tutti i comandi FGAC su un database chiamato. testdb
Esempio 1: creazione di una nuova etichetta di sicurezza denominata FRUITSET
db2 "call rdsadmin.fgac_command( ?, 'testdb', 'CREATE SECURITY LABEL COMPONENT FRUITSET SET{''apple'',''banana''}')"
Esempio 2: creazione di una nuova maschera per la EMP_ID colonna che è abilitata quando EMP_ID è impostata su meno di tre
db2 "call rdsadmin.fgac_command( ?, 'testdb', 'CREATE MASK id_MASK ON EMPLOYEE FOR COLUMN EMP_ID RETURN CASE WHEN (EMP_ID < 3) THEN EMP_ID ELSE NULL END ENABLE')"
Esempio 3: creazione di una nuova maschera per la DEPARTMENT colonna che è abilitata quando SESSION_USER è impostata su security_user
db2 "call rdsadmin.fgac_command( ?, 'testdb', 'CREATE MASK DEPARTMENT_MASK ON EMPLOYEE FOR COLUMN DEPARTMENT RETURN CASE WHEN SESSION_USER = ''security_user'' THEN DEPARTMENT ELSE NULL END ENABLE')"
Esempio 4: creazione di una nuova etichetta di sicurezza denominata treelabel
db2 "call rdsadmin.fgac_command( ?, 'testdb', 'CREATE SECURITY LABEL COMPONENT treelabel TREE(''COMPANY'' ROOT, ''HR'' UNDER ''COMPANY'', ''FINANCE'' UNDER ''COMPANY'', ''IT'' UNDER ''COMPANY'')')"