Mise à jour des tables actives globales à l'aide de Terraform
Vous pouvez utiliser Terraform pour modifier une table globale active existante
Ajouter une réplique régionale
Vous pouvez ajouter une réplique régionale d'une table globale active existante.
mr_test
existe déjà et a une réplique régionale dans la région Canada - Sud-Est (Montréal). Pour ajouter une réplique régionale de cette table dans une autre région Canada - Sud-Est (Toronto), utilisez le fichier nosql.tf
suivant pour définir la réplique régionale.
Note :
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 Utiliser Terraform pour créer une table globale active pour ajouter une réplique régionale de la table dans la nouvelle région. Vous obtenez une invite de Terraform indiquant qu'une nouvelle ressource de réplique est en cours d'ajout. Une fois que vous avez confirmé, Terraform ajoutera la nouvelle réplique régionale de la table Global Active.
Supprimer une réplique régionale
Vous pouvez supprimer une réplique régionale d'une table globale active existante.
mr_test
existe déjà et a une réplique dans la région Canada - Sud-Est (Montréal) et Canada - Sud-Est (Toronto). Pour supprimer la réplique de la région Canada - Sud-Est (Toronto), utilisez le fichier nosql.tf
suivant où vous devez commenter (ou supprimer) le code relatif à l'ajout de la réplique dans Canada - Sud-Est (Toronto).
Note :
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 Utiliser Terraform pour créer une table Global Active pour supprimer une réplique de la table de la région Canada - Sud-Est (Toronto). Vous obtenez une invite de Terraform indiquant que la réplique oci_nosql_table_replica.replica_toronto
est en cours de destruction. Une fois que vous aurez confirmé, Terraform supprimera la réplique régionale de la table Global Active.
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 Global Active, la modification de la limite de capacité de lecture ou d'écriture s'applique uniquement à la région locale où elle est modifiée. Toutefois, la modification de la capacité de stockage ou de la valeur de durée de vie par défaut au niveau table 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 de la table par défaut) et modifier 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.
Note :
Une table Global Active 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 une taille d'index, de durée de vie ou 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 la table d'une réplique régionale unique
À l'aide de Terraform, vous ne pouvez pas modifier directement la capacité d'une réplique de table régionale.
Note :
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