Procedimentos armazenados para espaços de tabela do RDS para Db2
Os procedimentos integrados armazenados descritos neste tópico gerenciam tablespaces para bancos de dados do Amazon RDS para Db2. Para executar esses procedimentos, o usuário principal deve primeiro se conectar ao banco de dados rdsadmin
.
Esses procedimentos armazenados são usados em diversas tarefas. Essa lista não é exaustiva.
Consulte os seguintes procedimentos integrados armazenados para obter informações sobre sintaxe, parâmetros, notas de uso e exemplos.
Procedimentos armazenados
rdsadmin.create_tablespace
Cria um espaço de tabela.
Sintaxe
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
')"
Parâmetros
Os seguintes parâmetros são obrigatórios:
database_name
-
O nome do banco de dados no qual criar o espaço de tabela. O tipo de dados é
varchar
. tablespace_name
-
O nome do espaço de tabela a ser criado. O tipo de dados é
varchar
.O nome do espaço de tabela tem as seguintes restrições:
-
Não pode ser igual ao nome de um espaço de tabela existente nesse banco de dados.
-
Só pode conter os caracteres
_$#@a-zA-Z0-9
. -
Não pode começar com
_
ou$
. -
Não pode começar com
SYS
.
-
Os seguintes parâmetros são opcionais:
buffer_pool_name
-
O nome do grupo de buffer para atribuir ao espaço de tabela. O tipo de dados é
varchar
. O padrão é uma string vazia.Importante
É necessário já ter um grupo de buffers do mesmo tamanho de página para associar ao espaço de tabela.
tablespace_page_size
-
O tamanho da página do espaço de tabela em bytes. O tipo de dados é
integer
. Valores válidos:4096
,8192
,16384
,32768
. O padrão é o tamanho da página usado quando você criou o banco de dados chamando rdsadmin.create_database.Importante
O Amazon RDS é compatível com a atomicidade de gravação para páginas de 4 KiB, 8 KiB e 16 KiB. Por outro lado, páginas de 32 KiB correm o risco de interromper gravações ou de dados parciais serem gravados na mesa. Se estiver usando páginas de 32 KiB, recomendamos habilitar a recuperação para um ponto no tempo e os backups automatizados. Caso contrário, você corre o risco de não conseguir se recuperar de páginas interrompidas. Para ter mais informações, consulte Introdução aos backups e Restaurar uma instância de banco de dados para um momento especificado no Amazon RDS.
tablespace_initial_size
-
O tamanho inicial do espaço de tabela em kilobytes (KB). O tipo de dados é
integer
. Valores válidos:48
ou superior. O padrão é nulo.Se você não definir um valor, o Db2 definirá um valor apropriado para você.
nota
Esse parâmetro não é aplicável a espaços de tabela temporários, pois o sistema gerencia esses espaços.
tablespace_increase_size
-
A porcentagem pela qual aumentar o espaço de tabela quando ele ficar cheio. O tipo de dados é
integer
. Valores válidos:1
a100
. O padrão é nulo.Se você não definir um valor, o Db2 definirá um valor apropriado para você.
nota
Esse parâmetro não é aplicável a espaços de tabela temporários, pois o sistema gerencia esses espaços.
tablespace_type
-
O tipo do espaço de tabela. O tipo de dados é
char
. Valores válidos:U
(para dados do usuário),T
(para dados temporários do usuário) ouS
(para dados temporários do sistema). O padrão éU
. tablespace_prefetch_size
-
O tamanho da página de pré-busca do espaço de tabela. O tipo de dados é
char
. Valores válidos:AUTOMATIC
(sem distinção entre maiúsculas e minúsculas) ou números inteiros positivos diferentes de zero que sejam menores ou iguais a 32767.
Observações de uso
O RDS para Db2 sempre cria um grande banco de dados para dados.
Para ter informações sobre como conferir o status de criação de um espaço de tabela, consulte rdsadmin.get_task_status.
Exemplos
Exemplo 1: criação de um tablespace e atribuição de um pool de buffers
O exemplo a seguir cria um espaço de tabela chamado SP8
e atribui um grupo de buffers chamado BP8
para um banco de dados chamado TESTDB
. O espaço de tabela tem um tamanho de página de espaço de tabela inicial de 4.096 bytes, um espaço de tabela inicial de 1.000 KB e um aumento de tamanho de tabela definido como 50%.
db2 "call rdsadmin.create_tablespace( 'TESTDB', 'SP8', 'BP8', 4096, 1000, 50)"
Exemplo 2: criação de um tablespace temporário e atribuição de um pool de buffers
O exemplo a seguir cria um espaço de tabela temporário chamado SP8
. Ele atribui um grupo de buffer chamado BP8
que tem 8 KiB de tamanho para um banco de dados chamado TESTDB
.
db2 "call rdsadmin.create_tablespace( 'TESTDB', 'SP8', 'BP8', 8192, NULL, NULL, 'T')"
Exemplo 3: criar um espaço de tabela e atribuir um tamanho de página de pré-busca
O exemplo a seguir cria um espaço de tabela chamado SP8
para um banco de dados chamado TESTDB
. O espaço de tabela tem um tamanho inicial de aumento de 50
e um tamanho de página de pré-busca de 800
.
db2 "call rdsadmin.create_tablespace( 'TESTDB', 'SP8', NULL, NULL, NULL, 50, NULL, '800')"
rdsadmin.alter_tablespace
Altera um espaço de tabela.
Sintaxe
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
')"
Parâmetros
Os seguintes parâmetros são obrigatórios:
database_name
-
O nome do banco de dados que usa o espaço de tabela. O tipo de dados é
varchar
. tablespace_name
-
O nome do espaço de tabela a ser alterado. O tipo de dados é
varchar
.
Os seguintes parâmetros são opcionais:
buffer_pool_name
-
O nome do grupo de buffer para atribuir ao espaço de tabela. O tipo de dados é
varchar
. O padrão é uma string vazia.Importante
É necessário já ter um grupo de buffers do mesmo tamanho de página para associar ao espaço de tabela.
tablespace_increase_size
-
A porcentagem pela qual aumentar o espaço de tabela quando ele ficar cheio. O tipo de dados é
integer
. Valores válidos:1
a100
. O padrão é0
. max_size
-
O tamanho máximo do espaço de tabela. O tipo de dados é
varchar
. Valores válidos:inteiro
K
|M
|G
ouNONE
. O padrão éNONE
. reduce_max
-
Especifica se a marca d'água alta deve ser reduzida até o limite máximo. O tipo de dados é
char
. O padrão éN
. reduce_stop
-
Especifica se um comando anterior
reduce_max
oureduce_value
deve ser interrompido. O tipo de dados échar
. O padrão éN
. reduce_value
-
O número ou a porcentagem para reduzir o limite máximo do espaço de tabela. O tipo de dados é
varchar
. Valores válidos:inteiro
K
|M
|G
ou1
a100
. O padrão éN
. lower_high_water
-
Especifica se o comando
ALTER TABLESPACE LOWER HIGH WATER MARK
deve ser executado. O tipo de dados échar
. O padrão éN
. lower_high_water_stop
-
Especifica se o comando
ALTER TABLESPACE LOWER HIGH WATER MARK STOP
deve ser executado. O tipo de dados échar
. O padrão éN
. switch_online
-
Especifica se o comando
ALTER TABLESPACE SWITCH ONLINE
deve ser executado. O tipo de dados échar
. O padrão éN
. tablespace_prefetch_size
-
O tamanho da página de pré-busca do espaço de tabela. O tipo de dados é
char
. Valores válidos:AUTOMATIC
(sem distinção entre maiúsculas e minúsculas) ou números inteiros positivos diferentes de zero que sejam menores ou iguais a 32767.nota
Esse parâmetro só funciona com
buffer_pool_name
,table_increase_size
,max_size
eswitch_online
. Não funciona comreduce_max
,reduce_stop
,reduce_value
,lower_high_water
elower_high_water_stop
.
Observações de uso
Antes de chamar o procedimento armazenado, analise as seguintes considerações:
-
O procedimento armazenado
rdsadmin.alter_tablespace
não funcionará em um espaço de tabela com otablespace_type
definido comoT
para dados temporários do usuário. -
Os parâmetros opcionais
reduce_max
,reduce_stop
,reduce_value
,lower_high_water
,lower_high_water_stop
eswitch_online
são mutuamente excludentes. Não é possível combiná-los com nenhum outro parâmetro opcional, comobuffer_pool_name
, no comandordsadmin.alter_tablespace
. Para ter mais informações, consulte Statement not valid.
Para ter informações sobre como conferir o status de alteração de um espaço de tabela, consulte rdsadmin.get_task_status.
Para ver as mensagens de erro exibidas ao chamar procedimentos armazenados, consulte Solução de problemas de erros de procedimentos armazenados.
Exemplos
Exemplo 1: diminuição da marca d'água alta
O exemplo a seguir altera um espaço de tabela chamado SP8
e atribui um grupo de buffers denominado BP8
para um banco de dados denominado TESTDB
para reduzir a marca d'água alta.
db2 "call rdsadmin.alter_tablespace( 'TESTDB', 'SP8', 'BP8', NULL, NULL, 'Y')"
Exemplo 2: redução da marca d'água alta
O exemplo a seguir executa o comando REDUCE MAX
em um espaço de tabela chamado TBSP_TEST
no banco de dados TESTDB
.
db2 "call rdsadmin.alter_tablespace( 'TESTDB', 'TBSP_TEST', NULL, NULL, NULL, 'Y')"
Exemplo 3: interrupção de comandos para reduzir a marca d'água alta
O exemplo a seguir executa o comando REDUCE STOP
em um espaço de tabela chamado TBSP_TEST
no banco de dados TESTDB
.
db2 "call rdsadmin.alter_tablespace( 'TESTDB', 'TBSP_TEST', NULL, NULL, NULL, NULL, 'Y')"
Exemplo 4: alterar o tamanho da página de pré-busca existente
O exemplo a seguir executa o comando ALTER TABLESPACE SWITCH ONLINE
em um espaço de tabela chamado TSBP_TEST
e altera o tamanho da página de pré-busca existente para 64
.
db2 "call rdsadmin.alter_tablespace( 'TESTDB', 'TBSP_TEST', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, ‘Y’, ‘64’)"
rdsadmin.rename_tablespace
Renomeia um espaço de tabela.
Sintaxe
db2 "call rdsadmin.rename_tablespace( ?, '
database_name
', 'source_tablespace_name
', 'target_tablespace_name
')"
Parâmetros
Os seguintes parâmetros são obrigatórios:
- ?
-
Um marcador de parâmetro que gera uma mensagem de erro. Esse parâmetro só aceita ?.
database_name
-
O nome do banco de dados ao qual pertence o espaço de tabela. O tipo de dados é
varchar
. source_tablespace_name
-
O nome do espaço de tabela a ser renomeado. O tipo de dados é
varchar
. target_tablespace_name
-
O novo nome do espaço de tabela. O tipo de dados é
varchar
.O nome tem as seguintes restrições:
-
Não pode ser igual ao nome de um espaço de tabela existente.
-
Só pode conter os caracteres
_$#@a-zA-Z0-9
. -
Não pode começar com
_
ou$
. -
Não pode começar com
SYS
.
-
Observações de uso
Para ter informações sobre como conferir o status da renomeação de um espaço de tabela, consulte rdsadmin.get_task_status.
Não é possível renomear espaços de tabela que pertençam ao banco de dados rdsadmin
.
Exemplos
O exemplo a seguir renomeia um espaço de tabela denominado SP8
para SP9
em um banco de dados chamado TESTDB
.
db2 "call rdsadmin.rename_tablespace( ?, 'TESTDB', 'SP8'. 'SP9')"
rdsadmin.drop_tablespace
Descarta um espaço de tabela.
Sintaxe
db2 "call rdsadmin.drop_tablespace( '
database_name
', 'tablespace_name
')"
Parâmetros
Os seguintes parâmetros são obrigatórios:
database_name
-
O nome do banco de dados ao qual pertence o espaço de tabela. O tipo de dados é
varchar
. tablespace_name
-
O nome do espaço de tabela a ser descartado. O tipo de dados é
varchar
.
Observações de uso
Para ter informações sobre como conferir o status de descarte de um espaço de tabela, consulte rdsadmin.get_task_status.
Exemplos
O exemplo a seguir descarta um espaço de tabela denominado SP8
de um banco de dados chamado TESTDB
.
db2 "call rdsadmin.drop_tablespace( 'TESTDB', 'SP8')"