

# 在 RDS for Oracle 中开启扩展数据类型
<a name="Oracle.Concepts.ExtendedDataTypes"></a>

Amazon RDS for Oracle 支持扩展数据类型。对于扩展数据类型，`VARCHAR2`、`NVARCHAR2` 和 `RAW` 数据类型的最大大小为 32767 字节。要使用扩展数据类型，请将 `MAX_STRING_SIZE` 参数设置为 `EXTENDED`。有关更多信息，请参阅 Oracle 文档中的[扩展数据类型](https://docs.oracle.com/database/121/SQLRF/sql_elements001.htm#SQLRF55623)。

如果您不希望使用扩展数据类型，请将 `MAX_STRING_SIZE` 参数设置为 `STANDARD`（默认值）。在这种情况下，`VARCHAR2` 和 `NVARCHAR2` 数据类型的大小限制为 4,000 字节，RAW 数据类型的大小限制为 2,000 字节。

您可以在新的或现有的数据库实例上开启扩展数据类型。对于新的数据库实例，在开启扩展数据类型时，数据库实例的创建时间通常较长。对于现有的数据库实例，数据库实例在转换过程中不可用。

## 扩展数据类型的注意事项
<a name="Oracle.Concepts.ExtendedDataTypes.considerations"></a>

为数据库实例启用扩展数据类型时，请考虑以下几点：
+ 在为新的或现有的数据库实例开启扩展数据类型时，必须重启实例才能使更改生效。
+ 在开启扩展数据类型之后，无法将数据库实例改回为使用数据类型的标准大小。如果将 `MAX_STRING_SIZE` 参数重新设置为 `STANDARD`，则会导致 `incompatible-parameters` 状态。
+ 在还原使用扩展数据类型的数据库实例时，您必须指定一个参数组并将 `MAX_STRING_SIZE` 参数设置为 `EXTENDED`。在还原期间，如果指定默认参数组或任何其他参数组并将 `MAX_STRING_SIZE` 设置为 `STANDARD`，则会导致 `incompatible-parameters` 状态。
+ 如果由于 `incompatible-parameters` 设置而导致数据库实例状态为 `MAX_STRING_SIZE`，数据库实例将保持不可用状态，直到您将 `MAX_STRING_SIZE` 参数设置为 `EXTENDED` 并重新引导数据库实例。

## 为新数据库实例开启扩展数据类型
<a name="Oracle.Concepts.ExtendedDataTypes.CreateDBInstance"></a>

当您创建将 `MAX_STRING_SIZE` 设置为 `EXTENDED` 的数据库实例时，该实例将显示 `MAX_STRING_SIZE` 设置为默认 `STANDARD`。重启实例以启用更改。

**为新数据库实例开启扩展数据类型**

1. 在参数组中将 `MAX_STRING_SIZE` 参数设置为 `EXTENDED`。

   要设置该参数，您可以创建新的参数组或修改现有的参数组。

   有关更多信息，请参阅 [Amazon RDS 的参数组](USER_WorkingWithParamGroups.md)。

1. 创建新的 RDS for Oracle 数据库实例。

   有关更多信息，请参阅 [创建 Amazon RDS 数据库实例](USER_CreateDBInstance.md)。

1. 将其 `MAX_STRING_SIZE` 设置为 `EXTENDED` 的参数组与数据库实例相关联。

   有关更多信息，请参阅 [创建 Amazon RDS 数据库实例](USER_CreateDBInstance.md)。

1. 重新引导数据库实例以使参数更改生效。

   有关更多信息，请参阅 [重启数据库实例](USER_RebootInstance.md)。

## 为现有数据库实例开启扩展数据类型
<a name="Oracle.Concepts.ExtendedDataTypes.ModifyDBInstance"></a>

在修改数据库实例以开启扩展数据类型时，RDS 将转换数据库中的数据以使用扩展的大小。参数更改后，下次重启数据库时会发生转换和停机。数据库实例在转换期间不可用。

转换数据所需的时间取决于数据库实例类、数据库大小和最后一个数据库快照的时间。为减少停机时间，请考虑就在重启前拍摄快照。这缩短了转换工作流程期间执行的备份的时间。

**注意**  
在开启扩展数据类型后，您无法在转换期间执行时间点还原以还原到某个时间。您可以还原到紧靠转换前或转换后的时间。

**为现有数据库实例开启扩展数据类型**

1. 拍摄数据库的快照。

   如果在数据库中具有无效的对象，Amazon RDS 将尝试重新编译这些对象。如果 Amazon RDS 无法重新编译无效的对象，转换为扩展数据类型可能会失败。如果在转换过程中出现问题，您可以使用快照还原数据库。请始终在转换之前检查无效的对象，并修复或删除这些无效的对象。对于生产数据库，我们建议先在数据库实例的副本上测试转换过程。

   有关更多信息，请参阅“[为 Amazon RDS 的单可用区数据库实例创建数据库快照](USER_CreateSnapshot.md)”。

1. 在参数组中将 `MAX_STRING_SIZE` 参数设置为 `EXTENDED`。

   要设置该参数，您可以创建新的参数组或修改现有的参数组。

   有关更多信息，请参阅“[Amazon RDS 的参数组](USER_WorkingWithParamGroups.md)”。

1. 修改数据库实例以将其与 `MAX_STRING_SIZE` 设置为 `EXTENDED` 的参数组相关联。

   有关更多信息，请参阅“[修改 Amazon RDS 数据库实例](Overview.DBInstance.Modifying.md)”。

1. 重新引导数据库实例以使参数更改生效。

   有关更多信息，请参阅“[重启数据库实例](USER_RebootInstance.md)”。