Stored procedure relative ai tablespace per RDS per Db2 - Amazon Relational Database Service

Stored procedure relative ai tablespace per RDS per Db2

Le stored procedure integrate descritte in questo argomento gestiscono i tablespace per i database 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.

Fai riferimento alle seguenti stored procedure integrate per informazioni sulla sintassi, i parametri, le note per l’utilizzo e gli esempi.

rdsadmin.create_tablespace

Crea un tablespace.

Sintassi

db2 "call rdsadmin.create_tablespace( 'database_name', 'tablespace_name', 'buffer_pool_name', tablespace_page_size, tablespace_initial_size, tablespace_increase_size, 'tablespace_type', 'tablespace_prefetch_size')"

Parametri

I parametri seguenti sono obbligatori:

database_name

Il nome del database in cui creare il tablespace. Il tipo di dati è varchar.

tablespace_name

Il nome del tablespace da creare. Il tipo di dati è varchar.

Il nome del tablespace presenta le seguenti limitazioni:

  • Non può essere uguale al nome di un tablespace esistente nel database.

  • Può contenere solo i caratteri _$#@a-zA-Z0-9.

  • Non può iniziare con _ o $.

  • Non può iniziare con SYS.

I parametri seguenti sono facoltativi:

buffer_pool_name

Il nome del pool di buffer a cui assegnare il tablespace. Il tipo di dati è varchar. L'impostazione predefinita è una stringa vuota.

Importante

È necessario disporre già di un pool di buffer della stessa dimensione di pagina da associare al tablespace.

tablespace_page_size

La dimensione di pagina del tablespace, espressa in byte. Il tipo di dati è integer. Valori validi: 4096, 8192, 16384, 32768. L’impostazione predefinita è la dimensione di pagina utilizzata al momento della creazione del database chiamando rdsadmin.create_database.

Importante

Amazon RDS supporta l’atomicità di scrittura per pagine da 4 KiB, 8 KiB e 16 KiB. Per contro, le pagine da 32 KiB rischiano di causare scritture incomplete o la scrittura parziale dei dati sul desktop. Se utilizzi pagine da 32 KiB, ti consigliamo di abilitare il recupero point-in-time e i backup automatici. Altrimenti, corri il rischio di non riuscire a recuperare le pagine danneggiate. Per ulteriori informazioni, consulta Introduzione ai backup e Ripristino di un’istanza database a un punto temporale specifico per Amazon RDS.

tablespace_initial_size

La dimensione iniziale del tablespace in kilobyte (KB). Il tipo di dati è integer. Valori validi: 48 o superiore. Il valore predefinito è null.

Se non imposti un valore, Db2 imposta automaticamente un valore appropriato.

Nota

Questo parametro non è applicabile per i tablespace temporanei poiché questi vengono gestiti dal sistema.

tablespace_increase_size

La percentuale in base alla quale aumentare la dimensione del tablespace quando è pieno. Il tipo di dati è integer. Valori validi: 1-100. Il valore predefinito è null.

Se non imposti un valore, Db2 imposta automaticamente un valore appropriato.

Nota

Questo parametro non è applicabile per i tablespace temporanei poiché questi vengono gestiti dal sistema.

tablespace_type

Il tipo di tablespace. Il tipo di dati è char. Valori validi: U (per i dati dell’utente), T (per i dati temporanei dell’utente) o S (per i dati temporanei del sistema). Il valore predefinito è U.

tablespace_prefetch_size

La dimensione di pagina di prefetch del tablespace. Il tipo di dati è char. Valori validi: AUTOMATIC (senza distinzione tra maiuscole e minuscole) o numeri interi positivi diversi da zero minori o uguali a 32.767.

Note per l'utilizzo

RDS per Db2 crea sempre un database di grandi dimensioni per i dati.

Per informazioni su come verificare lo stato della creazione di un tablespace, consulta rdsadmin.get_task_status.

Esempi

Esempio 1: creazione di un tablespace e assegnazione di un pool di buffer

L’esempio seguente crea un tablespace denominato SP8 e assegna il pool di buffer BP8 per il database TESTDB. Il tablespace ha una dimensione di pagina di 4.096 byte, una dimensione di pagina di 1.000 KB e una percentuale di incremento della dimensione di tabella del 50%.

db2 "call rdsadmin.create_tablespace( 'TESTDB', 'SP8', 'BP8', 4096, 1000, 50)"

Esempio 2: creazione di un tablespace temporaneo e assegnazione di un pool di buffer

L’esempio seguente crea un tablespace temporaneo denominato SP8. Assegna un pool di buffer denominato BP8 della dimensione di 8 KiB per il database TESTDB.

db2 "call rdsadmin.create_tablespace( 'TESTDB', 'SP8', 'BP8', 8192, NULL, NULL, 'T')"

Esempio 3: creazione di un tablespace e assegnazione di una dimensione di pagina di prefetch

L’esempio seguente crea un tablespace denominato SP8 per il database TESTDB. Il tablespace ha una dimensione di incremento iniziale pari a 50 e una dimensione di pagina di prefetch pari a 800.

db2 "call rdsadmin.create_tablespace( 'TESTDB', 'SP8', NULL, NULL, NULL, 50, NULL, '800')"

rdsadmin.alter_tablespace

Modifica un tablespace.

Sintassi

db2 "call rdsadmin.alter_tablespace( 'database_name', 'tablespace_name', 'buffer_pool_name', tablespace_increase_size, 'max_size', 'reduce_max', 'reduce_stop', 'reduce_value', 'lower_high_water', 'lower_high_water_stop', 'switch_online', 'tablespace_prefetch_size')"

Parametri

I parametri seguenti sono obbligatori:

database_name

Il nome del database che utilizza il tablespace. Il tipo di dati è varchar.

tablespace_name

Il nome del tablespace da modificare. Il tipo di dati è varchar.

I parametri seguenti sono facoltativi:

buffer_pool_name

Il nome del pool di buffer a cui assegnare il tablespace. Il tipo di dati è varchar. L'impostazione predefinita è una stringa vuota.

Importante

È necessario disporre già di un pool di buffer della stessa dimensione di pagina da associare al tablespace.

tablespace_increase_size

La percentuale in base alla quale aumentare la dimensione del tablespace quando è pieno. Il tipo di dati è integer. Valori validi: 1-100. Il valore predefinito è 0.

max_size

La dimensione massima per il tablespace. Il tipo di dati è varchar. Valori validi: numero intero K | M | G o NONE. Il valore predefinito è NONE.

reduce_max

Specifica se ridurre il limite massimo consentito. Il tipo di dati è char. Il valore predefinito è N.

reduce_stop

Specifica se interrompere un comando reduce_max o reduce_value precedente. Il tipo di dati è char. Il valore predefinito è N.

reduce_value

Il numero o la percentuale in base a cui ridurre il limite massimo per il tablespace. Il tipo di dati è varchar. Valori validi: numero intero K| M | G o 1-100. Il valore predefinito è N.

lower_high_water

Specifica se eseguire il comando ALTER TABLESPACE LOWER HIGH WATER MARK. Il tipo di dati è char. Il valore predefinito è N.

lower_high_water_stop

Specifica se eseguire il comando ALTER TABLESPACE LOWER HIGH WATER MARK STOP. Il tipo di dati è char. Il valore predefinito è N.

switch_online

Specifica se eseguire il comando ALTER TABLESPACE SWITCH ONLINE. Il tipo di dati è char. Il valore predefinito è N.

tablespace_prefetch_size

La dimensione di pagina di prefetch del tablespace. Il tipo di dati è char. Valori validi: AUTOMATIC (senza distinzione tra maiuscole e minuscole) o numeri interi positivi diversi da zero minori o uguali a 32.767.

Nota

Questo parametro funziona solo con buffer_pool_name, table_increase_size, max_size e switch_online. Non funziona con reduce_max, reduce_stop, reduce_value, lower_high_water e lower_high_water_stop.

Note per l'utilizzo

Prima di chiamare la stored procedure, esamina le seguenti considerazioni:

  • La stored procedure rdsadmin.alter_tablespace non funziona su un tablespace con tablespace_type impostato su T per i dati temporanei dell’utente.

  • I parametri facoltativi reduce_max, reduce_stop, reduce_value, lower_high_water, lower_high_water_stop e switch_online si escludono a vicenda. Non puoi combinarli con altri parametri facoltativi, ad esempio buffer_pool_name, nel comando rdsadmin.alter_tablespace. Per ulteriori informazioni, consulta Statement not valid.

Per informazioni su come verificare lo stato della modifica di un tablespace, consulta rdsadmin.get_task_status.

Per i messaggi di errore restituiti durante le chiamate alle stored procedure, consulta Errori delle stored procedure.

Esempi

Esempio 1: diminuzione del valore del limite massimo

L’esempio seguente modifica un tablespace denominato SP8 e assegna il pool di buffer BP8 per il database TESTDB al fine di diminuire il valore del limite massimo.

db2 "call rdsadmin.alter_tablespace( 'TESTDB', 'SP8', 'BP8', NULL, NULL, 'Y')"

Esempio 2: riduzione del limite massimo

L’esempio seguente esegue il comando REDUCE MAX su un tablespace denominato TBSP_TEST nel database TESTDB.

db2 "call rdsadmin.alter_tablespace( 'TESTDB', 'TBSP_TEST', NULL, NULL, NULL, 'Y')"

Esempio 3: interruzione dei comandi per la riduzione del limite massimo

L’esempio seguente esegue il comando REDUCE STOP su un tablespace denominato TBSP_TEST nel database TESTDB.

db2 "call rdsadmin.alter_tablespace( 'TESTDB', 'TBSP_TEST', NULL, NULL, NULL, NULL, 'Y')"

Esempio 4: modifica della dimensione di pagina di prefetch esistente

L’esempio seguente esegue il comando ALTER TABLESPACE SWITCH ONLINE su un tablespace denominato TSBP_TEST e modifica la dimensione di pagina di prefetch esistente in 64.

db2 "call rdsadmin.alter_tablespace( 'TESTDB', 'TBSP_TEST', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, ‘Y’, ‘64’)"

rdsadmin.rename_tablespace

Rinomina un tablespace.

Sintassi

db2 "call rdsadmin.rename_tablespace( ?, 'database_name', 'source_tablespace_name', 'target_tablespace_name')"

Parametri

I parametri seguenti sono obbligatori:

?

Un indicatore di parametro che genera un messaggio di errore. Questo parametro accetta solo ?.

database_name

Il nome del database a cui appartiene il tablespace. Il tipo di dati è varchar.

source_tablespace_name

Il nome del tablespace da rinominare. Il tipo di dati è varchar.

target_tablespace_name

Il nuovo nome del tablespace. Il tipo di dati è varchar.

Il nuovo nome presenta le seguenti limitazioni:

  • Non può essere uguale al nome di un tablespace esistente.

  • Può contenere solo i caratteri _$#@a-zA-Z0-9.

  • Non può iniziare con _ o $.

  • Non può iniziare con SYS.

Note per l'utilizzo

Per informazioni su come verificare lo stato della ridenominazione di un tablespace, consulta rdsadmin.get_task_status.

Non è possibile rinominare i tablespace che appartengono al database rdsadmin.

Esempi

L’esempio seguente rinomina in SP9 un tablespace denominato SP8 nel database TESTDB.

db2 "call rdsadmin.rename_tablespace( ?, 'TESTDB', 'SP8', 'SP9')"

rdsadmin.drop_tablespace

Elimina un tablespace.

Sintassi

db2 "call rdsadmin.drop_tablespace( 'database_name', 'tablespace_name')"

Parametri

I parametri seguenti sono obbligatori:

database_name

Il nome del database a cui appartiene il tablespace. Il tipo di dati è varchar.

tablespace_name

Il nome del tablespace da eliminare. Il tipo di dati è varchar.

Note per l'utilizzo

Per informazioni su come verificare lo stato dell’eliminazione di un tablespace, consulta rdsadmin.get_task_status.

Esempi

L’esempio seguente elimina un tablespace denominato SP8 dal database TESTDB.

db2 "call rdsadmin.drop_tablespace( 'TESTDB', 'SP8')"