新しいリソース・モデルへのExadata DBシステムの移行
Terraformを使用して、新しいExadataリソース・モデルにExadata DBシステムを移行する方法について学習します。
ExadataハードウェアのX8M世代では、Exadata DBシステムにかわる新しいリソース・モデルが導入されています。新しいリソース・モデルでは、新しいAPIを使用してそのリソースをプロビジョニングおよび管理します。Exadataの既存のDBシステムAPIは、書面による通知と、ユーザーが新しいAPIおよびコンソール・インタフェースに切り替えられるようにするための移行期間の後、すべてのユーザーに対してOracle Cloud Infrastructureによって非推奨となる予定です。
Oracle Cloud Infrastructureに既存のExadata DBシステムがある場合、Terraformを使用してそれらを新しいリソース・モデルおよびAPIに切り替えることができます。
Exadata DBシステムを新しいリソース・モデルおよびAPIに切り替えることはできません。DBシステムのAPIを利用するシステムの自動化がある場合、場合によっては切り替える前にアプリケーションを更新する必要があります。
新しいリソース・モデルへの切替え:
- DBシステムの既存のExadataデータベースまたはクライアント接続には影響しません
- Exadata Cloud Serviceインスタンスの基礎となるハードウェアまたはシェイプ・ファミリは変更されません
- ベア・メタルおよび仮想DBシステムには影響しません
DBシステムを変換した後、DBシステム・リソースのかわりに2つの新しいリソース(クラウドExadataインフラストラクチャ・リソースおよびクラウドVMクラスタ・リソース)が作成されます。
切替え後に予想されること:
- 新しいクラウドExadataインフラストラクチャ・リソースおよびクラウドVMクラスタは、置き換えられるDBシステムと同じコンパートメントに作成されます
- 新しいクラウドExadataインフラストラクチャ・リソースおよびクラウドVMクラスタは、置き換えられるDBシステムと同じネットワーキング構成を使用します
- 切替え後は、古いExadata DBシステム・リソースに対する操作は実行できません
- 切替えは永続的であり、変更を元に戻すことはできません
- X6、X7、X8およびExadataベース・システムは、切替え後も固定シェイプを保持し、拡張できません。
詳細は、専用インフラストラクチャ上のExadata Database Serviceを参照してください。
Exadata DBシステムを移行するには
これらの移行ステップでは、古いDBシステム・リソース・モデルを使用する既存のExadata Cloud Serviceインスタンスを示す次の例を使用します:
resource "oci_database_db_system" "test_db_system" {
availability_domain = data.oci_identity_availability_domain.ad.name
compartment_id = var.compartment_ocid
cpu_core_count = var.cpu_core_count
database_edition = var.db_edition
time_zone = var.time_zone
db_home {
database {
admin_password = var.db_admin_password
db_name = "TFdb1Exa"
character_set = var.character_set
ncharacter_set = var.n_character_set
db_workload = var.db_workload
pdb_name = var.pdb_name
db_backup_config {
auto_backup_enabled = false
}
}
db_version = var.db_version
display_name = "MyTFDBHome1Exa"
}
maintenance_window_details {
preference = "CUSTOM_PREFERENCE"
days_of_week {
name = "MONDAY"
}
hours_of_day = ["4"]
lead_time_in_weeks = 2
months {
name = "APRIL"
}
weeks_of_month = ["2"]
}
disk_redundancy = var.db_disk_redundancy
shape = var.db_system_shape
subnet_id = oci_core_subnet.subnet.id
backup_subnet_id = oci_core_subnet.subnet_backup.id
ssh_public_keys = [var.ssh_public_key]
display_name = var.db_system_display_name
sparse_diskgroup = var.sparse_diskgroup
hostname = var.hostname
data_storage_percentage = var.data_storage_percentage
#data_storage_size_in_gb = var.data_storage_size_in_gb
license_model = var.license_model
node_count = data.oci_database_db_system_shapes.test_db_system_shapes.db_system_shapes[0]["minimum_node_count"]
backup_network_nsg_ids = [oci_core_network_security_group.test_network_security_group.id]
nsg_ids = [oci_core_network_security_group.test_network_security_group_backup.id, oci_core_network_security_group.test_network_security_group.id]
}
システムを新しいリソース・モデルに移行するには、最初にoci_database_migration
リソースを作成します:
// This is 1 time action to migrate test_db_system into db ExaCS
// and the test_db_system will become `Migrated`
resource "oci_database_migration" "test_migration" {
#Required
db_system_id = "${oci_database_db_system.test_db_system.id}"
}
oci_database_migration
リソースをプロビジョニングすると、oci_database_cloud_exadata_infrastructure
およびoci_database_cloud_vm_cluster
という2つの新しいリソースが作成されます。
これらの2つのリソースのOCIDは、oci_database_migration
リソースから取得できます:
output "cloud_exadata_infrastructure_id" {
value = oci_database_migration.test_migration.cloud_exadata_infrastructure_id
}
output "cloud_vm_cluster_id" {
value = oci_database_migration.test_migration.cloud_vm_cluster_id
}
2つの新しいリソースに対してTerraform構成を作成します:
resource "oci_database_cloud_exadata_infrastructure" "test_cloud_exadata_infrastructure"{}
resource "oci_database_cloud_vm_cluster" "test_cloud_vm_cluster" {}
次に、Terraform importコマンドを実行します:
terraform import oci_database_cloud_exadata_infrastructure.test_cloud_exadata_infrastructure <cloud_exadata_infrastructure_id>
terraform import oci_database_cloud_vm_cluster.test_cloud_vm_cluster <cloud_vm_cluster_id>
これで、Terraformによって2つの新しいリソースが管理されます。新しいExadataリソース・モデルに切り替えた後、古いoci_database_db_system
構成を削除します。