

# Configurar recursos avançados do RDS para Oracle
<a name="CHAP_Oracle.advanced-features"></a>

O RDS para Oracle é compatível com vários recursos avançados, inclusive o HugePages, um armazenamento de instância e tipos de dados estendidos.

**Topics**
+ [Armazenar dados temporários em um armazenamento de instância do RDS for Oracle](CHAP_Oracle.advanced-features.instance-store.md)
+ [Ativar o HugePages para uma instância do RDS para Oracle](Oracle.Concepts.HugePages.md)
+ [Ativar tipos de dados estendidos no RDS para Oracle](Oracle.Concepts.ExtendedDataTypes.md)

# Armazenar dados temporários em um armazenamento de instância do RDS for Oracle
<a name="CHAP_Oracle.advanced-features.instance-store"></a>

Use um armazenamento de instância para os espaços de tabela temporários e o Database Smart Flash Cache (o cache flash) em classes de instância de banco de dados do RDS for Oracle compatíveis.

**Topics**
+ [Visão geral do armazenamento de instância do RDS for Oracle](#CHAP_Oracle.advanced-features.instance-store.overview)
+ [Ativar um armazenamento de instância do RDS for Oracle](#CHAP_Oracle.advanced-features.instance-store.Enable)
+ [Configurar um armazenamento de instância do RDS for Oracle](CHAP_Oracle.advanced-features.instance-store.configuring.md)
+ [Trabalhar com um armazenamento de instância em uma réplica de leitura da Oracle](CHAP_Oracle.advanced-features.instance-store.replicas.md)
+ [Configurar um grupo de espaços de tabela temporários em um armazenamento de instância e no Amazon EBS](CHAP_Oracle.advanced-features.instance-store.temp-ebs.md)
+ [Remover um armazenamento de instância do RDS for Oracle](#CHAP_Oracle.advanced-features.instance-store.Disable)

## Visão geral do armazenamento de instância do RDS for Oracle
<a name="CHAP_Oracle.advanced-features.instance-store.overview"></a>

Um *armazenamento de instância* fornece armazenamento temporário em nível de bloco para a instância de banco de dados do RDS for Oracle. Você pode usar um armazenamento de instância para armazenamento temporário de informações que mudam com frequência.

Um armazenamento de instância é baseado em dispositivos Non-Volatile Memory Express (NVMe) anexados fisicamente ao computador host. Esse armazenamento é otimizado para baixa latência, performance de E/S aleatória e throughput de leitura sequencial.

O tamanho do armazenamento de instância varia de acordo com o tipo de instância de banco de dados. Para obter mais informações sobre o armazenamento de instância, consulte [Armazenamento de instância do Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html) no *Amazon Elastic Compute Cloud Manual do usuário para instâncias do Linux*.

**Topics**
+ [Tipos de dados no armazenamento de instância do RDS for Oracle](#CHAP_Oracle.advanced-features.instance-store.overview.uses)
+ [Benefícios do armazenamento de instância do RDS for Oracle](#CHAP_Oracle.advanced-features.instance-store.overview.benefits)
+ [Classes de instância compatíveis com o armazenamento de instância do RDS for Oracle](#CHAP_Oracle.advanced-features.instance-store.overview.instance-classes)
+ [Versões de mecanismo compatíveis com o armazenamento de instância do RDS for Oracle](#CHAP_Oracle.advanced-features.instance-store.overview.db-versions)
+ [Regiões da AWS compatíveis com o armazenamento de instância do RDS for Oracle](#CHAP_Oracle.advanced-features.instance-store.overview.regions)
+ [Custo do armazenamento de instância do RDS para Oracle](#CHAP_Oracle.advanced-features.instance-store.overview.cost)

### Tipos de dados no armazenamento de instância do RDS for Oracle
<a name="CHAP_Oracle.advanced-features.instance-store.overview.uses"></a>

Você pode colocar os seguintes tipos de dados temporários do RDS for Oracle em um armazenamento de instância:

Um espaço de tabela temporário  
O Oracle Database usa espaços de tabela temporários para armazenar resultados de consultas intermediárias que não cabem na memória. Consultas maiores podem gerar grandes quantidades de dados intermediários que precisam ser armazenados temporariamente em cache, mas não precisam ser mantidos. Especificamente, um espaço de tabela temporário é útil para classificações, agregações de hash e uniões. Se sua instância de banco de dados do RDS for Oracle usar a Enterprise Edition ou a Standard Edition 2, você poderá colocar um espaço de tabela temporário em um armazenamento de instância.

O cache flash  
O cache flash melhora a performance das leituras aleatórias de bloco único no caminho convencional. Uma prática recomendada é dimensionar o cache para acomodar a maior parte do conjunto de dados ativo. Se sua instância de banco de dados do RDS for Oracle usar a Enterprise Edition, você poderá colocar o cache flash em um armazenamento de instância.

Por padrão, um armazenamento de instância é configurado para um espaço de tabela temporário, mas não para o cache flash. Não é possível colocar arquivos de dados do Oracle e arquivos de log do banco de dados em um armazenamento de instância.

### Benefícios do armazenamento de instância do RDS for Oracle
<a name="CHAP_Oracle.advanced-features.instance-store.overview.benefits"></a>

Você pode considerar o uso de um armazenamento de instância para armazenar arquivos e caches temporários que você pode perder. Se você quiser melhorar a performance do banco de dados ou se uma workload crescente estiver causando problemas de performance para seu armazenamento do Amazon EBS, considere escalar para uma classe de instância que seja compatível com um armazenamento de instância.

Ao colocar o espaço de tabela temporário e o cache flash em um armazenamento de instância, você obtém os seguintes benefícios:
+ Latências de leitura mais baixas
+ Throughput maior
+ Menor carga nos volumes do Amazon EBS
+ Custos mais baixos de armazenamento e snapshot devido à redução da carga do Amazon EBS
+ Menos necessidade de provisionar IOPS alta, possivelmente reduzindo o custo geral

 Ao colocar o espaço de tabela temporário no armazenamento de instância, você aumenta imediatamente a performance das consultas que usam espaço temporário. Quando você coloca o cache flash no armazenamento de instância, as leituras de blocos em cache normalmente têm uma latência muito menor do que as leituras do Amazon EBS. O cache flash precisa ser “aquecido” antes de oferecer benefícios de performance. O cache se aquece sozinho porque o banco de dados grava blocos no cache flash à medida que eles saem do cache do buffer do banco de dados.

**nota**  
Em alguns casos, o cache flash causa sobrecarga de performance devido ao gerenciamento do cache. Antes de ativar o cache flash em um ambiente de produção, recomendamos que você analise sua workload e teste o cache em um ambiente de teste.

### Classes de instância compatíveis com o armazenamento de instância do RDS for Oracle
<a name="CHAP_Oracle.advanced-features.instance-store.overview.instance-classes"></a>

O Amazon RDS é compatível com o armazenamento de instância para as seguintes classes de instância de banco de dados:
+ db.m5d
+ db.m6id
+ db.r5d
+ db.r6id
+ db.x2idn
+ db.x2iedn

O RDS para Oracle é compatível com as classes de instância de banco de dados anteriores somente para o modelo de licenciamento BYOL. Para obter mais informações, consulte [Classes de instância de banco de dados compatíveis do RDS para Oracle](Oracle.Concepts.InstanceClasses.md#Oracle.Concepts.InstanceClasses.Supported) e [Traga a sua própria licença (BYOL) para EE e SE2](Oracle.Concepts.Licensing.md#Oracle.Concepts.Licensing.BYOL).

Para ver o armazenamento total de instâncias para os tipos compatíveis de instância de banco de dados, execute o comando a seguir na CLI da AWS. 

**Example**  

```
aws ec2 describe-instance-types \
  --filters "Name=instance-type,Values=*5d.*large*,*6id.*large*" \
  --query "InstanceTypes[?contains(InstanceType,'m5d')||contains(InstanceType,'r5d')||contains(InstanceType,'m6id')||contains(InstanceType,'r6id')][InstanceType, InstanceStorageInfo.TotalSizeInGB]" \
  --output table
```

O comando anterior retorna o tamanho bruto do dispositivo para o armazenamento de instância. O RDS for Oracle usa uma pequena parte desse espaço para configuração. O espaço no armazenamento de instância que está disponível para espaços de tabela temporários ou para o cache flash é um pouco menor.

### Versões de mecanismo compatíveis com o armazenamento de instância do RDS for Oracle
<a name="CHAP_Oracle.advanced-features.instance-store.overview.db-versions"></a>

O armazenamento de instância é compatível com as seguintes versões de mecanismo do RDS for Oracle: 
+ Versões 21.0.0.0.ru-2022-01.rur-2022-01.r1 ou Oracle Database 21c posterior
+ 19.0.0.0.ru-2021-10.rur-2021-10.r1 ou versões posteriores do Oracle Database 19c

### Regiões da AWS compatíveis com o armazenamento de instância do RDS for Oracle
<a name="CHAP_Oracle.advanced-features.instance-store.overview.regions"></a>

O armazenamento de instância está disponível em todas as Regiões da AWS onde um ou mais desses tipos de instância são compatíveis. Para obter mais informações sobre as classes de instância db.m5d e db.r5d, consulte [Classes de instâncias de banco de dados do ](Concepts.DBInstanceClass.md). Para obter mais informações sobre as classes de instância compatíveis com o Amazon RDS para Oracle, consulte [Classes de instância de banco de dados do RDS para Oracle](Oracle.Concepts.InstanceClasses.md).

### Custo do armazenamento de instância do RDS para Oracle
<a name="CHAP_Oracle.advanced-features.instance-store.overview.cost"></a>

O custo do armazenamento de instância é incorporado ao custo do armazenamento de instância ativado nas instâncias. Você não gera custos adicionais ao habilitar um armazenamento de instância em uma instância de banco de dados do RDS for Oracle. Para obter mais informações sobre instâncias ativadas em armazenamento de instância, consulte [Classes de instância compatíveis com o armazenamento de instância do RDS for Oracle](#CHAP_Oracle.advanced-features.instance-store.overview.instance-classes).

## Ativar um armazenamento de instância do RDS for Oracle
<a name="CHAP_Oracle.advanced-features.instance-store.Enable"></a>

Para ativar o armazenamento de instância para dados temporários do RDS for Oracle, siga um destes procedimentos:
+ Crie uma instância de banco de dados do RDS for Oracle utilizando uma classe de instância compatível. Para obter mais informações, consulte [Criar uma instância de banco de dados do Amazon RDS](USER_CreateDBInstance.md).
+ Modifique uma instância de banco de dados do RDS for Oracle para utilizar uma classe de instância compatível. Para obter mais informações, consulte [Modificar uma instância de banco de dados do Amazon RDS](Overview.DBInstance.Modifying.md).

# Configurar um armazenamento de instância do RDS for Oracle
<a name="CHAP_Oracle.advanced-features.instance-store.configuring"></a>

Por padrão, 100% do espaço de armazenamento de instância é alocado ao espaço de tabela temporário. Para configurar o armazenamento de instância para alocar espaço para o cache flash e o espaço de tabela temporário, defina os seguintes parâmetros no grupo de parâmetros de sua instância:

**db\$1flash\$1cache\$1size=\$1DBInstanceStore\$1\$10,2,4,6,8,10\$1/10\$1**  
Esse parâmetro especifica a quantidade de espaço de armazenamento alocado para o cache flash. Esse parâmetro é válido apenas para o Oracle Database Enterprise Edition. O valor padrão é `{DBInstanceStore*0/10}`. Se você definir um valor diferente de zero para `db_flash_cache_size`, sua instância do RDS for Oracle ativará o cache flash após a reinicialização da instância.

**rds.instance\$1store\$1temp\$1size=\$1DBInstanceStore\$1\$10,2,4,6,8,10\$1/10\$1**  
Esse parâmetro especifica a quantidade de espaço de armazenamento alocado para o espaço de tabela temporário. O valor padrão é `{DBInstanceStore*10/10}`. Esse parâmetro pode ser modificado para o Oracle Database Enterprise Edition e somente leitura para Standard Edition 2. Se você definir um valor diferente de zero para `rds.instance_store_temp_size`, o Amazon RDS alocará espaço no armazenamento de instância para o espaço de tabela temporário.  
Você pode definir os parâmetros `db_flash_cache_size` e `rds.instance_store_temp_size` para instâncias de banco de dados que não usam um armazenamento de instância. Nesse caso, as duas configurações são avaliadas como `0`, o que desativa o recurso. Nesse caso, você pode usar o mesmo grupo de parâmetros para diferentes tamanhos de instância e para instâncias que não usam um armazenamento de instância. Se você modificar esses parâmetros, reinicialize as instâncias associadas para que as alterações tenham efeito.  
Se você alocar espaço para um espaço de tabela temporário, o Amazon RDS não criará o espaço de tabela temporário automaticamente. Para saber como criar o espaço de tabela temporário no armazenamento de instância, consulte [Criar um espaço de tabela temporário no armazenamento de instância](Appendix.Oracle.CommonDBATasks.TablespacesAndDatafiles.md#Appendix.Oracle.CommonDBATasks.creating-tts-instance-store).

O valor combinado dos parâmetros anteriores não deve exceder 10/10 ou 100%. A tabela a seguir ilustra as configurações de parâmetros válidas e inválidas.


| configuração db\$1flash\$1cache\$1size | configuração rds.instance\$1store\$1temp\$1size | Explicação | 
| --- | --- | --- | 
|  db\$1flash\$1cache\$1size=\$1DBInstanceStore\$10/10\$1  |  rds.instance\$1store\$1temp\$1size=\$1DBInstanceStore\$110/10\$1  |  Essa é uma configuração válida para todas as edições do Oracle Database. O Amazon RDS aloca 100% do espaço de armazenamento de instância ao espaço de tabela temporário. Esse é o padrão.  | 
|  db\$1flash\$1cache\$1size=\$1DBInstanceStore\$110/10\$1  |  rds.instance\$1store\$1temp\$1size=\$1DBInstanceStore\$10/10\$1  |  Essa é uma configuração válida apenas para o Oracle Database Enterprise Edition. O Amazon RDS aloca 100% do espaço de armazenamento de instância ao cache flash.  | 
|  db\$1flash\$1cache\$1size=\$1DBInstanceStore\$12/10\$1  |  rds.instance\$1store\$1temp\$1size=\$1DBInstanceStore\$18/10\$1  |  Essa é uma configuração válida apenas para o Oracle Database Enterprise Edition. O Amazon RDS aloca 20% do espaço de armazenamento de instância para o cache flash e 80% do espaço de armazenamento da instância para o espaço de tabela temporário.  | 
|  db\$1flash\$1cache\$1size=\$1DBInstanceStore\$16/10\$1  |  rds.instance\$1store\$1temp\$1size=\$1DBInstanceStore\$14/10\$1  |  Essa é uma configuração válida apenas para o Oracle Database Enterprise Edition. O Amazon RDS aloca 60% do espaço de armazenamento de instância para o cache flash e 40% do espaço de armazenamento da instância para o espaço de tabela temporário.  | 
|  db\$1flash\$1cache\$1size=\$1DBInstanceStore\$12/10\$1  |  rds.instance\$1store\$1temp\$1size=\$1DBInstanceStore\$14/10\$1  | Essa é uma configuração válida apenas para o Oracle Database Enterprise Edition. O Amazon RDS aloca 20% do espaço de armazenamento de instância para o cache flash e 40% do espaço de armazenamento da instância para o espaço de tabela temporário. | 
|  db\$1flash\$1cache\$1size=\$1DBInstanceStore\$18/10\$1  |  rds.instance\$1store\$1temp\$1size=\$1DBInstanceStore\$18/10\$1  |  Essa é uma configuração inválida porque a porcentagem combinada do espaço de armazenamento da instância excede 100%. Nesses casos, o Amazon RDS falha na tentativa.  | 

## Considerações ao alterar o tipo de instância de banco de dados
<a name="CHAP_Oracle.advanced-features.instance-store.configuring.modifying"></a>

Se você alterar o tipo de instância de banco de dados, isso poderá afetar a configuração do cache flash ou do espaço de tabela temporário no armazenamento de instância. Considere as seguintes modificações e seus efeitos:

**Aumente ou reduza a escala verticalmente da instância de banco de dados que é compatível com o armazenamento de instância.**  
Os valores a seguir aumentam ou diminuem proporcionalmente ao novo tamanho do armazenamento de instância:  
+ O novo tamanho do cache flash.
+ O espaço alocado para os espaços de tabela temporários que residem no armazenamento de instância.
Por exemplo, a configuração `db_flash_cache_size={DBInstanceStore*6/10}` em uma instância db.m5d.4xlarge fornece cerca de 340 GB de espaço em cache flash. Se você aumentar a escala verticalmente do tipo de instância para db.m5d.8xlarge, o espaço do cache flash aumentará para cerca de 680 GB.

**Modifique uma instância de banco de dados que não use um armazenamento de instância para uma instância que usa um armazenamento de instância.**  
Se `db_flash_cache_size` for definido como um valor maior que `0`, o cache flash será configurado. Se `rds.instance_store_temp_size` for definido como um valor maior que `0`, o espaço de armazenamento da instância será alocado para uso por um espaço de tabela temporário. O RDS for Oracle não move arquivos temporários para o armazenamento de instância automaticamente. Para obter informações sobre como usar o espaço alocado, consulte [Criar um espaço de tabela temporário no armazenamento de instância](Appendix.Oracle.CommonDBATasks.TablespacesAndDatafiles.md#Appendix.Oracle.CommonDBATasks.creating-tts-instance-store) ou [Adicionar um arquivo temporário ao armazenamento de instância em uma réplica de leitura](Appendix.Oracle.CommonDBATasks.using-tempfiles.md#Appendix.Oracle.CommonDBATasks.adding-tempfile-replica).

**Modifique uma instância de banco de dados que não use um armazenamento de instância para uma instância que usa um armazenamento de instância.**  
Nesse caso, o RDS for Oracle remove o cache flash. O RDS recria o arquivo temporário atualmente localizado no armazenamento de instância em um volume do Amazon EBS. O tamanho máximo do novo arquivo temporário é o tamanho anterior do parâmetro `rds.instance_store_temp_size`.

# Trabalhar com um armazenamento de instância em uma réplica de leitura da Oracle
<a name="CHAP_Oracle.advanced-features.instance-store.replicas"></a>

As réplicas de leitura são compatíveis com o cache flash e aos espaços de tabela temporários em um armazenamento de instância. Embora o cache flash funcione da mesma forma que na instância de banco de dados primária, observe as seguintes diferenças para espaços de tabela temporários:
+ Não é possível criar um espaço de tabela temporário em uma réplica de leitura. Se você criar um espaço de tabela temporário na instância primária, o RDS for Oracle replicará as informações do espaço de tabela sem arquivos temporários. Para adicionar um novo arquivo temporário, use uma das seguintes técnicas:
  + Use o procedimento do Amazon RDS `rdsadmin.rdsadmin_util.add_inst_store_tempfile`. O RDS for Oracle cria um arquivo temporário no armazenamento de instância em sua réplica de leitura e o adiciona ao espaço de tabela temporário especificado.
  + Execute o comando `ALTER TABLESPACE … ADD TEMPFILE`. O RDS for Oracle coloca o arquivo temporário no armazenamento do Amazon EBS.
**nota**  
Os tamanhos dos arquivos temporários e os tipos de armazenamento podem ser diferentes na instância de banco de dados primária e na réplica de leitura.
+ Você pode gerenciar a configuração de espaço de tabela temporário padrão somente na instância de banco de dados primária. O RDS for Oracle replica a configuração para todas as réplicas de leitura.
+ Você pode configurar os grupos de espaços de tabela temporários somente na instância de banco de dados primária. O RDS for Oracle replica a configuração para todas as réplicas de leitura.

# Configurar um grupo de espaços de tabela temporários em um armazenamento de instância e no Amazon EBS
<a name="CHAP_Oracle.advanced-features.instance-store.temp-ebs"></a>

Você pode configurar um grupo de espaços de tabela temporários para incluir espaços de tabela temporários em um armazenamento de instância e no Amazon EBS. Essa técnica é útil quando você deseja mais armazenamento temporário do que o permitido pela configuração máxima de `rds.instance_store_temp_size`.

Quando você configura um grupo de espaços de tabela temporários em um armazenamento de instância e no Amazon EBS, os dois espaços de tabela têm características de performance significativamente diferentes. O Oracle Database escolhe o espaço de tabela para atender às consultas com base em um algoritmo interno. Portanto, consultas semelhantes podem variar em performance.

Normalmente, você cria um espaço de tabela temporário no armazenamento de instância da seguinte forma:

1. Crie um espaço de tabela temporário no armazenamento de instância.

1. Defina o novo espaço de tabela como o espaço de tabela temporário padrão do banco de dados.

Se o tamanho do espaço de tabela no armazenamento de instância for insuficiente, você poderá criar armazenamento temporário adicional da seguinte forma:

1. Atribua o espaço de tabela temporário no armazenamento de instância a um grupo de espaços de tabela temporários.

1. Crie um espaço de tabela temporário no Amazon EBS, caso não exista.

1. Atribua o espaço de tabela temporário no Amazon EBS ao mesmo grupo de espaços de tabela que inclui o espaço de tabela do armazenamento de instância.

1. Defina o grupo de espaços de tabela como o espaço de tabela temporário padrão.

O exemplo a seguir pressupõe que o tamanho do espaço de tabela temporário no armazenamento de instância não atenda aos requisitos de sua aplicação. O exemplo cria o espaço de tabela temporário `temp_in_inst_store` no armazenamento de instância, o atribui ao grupo de espaços de tabela `temp_group`, adiciona o espaço de tabela existente do Amazon EBS chamado `temp_in_ebs` a esse grupo e define esse grupo como o espaço de tabela temporário padrão.

```
SQL> EXEC rdsadmin.rdsadmin_util.create_inst_store_tmp_tblspace('temp_in_inst_store');

PL/SQL procedure successfully completed.

SQL> ALTER TABLESPACE temp_in_inst_store TABLESPACE GROUP temp_group;

Tablespace altered.

SQL> ALTER TABLESPACE temp_in_ebs TABLESPACE GROUP temp_group;

Tablespace altered.

SQL> EXEC rdsadmin.rdsadmin_util.alter_default_temp_tablespace('temp_group');

PL/SQL procedure successfully completed.

SQL> SELECT * FROM DBA_TABLESPACE_GROUPS;

GROUP_NAME                     TABLESPACE_NAME
------------------------------ ------------------------------
TEMP_GROUP                     TEMP_IN_EBS
TEMP_GROUP                     TEMP_IN_INST_STORE

SQL> SELECT PROPERTY_VALUE FROM DATABASE_PROPERTIES WHERE PROPERTY_NAME='DEFAULT_TEMP_TABLESPACE';

PROPERTY_VALUE
--------------
TEMP_GROUP
```

## Remover um armazenamento de instância do RDS for Oracle
<a name="CHAP_Oracle.advanced-features.instance-store.Disable"></a>

Para remover o armazenamento de instância, modifique sua instância de banco de dados do RDS for Oracle para usar um tipo de instância que não seja compatível com o armazenamento de instância, como db.m5 ou db.r5.

# Ativar o HugePages para uma instância do RDS para Oracle
<a name="Oracle.Concepts.HugePages"></a>

O Amazon RDS para Oracle é compatível com HugePages do kernel do Linux para aumentar a escalabilidade do banco de dados. O uso de HugePages resulta em tabelas de página menores e menos tempo de CPU gasto no gerenciamento de memória, aumentando a performance de instâncias de banco de dados grandes. Para obter mais informações, consulte [Visão geral sobre HugePages](https://docs.oracle.com/database/121/UNXAR/appi_vlm.htm#UNXAR400) na documentação da Oracle. 

Você pode usar HugePages com todas as versões e edições do RDS para Oracle compatíveis.

 O parâmetro `use_large_pages` controla se o recurso HugePages permanece ativado para uma instância de banco de dados. As configurações possíveis desse parâmetro são `ONLY`, `FALSE` e `{DBInstanceClassHugePagesDefault}`. O parâmetro `use_large_pages` é definido como `{DBInstanceClassHugePagesDefault}` no parameter group de banco de dados padrão para Oracle. 

Para controlar se o recurso HugePages permanece ativado para uma instância de banco de dados automaticamente, você pode usar a variável de fórmula `DBInstanceClassHugePagesDefault` em grupos de parâmetros. O valor é determinado da seguinte forma:
+ Para as classes de instância do banco de dados mencionadas na tabela a seguir, `DBInstanceClassHugePagesDefault` sempre é avaliado como `FALSE` por padrão, e `use_large_pages` é avaliado como `FALSE`. Será possível ativar o recurso HugePages manualmente para essas classes de instância de banco de dados se estas tiverem pelo menos 14 GiB de memória.
+ Para classes de instância de banco de dados não mencionadas na tabela a seguir, se a classe tiver menos de 14 GiB de memória, `DBInstanceClassHugePagesDefault` sempre será avaliado como `FALSE`. Além disso, o `use_large_pages` será avaliado como `FALSE`
+ Para classes de instância de banco de dados não mencionadas na tabela a seguir, se a classe da instância tiver pelo menos 14 GiB de memória e menos de 100 GiB de memória, `DBInstanceClassHugePagesDefault` será avaliado como `TRUE` por padrão. Além disso, o `use_large_pages` será avaliado como `ONLY` É possível desativar o recurso HugePages manualmente definindo `use_large_pages` como `FALSE`.
+ Para classes de instância de banco de dados não mencionadas na tabela abaixo, se a classe da instância tiver pelo menos 100 GiB de memória, `DBInstanceClassHugePagesDefault` sempre é avaliado como `TRUE`. Além disso, o `use_large_pages` será avaliado como `ONLY` e o recurso HugePages não pode ser desabilitado.

O recurso HugePages não é ativado por padrão para as classes de instância de banco de dados a seguir. 


****  

| Família de classe de instância de banco de dados | Classes de instância de banco de dados com o recurso HugePages não ativado por padrão | 
| --- | --- | 
|  db.m5  |  db.m5.large  | 
|  db.m4  |  db.m4.large, db.m4.xlarge, db.m4.2xlarge, db.m4.4xlarge, db.m4.10xlarge  | 
|  db.t3  |  db.t3.micro, db.t3.small, db.t3.medium, db.t3.large  | 

Para mais informações sobre classes de instância de banco de dados, consulte [Especificações de hardware para classes de instância de banco de dados](Concepts.DBInstanceClass.Summary.md). 

Para ativar o recurso HugePages para instâncias de banco de dados novas ou existentes manualmente, defina o parâmetro `use_large_pages` como `ONLY`. Não é possível usar HugePages com o Oracle Automatic Memory Management (AMM). Se você definir o parâmetro `use_large_pages` como `ONLY`, também deverá definir `memory_target` e `memory_max_target` como `0`. Para obter mais informações sobre como definir parâmetros de banco de dados para a sua instância de banco de dados, consulte [Grupos de parâmetros para Amazon RDS](USER_WorkingWithParamGroups.md). 

Também é possível definir os parâmetros `sga_target`, `sga_max_size` e `pga_aggregate_target`. Quando você definir os parâmetros de memória da área global do sistema (SGA) e da área global do programa (PGA), adicione os valores juntos. Subtraia esse total da sua memória de instância disponível (`DBInstanceClassMemory`) para determinar a memória livre além da alocação de HugePages. Você deve deixar pelo menos 2 GiB de memória livre ou 10% da memória total da instância disponível, o que for menor. 

Depois de configurar seus parâmetros, você deverá reiniciar sua instância de banco de dados para que as alterações entrem em vigor. Para obter mais informações, consulte [Reinicializar uma instância de banco de dados](USER_RebootInstance.md). 

**nota**  
A instância de banco de dados Oracle adiará as alterações nos parâmetros de inicialização relacionados ao SGA até que você reinicialize a instância sem failover. No console do Amazon RDS, escolha **Reinicializar**, mas *não* escolha **Reinicializar com failover**. Na AWS CLI, chame o comando `reboot-db-instance` com o parâmetro `--no-force-failover`. A instância de banco de dados não processa os parâmetros relacionados ao SGA durante o failover ou durante outras operações de manutenção que fazem com que a instância seja reiniciada.

Essa é uma configuração de parâmetro de exemplo de HugePages que permite páginas enormes manualmente. Você deve definir os valores para atender às suas necessidades. 

```
1. memory_target            = 0
2. memory_max_target        = 0
3. pga_aggregate_target     = {DBInstanceClassMemory*1/8}
4. sga_target               = {DBInstanceClassMemory*3/4}
5. sga_max_size             = {DBInstanceClassMemory*3/4}
6. use_large_pages          = ONLY
```

Suponhamos que os valores de parâmetros estejam definidos em um parameter group.

```
1. memory_target            = IF({DBInstanceClassHugePagesDefault}, 0, {DBInstanceClassMemory*3/4})
2. memory_max_target        = IF({DBInstanceClassHugePagesDefault}, 0, {DBInstanceClassMemory*3/4})
3. pga_aggregate_target     = IF({DBInstanceClassHugePagesDefault}, {DBInstanceClassMemory*1/8}, 0)
4. sga_target               = IF({DBInstanceClassHugePagesDefault}, {DBInstanceClassMemory*3/4}, 0)
5. sga_max_size             = IF({DBInstanceClassHugePagesDefault}, {DBInstanceClassMemory*3/4}, 0)
6. use_large_pages          = {DBInstanceClassHugePagesDefault}
```

O grupo de parâmetros é usado por uma classe de instância de banco de dados db.r4 com menos de 100 GiB de memória. Com essas configurações de parâmetro e `use_large_pages` definido como `{DBInstanceClassHugePagesDefault}`, o recurso HugePages permanece ativado para a instância db.r4.

Considere outro exemplo com os valores de parâmetros a seguir definidos em um parameter group.

```
1. memory_target           = IF({DBInstanceClassHugePagesDefault}, 0, {DBInstanceClassMemory*3/4})
2. memory_max_target       = IF({DBInstanceClassHugePagesDefault}, 0, {DBInstanceClassMemory*3/4})
3. pga_aggregate_target    = IF({DBInstanceClassHugePagesDefault}, {DBInstanceClassMemory*1/8}, 0)
4. sga_target              = IF({DBInstanceClassHugePagesDefault}, {DBInstanceClassMemory*3/4}, 0)
5. sga_max_size            = IF({DBInstanceClassHugePagesDefault}, {DBInstanceClassMemory*3/4}, 0)
6. use_large_pages         = FALSE
```

O grupo de parâmetros é usado por uma classe de instância de banco de dados db.r4 e por uma classe de instância de banco de dados db.r5, as duas com menos de 100 GiB de memória. Com essas configurações de parâmetro, o HugePages é desativado nas instâncias db.r4 e db.r5.

**nota**  
Caso esse grupo de parâmetros seja usado por uma classe de instância de banco de dados db.r4 ou por uma classe de instância de banco de dados db.r5 com pelo menos 100 GiB de memória, a configuração de `FALSE` para `use_large_pages` será substituída e definida como `ONLY`. Nesse caso, uma notificação do cliente em relação à substituição é enviada.

Depois que o recurso HugePages estiver habilitado na instância de banco de dados, você poderá visualizar informações sobre o recurso HugePages habilitando o monitoramento avançado. Para obter mais informações, consulte [Monitorar métricas do SO com o monitoramento avançado](USER_Monitoring.OS.md). 

# Ativar tipos de dados estendidos no RDS para Oracle
<a name="Oracle.Concepts.ExtendedDataTypes"></a>

O Amazon RDS para Oracle é compatível com tipos de dados estendidos. Com tipos de dados estendidos, o tamanho máximo é 32.767 bytes para os tipos de dados `VARCHAR2`, `NVARCHAR2` e `RAW`. Para usar os tipos de dados estendidos, defina o parâmetro `MAX_STRING_SIZE` como `EXTENDED`. Para obter mais informações, consulte [Tipos de dados estendidos](https://docs.oracle.com/database/121/SQLRF/sql_elements001.htm#SQLRF55623) na documentação da Oracle. 

Se você não deseja usar os tipos de dados estendidos, mantenha o parâmetro `MAX_STRING_SIZE` definido como `STANDARD` (padrão). Nesse caso, os limites de tamanho são 4.000 bytes para os tipos de dados `VARCHAR2` e `NVARCHAR2` e 2.000 bytes para o tipo de dados RAW.

Você pode ativar os tipos de dados estendidos em uma instância de banco de dados nova ou existente. Para novas instâncias de banco de dados, o tempo de criação de instâncias de banco de dados normalmente é maior quando você ativa os tipos de dados estendidos. Para instâncias de banco de dados existentes, a instância fica indisponível durante o processo de conversão.

## Considerações sobre tipos de dados estendidos
<a name="Oracle.Concepts.ExtendedDataTypes.considerations"></a>

Considere o seguinte ao habilitar tipos de dados estendidos para sua instância de banco de dados:
+ Ao ativar tipos de dados estendidos para uma instância de banco de dados nova ou existente, você deve reiniciar a instância para que a alteração entre em vigor. 
+ Depois de ativar tipos de dados estendidos, você não poderá voltar atrás e usar o tamanho padrão de tipos de dados para a instância. Se você definir o parâmetro `MAX_STRING_SIZE` novamente como `STANDARD`, ele assumirá o status `incompatible-parameters`.
+ Quando você restaura uma instância de banco de dados que usa tipos de dados estendidos, é preciso especificar um parameter group com o parâmetro `MAX_STRING_SIZE` definido como `EXTENDED`. Durante a restauração, se você especificar um parameter group padrão ou qualquer outro parameter group com `MAX_STRING_SIZE` definido como `STANDARD`, o status `incompatible-parameters` será gerado.
+ Quando o status da instância de banco e dados for `incompatible-parameters` por causa da configuração de `MAX_STRING_SIZE`, a instância permanecerá indisponível até você definir o parâmetro `MAX_STRING_SIZE` como `EXTENDED` e reinicializar a instância de banco de dados.

## Ativar tipos de dados estendidos para uma nova instância de banco de dados
<a name="Oracle.Concepts.ExtendedDataTypes.CreateDBInstance"></a>

Quando você cria uma instância de banco de dados com `MAX_STRING_SIZE` definido como `EXTENDED`, a instância mostra `MAX_STRING_SIZE` definido como `STANDARD` padrão. Reinicialize a instância para ativar a alteração.

**Para ativar tipos de dados estendidos para uma nova instância de banco de dados**

1. Defina o parâmetro `MAX_STRING_SIZE` como `EXTENDED` em um parameter group.

   Para definir o parâmetro, crie um novo parameter group ou modifique um parameter group existente.

   Para obter mais informações, consulte [Grupos de parâmetros para Amazon RDS](USER_WorkingWithParamGroups.md).

1. Crie uma instância de banco de dados do RDS para Oracle.

   Para obter mais informações, consulte [Criar uma instância de banco de dados do Amazon RDS](USER_CreateDBInstance.md).

1. Associe o grupo de parâmetros com `MAX_STRING_SIZE` definido como `EXTENDED` à instância de banco de dados.

   Para obter mais informações, consulte [Criar uma instância de banco de dados do Amazon RDS](USER_CreateDBInstance.md).

1. Reinicialize a instância de banco de dados para que a alteração do parâmetro tenha efeito.

   Para obter mais informações, consulte [Reinicializar uma instância de banco de dados](USER_RebootInstance.md).

## Ativar tipos de dados estendidos para uma instância de banco de dados existente
<a name="Oracle.Concepts.ExtendedDataTypes.ModifyDBInstance"></a>

Quando você modifica uma instância de banco de dados para ativar tipos de dados estendidos, o RDS converte os dados no banco de dados para usar os tamanhos estendidos. A conversão e o tempo de inatividade ocorrerão na próxima reinicialização do banco de dados depois da alteração do parâmetro. A instância de banco de dados fica indisponível durante a migração. 

O tempo necessário para converter os dados depende da classe da instância de banco de dados, do tamanho do banco de dados e do horário do último snapshot de banco de dados. Para reduzir o tempo de inatividade, considere gerar um snapshot imediatamente antes da reinicialização. Isso reduz o tempo do backup que ocorre durante o fluxo de trabalho de conversão.

**nota**  
Depois de ativar os tipos de dados estendidos, não é possível realizar uma recuperação a um ponto anterior no tempo durante o processo de conversão. Você pode restaurar para o momento imediatamente anterior à conversão ou após a conversão.

**Como ativar tipos de dados estendidos para uma instância de banco de dados existente**

1. Faça um snapshot do banco de dados.

   Se houver objetos inválidos no banco de dados, o Amazon RDS tentará recompilá-los. A conversão para tipos de dados estendidos poderá falhar se o Amazon RDS não puder recompilar um objeto inválido. O snapshot permitirá que você restaure o banco de dados se houver um problema com a conversão. Sempre verifique se há objetos inválidos antes de iniciar a conversão e corrija ou descarte esses objetos inválidos. Para bancos de dados de produção, recomendamos primeiro testar o processo de conversão em uma cópia da instância de banco de dados.

   Para obter mais informações, consulte [Criar um snapshot de banco de dados para uma instância de banco de dados single-AZ para o Amazon RDS](USER_CreateSnapshot.md).

1. Defina o parâmetro `MAX_STRING_SIZE` como `EXTENDED` em um parameter group.

   Para definir o parâmetro, crie um novo parameter group ou modifique um parameter group existente.

   Para obter mais informações, consulte [Grupos de parâmetros para Amazon RDS](USER_WorkingWithParamGroups.md).

1. Modifique a instância de banco de dados para associá-la ao parameter group com `MAX_STRING_SIZE` definido como `EXTENDED`.

   Para obter mais informações, consulte [Modificar uma instância de banco de dados do Amazon RDS](Overview.DBInstance.Modifying.md).

1. Reinicialize a instância de banco de dados para que a alteração do parâmetro tenha efeito.

   Para obter mais informações, consulte [Reinicializar uma instância de banco de dados](USER_RebootInstance.md).