新しいリソース・モデルへの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構成を削除します。

ヒント

移行後に、リソース検出を使用して、これらの2つの新しいリソースをインポートするための完全な構成ファイルと状態ファイルを作成できます。