oci_distributed_database_distributed_database

This resource provides the Distributed Database resource in Oracle Cloud Infrastructure Distributed Database service. Api doc link for the resource: https://docs.oracle.com/iaas/api/#/en/globally-distributed-database/latest/DistributedDatabase

Example terraform configs related to the resource : https://github.com/oracle/terraform-provider-oci/tree/master/examples/distributed_database

Creates a Globally distributed database.

Patch operation to add, remove or update shards to the Globally distributed database topology. In single patch operation, multiple shards can be either added, or removed or updated. Combination of inserts, update and remove in single operation is not allowed. For an EXADB_XS based distributed database, removing a shard with the parameter mustDeleteInfra set to true will also delete the associated VmCluster and DbStorageVault.

Example Usage

resource "oci_distributed_database_distributed_database" "test_distributed_database" {
	#Required
	catalog_details {
		#Required
		admin_password = var.distributed_database_catalog_details_admin_password
		source = var.distributed_database_catalog_details_source

		#Optional
		availability_domain = var.distributed_database_catalog_details_availability_domain
		db_storage_vault_details {

			#Optional
			additional_flash_cache_in_percent = var.distributed_database_catalog_details_db_storage_vault_details_additional_flash_cache_in_percent
			high_capacity_database_storage = var.distributed_database_catalog_details_db_storage_vault_details_high_capacity_database_storage
		}
		kms_key_id = oci_kms_key.test_key.id
		kms_key_version_id = oci_kms_key_version.test_key_version.id
		peer_details {

			#Optional
			availability_domain = var.distributed_database_catalog_details_peer_details_availability_domain
			db_storage_vault_details {

				#Optional
				additional_flash_cache_in_percent = var.distributed_database_catalog_details_peer_details_db_storage_vault_details_additional_flash_cache_in_percent
				high_capacity_database_storage = var.distributed_database_catalog_details_peer_details_db_storage_vault_details_high_capacity_database_storage
			}
			protection_mode = var.distributed_database_catalog_details_peer_details_protection_mode
			transport_type = var.distributed_database_catalog_details_peer_details_transport_type
			vm_cluster_details {

				#Optional
				backup_network_nsg_ids = var.distributed_database_catalog_details_peer_details_vm_cluster_details_backup_network_nsg_ids
				backup_subnet_id = oci_core_subnet.test_subnet.id
				domain = var.distributed_database_catalog_details_peer_details_vm_cluster_details_domain
				enabled_ecpu_count = var.distributed_database_catalog_details_peer_details_vm_cluster_details_enabled_ecpu_count
				is_diagnostics_events_enabled = var.distributed_database_catalog_details_peer_details_vm_cluster_details_is_diagnostics_events_enabled
				is_health_monitoring_enabled = var.distributed_database_catalog_details_peer_details_vm_cluster_details_is_health_monitoring_enabled
				is_incident_logs_enabled = var.distributed_database_catalog_details_peer_details_vm_cluster_details_is_incident_logs_enabled
				license_model = var.distributed_database_catalog_details_peer_details_vm_cluster_details_license_model
				nsg_ids = var.distributed_database_catalog_details_peer_details_vm_cluster_details_nsg_ids
				private_zone_id = oci_dns_zone.test_zone.id
				ssh_public_keys = var.distributed_database_catalog_details_peer_details_vm_cluster_details_ssh_public_keys
				subnet_id = oci_core_subnet.test_subnet.id
				total_ecpu_count = var.distributed_database_catalog_details_peer_details_vm_cluster_details_total_ecpu_count
				vm_file_system_storage_size = var.distributed_database_catalog_details_peer_details_vm_cluster_details_vm_file_system_storage_size
			}
			vm_cluster_id = oci_database_vm_cluster.test_vm_cluster.id
		}
		peer_vm_cluster_ids = var.distributed_database_catalog_details_peer_vm_cluster_ids
		shard_space = var.distributed_database_catalog_details_shard_space
		vault_id = oci_kms_vault.test_vault.id
		vm_cluster_details {

			#Optional
			backup_network_nsg_ids = var.distributed_database_catalog_details_vm_cluster_details_backup_network_nsg_ids
			backup_subnet_id = oci_core_subnet.test_subnet.id
			domain = var.distributed_database_catalog_details_vm_cluster_details_domain
			enabled_ecpu_count = var.distributed_database_catalog_details_vm_cluster_details_enabled_ecpu_count
			is_diagnostics_events_enabled = var.distributed_database_catalog_details_vm_cluster_details_is_diagnostics_events_enabled
			is_health_monitoring_enabled = var.distributed_database_catalog_details_vm_cluster_details_is_health_monitoring_enabled
			is_incident_logs_enabled = var.distributed_database_catalog_details_vm_cluster_details_is_incident_logs_enabled
			license_model = var.distributed_database_catalog_details_vm_cluster_details_license_model
			nsg_ids = var.distributed_database_catalog_details_vm_cluster_details_nsg_ids
			private_zone_id = oci_dns_zone.test_zone.id
			ssh_public_keys = var.distributed_database_catalog_details_vm_cluster_details_ssh_public_keys
			subnet_id = oci_core_subnet.test_subnet.id
			total_ecpu_count = var.distributed_database_catalog_details_vm_cluster_details_total_ecpu_count
			vm_file_system_storage_size = var.distributed_database_catalog_details_vm_cluster_details_vm_file_system_storage_size
		}
		vm_cluster_id = oci_database_vm_cluster.test_vm_cluster.id
	}
	character_set = var.distributed_database_character_set
	compartment_id = var.compartment_id
	database_version = var.distributed_database_database_version
	db_deployment_type = var.distributed_database_db_deployment_type
	display_name = var.distributed_database_display_name
	distributed_database_id = var.distributed_database_distributed_database_id
	listener_port = var.distributed_database_listener_port
	ncharacter_set = var.distributed_database_ncharacter_set
	ons_port_local = var.distributed_database_ons_port_local
	ons_port_remote = var.distributed_database_ons_port_remote
	prefix = var.distributed_database_prefix
	private_endpoint_ids = var.distributed_database_private_endpoint_ids
	shard_details {
		#Required
		admin_password = var.distributed_database_shard_details_admin_password
		source = var.distributed_database_shard_details_source

		#Optional
		availability_domain = var.distributed_database_shard_details_availability_domain
		db_storage_vault_details {

			#Optional
			additional_flash_cache_in_percent = var.distributed_database_shard_details_db_storage_vault_details_additional_flash_cache_in_percent
			high_capacity_database_storage = var.distributed_database_shard_details_db_storage_vault_details_high_capacity_database_storage
		}
		kms_key_id = oci_kms_key.test_key.id
		kms_key_version_id = oci_kms_key_version.test_key_version.id
		peer_details {

			#Optional
			availability_domain = var.distributed_database_shard_details_peer_details_availability_domain
			db_storage_vault_details {

				#Optional
				additional_flash_cache_in_percent = var.distributed_database_shard_details_peer_details_db_storage_vault_details_additional_flash_cache_in_percent
				high_capacity_database_storage = var.distributed_database_shard_details_peer_details_db_storage_vault_details_high_capacity_database_storage
			}
			protection_mode = var.distributed_database_shard_details_peer_details_protection_mode
			transport_type = var.distributed_database_shard_details_peer_details_transport_type
			vm_cluster_details {

				#Optional
				backup_network_nsg_ids = var.distributed_database_shard_details_peer_details_vm_cluster_details_backup_network_nsg_ids
				backup_subnet_id = oci_core_subnet.test_subnet.id
				domain = var.distributed_database_shard_details_peer_details_vm_cluster_details_domain
				enabled_ecpu_count = var.distributed_database_shard_details_peer_details_vm_cluster_details_enabled_ecpu_count
				is_diagnostics_events_enabled = var.distributed_database_shard_details_peer_details_vm_cluster_details_is_diagnostics_events_enabled
				is_health_monitoring_enabled = var.distributed_database_shard_details_peer_details_vm_cluster_details_is_health_monitoring_enabled
				is_incident_logs_enabled = var.distributed_database_shard_details_peer_details_vm_cluster_details_is_incident_logs_enabled
				license_model = var.distributed_database_shard_details_peer_details_vm_cluster_details_license_model
				nsg_ids = var.distributed_database_shard_details_peer_details_vm_cluster_details_nsg_ids
				private_zone_id = oci_dns_zone.test_zone.id
				ssh_public_keys = var.distributed_database_shard_details_peer_details_vm_cluster_details_ssh_public_keys
				subnet_id = oci_core_subnet.test_subnet.id
				total_ecpu_count = var.distributed_database_shard_details_peer_details_vm_cluster_details_total_ecpu_count
				vm_file_system_storage_size = var.distributed_database_shard_details_peer_details_vm_cluster_details_vm_file_system_storage_size
			}
			vm_cluster_id = oci_database_vm_cluster.test_vm_cluster.id
		}
		peer_vm_cluster_ids = var.distributed_database_shard_details_peer_vm_cluster_ids
		shard_space = var.distributed_database_shard_details_shard_space
		vault_id = oci_kms_vault.test_vault.id
		vm_cluster_details {

			#Optional
			backup_network_nsg_ids = var.distributed_database_shard_details_vm_cluster_details_backup_network_nsg_ids
			backup_subnet_id = oci_core_subnet.test_subnet.id
			domain = var.distributed_database_shard_details_vm_cluster_details_domain
			enabled_ecpu_count = var.distributed_database_shard_details_vm_cluster_details_enabled_ecpu_count
			is_diagnostics_events_enabled = var.distributed_database_shard_details_vm_cluster_details_is_diagnostics_events_enabled
			is_health_monitoring_enabled = var.distributed_database_shard_details_vm_cluster_details_is_health_monitoring_enabled
			is_incident_logs_enabled = var.distributed_database_shard_details_vm_cluster_details_is_incident_logs_enabled
			license_model = var.distributed_database_shard_details_vm_cluster_details_license_model
			nsg_ids = var.distributed_database_shard_details_vm_cluster_details_nsg_ids
			private_zone_id = oci_dns_zone.test_zone.id
			ssh_public_keys = var.distributed_database_shard_details_vm_cluster_details_ssh_public_keys
			subnet_id = oci_core_subnet.test_subnet.id
			total_ecpu_count = var.distributed_database_shard_details_vm_cluster_details_total_ecpu_count
			vm_file_system_storage_size = var.distributed_database_shard_details_vm_cluster_details_vm_file_system_storage_size
		}
		vm_cluster_id = oci_database_vm_cluster.test_vm_cluster.id
	}
	sharding_method = var.distributed_database_sharding_method

	#Optional
	chunks = var.distributed_database_chunks
	db_backup_config {

		#Optional
		auto_backup_window = var.distributed_database_db_backup_config_auto_backup_window
		auto_full_backup_day = var.distributed_database_db_backup_config_auto_full_backup_day
		auto_full_backup_window = var.distributed_database_db_backup_config_auto_full_backup_window
		backup_deletion_policy = var.distributed_database_db_backup_config_backup_deletion_policy
		backup_destination_details {
			#Required
			type = var.distributed_database_db_backup_config_backup_destination_details_type

			#Optional
			dbrs_policy_id = oci_identity_policy.test_policy.id
			id = var.distributed_database_db_backup_config_backup_destination_details_id
			internet_proxy = var.distributed_database_db_backup_config_backup_destination_details_internet_proxy
			is_remote = var.distributed_database_db_backup_config_backup_destination_details_is_remote
			is_zero_data_loss_enabled = var.distributed_database_db_backup_config_backup_destination_details_is_zero_data_loss_enabled
			remote_region = var.distributed_database_db_backup_config_backup_destination_details_remote_region
			vpc_password = var.distributed_database_db_backup_config_backup_destination_details_vpc_password
			vpc_user = var.distributed_database_db_backup_config_backup_destination_details_vpc_user
		}
		can_run_immediate_full_backup = var.distributed_database_db_backup_config_can_run_immediate_full_backup
		is_auto_backup_enabled = var.distributed_database_db_backup_config_is_auto_backup_enabled
		is_remote_backup_enabled = var.distributed_database_db_backup_config_is_remote_backup_enabled
		recovery_window_in_days = var.distributed_database_db_backup_config_recovery_window_in_days
		remote_region = var.distributed_database_db_backup_config_remote_region
	}
	defined_tags = {"foo-namespace.bar-key"= "value"}
	freeform_tags = {"bar-key"= "value"}
	gsm_ssh_public_key = var.distributed_database_gsm_ssh_public_key
	listener_port_tls = var.distributed_database_listener_port_tls
	patch_operations {
		#Required
		operation = var.distributed_database_patch_operations_operation
		selection = var.distributed_database_patch_operations_selection

		#Optional
		value = var.distributed_database_patch_operations_value
	}
	replication_factor = var.distributed_database_replication_factor
	replication_method = var.distributed_database_replication_method
	replication_unit = var.distributed_database_replication_unit
	scan_listener_port = var.distributed_database_scan_listener_port
}

Argument Reference

The following arguments are supported:

** IMPORTANT ** Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values

Attributes Reference

The following attributes are exported:

Timeouts

The timeouts block allows you to specify timeouts for certain operations: * create - (Defaults to 20 minutes), when creating the Distributed Database * update - (Defaults to 20 minutes), when updating the Distributed Database * delete - (Defaults to 20 minutes), when destroying the Distributed Database

Import

DistributedDatabases can be imported using the id, e.g.

$ terraform import oci_distributed_database_distributed_database.test_distributed_database "id"