Tarefas comuns para espaços de tabela - Amazon Relational Database Service

Tarefas comuns para espaços de tabela

É possível criar, alterar, renomear ou descartar espaços de tabela de um banco de dados do RDS para Db2. Criar, alterar, renomear ou descartar espaços de tabela requer autoridade SYSADM de nível mais alto, que não está disponível para o usuário principal. Em vez disso, use procedimentos armazenados do Amazon RDS.

Criar um espaço de tabela

Para criar um espaço de tabela do banco de dados do RDS para Db2, chame o procedimento armazenado rdsadmin.create_tablespace. Para ter mais informações, consulte Declaração CREATE TABLESPACE na documentação do IBM Db2.

Importante

Para criar um espaço de tabela, é necessário ter um grupo de buffers do mesmo tamanho de página para associar ao espaço de tabela. Para ter mais informações, consulte Tarefas comuns para grupos de buffer.

Como criar um espaço de tabela
  1. Conecte-se ao banco de dados rdsadmin usando o nome de usuário principal e a senha mestra da instância de banco de dados do RDS para Db2. No exemplo a seguir, substitua master_username e master_password por suas próprias informações.

    db2 "connect to rdsadmin user master_username using master_password"
  2. Crie um espaço de tabela chamando rdsadmin.create_tablespace. Para ter mais informações, consulte rdsadmin.create_tablespace.

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

Alterar um espaço de tabela

Para alterar um espaço de tabela do banco de dados do RDS para Db2, chame o procedimento armazenado rdsadmin.alter_tablespace. É possível usar esse procedimento armazenado para alterar o grupo de buffers de um espaço de tabela, diminuir a marca d'água alta ou colocar um espaço de tabela on-line. Para ter mais informações, consulte Declaração ALTER TABLESPACE na documentação do IBM Db2.

Como alterar um espaço de tabela
  1. Conecte-se ao banco de dados rdsadmin usando o nome de usuário principal e a senha mestra da instância de banco de dados do RDS para Db2. No exemplo a seguir, substitua master_username e master_password por suas próprias informações.

    db2 "connect to rdsadmin user master_username using master_password"
  2. Altere um espaço de tabela chamando rdsadmin.alter_tablespace. Para ter mais informações, consulte rdsadmin.alter_tablespace.

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

Renomear um espaço de tabela

Para alterar o nome de um espaço de tabela do banco de dados do RDS para Db2, chame o procedimento armazenado rdsadmin.rename_tablespace. Para ter mais informações, consulte Declaração RENAME TABLESPACE na documentação do IBM Db2.

Como renomear um espaço de tabela
  1. Conecte-se ao banco de dados rdsadmin usando o nome de usuário principal e a senha mestra da instância de banco de dados do RDS para Db2. No exemplo a seguir, substitua master_username e master_password por suas próprias informações.

    db2 "connect to rdsadmin user master_username using master_password"
  2. Renomeie um espaço de tabela chamando rdsadmin.rename_tablespace. Para ter mais informações, bem como conhecer as restrições em relação a como nomear um espaço de tabela, consulte rdsadmin.rename_tablespace.

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

Descartar um espaço de tabela

Para descartar um espaço de tabela do banco de dados do RDS para Db2, chame o procedimento armazenado rdsadmin.drop_tablespace. Antes de descartar um espaço de tabela, primeiro descarte qualquer objeto no espaço de tabela, como tabelas, índices ou objetos grandes (LOBs). Para ter mais informações, consulte Dropping table spaces na documentação do IBM Db2.

Como descartar um espaço de tabela
  1. Conecte-se ao banco de dados rdsadmin usando o nome de usuário principal e a senha mestra da instância de banco de dados do RDS para Db2. No exemplo a seguir, substitua master_username e master_password por suas próprias informações.

    db2 "connect to rdsadmin user master_username using master_password"
  2. Altere um espaço de tabela chamando rdsadmin.drop_tablespace. Para ter mais informações, consulte rdsadmin.drop_tablespace.

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

Conferir o status de um espaço de tabela

É possível conferir o status de um espaço de tabela usando a função cast.

Como conferir o status de um espaço de tabela
  1. Conecte-se ao banco de dados Db2 usando o nome de usuário principal e a senha principal da instância de banco de dados do RDS para Db2. No exemplo a seguir, substitua rds_database_alias, master_username e master_password por suas próprias informações.

    db2 connect to rds_database_alias user master_username using master_password
  2. Exiba uma saída resumida.

    Para exibir uma saída resumida:

    db2 "select cast(tbsp_id as smallint) as tbsp_id, cast(tbsp_name as varchar(35)) as tbsp_name, cast(tbsp_type as varchar(3)) as tbsp_type, cast(tbsp_state as varchar(10)) as state, cast(tbsp_content_type as varchar(8)) as contents from table(mon_get_tablespace(null,-1)) order by tbsp_id"

Exibir informações detalhadas sobre espaços de tabela

É possível exibir informações sobre um espaço de tabela para um membro ou todos os membros usando a função cast.

Como exibir informações detalhadas sobre espaços de tabela
  1. Conecte-se ao banco de dados Db2 usando o nome de usuário principal e a senha principal da instância de banco de dados do RDS para Db2. No exemplo a seguir, substitua rds_database_alias, master_username e master_password por suas próprias informações.

    db2 connect to rds_database_alias user master_username using master_password
  2. Exiba detalhes sobre todos os espaços de tabela no banco de dados para um ou todos os membros.

    Para um membro:

    db2 "select cast(member as smallint) as member, cast(tbsp_id as smallint) as tbsp_id, cast(tbsp_name as varchar(35)) as tbsp_name, cast(tbsp_type as varchar(3)) as tbsp_type, cast(tbsp_state as varchar(10)) as state, cast(tbsp_content_type as varchar(8)) as contents, cast(tbsp_total_pages as integer) as total_pages, cast(tbsp_used_pages as integer) as used_pages, cast(tbsp_free_pages as integer) as free_pages, cast(tbsp_page_top as integer) as page_hwm, cast(tbsp_page_size as integer) as page_sz, cast(tbsp_extent_size as smallint) as extent_sz, cast(tbsp_prefetch_size as smallint) as prefetch_sz, cast(tbsp_initial_size as integer) as initial_size, cast(tbsp_increase_size_percent as smallint) as increase_pct, cast(storage_group_name as varchar(12)) as stogroup from table(mon_get_tablespace(null,-1)) order by member, tbsp_id "

    Para todos os membros:

    db2 "select cast(member as smallint) as member cast(tbsp_id as smallint) as tbsp_id, cast(tbsp_name as varchar(35)) as tbsp_name, cast(tbsp_type as varchar(3)) as tbsp_type, cast(tbsp_state as varchar(10)) as state, cast(tbsp_content_type as varchar(8)) as contents, cast(tbsp_total_pages as integer) as total_pages, cast(tbsp_used_pages as integer) as used_pages, cast(tbsp_free_pages as integer) as free_pages, cast(tbsp_page_top as integer) as page_hwm, cast(tbsp_page_size as integer) as page_sz, cast(tbsp_extent_size as smallint) as extent_sz, cast(tbsp_prefetch_size as smallint) as prefetch_sz, cast(tbsp_initial_size as integer) as initial_size, cast(tbsp_increase_size_percent as smallint) as increase_pct, cast(storage_group_name as varchar(12)) as stogroup from table(mon_get_tablespace(null,-2)) order by member, tbsp_id "

Listar o estado e o grupo de armazenamento de um espaço de tabela

É possível listar o estado e o grupo de armazenamento de um espaço de tabela ao executar uma declaração SQL.

Para listar o estado e o grupo de armazenamento de um espaço de tabela, execute a seguinte declaração SQL:

db2 "SELECT varchar(tbsp_name, 30) as tbsp_name, varchar(TBSP_STATE, 30) state, tbsp_type, varchar(storage_group_name,30) storage_group FROM TABLE(MON_GET_TABLESPACE('',-2)) AS t"

Listar os espaços de uma tabela

É possível listar os espaços de tabela de uma tabela executando uma declaração SQL.

Para listar os espaços de uma tabela, execute a declaração SQL a seguir. No seguinte exemplo, substitua SCHEMA_NAME e TABLE_NAME pelo nome do esquema e da tabela:

db2 "SELECT VARCHAR(SD.TBSPACE,30) AS DATA_SPACE, VARCHAR(SL.TBSPACE,30) AS LONG_SPACE, VARCHAR(SI.TBSPACE,30) AS INDEX_SPACE FROM SYSCAT.DATAPARTITIONS P JOIN SYSCAT.TABLESPACES SD ON SD.TBSPACEID = P.TBSPACEID LEFT JOIN SYSCAT.TABLESPACES SL ON SL.TBSPACEID = P.LONG_TBSPACEID LEFT JOIN SYSCAT.TABLESPACES SI ON SI.TBSPACEID = P.INDEX_TBSPACEID WHERE TABSCHEMA = 'SCHEMA_NAME' AND TABNAME = 'TABLE_NAME'"

Listar contêineres de espaço de tabela

É possível listar todos os contêineres de espaço de tabela ou contêineres de espaço de tabela específicos usando o comando cast.

Como listar os contêineres de um espaço de tabela
  1. Conecte-se ao banco de dados Db2 usando o nome de usuário principal e a senha principal da instância de banco de dados do RDS para Db2. No seguinte exemplo, substitua rds_database_alias, master_username e master_password por suas próprias informações:

    db2 connect to rds_database_alias user master_username using master_password
  2. Exiba uma lista de todos os contêineres de espaço de tabela no banco de dados ou de contêineres de espaço de tabela específicos.

    Para todos os contêineres de espaço de tabela:

    db2 "select cast(member as smallint) as member, cast(tbsp_name as varchar(35)) as tbsp_name, cast(container_id as smallint) as id, cast(container_name as varchar(60)) as container_path, container_type as type from table(mon_get_container(null,-2)) order by member,tbsp_id,container_id"

    Para todos os contêineres de espaço de tabela específicos:

    db2 "select cast(member as smallint) as member, cast(tbsp_name as varchar(35)) as tbsp_name, cast(container_id as smallint) as id, cast(container_name as varchar(60)) as container_path, container_type as type from table(mon_get_container('TBSP_1',-2)) order by member, tbsp_id,container_id"