Atualizando tabelas Ativas Globais usando o Terraform
Adicionar uma réplica regional
Você pode adicionar uma réplica regional de uma Tabela Ativa Global existente.
mr_test
já existe e tem uma réplica regional na região Sudeste do Canadá (Montreal). Para adicionar uma réplica regional desta tabela em outra região Sudeste do Canadá (Toronto), use o arquivo nosql.tf
a seguir para definir a réplica regional.
Observação:
As definições da tabela singleton (CREATE TABLE IF NOT EXISTS mr_test...
) e das réplicas existentes devem sempre ser incluídas no script terraform, mesmo que a tabela de origem e as réplicas já existam. A remoção da definição CREATE TABLE do script terraform elimina a tabela da região. Da mesma forma, a remoção da definição de réplica existente do script terraform elimina a réplica da tabela 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 as mesmas etapas descritas em Usar o Terraform para criar uma tabela Ativa Global para adicionar uma réplica regional da tabela na nova região. Você recebe um prompt do Terraform informando que um novo recurso de réplica está sendo adicionado. Depois que você confirmar, o Terraform adicionará a nova réplica regional da tabela Global Active.
Eliminar uma réplica regional
Você pode eliminar uma réplica regional de uma Tabela Ativa Global existente.
mr_test
já existe e tem uma réplica na região Sudeste do Canadá (Montreal) e Sudeste do Canadá (Toronto). Para eliminar a réplica da região Sudeste do Canadá (Toronto), use o seguinte arquivo nosql.tf
onde você precisa comentar (ou remover) o código pertencente à adição da réplica no Sudeste do Canadá (Toronto).
Observação:
A definição da tabela singleton (CREATE TABLE IF NOT EXISTS mr_test...
) sempre deve ser incluída no script terraform, mesmo que a tabela de origem já exista. A remoção da definição CREATE TABLE do script terraform elimina a tabela da região.
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 as mesmas etapas descritas em Usar o Terraform para criar uma tabela Ativa Global para eliminar uma réplica da tabela da região Sudeste do Canadá (Toronto). Você recebe um prompt do Terraform informando que a réplica oci_nosql_table_replica.replica_toronto
está sendo destruída. Depois que você confirmar, o Terraform eliminará a réplica regional da tabela Global Active.
Alterar a capacidade da tabela de uma Tabela Ativa Global
Você pode alterar as unidades de leitura, as unidades de gravação, a capacidade de armazenamento e o TTL da tabela para uma tabela Ativa Global usando o Terraform.
Em uma tabela Ativa Global, a alteração do limite de capacidade de leitura ou do limite de capacidade de gravação só se aplica à região local em que ela é alterada. No entanto, alterar a capacidade de armazenamento ou alterar o valor TTL padrão no nível da tabela aplica as alterações a todas as réplicas regionais da tabela.
mr_test
, use o arquivo nosql.tf
a seguir para alterar as propriedades da tabela (TTL padrão da tabela) e alterar os limites da tabela.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, conforme mostrado acima.
Observação:
Uma tabela Ativa Global tem uma definição de tabela simétrica que inclui esquema, índice, TTL e tamanho de armazenamento em todas as réplicas regionais. Se você fizer uma alteração em um índice, TTL ou tamanho de armazenamento em uma réplica regional, ele será aplicado automaticamente a todas as outras réplicas regionais. Portanto, é recomendável gerenciar essas definições de tabela somente de uma região.Editar a capacidade da tabela de uma única réplica regional
Usando o Terraform, você não pode editar diretamente a capacidade de uma réplica de tabela regional.
Observação:
A definição da tabela singleton (CREATE TABLE IF NOT EXISTS mr_test...
) sempre deve ser incluída no script terraform, mesmo que a tabela de origem já exista. A remoção da definição CREATE TABLE do script terraform elimina a tabela da região.
#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.
Atualizando tabelas Ativas Globais usando o Terraform