AWS announces preview of AWS Interconnect - multicloud
AWS announces AWS Interconnect – multicloud (preview), providing simple, resilient, high-speed private connections to other cloud service providers. AWS Interconnect - multicloud is easy to configure and provides high-speed, resilient connectivity with dedicated bandwidth, enabling customers to interconnect AWS networking services such as AWS Transit Gateway, AWS Cloud WAN, and Amazon VPC to other cloud service providers with ease.
Como faço para redimensionar o espaço de tabela da minha instância de banco de dados do Amazon RDS para Oracle?
Quero saber como gerenciar ou redimensionar o espaço de tabela da minha instância de banco de dados Amazon Relational Database Service (Amazon RDS) para Oracle.
Breve descrição
O tipo de espaço de tabela padrão para instâncias de banco de dados do Amazon RDS para Oracle é bigfile. Não é uma prática recomendada usar espaços para tabela smallfile para suas instâncias de banco de dados do RDS para Oracle.
Uma instância de banco de dados do RDS para Oracle que usa um espaço de tabela smallfile tem as seguintes limitações:
- Não é possível executar o comando ALTER DATABASE para redimensionar ou alterar as configurações do arquivo de dados. Para obter mais informações, consulte Limitações a privilégios de DBA no RDS para Oracle.
- Você deve gerenciar manualmente o parâmetro db_files para definir o número máximo de arquivos de dados no banco de dados. Se o número de arquivos de dados estiver próximo da cota, você deverá alterar o parâmetro db_files.
Quando você cria espaços para tabela e não especifica um tamanho de arquivo de dados, o Amazon RDS ativa o AUTOEXTEND ON por padrão. O tamanho máximo dos espaços para tabela bigfile é 16 TiB. Quando você insere dados no espaço de tabela, o tamanho dele aumenta até a cota máxima que você configura ou a cota máxima para armazenamento alocado.
Se o armazenamento alocado para a instância de banco de dados do RDS para Oracle estiver cheio, a instância mudará para o estado STORAGE_FULL e os espaços para tabela não poderão ser estendidos. Para solucionar esse problema, você deve adicionar espaço de armazenamento à sua instância. Para mais informações, consulte Como resolver problemas que ocorrem quando as instâncias de banco de dados do Amazon RDS ficam sem armazenamento?
Quando você exclui dados de um espaço de tabela, o seu tamanho não diminui. Ao inserir novos dados, é possível reutilizar os blocos livres. Você deve redimensionar manualmente o espaço de tabela para recuperar o espaço não utilizado.
Resolução
Observação: nos comandos a seguir, substitua TABLESPACE_NAME ou example-tablespace pelo nome do seu espaço de tabela.
Verifique a configuração do espaço de tabela
Para identificar o tipo de espaço de tabela, execute a seguinte consulta:
SELECT TABLESPACE_NAME, CONTENTS, BIGFILE FROM DBA_TABLESPACES;
O comando anterior pode retornar a seguinte saída:
- A coluna BIGFILE pode ter um valor de SIM para BIGFILE ou NÃO para SMALLFILE.
- A coluna CONTENTS pode ser permanente, desfazer ou temporária.
Para verificar o tamanho do arquivo de dados, a cota máxima que você configurou e se o atributo autoextend está ativado, execute uma das consultas a seguir.
Para espaços de tabela permanentes e de desfazer, execute a seguinte consulta:
SELECT TABLESPACE_NAME, ROUND(SUM(BYTES)/(1024*1024*1024),2) SUM_GB, ROUND(MAXBYTES/(1024*1024*1024),2) MAX_GB, AUTOEXTENSIBLE FROM DBA_DATA_FILES GROUP BY TABLESPACE_NAME, MAXBYTES,AUTOEXTENSIBLE;
Para espaços para tabela temporários, execute a seguinte consulta:
SELECT TABLESPACE_NAME, ROUND(SUM(BYTES)/(1024*1024*1024),2) SUM_GB, ROUND(MAXBYTES/(1024*1024*1024),2) MAX_GB, AUTOEXTENSIBLE FROM DBA_TEMP_FILES GROUP BY TABLESPACE_NAME, MAXBYTES,AUTOEXTENSIBLE;
Os comandos anteriores podem retornar as seguintes saídas:
- Se o atributo autoextend não estiver ativado, o valor de MAX_GB será igual a 0.
- Se o tipo de espaço de tabela for smallfile, o valor de MAX_GB dependerá do tamanho do bloco usado para criar o espaço de tabela. Por exemplo, se o tamanho do bloco for 8 K, o valor de MAX_GB será 32 GB. Para obter mais informações, consulte Nonstandard block sizes (Tamanhos de blocos não padrão) no site da Oracle.
- Se o tipo de espaço de tabela for bigfile, o valor de MAX_GB aparecerá como 32 TB. O tamanho máximo de um único arquivo nas instâncias de banco de dados do RDS para Oracle é 16 TiB.
Para recuperar as informações necessárias sobre o espaço de tabela da linguagem de descrição de dados (data description language, DDL), execute os seguintes comandos:
SET LINESIZE 400;
SET LONG 99999;
SELECT DBMS_METADATA.GET_DDL('TABLESPACE','example-tablespace') FROM DUAL;
Aumente o tamanho do espaço de tabela
Se você ativar o atributo autoextend, não precisará aumentar o tamanho do espaço de tabela.
No entanto, se você ativar o atributo autoextend e depois redimensionar o espaço de tabela, deverá realizar as seguintes ações ao redimensionar:
-
Para espaços para tabela bigfile, execute o seguinte comando para redimensionar o espaço de tabela:
ALTER TABLESPACE example-tablespace RESIZE 50G;Observação: especifique o tamanho em kilobytes, megabytes, gigabytes ou terabytes. O espaço de tabela bigfile tem um único arquivo de dados e o comando ALTER TABLESPACE redimensiona o arquivo de dados que pertence ao espaço de tabela. Para obter mais informações, consulte ALTER TABLESPACE no site da Oracle.
-
Para espaços para tabela smallfile, execute o comando a seguir para adicionar arquivos de dados para aumentar o tamanho do espaço de tabela:
ALTER TABLESPACE example-tablespace ADD DATAFILE SIZE 1G AUTOEXTEND ON; -
Para espaços para tabela smallfile, execute o comando a seguir para usar o procedimento rdsadmin_util.resize_datafile para que seja possível redimensionar um arquivo de dados original:
select file_id,file_name, bytes/1024/1024/1024 gb from dba_data_files where tablespace_name='TEST';Observação: substitua TEST pelo nome do espaço de tabela.
Exemplo de saída do procedimento:
FILE_ID FILE_NAME GB ======================================================================= 6 /rdsdbdata/db/TESTDB_A/datafile/o1_mf_test_m03xlfq8_.dbf 1 SQL> exec rdsadmin.rdsadmin_util.resize_datafile(6,'2G') PL/SQL procedure successfully completed. SQL> select file_id,file_name, bytes/1024/1024/1024 gb from dba_data_files where tablespace_name='TEST'; FILE_ID FILE_NAME GB ========================================================================= 6 /rdsdbdata/db/TESTDB_A/datafile/o1_mf_test_m03xlfq8_.dbf 2
Reduza o tamanho de um espaço de tabela smallfile
Para reduzir o tamanho de um espaço de tabela smallfile, conclua as seguintes etapas:
- Use o procedimento rdsadmin_util.resize_datafile.
Observação: não é possível reduzir o tamanho de um arquivo de dados para um valor menor que a marca máxima utilizada do arquivo de dados. - Crie um novo espaço de tabela e, em seguida, configure o espaço de acordo com suas necessidades.
- Mova manualmente todos os seus dados para o novo espaço de tabela.
Reduza o tamanho de um espaço de tabela bigfile
Se você usa um espaço de tabela bigile, escolha um dos métodos a seguir para reduzir o tamanho do espaço de tabela.
Espaços para tabela permanentes
Quando você tenta reduzir o tamanho do espaço de tabela permanente para um valor menor que a marca máxima utilizada do espaço de tabela, sua operação de redimensionamento falha. Em seguida, você vê a seguinte mensagem de erro:
"ORA-03297: file contains used data beyond requested RESIZE value."
Se o tamanho do espaço de tabela for maior que a marca utilizada, é possível reduzir o tamanho do espaço de tabela permanente para o valor da marca utilizada.
Por exemplo, se a marca máxima utilizada for 40 GB e o tamanho do espaço de tabela for 50 GB, você reduzirá o espaço de tabela para 40 GB.
Exemplo de comando para redimensionar o espaço de tabela:
ALTER TABLESPACE example-tablespace RESIZE 40G;
Se não for possível reduzir o tamanho do espaço de tabela para um valor igual à marca máxima utilizada, realize as seguintes ações:
- Reorganize os objetos no espaço de tabela.
- Crie um novo espaço de tabela e mova todos os objetos para o novo espaço. Em seguida, exclua o espaço de tabela antigo.
Espaço de tabela temporário
Execute o comando a seguir para reduzir um espaço de tabela temporário:
ALTER TABLESPACE example-tablespace SHRINK SPACE KEEP 100M;
Para redimensionar o espaço de tabela temporário em uma réplica de leitura, inclua rdsadmin.rdsadmin_util.resize_temp_tablespace no seguinte comando:
EXEC rdsadmin.rdsadmin_util.resize_temp_tablespace('example-tablespace','100M');
Ou crie outro espaço de tabela temporário e defina-o como padrão.
Conclua as etapas a seguir:
-
Para visualizar o espaço de tabela temporário padrão atual, realize a seguinte consulta:
SELECT PROPERTY_VALUE FROM DATABASE_PROPERTIES WHERE PROPERTY_NAME = 'DEFAULT_TEMP_TABLESPACE';Observação: para obter mais informações, consulte Viewing information about tablespaces (Visualizando informações sobre espaços para tabela) no site da Oracle.
-
Execute o comando a seguir para criar outro espaço de tabela temporário e configurar o tamanho necessário:
CREATE TEMPORARY TABLESPACE example-tablespace TEMPFILE SIZE 100M; -
Para definir o novo espaço de tabela temporário como o espaço de tabela temporário padrão, execute o seguinte comando:
EXEC RDSADMIN.RDSADMIN_UTIL.ALTER_DEFAULT_TEMP_TABLESPACE(TABLESPACE_NAME => 'example-tablespace');
Para modificar um espaço de tabela temporário para um usuário específico, conclua as seguintes etapas:
-
Para visualizar o espaço de tabela temporário padrão atual para o usuário, execute a seguinte consulta:
SELECT USERNAME, TEMPORARY_TABLESPACE FROM DBA_USERS where USERNAME='example_username'; -
Execute o comando a seguir para alterar o espaço de tabela temporário padrão:
ALTER USER example_username TEMPORARY TABLESPACE example-tablespace;
Espaços de tabela de desfazer
Conclua as etapas a seguir:
-
Para identificar o espaço de tabela de desfazer que está atualmente em uso, execute a seguinte consulta:
SHOW PARAMETER UNDO_TABLESPACE; -
Execute o comando a seguir para reduzir o tamanho do espaço de tabela de desfazer:
`ALTER TABLESPACE example-tablespace RESIZE 40G;`
Se a consulta não for executada com êxito, conclua as seguintes etapas:
-
Execute o comando a seguir para criar um novo espaço de tabela de desfazer:
CREATE UNDO TABLESPACE example-new-tablespace DATAFILE SIZE 1G AUTOEXTEND ON MAXSIZE 100G;Observação: substitua example-new-tablespace pelo nome do novo espaço de tabela de desfazer.
-
Execute o comando a seguir para definir o espaço de tabela de desfazer como o espaço de tabela padrão nos grupos de parâmetros:
UNDO_TABLESPACE = example-new-tablespaceObservação: como UNDO_TABLESPACE é um parâmetro dinâmico, o tempo de inatividade não ocorre quando você o modifica. No entanto, é uma prática recomendada reinicializar a instância de banco de dados depois de modificar um parâmetro. Para obter mais informações, consulte Managing undo (Gerenciar desfazer) no site da Oracle.
-
Para verificar se o novo parâmetro de tabela de desfazer é o padrão, execute a seguinte consulta:
SHOW PARAMETER UNDO_TABLESPACE; -
Execute o comando a seguir para excluir o antigo espaço de tabela de desfazer:
DROP TABLESPACE example-tablespace INCLUDING CONTENTS AND DATAFILES;
Informações relacionadas
- Idioma
- Português
Vídeos relacionados


Conteúdo relevante
- feita há 8 meses
- feita há 9 meses