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.
Observação:
As definições da tabela (CREATE TABLE IF NOT EXISTS mr_test...) e as réplicas existentes devem sempre ser incluídas no script terraform, mesmo que a tabela 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]
}
terraform applyDo you want to perform these actions? Terraform will perform the actions described above. Only 'yes' will be accepted to approve. Depois que você confirmar, o Terraform adicionará a nova réplica regional da tabela Global Active na região de Toronto. Como não há unidades de leitura e gravação fornecidas explicitamente para a réplica nesta região, os valores são assumidos da tabela mr_test na região US East (Ashburn). No exemplo acima, as unidades de leitura e gravação da tabela de réplicas na região Canada Southeast(Toronto) seriam 51.
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 (CREATE TABLE IF NOT EXISTS mr_test...) sempre deve ser incluída no script terraform mesmo que a tabela 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]
#}
terraform applyDo you want to perform these actions? Terraform will perform the actions described above. Only 'yes' will be accepted to approve.Depois que você confirmar, o Terraform eliminará a réplica na região Sudeste do Canadá (Toronto).
Alterar os limites de TTL e de 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 Global Ativa, a alteração do limite de capacidade de leitura ou de gravação só se aplica à região em que ela foi alterada. No entanto, a alteração da capacidade de armazenamento ou da alteração do valor TTL no nível da tabela aplica as alterações à tabela local, bem como a todas as réplicas regionais da tabela.
mr_test, use o arquivo nosql.tf a seguir.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 = 70
max_write_units = 70
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]
}terraform applyDo you want to perform these actions? Terraform will perform the actions described above. Only 'yes' will be accepted to approve.us-ashburn-1) serão alteradas para 70. Os limites de tabela das réplicas nas outras regiões não são alterados. No entanto, o valor de TTL é alterado para 15 dias na tabela local e em todas as réplicas.
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 os limites da tabela de uma réplica regional
O provedor do OCI no Terraform é configurado para uma única região. Como as atualizações de limite de tabela são específicas da região, você só pode gerenciar as unidades de leitura e gravação de uma réplica criada em ca-toronto-1 na região de Toronto. Da mesma forma, se você quiser gerenciar os limites de tabela das diferentes regiões da sua tabela ativa global, recomendamos que você estruture seus módulos no terraform, conforme mostrado abaixo. Aqui, Região 1, Região 2 etc. são diretórios dentro do seu diretório Terraform. O diretório Terraform é aquele que é criado quando você instala o Terraform.
No diretório Terraform, mantenha diretórios separados para cada região e mantenha as configurações (representadas como nosql.tfno diagrama acima) com limites de tabela específicos da região dentro deles. Os arquivos de estado do terraform (terraform.tfstate) também são criados e gerenciados separadamente para cada região.
No nosso caso, teríamos três diretórios dentro do diretório Terraform correspondentes às três regiões, us-ashburn-1, ca-montreal-1 e ca-toronto-1. Vamos chamar os diretórios Ashburn, Montreal e Toronto.
ca-toronto-1:
- Navegue até o diretório
Toronto. Crie uma configuração do Terraform (aqui,nosql.tf) duplicando a definição de recursooci_nosql_tableda configuração usada na região Leste dos EUA (Ashburn). - Atualize as unidades de leitura e/ou gravação da tabela conforme necessário.
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 = 90 max_storage_in_gbs = 1 } } - Importe a tabela existente para o estado do Terraform. Como mostrado no diagrama acima, o arquivo de estado também é específico da região e, portanto, a importação da tabela não cria nenhum conflito de estado. Você pode obter o
ocidda tabela de réplicas na região Sudeste do Canadá (Toronto) na console do OCI.terraform import oci_nosql_table.mr_test <ocid-of-replica-table-in-ca-toronto-1> - Aplicar alterações
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.Na confirmação, as unidades de leitura e gravação são modificadas respectivamente para 100 e 90 para a réplica na região
ca-toronto-1.
