Skip to content

Commit 5f684a5

Browse files
vijasanksankhsin
authored andcommitted
Added - Create Multiple Standby Databases in DG environment
1 parent 8b1d30a commit 5f684a5

File tree

34 files changed

+1495
-62
lines changed

34 files changed

+1495
-62
lines changed
Lines changed: 183 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,183 @@
1+
variable "tenancy_ocid" {
2+
}
3+
4+
variable "compartment_id" {
5+
}
6+
7+
variable "ssh_public_key" {
8+
}
9+
10+
provider "oci" {
11+
version = "0.0.0"
12+
}
13+
14+
data "oci_identity_availability_domains" "ADs" {
15+
compartment_id = var.compartment_id
16+
17+
}
18+
data "oci_identity_availability_domain" "ad" {
19+
compartment_id = var.compartment_id
20+
ad_number = 1
21+
22+
}
23+
resource "oci_core_virtual_network" "t" {
24+
compartment_id = var.compartment_id
25+
cidr_block = "10.1.0.0/16"
26+
display_name = "-tf-vcn"
27+
dns_label = "tfvcn"
28+
29+
}
30+
resource "oci_core_route_table" "t" {
31+
compartment_id = var.compartment_id
32+
vcn_id = oci_core_virtual_network.t.id
33+
route_rules {
34+
cidr_block = "0.0.0.0/0"
35+
network_entity_id = oci_core_internet_gateway.t.id
36+
}
37+
}
38+
resource "oci_core_internet_gateway" "t" {
39+
compartment_id = var.compartment_id
40+
vcn_id = oci_core_virtual_network.t.id
41+
display_name = "-tf-internet-gateway"
42+
}
43+
44+
resource "oci_core_subnet" "t" {
45+
availability_domain = data.oci_identity_availability_domains.ADs.availability_domains.0.name
46+
cidr_block = "10.1.20.0/24"
47+
display_name = "TFSubnet1"
48+
compartment_id = var.compartment_id
49+
vcn_id = oci_core_virtual_network.t.id
50+
route_table_id = oci_core_route_table.t.id
51+
dhcp_options_id = oci_core_virtual_network.t.default_dhcp_options_id
52+
security_list_ids = [oci_core_virtual_network.t.default_security_list_id]
53+
dns_label = "tfsubnet"
54+
}
55+
resource "oci_core_subnet" "t2" {
56+
availability_domain = data.oci_identity_availability_domains.ADs.availability_domains.0.name
57+
cidr_block = "10.1.21.0/24"
58+
display_name = "TFSubnet2"
59+
compartment_id = var.compartment_id
60+
vcn_id = oci_core_virtual_network.t.id
61+
route_table_id = oci_core_route_table.t.id
62+
dhcp_options_id = oci_core_virtual_network.t.default_dhcp_options_id
63+
security_list_ids = [oci_core_virtual_network.t.default_security_list_id]
64+
dns_label = "tfsubnet2"
65+
}
66+
resource "oci_core_network_security_group" "test_network_security_group" {
67+
compartment_id = var.compartment_id
68+
vcn_id = oci_core_virtual_network.t.id
69+
display_name = "displayName"
70+
}
71+
72+
resource "oci_core_network_security_group" "test_network_security_group_backup" {
73+
compartment_id = var.compartment_id
74+
vcn_id = oci_core_virtual_network.t.id
75+
}
76+
77+
resource "oci_core_subnet" "test_subnet1" {
78+
availability_domain = data.oci_identity_availability_domain.ad.name
79+
cidr_block = "10.1.22.0/24"
80+
display_name = "ExadataSubnet"
81+
compartment_id = var.compartment_id
82+
vcn_id = oci_core_virtual_network.t.id
83+
route_table_id = oci_core_virtual_network.t.default_route_table_id
84+
dhcp_options_id = oci_core_virtual_network.t.default_dhcp_options_id
85+
security_list_ids = [oci_core_virtual_network.t.default_security_list_id, oci_core_security_list.exadata_shapes_security_list.id]
86+
dns_label = "subnetexadata1"
87+
}
88+
89+
resource "oci_core_subnet" "test_subnet_backup" {
90+
availability_domain = data.oci_identity_availability_domain.ad.name
91+
cidr_block = "10.1.23.0/24"
92+
display_name = "ExadataBackupSubnet"
93+
compartment_id = var.compartment_id
94+
vcn_id = oci_core_virtual_network.t.id
95+
route_table_id = oci_core_virtual_network.t.default_route_table_id
96+
dhcp_options_id = oci_core_virtual_network.t.default_dhcp_options_id
97+
security_list_ids = [oci_core_virtual_network.t.default_security_list_id]
98+
dns_label = "subnetexadata2"
99+
}
100+
101+
102+
resource "oci_core_security_list" "exadata_shapes_security_list" {
103+
compartment_id = var.compartment_id
104+
vcn_id = oci_core_virtual_network.t.id
105+
display_name = "ExadataSecurityList"
106+
ingress_security_rules {
107+
source = "10.1.22.0/24"
108+
protocol = "6"
109+
}
110+
111+
ingress_security_rules {
112+
source = "10.1.22.0/24"
113+
protocol = "1"
114+
}
115+
116+
egress_security_rules {
117+
destination = "10.1.22.0/24"
118+
protocol = "6"
119+
}
120+
121+
egress_security_rules {
122+
destination = "10.1.22.0/24"
123+
protocol = "1"
124+
}
125+
}
126+
127+
resource "oci_database_cloud_exadata_infrastructure" "test_cloud_exadata_infrastructure_primary" {
128+
#Required
129+
availability_domain = data.oci_identity_availability_domain.ad.name
130+
compartment_id = var.compartment_id
131+
display_name = "TstExaInfra1"
132+
shape = "Exadata.X8M"
133+
134+
#Optional
135+
compute_count = 2
136+
storage_count = 3
137+
}
138+
139+
resource "oci_database_cloud_vm_cluster" "test_cloud_vm_cluster" {
140+
#Required
141+
backup_subnet_id = oci_core_subnet.test_subnet_backup.id
142+
cloud_exadata_infrastructure_id = oci_database_cloud_exadata_infrastructure.test_cloud_exadata_infrastructure_primary.id
143+
compartment_id = var.compartment_id
144+
cpu_core_count = "22"
145+
display_name = "PrimaryCluster"
146+
gi_version = "19.0.0.0"
147+
hostname = "myOracleDB"
148+
ssh_public_keys = [var.ssh_public_key]
149+
subnet_id = oci_core_subnet.t.id
150+
151+
#Optional
152+
scan_listener_port_tcp = "1521"
153+
scan_listener_port_tcp_ssl = "2484"
154+
155+
data_collection_options {
156+
#Optional
157+
is_diagnostics_events_enabled = "true"
158+
is_health_monitoring_enabled = "true"
159+
is_incident_logs_enabled = "true"
160+
}
161+
}
162+
163+
resource "oci_database_db_home" "test_db_home" {
164+
db_system_id = oci_database_cloud_vm_cluster.test_cloud_vm_cluster.id
165+
166+
db_version = "19.21.0.0"
167+
source = "NONE"
168+
display_name = "createdDbHomeNone"
169+
}
170+
171+
resource "oci_database_database" "primary_database" {
172+
#Required
173+
database {
174+
admin_password = "BEstrO0ng_#11"
175+
db_name = "PrimDb"
176+
character_set = "AL32UTF8"
177+
ncharacter_set = "AL16UTF16"
178+
db_workload = "OLTP"
179+
}
180+
181+
db_home_id = oci_database_db_home.test_db_home.id
182+
source = "NONE"
183+
}
Lines changed: 165 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,165 @@
1+
resource "oci_core_virtual_network" "t2" {
2+
compartment_id = var.compartment_id
3+
cidr_block = "10.1.0.0/16"
4+
display_name = "-tf-vcn"
5+
dns_label = "tfvcn"
6+
7+
}
8+
resource "oci_core_route_table" "t2" {
9+
compartment_id = var.compartment_id
10+
vcn_id = oci_core_virtual_network.t2.id
11+
route_rules {
12+
cidr_block = "0.0.0.0/0"
13+
network_entity_id = oci_core_internet_gateway.t2.id
14+
}
15+
}
16+
resource "oci_core_internet_gateway" "t2" {
17+
compartment_id = var.compartment_id
18+
vcn_id = oci_core_virtual_network.t2.id
19+
display_name = "-tf-internet-gateway"
20+
}
21+
22+
resource "oci_core_subnet" "t3" {
23+
availability_domain = data.oci_identity_availability_domains.ADs.availability_domains.0.name
24+
cidr_block = "10.1.20.0/24"
25+
display_name = "TFSubnet1"
26+
compartment_id = var.compartment_id
27+
vcn_id = oci_core_virtual_network.t2.id
28+
route_table_id = oci_core_route_table.t2.id
29+
dhcp_options_id = oci_core_virtual_network.t2.default_dhcp_options_id
30+
security_list_ids = [oci_core_virtual_network.t2.default_security_list_id]
31+
dns_label = "tfsubnet"
32+
}
33+
resource "oci_core_subnet" "t4" {
34+
availability_domain = data.oci_identity_availability_domains.ADs.availability_domains.0.name
35+
cidr_block = "10.1.21.0/24"
36+
display_name = "TFSubnet2"
37+
compartment_id = var.compartment_id
38+
vcn_id = oci_core_virtual_network.t2.id
39+
route_table_id = oci_core_route_table.t2.id
40+
dhcp_options_id = oci_core_virtual_network.t2.default_dhcp_options_id
41+
security_list_ids = [oci_core_virtual_network.t2.default_security_list_id]
42+
dns_label = "tfsubnet2"
43+
}
44+
resource "oci_core_network_security_group" "test_network_security_group3" {
45+
compartment_id = var.compartment_id
46+
vcn_id = oci_core_virtual_network.t2.id
47+
display_name = "displayName"
48+
}
49+
50+
resource "oci_core_network_security_group" "test_network_security_group_backup4" {
51+
compartment_id = var.compartment_id
52+
vcn_id = oci_core_virtual_network.t2.id
53+
}
54+
55+
resource "oci_core_subnet" "test_subnet3" {
56+
availability_domain = data.oci_identity_availability_domain.ad.name
57+
cidr_block = "10.1.22.0/24"
58+
display_name = "ExadataSubnet"
59+
compartment_id = var.compartment_id
60+
vcn_id = oci_core_virtual_network.t2.id
61+
route_table_id = oci_core_virtual_network.t2.default_route_table_id
62+
dhcp_options_id = oci_core_virtual_network.t2.default_dhcp_options_id
63+
security_list_ids = [oci_core_virtual_network.t2.default_security_list_id, oci_core_security_list.exadata_shapes_security_list2.id]
64+
dns_label = "subnetexadata1"
65+
}
66+
67+
resource "oci_core_subnet" "test_subnet_backup4" {
68+
availability_domain = data.oci_identity_availability_domain.ad.name
69+
cidr_block = "10.1.23.0/24"
70+
display_name = "ExadataBackupSubnet"
71+
compartment_id = var.compartment_id
72+
vcn_id = oci_core_virtual_network.t2.id
73+
route_table_id = oci_core_virtual_network.t2.default_route_table_id
74+
dhcp_options_id = oci_core_virtual_network.t2.default_dhcp_options_id
75+
security_list_ids = [oci_core_virtual_network.t2.default_security_list_id]
76+
dns_label = "subnetexadata2"
77+
}
78+
79+
80+
resource "oci_core_security_list" "exadata_shapes_security_list2" {
81+
compartment_id = var.compartment_id
82+
vcn_id = oci_core_virtual_network.t2.id
83+
display_name = "ExadataSecurityList"
84+
ingress_security_rules {
85+
source = "10.1.22.0/24"
86+
protocol = "6"
87+
}
88+
89+
ingress_security_rules {
90+
source = "10.1.22.0/24"
91+
protocol = "1"
92+
}
93+
94+
egress_security_rules {
95+
destination = "10.1.22.0/24"
96+
protocol = "6"
97+
}
98+
99+
egress_security_rules {
100+
destination = "10.1.22.0/24"
101+
protocol = "1"
102+
}
103+
}
104+
105+
resource "oci_database_cloud_exadata_infrastructure" "test_cloud_exadata_infrastructure_standby" {
106+
#Required
107+
availability_domain = data.oci_identity_availability_domain.ad.name
108+
compartment_id = var.compartment_id
109+
display_name = "TstExaInfra2"
110+
shape = "Exadata.X8M"
111+
112+
#Optional
113+
compute_count = 2
114+
storage_count = 3
115+
}
116+
117+
resource "oci_database_cloud_vm_cluster" "test_cloud_vm_cluster2" {
118+
#Required
119+
backup_subnet_id = oci_core_subnet.test_subnet_backup4.id
120+
cloud_exadata_infrastructure_id = oci_database_cloud_exadata_infrastructure.test_cloud_exadata_infrastructure_standby.id
121+
compartment_id = var.compartment_id
122+
cpu_core_count = "22"
123+
display_name = "StandbyCluster"
124+
gi_version = "19.0.0.0"
125+
hostname = "myOracleDB"
126+
ssh_public_keys = [var.ssh_public_key]
127+
subnet_id = oci_core_subnet.t3.id
128+
129+
#Optional
130+
scan_listener_port_tcp = "1521"
131+
scan_listener_port_tcp_ssl = "2484"
132+
133+
data_collection_options {
134+
#Optional
135+
is_diagnostics_events_enabled = "true"
136+
is_health_monitoring_enabled = "true"
137+
is_incident_logs_enabled = "true"
138+
}
139+
}
140+
141+
resource "oci_database_db_home" "test_db_home2" {
142+
db_system_id = oci_database_cloud_vm_cluster.test_cloud_vm_cluster2.id
143+
144+
db_version = "19.21.0.0"
145+
source = "NONE"
146+
display_name = "createdDbHomeNone"
147+
}
148+
149+
resource "oci_database_database" "standby_database" {
150+
#Required
151+
database {
152+
admin_password = "BEstrO0ng_#11"
153+
database_admin_password = "BEstrO0ng_#11" #required for add standby
154+
character_set = "AL32UTF8"
155+
ncharacter_set = "AL16UTF16"
156+
db_workload = "OLTP"
157+
source_database_id = oci_database_database.primary_database.id
158+
protection_mode = "MAXIMUM_PERFORMANCE"
159+
transport_type = "ASYNC"
160+
source_tde_wallet_password = "BEstrO0ng_#11"
161+
}
162+
163+
db_home_id = oci_database_db_home.test_db_home2.id
164+
source = "DATAGUARD"
165+
}

internal/integrationtest/database_autonomous_database_software_image_test.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,6 @@ var (
5353
"display_name": acctest.Representation{RepType: acctest.Optional, Create: `image1` + randString},
5454
"state": acctest.Representation{RepType: acctest.Optional, Create: `AVAILABLE`},
5555
"filter": acctest.RepresentationGroup{RepType: acctest.Required, Group: DatabaseAutonomousDatabaseSoftwareImageDataSourceFilterRepresentation}}
56-
5756
DatabaseAutonomousDatabaseSoftwareImageDataSourceFilterRepresentation = map[string]interface{}{
5857
"name": acctest.Representation{RepType: acctest.Required, Create: `id`},
5958
"values": acctest.Representation{RepType: acctest.Required, Create: []string{`${oci_database_autonomous_database_software_image.test_autonomous_database_software_image.id}`}},

0 commit comments

Comments
 (0)