Mise à jour des tables actives globales à l'aide de Terraform
Vous pouvez utiliser Terraform pour modifier une table active globale existante
Ajouter une réplique régionale
Vous pouvez ajouter une réplique régionale d'une table active globale existante.
mr_test
existe déjà et possède une réplique régionale dans la région Sud-est du Canada (Montréal). Pour ajouter une réplique régionale de cette table dans une autre région du sud-est du Canada (Toronto), utilisez le fichier nosql.tf
suivant pour définir la réplique régionale.
Remarques :
Les définitions de la table singleton (CREATE TABLE IF NOT EXISTS mr_test...
) et des répliques existantes doivent toujours être incluses dans le script terraform, même si la table source et les répliques existent déjà. La suppression de la définition CREATE TABLE du script terraform supprime la table de la région. De même, la suppression de la définition de réplique existante du script terraform supprime la réplique de table régionale.
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]
}
Suivez les mêmes étapes que celles décrites dans Utilisation de Terraform pour créer une table active globale afin d'ajouter une réplique régionale de la table dans la nouvelle région. Terraform vous invite à indiquer qu'une nouvelle ressource de réplique est en cours d'ajout. Une fois la confirmation effectuée, Terraform ajoute la nouvelle réplique régionale de la table active globale.
Supprimer une réplique régionale
Vous pouvez supprimer une réplique régionale d'une table active globale existante.
mr_test
existe déjà et possède une réplique dans la région Sud-est du Canada (Montréal) et Sud-est du Canada (Toronto). Pour supprimer la réplique de la région Sud-Est du Canada (Toronto), utilisez le fichier nosql.tf
suivant où vous devez commenter (ou supprimer) le code relatif à l'ajout de la réplique dans le sud-est du Canada (Toronto).
Remarques :
La définition de la table singleton (CREATE TABLE IF NOT EXISTS mr_test...
) doit toujours être incluse dans le script terraform, même si la table source existe déjà. La suppression de la définition CREATE TABLE du script terraform supprime la table de la région.
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]
#}
Suivez les mêmes étapes que celles décrites dans Utilisation de Terraform pour créer une table active globale afin de supprimer une réplique de la table de la région Sud-est du Canada (Toronto). Terraform vous invite à indiquer que la réplique oci_nosql_table_replica.replica_toronto
est en cours de destruction. Une fois la confirmation effectuée, Terraform supprime la réplique régionale de la table active globale.
Modifier la capacité d'une table active globale
Vous pouvez modifier les unités de lecture, les unités d'écriture, la capacité de stockage et la durée de vie d'une table active globale à l'aide de Terraform.
Dans une table active globale, la modification de la limite de capacité de lecture ou de capacité d'écriture s'applique uniquement à la région locale dans laquelle elle a été modifiée. Toutefois, la modification de la capacité de stockage ou de la valeur TTL de niveau table par défaut applique les modifications à toutes les répliques régionales de la table.
mr_test
, utilisez le fichier nosql.tf
suivant pour modifier les propriétés de la table (durée de vie par défaut de la table) et les limites de la table.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
modifié, comme indiqué ci-dessus.
Remarques :
Une table active globale a une définition de table symétrique comprenant le schéma, l'index, la durée de vie et la taille de stockage dans toutes les répliques régionales. Si vous modifiez un index, une durée de vie ou une taille de stockage dans une réplique régionale, elle est automatiquement appliquée à toutes les autres répliques régionales. Il est donc recommandé de gérer ces définitions de table à partir d'une seule région.Modifier la capacité de table d'une seule réplique régionale
Avec Terraform, vous ne pouvez pas modifier directement la capacité d'une réplique de table régionale.
Remarques :
La définition de la table singleton (CREATE TABLE IF NOT EXISTS mr_test...
) doit toujours être incluse dans le script terraform, même si la table source existe déjà. La suppression de la définition CREATE TABLE du script terraform supprime la table de la région.
#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.
Mise à jour des tables actives globales à l'aide de Terraform