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.

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
		vm_cluster_id = oci_database_vm_cluster.test_vm_cluster.id

		#Optional
		kms_key_id = oci_kms_key.test_key.id
		kms_key_version_id = oci_kms_key_version.test_key_version.id
		peer_details {
			#Required
			vm_cluster_id = oci_database_vm_cluster.test_vm_cluster.id

			#Optional
			protection_mode = var.distributed_database_catalog_details_peer_details_protection_mode
			transport_type = var.distributed_database_catalog_details_peer_details_transport_type
		}
		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
	}
	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
		vm_cluster_id = oci_database_vm_cluster.test_vm_cluster.id

		#Optional
		kms_key_id = oci_kms_key.test_key.id
		kms_key_version_id = oci_kms_key_version.test_key_version.id
		peer_details {
			#Required
			vm_cluster_id = oci_database_vm_cluster.test_vm_cluster.id

			#Optional
			protection_mode = var.distributed_database_shard_details_peer_details_protection_mode
			transport_type = var.distributed_database_shard_details_peer_details_transport_type
		}
		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
	}
	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
}

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"