If you are looking for a "quick and dirty" installation guide of Oracle® Database 19c and Oracle Real Application Cluster suitable for training, development and test purpose, this is the right place to start !
In this series of articles we are going thru installation steps of a single node of an Oracle Database 19c RAC on CentOS 7 VM hosted on Google Cloud Platform.
Some considerations: please do not consider following instructions to implement your production environment, because if on the one hand you can for sure take advantage of the Google Cloud Free Tier offer (3-month free trial with $300 credit) to play around and test Oracle Database and RAC, but on the other hand it must be considered that Oracle Database seems not fully supported on GCP. That can be deduct from this official Oracle document (Licensing Oracle Software in the Cloud Computing Environment), where both Microsoft Azure and Amazon AWS are clearly listed, whereas there is no trace of Google Cloud Platform
1) Go to https://console.cloud.google.com/ and create a new project, here we named it Oracle19cRAC. Due to the fact Oracle Clusterware and related Grid Infrastructure use private network link to coordinate and synchronise nodes of the cluster, we need to create a new VPC network we will use later to crete additional network card for enabling private nodes interconnection.
Name: oracle-rac-priv-sub-network
IP address ranges : 192.168.0.0/16
Gateway: 192.168.0.1
2) Go to Compute Engine menu and create a new VM Instance, here we named it oracle-rac. Press Create button.
Please select as "Machine type" at least n1-standard-1 and as boot image CentosOS 7 as described in the firs image below.
You need two Network interfaces: public (nic0 in default VPC network) and private (nic1) bind to priv network created at previous point.
Create 3 additional persistent disks:
oracle-rac-voting1: 10 GB
oracle-rac-fra1: 30 GB
oracle-rac-data1 50 GB
3) Connect to the brand new vm oracle-rac via SSH in GCP console and then login to root and performe following system tasks to enable next Oracle installations.
disable SELinux: vi /etc/selinux/config and set SELINUX=disabled
check if firewall is disabled
4) Enable chrony daemon vi /etc/chrony.conf and add your public and private IP range, in our case:
restart, enable and check chrony
5) Install xRDP to manege later Oracle Installe GUI in a remote desktop session:
# rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm# yum groupinstall "GNOME Desktop" "Graphical Administration Tools"# yum -y install xrdp tigervnc-server# systemctl start xrdp.servicecheck if xRDP is running (as mentioned above: systemctl disable firewalld)
# netstat -antup | grep xrdp# systemctl enable xrdp.service6) Install prerequisite rpm for Red Hat Enterprise Linux "Family" and so CentOS!
This package avoid to perform all kernel parameters manually, as required on old Oracle versions.
Official instruction can be find here at Installing Oracle Database RPM Manually section.
# curl -o oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm \https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm7) Oracle ASM support RPM (Oracle ASMLib)
Following package let you create and manage ASM (Automatic Storage Management) Disks. You can find official download page here
# wget https://download.oracle.com/otn_software/asmlib/oracleasmlib-2.0.12-1.el7.x86_64.rpm# wget https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracleasm-support-2.1.11-2.el7.x86_64.rpm# yum -y localinstall oracleasmlib-2.0.12-1.el7.x86_64.rpm# yum -y localinstall oracleasm-support-2.1.11-2.el7.x86_64.rpm8) Create and configure oracle and grid user
Best practices suggest to create two dedicate OS users for Oracle Grid and Database administration: grid and oracle
9) Configure /etc/hosts file to resolve all minimum IPs needed by Oracle Grid
Find public and private IPs defined at point 1. when we created our Compute Engine VM instance. Please consider that public IP highlighted below is depending to the zone where your VM is located, in our case us-east1-b
# ip addr2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1460 qdisc pfifo_fast state UP group default qlen 1000 link/ether 42:01:0a:8e:00:04 brd ff:ff:ff:ff:ff:ff inet 10.142.0.4/16 brd 10.142.255.255 scope global noprefixroute eth0 valid_lft forever preferred_lft forever inet 10.142.0.8/16 brd 10.142.255.255 scope global secondary eth0:1 valid_lft forever preferred_lft forever inet 10.142.0.5/16 brd 10.142.255.255 scope global secondary eth0:2 valid_lft forever preferred_lft forever inet6 fe80::4001:aff:fe8e:4/64 scope link noprefixroute valid_lft forever preferred_lft forever3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1460 qdisc pfifo_fast state UP group default qlen 1000 link/ether 42:01:c0:a8:00:02 brd ff:ff:ff:ff:ff:ff inet 192.168.0.2/32 brd 192.168.0.2 scope global dynamic eth1 valid_lft 85894sec preferred_lft 85894sec inet 169.254.12.146/19 brd 169.254.31.255 scope global eth1:1 valid_lft forever preferred_lft forever inet6 fe80::4001:c0ff:fea8:2/64 scope link valid_lft forever preferred_lft foreverEdit your /etc/hosts and add following lines paying attention to replace our public IPS in of our subnet 10.142.0.0/16 to your values. Best practices and production Oracle installation require to define 3 SCAN IPs, but for our experiment one ip will be enough to start the Clusterware services.
10) DNS Configuration
If you do not want to get a warning at last step of installation, you can add your alias to your domain server. Also, you can configure dns information of nodes in /etc/resolf.conf file.
Ok Folks! Let's have a cup of coffee before going on to Oracle 19c RAC on Google Cloud Platform PART 2 /// -->