Globale aktive Tabellen mit Terraform aktualisieren
Mit Terraform können Sie eine vorhandene globale aktive Tabelle ändern
Regionales Replikat hinzufügen
Sie können ein regionales Replikat einer vorhandenen globalen aktiven Tabelle hinzufügen.
mr_test
bereits vorhanden und verfügt über ein regionales Replikat in der Region Canada Southeast (Montreal). Um ein regionales Replikat dieser Tabelle in einer anderen Region hinzuzufügen, verwenden Sie die folgende Datei nosql.tf
, um das regionale Replikat zu definieren.
Hinweis:
Die Definitionen der Singleton-Tabelle (CREATE TABLE IF NOT EXISTS mr_test...
) und der vorhandenen Replikate müssen immer in das Terraform-Skript aufgenommen werden, auch wenn die Quelltabelle und Replikate bereits vorhanden sind. Wenn Sie die CREATE TABLE-Definition aus dem terraform-Skript entfernen, wird die Tabelle aus der Region gelöscht. Wenn Sie die vorhandene Replikatdefinition aus dem Terraform-Skript entfernen, wird auch das regionale Tabellenreplikat gelöscht.
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]
}
Führen Sie dieselben Schritte wie unter Globale aktive Tabelle mit Terraform erstellen beschrieben aus, um ein regionales Replikat der Tabelle in der neuen Region hinzuzufügen. Sie erhalten von Terraform einen Prompt, dass eine neue Replikatressource hinzugefügt wird. Nach der Bestätigung fügt Terraform das neue regionale Replikat der globalen aktiven Tabelle hinzu.
Regionales Replikat löschen
Sie können ein regionales Replikat einer vorhandenen globalen aktiven Tabelle löschen.
mr_test
bereits vorhanden und verfügt über ein Replikat in der Region Canada Southeast(Montreal) und Canada Southeast(Toronto). Um das Replikat aus der Region Canada Southeast (Toronto) zu löschen, verwenden Sie die folgende Datei nosql.tf
, in der Sie den Code zum Hinzufügen des Replikats in Canada Southeast (Toronto) kommentieren (oder entfernen) müssen.
Hinweis:
Die Definition der Singleton-Tabelle (CREATE TABLE IF NOT EXISTS mr_test...
) muss immer im Terraform-Skript enthalten sein, auch wenn die Quelltabelle bereits vorhanden ist. Wenn Sie die CREATE TABLE-Definition aus dem terraform-Skript entfernen, wird die Tabelle aus der Region gelöscht.
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]
#}
Führen Sie dieselben Schritte wie unter Globale aktive Tabelle mit Terraform erstellen beschrieben aus, um ein Replikat der Tabelle aus der Region "Kanada - Südosten (Toronto)" zu löschen. Sie erhalten von Terraform einen Prompt, dass das Replikat oci_nosql_table_replica.replica_toronto
zerstört wird. Nach der Bestätigung löscht Terraform das regionale Replikat der globalen aktiven Tabelle.
Tabellenkapazität einer globalen aktiven Tabelle ändern
Sie können die Leseeinheiten, Schreibeinheiten, Speicherkapazität und Tabellen-TTL für eine globale aktive Tabelle mit Terraform ändern.
In einer globalen aktiven Tabelle gilt das Ändern des Lesekapazitätslimits oder des Schreibkapazitätslimits nur für die lokale Region, in der sie geändert wird. Wenn Sie jedoch die Speicherkapazität ändern oder den TTL-Standardwert auf Tabellenebene ändern, werden die Änderungen auf alle regionalen Replikate der Tabelle angewendet.
mr_test
zu ändern, verwenden Sie die folgende Datei nosql.tf
, um die Tabelleneigenschaften (Standardtabelle TTL) zu ändern und die Tabellenlimits zu ändern.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
wie oben gezeigt aus.
Hinweis:
Eine globale aktive Tabelle hat eine symmetrische Tabellendefinition, einschließlich Schema, Index, TTL und Speichergröße in allen regionalen Replikaten. Wenn Sie einen Index, eine TTL- oder Speichergröße in einem regionalen Replikat ändern, wird er automatisch auf alle anderen regionalen Replikate angewendet. Es wird daher empfohlen, diese Tabellendefinitionen nur in einer Region zu verwalten.Tabellenkapazität eines einzelnen regionalen Replikats bearbeiten
Mit Terraform können Sie die Kapazität eines regionalen Tabellenreplikats nicht direkt bearbeiten.
Hinweis:
Die Definition der Singleton-Tabelle (CREATE TABLE IF NOT EXISTS mr_test...
) muss immer im Terraform-Skript enthalten sein, auch wenn die Quelltabelle bereits vorhanden ist. Wenn Sie die CREATE TABLE-Definition aus dem terraform-Skript entfernen, wird die Tabelle aus der Region gelöscht.
#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.
Globale aktive Tabellen mit Terraform aktualisieren