Aggiornamento delle tabelle attive globali mediante Terraform
È possibile utilizzare Terraform per modificare una tabella attiva globale esistente
Aggiungi una replica regionale
È possibile aggiungere una replica regionale di una tabella attiva globale esistente.
mr_test
esiste già e dispone di una replica regionale nell'area Canada sudorientale (Montreal). Per aggiungere una replica regionale di questa tabella in un'altra area Canada sud-orientale (Toronto), utilizzare il seguente file nosql.tf
per definire la replica regionale.
Nota
Le definizioni della tabella singleton (CREATE TABLE IF NOT EXISTS mr_test...
) e delle repliche esistenti devono essere sempre incluse nello script terraform anche se la tabella di origine e le repliche esistono già. La rimozione della definizione CREATE TABLE dallo script terraform comporta l'eliminazione della tabella dall'area. Analogamente, la rimozione della definizione di replica esistente dallo script terraform comporta l'eliminazione della replica della tabella regionale.
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]
}
Attenersi alla procedura descritta in Usa Terraform per creare una tabella attiva globale per aggiungere una replica regionale della tabella nella nuova area. Viene visualizzato un prompt da Terraform per l'aggiunta di una nuova risorsa replica. Dopo la conferma, Terraform aggiungerà la nuova replica regionale della tabella Global Active.
Rilasciare una replica regionale
È possibile eliminare una replica regionale di una tabella attiva globale esistente.
mr_test
esiste già e ha una replica nell'area Canada Southeast(Montreal) e Canada Southeast(Toronto). Per eliminare la replica dall'area Canada Southeast(Toronto), utilizzare il seguente file nosql.tf
in cui è necessario commentare (o rimuovere) il codice relativo all'aggiunta della replica in Canada Southeast(Toronto).
Nota
La definizione della tabella singleton (CREATE TABLE IF NOT EXISTS mr_test...
) deve essere sempre inclusa nello script terraform anche se la tabella di origine esiste già. La rimozione della definizione CREATE TABLE dallo script terraform comporta l'eliminazione della tabella dall'area.
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]
#}
Attenersi alla procedura descritta in Usa Terraform per creare una tabella attiva globale per eliminare una replica della tabella dall'area Canada sudorientale (Toronto). Viene visualizzato un prompt da Terraform che indica che la replica oci_nosql_table_replica.replica_toronto
è in fase di eliminazione. Dopo la conferma, Terraform eliminerà la replica regionale della tabella Global Active.
Modificare la capacità della tabella di una tabella attiva globale
È possibile modificare le unità di lettura, le unità di scrittura, la capacità di storage e il TTL della tabella per una tabella Global Active utilizzando Terraform.
In una tabella Global Active, la modifica del limite di capacità di lettura o di scrittura si applica solo all'area locale in cui è stata modificata. Tuttavia, la modifica della capacità di storage o il valore TTL predefinito a livello di tabella applica le modifiche a tutte le repliche regionali della tabella.
mr_test
, utilizzare il seguente file nosql.tf
per modificare le proprietà della tabella (TTL tabella predefinito) e i limiti della tabella.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
modificato come mostrato sopra.
Nota
Una tabella attiva globale ha una definizione di tabella simmetrica che include schema, indice, TTL e dimensione di memorizzazione in tutte le repliche regionali. Se si apporta una modifica a un indice, a un TTL o alla dimensione di storage in una replica regionale, questa viene applicata automaticamente a tutte le altre repliche regionali. Si consiglia pertanto di gestire queste definizioni di tabella da una sola area.Modifica la capacità della tabella di una singola replica regionale
Terraform non consente di modificare direttamente la capacità di una replica della tabella regionale.
Nota
La definizione della tabella singleton (CREATE TABLE IF NOT EXISTS mr_test...
) deve essere sempre inclusa nello script terraform anche se la tabella di origine esiste già. La rimozione della definizione CREATE TABLE dallo script terraform comporta l'eliminazione della tabella dall'area.
#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.
Aggiornamento delle tabelle attive globali mediante Terraform