

# Especificación de parámetros de base de datos
<a name="USER_ParamValuesRef"></a>

Los tipos de parámetros de base de datos incluyen lo siguiente:
+ Entero
+ Booleano
+ Cadena
+ Largo
+ Doble
+ Timestamp
+ Objeto de otros tipos de datos definidos
+ Matriz de valores de tipo entero, booleano, en cadena, largos, dobles, temporales o de objeto

También puede especificar parámetros de enteros y booleanos mediante expresiones, fórmulas y funciones. 

Para el motor de Oracle, puede utilizar la variable de la fórmula `DBInstanceClassHugePagesDefault` para especificar un parámetro de base de datos booleano. Consulte [Variables de las fórmulas de parámetros de base de datos](#USER_FormulaVariables). 

Para el motor PostgreSQL, puede utilizar una expresión para especificar un parámetro de base de datos booleano. Consulte [Expresiones de parámetros de base de datos booleanos](#USER_ParamBooleanExpressions).

**Contents**
+ [

## Fórmulas de parámetros de base de datos
](#USER_ParamFormulas)
  + [

### Variables de las fórmulas de parámetros de base de datos
](#USER_FormulaVariables)
  + [

### Operadores de las fórmulas de parámetros de base de datos
](#USER_FormulaOperators)
+ [

## Funciones de parámetros de base de datos
](#USER_ParamFunctions)
+ [

## Expresiones de parámetros de base de datos booleanos
](#USER_ParamBooleanExpressions)
+ [

## Expresiones de registro de parámetros de base de datos
](#USER_ParamLogExpressions)
+ [

## Ejemplos de valores de los parámetros de base de datos
](#USER_ParamValueExamples)

## Fórmulas de parámetros de base de datos
<a name="USER_ParamFormulas"></a>

Una fórmula de parámetros de base de datos es una expresión que da como resultado un valor entero o un valor booleano. Se encierra la expresión entre llaves: \$1\$1. Puede especificar fórmulas para el valor de un parámetro de base de datos o como argumento de una función de parámetro de base de datos.

**Sintaxis**  

```
{FormulaVariable}
{FormulaVariable*Integer}
{FormulaVariable*Integer/Integer}
{FormulaVariable/Integer}
```

### Variables de las fórmulas de parámetros de base de datos
<a name="USER_FormulaVariables"></a>

Cada variable de la fórmula devuelve un entero o un valor booleano. Los nombres de las variables distinguen entre mayúsculas y minúsculas.

*AllocatedStorage*  
Devuelve un entero que representa el tamaño, en bytes, del volumen de datos.

*DBInstanceClassHugePagesDefault*  
Devuelve un valor booleano. Actualmente solo se admite para los motores de Oracle.  
Para obtener más información, consulte [Activación de páginas de gran tamaño para una instancia de RDS para Oracle](Oracle.Concepts.HugePages.md).

*DBInstanceClassMemory*  
Devuelve un entero del número de bytes de memoria disponibles para el proceso de base de datos. Este número se calcula internamente. Para ello, comienza con la cantidad total de memoria de la clase de instancia de base de datos. De esto, el cálculo resta la memoria reservada del sistema operativo y los procesos de RDS que administran la instancia. Por lo tanto, el número siempre es un poco inferior al de las cifras de memoria que se muestran en las tablas de clases de instancia en [Clases de instancia de base de datos de ](Concepts.DBInstanceClass.md). El valor exacto depende de una combinación de factores. Estos incluyen la clase de instancia, motor de base de datos y de si aplica a una instancia de RDS o a una instancia que forme parte de un clúster de Aurora. 

*DBInstanceVCPU*  
Devuelve un entero que representa el número de unidades de procesamiento centrales virtuales (vCPU) utilizadas por Amazon RDS para administrar la instancia.

*EndPointPort*  
Devuelve un entero que representa el puerto utilizado al conectarse a la instancia de base de datos.

*TrueIfReplica*  
Devuelve `1` si la instancia de base de datos es una réplica de lectura y `0` si no lo es. Es el valor predeterminado del parámetro `read_only` en MySQL.

### Operadores de las fórmulas de parámetros de base de datos
<a name="USER_FormulaOperators"></a>

Las fórmulas de parámetros de base de datos admiten dos operadores: división y multiplicación.

*Operador de división: /*  
Divide el dividendo entre el divisor, y devuelve un cociente entero. Los decimales del cociente se truncan, no se redondean.  
Sintaxis  

```
dividend / divisor
```
Los argumentos del dividendo y el divisor deben ser expresiones enteras.

*Operador de multiplicación: \$1*  
Multiplica las expresiones, devolviendo el producto de las expresiones. Los decimales de las expresiones se truncan, no se redondean.  
Sintaxis  

```
expression * expression
```
Las dos expresiones deben dar como resultado valores enteros.

## Funciones de parámetros de base de datos
<a name="USER_ParamFunctions"></a>

Los argumentos de las funciones de parámetro de base de datos se especifican como enteros o fórmulas. Cada función debe tener un argumento como mínimo. Especifique varios argumentos como una lista separada por comas. La lista no puede tener ningún miembro vacío; por ejemplo, *argument1*,,*argument3*. Los nombres de las funciones no distinguen entre mayúsculas y minúsculas.

*IF*  
Devuelve un argumento.  
Actualmente solo se admite para los motores de Oracle y el único primer argumento admitido es `{DBInstanceClassHugePagesDefault}`. Para obtener más información, consulte [Activación de páginas de gran tamaño para una instancia de RDS para Oracle](Oracle.Concepts.HugePages.md).  
Sintaxis  

```
IF(argument1, argument2, argument3)
```
Devuelve el segundo argumento si el primer argumento da como resultado true. En caso contrario, devuelve el tercer argumento.

*GREATEST*  
Devuelve el valor más grande de una lista de números enteros o fórmulas de parámetros.  
Sintaxis  

```
GREATEST(argument1, argument2,...argumentn)
```
Devuelve un número entero.

*LEAST*  
Devuelve el valor más pequeño de una lista de números enteros o fórmulas de parámetros.  
Sintaxis  

```
LEAST(argument1, argument2,...argumentn)
```
Devuelve un número entero.

*SUM*  
Suma los valores de los números enteros o fórmulas de parámetros especificados.  
Sintaxis  

```
SUM(argument1, argument2,...argumentn)
```
Devuelve un número entero.

## Expresiones de parámetros de base de datos booleanos
<a name="USER_ParamBooleanExpressions"></a>

Una expresión de parámetro de base de datos booleano se resuelve en un valor booleano de 1 o 0. La expresión se proporciona entre comillas.

**nota**  
Las expresiones de parámetros de base de datos booleanos solo son compatibles con el motor PostgreSQL.

**Sintaxis**  

```
"expression operator expression"
```
Ambas expresiones deben resolverse en enteros. Una expresión puede ser la siguiente:  
+ Una constante entera
+ Fórmulas de parámetros de base de datos
+ Funciones de parámetros de base de datos
+ Variable de parámetros de base de datos

Las expresiones de parámetro de base de datos booleano admiten los siguientes operadores de desigualdad:

*El operador mayor que: >*  
Sintaxis  

```
"expression > expression"
```

*El operador menor que: <*  
Sintaxis  

```
"expression < expression"
```

* Los operadores mayor que o igual a: >=, =>*  
Sintaxis  

```
"expression >= expression"
"expression => expression"
```

*Los operadores menor que o igual a: <=, =<*  
Sintaxis  

```
"expression <= expression"
"expression =< expression"
```

**Example uso de una expresión de parámetro de base de datos booleano**  
En el siguiente ejemplo de expresión de parámetro de base de datos booleano se compara el resultado de una fórmula de parámetro con un entero. Lo hace para modificar el parámetro `wal_compression` de base de datos booleano de una instancia de base de datos de PostgreSQL. La expresión de parámetro compara el número de vCPU con el valor 2. Si el número de vCPU es mayor que 2, entonces el parámetro de la base de datos `wal_compression` se establece en verdadero.  

```
aws rds modify-db-parameter-group --db-parameter-group-name group-name \
--parameters "ParameterName=wal_compression,ParameterValue=\"{DBInstanceVCPU} > 2\" "
```

## Expresiones de registro de parámetros de base de datos
<a name="USER_ParamLogExpressions"></a>

Puede establecer un valor de parámetro de base de datos entero en una expresión de registro. Se encierra la expresión entre llaves: \$1\$1. Por ejemplo:

```
{log(DBInstanceClassMemory/8187281418)*1000}
```

La función `log` representa la base de registro 2. En este ejemplo también se utiliza la variable de fórmula `DBInstanceClassMemory`. Consulte [Variables de las fórmulas de parámetros de base de datos](#USER_FormulaVariables). 

**nota**  
Actualmente, no puede especificar el parámetro `innodb_log_file_size` de MySQL con ningún valor que no sea un número entero.

## Ejemplos de valores de los parámetros de base de datos
<a name="USER_ParamValueExamples"></a>

Estos ejemplos muestran el uso de fórmulas, funciones y expresiones para los valores de los parámetros de base de datos.

**aviso**  
Establecer parámetros incorrectamente en un grupo de parámetros de base de datos puede tener efectos adversos no deseados. Estos pueden incluir el rendimiento degradado y la inestabilidad del sistema. Tenga cuidado siempre que modifique los parámetros de base de datos y haga una copia de seguridad de los datos antes de modificar el grupo de parámetros de base de datos. Pruebe los cambios de los grupos de parámetros en instancias de bases de datos de prueba, creadas mediante restauraciones a un momento dado, antes de aplicar dichos cambios de grupo de parámetros a las instancias de bases de datos de producción. 

**Example utilizando la función de parámetro de base de datos GREATEST**  
Puede especificar la función `GREATEST` en un parámetro de procesos Oracle. Utilícelo para establecer el número de procesos de usuario en el mayor de 80 o `DBInstanceClassMemory` dividido por 9 868 951.  

```
GREATEST({DBInstanceClassMemory/9868951},80)
```

**Example uso de la función de parámetro de base de datos LEAST**  
Puede especificar la función `LEAST` en un valor de parámetro de MySQL `max_binlog_cache_size`. Utilícelo para establecer el tamaño máximo de caché que una transacción puede usar en una instancia de MySQL, con un mínimo de 1 MB o `DBInstanceClass`/256.  

```
LEAST({DBInstanceClassMemory/256},10485760)
```