Using dedicated hosts for database node instances may be beneficial for Oracle licensing purposes.
Follow Azure documentation to create a host group in each of the required availability zones and to create dedicated hosts in those host groups.
- If database nodes are spread across availability zones, then you need to create a separate host group for each zone. Also, in such case set the platform-fault-domain-count parameter to 1.
- If your region does not support AZ then create a single host group without the `-z` option and set the platform-fault-domain-count parameter according to the number of Fault Domains supported in your target region: 2 or 3. Dedicated hosts used for different database nodes within the same cluster must be assigned a different Fault Domain number. Quorum node(s) must also be placed on dedicated hosts.
- If using one of the VM types listed under limitations for automatic placement, then disable automatic placement.
Example of creating host groups and dedicated hosts using Azure CLI in a region that supports availability zones:
az vm host group create \
--name myHostGroupAZ1 \
-g myDHResourceGroup \
-z 1 \
--platform-fault-domain-count 1 \
--automatic-placement true
az vm host group create \
--name myHostGroupAZ2 \
-g myDHResourceGroup \
-z 2 \
--platform-fault-domain-count 1 \
--automatic-placement true
az vm host create \
--host-group myHostGroupAZ1 \
--name myHostAZ1 \
--sku DSv3-Type1 \
-g myDHResourceGroup
az vm host create \
--host-group myHostGroupAZ1 \
--name myHostAZ2 \
--sku DSv3-Type1 \
-g myDHResourceGroup
Example of creating a host group and dedicated hosts using Azure CLI in a region that does not support availability zones:
az vm host group create \
--name myHostGroup \
-g myDHResourceGroup \
--platform-fault-domain-count 3 \
--automatic-placement true
az vm host create \
--host-group myHostGroup \
--name myHostFD0 \
--sku DSv3-Type1 \
--platform-fault-domain 0 \
-g myDHResourceGroup
az vm host create \
--host-group myHostGroup \
--name myHostFD1 \
--sku DSv3-Type1 \
--platform-fault-domain 1 \
-g myDHResourceGroup
az vm host create \
--host-group myHostGroup \
--name myHostFD2 \
--sku DSv3-Type1 \
--platform-fault-domain 2 \
-g myDHResourceGroup
In your FlashGrid Cluster configuration file manually make the following changes:
- add fault_domains = 0 parameter (this is required regardless of the actual number of fault domains that will be used);
- add use_proximity_placement_group = False parameter;
- add host_group attribute for each of the database nodes.
Example:
[azure]
fault_domains = 0
use_proximity_placement_group = False
[nodes]
instances = [
{'name': 'rac1', 'role': 'database', 'az': '1', 'ins_type': 'Standard_D8s_v3', 'host_group': '<Resource ID of the 1st host group goes here>'},
{'name': 'rac2', 'role': 'database', 'az': '2', 'ins_type': 'Standard_D8s_v3', 'host_group': '<Resource ID of the 2nd host group goes here>'},
{'name': 'racq', 'role': 'quorum', 'az': '3', 'ins_type': 'Standard_DS2_v2'}
]