Actualización de tablas activas globales mediante Terraform
Puede utilizar Terraform para modificar una tabla activa global existente
Agregar una réplica regional
Puede agregar una réplica regional de una tabla activa global existente.
mr_test
ya existe y tiene una réplica regional en la región Canada Southeast(Montreal). Para agregar una réplica regional de esta tabla en otra región del sudeste de Canadá (Toronto), utilice el siguiente archivo nosql.tf
para definir la réplica regional.
Note:
Las definiciones de la tabla singleton (CREATE TABLE IF NOT EXISTS mr_test...
) y las réplicas existentes siempre se deben incluir en el script terraform, incluso si la tabla de origen y las réplicas ya existen. Al eliminar la definición CREATE TABLE del script terraform, se borra la tabla de la región. Del mismo modo, la eliminación de la definición de réplica existente del script terraform elimina la réplica de tabla regional.
variable "compartment_ocid" {
}
variable "table_ddl_statement" {
default = "CREATE TABLE IF NOT EXISTS mr_test(id INTEGER,
name STRING, info JSON,PRIMARY KEY(id))
using TTL 10 days with schema frozen"
}
resource "oci_nosql_table" "mr_test" {
#Required
compartment_id = var.compartment_ocid
ddl_statement = var.table_ddl_statement
name = "mr_test"
table_limits {
#Required
max_read_units = 51
max_write_units = 51
max_storage_in_gbs = 2
}
}
resource "oci_nosql_table_replica" "replica_montreal" {
table_name_or_id = oci_nosql_table.mr_test.id
region = "ca-montreal-1"
#Optional
max_read_units = "60"
max_write_units = "60"
}
#add a regional replica
resource "oci_nosql_table_replica" "replica_toronto" {
compartment_id = var.compartment_ocid
table_name_or_id = "mr_test"
region = "ca-toronto-1"
depends_on = [oci_nosql_table.mr_test]
}
Siga los mismos pasos que se describen en Uso de Terraform para crear una tabla activa global para agregar una réplica regional de la tabla en la nueva región. Terraform le indica que se está agregando un nuevo recurso de réplica. Una vez que confirme, Terraform agregará la nueva réplica regional de la tabla Global Active.
Borrar una réplica regional
Puede borrar una réplica regional de una tabla activa global existente.
mr_test
ya existe y tiene una réplica en la región Canada Southeast(Montreal) y Canada Southeast(Toronto). Para borrar la réplica de la región Sureste de Canadá (Toronto), utilice el siguiente archivo nosql.tf
donde debe comentar (o eliminar) el código relacionado con la adición de la réplica en el Sureste de Canadá (Toronto).
Note:
La definición de la tabla singleton (CREATE TABLE IF NOT EXISTS mr_test...
) siempre se debe incluir en el script terraform incluso si la tabla de origen ya existe. Al eliminar la definición CREATE TABLE del script terraform, se borra la tabla de la región.
variable "compartment_ocid" {
}
variable "table_ddl_statement" {
default = "CREATE TABLE IF NOT EXISTS mr_test(id INTEGER,
name STRING, info JSON,PRIMARY KEY(id))
using TTL 10 days with schema frozen"
}
resource "oci_nosql_table" "mr_test" {
#Required
compartment_id = var.compartment_ocid
ddl_statement = var.table_ddl_statement
name = "mr_test"
table_limits {
#Required
max_read_units = 51
max_write_units = 51
max_storage_in_gbs = 2
}
}
resource "oci_nosql_table_replica" "replica_montreal" {
table_name_or_id = oci_nosql_table.mr_test.id
region = "ca-montreal-1"
#Optional
max_read_units = "60"
max_write_units = "60"
}
#resource "oci_nosql_table_replica" "replica_toronto" {
# compartment_id = var.compartment_ocid
# table_name_or_id = "mr_test"
# region = "ca-toronto-1"
# depends_on = [oci_nosql_table.mr_test]
#}
Siga los mismos pasos que se describen en Uso de Terraform para crear una tabla activa global para borrar una réplica de la tabla de la región Sureste de Canadá (Toronto). Terraform le indica que la réplica oci_nosql_table_replica.replica_toronto
se está destruyendo. Una vez que confirme, Terraform borrará la réplica regional de la tabla Global Active.
Cambiar la capacidad de una tabla activa global
Puede cambiar las unidades de lectura, las unidades de escritura, la capacidad de almacenamiento y la TTL de tabla para una tabla activa global mediante Terraform.
En una tabla Global Active, el cambio del límite de capacidad de lectura o del límite de capacidad de escritura solo se aplica a la región local en la que se cambia. Sin embargo, al cambiar la capacidad de almacenamiento o el valor TTL de nivel de tabla por defecto, se aplican los cambios a todas las réplicas regionales de la tabla.
mr_test
, utilice el siguiente archivo nosql.tf
para cambiar las propiedades de la tabla (TTL de tabla por defecto) y cambiar los límites de la tabla.variable "compartment_ocid" {
}
variable "table_ddl_statement" {
default = "CREATE TABLE IF NOT EXISTS mr_test(id INTEGER,
name STRING, info JSON,PRIMARY KEY(id))
using TTL 15 days with schema frozen"
}
resource "oci_nosql_table" "mr_test" {
#Required
compartment_id = var.compartment_ocid
ddl_statement = var.table_ddl_statement
name = "mr_test"
table_limits {
#Required
max_read_units = 60
max_write_units = 60
max_storage_in_gbs = 2
}
}
resource "oci_nosql_table_replica" "replica_montreal" {
table_name_or_id = oci_nosql_table.mr_test.id
region = "ca-montreal-1"
}
resource "oci_nosql_table_replica" "replica_toronto" {
compartment_id = var.compartment_ocid
table_name_or_id = "mr_test"
region = "ca-toronto-1"
depends_on = [oci_nosql_table.mr_test]
}
nosql.tf
modificado como se muestra anteriormente.
Note:
Una tabla activa global tiene una definición de tabla simétrica que incluye esquema, índice, TTL y tamaño de almacenamiento en todas las réplicas regionales. Si realiza un cambio en un índice, TTL o tamaño de almacenamiento en una réplica regional, se aplica automáticamente al resto de réplicas regionales. Por lo tanto, se recomienda gestionar estas definiciones de tabla solo desde una región.Editar la capacidad de tabla de una única réplica regional
Con Terraform, no puede editar directamente la capacidad de una réplica de tabla regional.
Note:
La definición de la tabla singleton (CREATE TABLE IF NOT EXISTS mr_test...
) siempre se debe incluir en el script terraform incluso si la tabla de origen ya existe. Al eliminar la definición CREATE TABLE del script terraform, se borra la tabla de la región.
#Table has been created on ca-montreal-1
#update table read/write units to 100/100
resource "oci_nosql_table" "mr_test" {
#Required
compartment_id = var.compartment_ocid
ddl_statement = "CREATE TABLE IF NOT EXISTS mr_test(id INTEGER,
name STRING, info JSON, PRIMARY KEY(id))
with schema frozen"
name = "mr_test"
table_limits {
#Required
max_read_units = "100"
max_write_units = "100"
max_storage_in_gbs = "1"
}
}
#Run terraform import
#Import table on ca-montreal-1 to bring it under Terraform management
$terraform import oci_nosql_table.mr_test <OCID>
$terraform apply
Terraform shows the plan to be applied and prompts for confirmation as shown below.
Do you want to perform these actions?
Terraform will perform the actions described above.
Only 'yes' will be accepted to approve.
Actualización de tablas activas globales mediante Terraform