This is part 2 on provisioning Exadata on Oracle Cloud Infrastructure, you can read part 1 from here. In this post I will focus on what the overall system looks like and database creation.
After provisioning the Exadata you have it available in the console and can start using it. We had the 1/4 quarter rack so we have two nodes available. If you have half rack then you get four nodes etc.
Customers get full access to virtual machines running on top of the real Exadata nodes with root access. So we can do on the nodes whatever is required (or almost..).
Examining the nodes
By default you login with opc user and with the ssh key you provided during initial Exadata creation. Same key will work on both nodes.
With opc you have sudo access which you can use to do everything what is required. Databases will be installed under oracle user so depending which teams will access the system it’s probably good idea to generate key for oracle user as well.
After login I can check OS and Exadata version:
Red Hat Enterprise Linux Server release 6.10 (Santiago)
Kernel version: 4.1.12-94.8.5.el6uek.x86_64 #2 SMP Wed Jul 11 12:03:41 PDT 2018 x86_64
Image kernel version: 4.1.12-94.8.5.el6uek
Image version: 18.104.22.168.0.180911.1
Image activated: 2018-10-30 12:44:34 +0000
Image status: success
System partition on device: /dev/mapper/VGExaDb-LVDbSys1
I can see initial database and ASM is running:
grid 31913 1 0 2018 ? 00:05:07 asm_pmon_+ASM1
grid 32251 1 0 2018 ? 00:05:54 apx_pmon_+APX1
oracle 32379 1 0 2018 ? 00:08:26 ora_pmon_TEST1
And I can install packages with yum if needed. We haven’t had any updates yet on Exadata so the patching process is still unclear but I understood it should be fairly transparent to us apart from nodes getting rebooted obviously. More on that later.
Creating a database
There are two ways of creating a database, either from the console or using dbaasapi tool which is provided on the nodes.
Using dbaasapi is documented here: https://docs.cloud.oracle.com/iaas/Content/Database/Tasks/examanagingdatabasesdbaasapi.htm
I have to say that even though it’s nice to have command line tool in my opinion Oracle should have provided option to create new databases via Terraform. Now we have to break our creation process out from Terraform and hack it with dbaasapi.
Also we’ve had couple of issues with dbaasapi where we had to upgrade the tool in order for it to work.
Looking dbaasapi documentation there are few things which will be good to notice. First the nodelist value is only
"" (an empty string). “The database will be created across all nodes in the cluster.”
So this means the only option on Exadata OCI for database is to create as RAC database. It’s something you don’t get to see mentioned! While I understand why it’s done like it is (patching for example) I think it should be highlighted. What about those customers who use BYOL (bring your own license) so they will need to also have RAC license?
In some public documentation they also mention it’s possible to create single-node databases so the message what customers can do is not really clear.
The other option which isn’t described in more detail is PDB creation. This is optional but isn’t mentioned in the dbaasapi documentation. If you create database from console you can see it as optional.
You can see this from the console screenshot:
The database versions available for us currently are 22.214.171.124, 126.96.36.199 and 188.8.131.52 even though documentation says there should be 18c release 1 available as well.
Another difference is that with dbaasapi you can define the backup location but with console this is not an option? I think it’s not really good that there are so many differences.
Remember that when you setup the backup location in object storage if you use service gateway the traffic doesn’t traverse through public internet! This is really important addition in my opinion and good for many customers.
When you create the database via dbaasapi you will need to monitor a text file for the progress or you can of course check from console as well current status. Once creation is complete the database icon will turn green on the console.
Database will be available in a new home on both of the nodes. The database home on the console will be named with dbhome + date such as dbhome20190108095209 .
When you create initial database when provisioning Exadata with Terraform you can name the database home as you like though so that’s another difference as well.
Since we have only 184.108.40.206 databases they are located under /u02/app/oracle/product/12.1.0:
$ ls -la
drwxr-xr-x 7 oracle oinstall 4096 Jan 18 17:11 .
drwxr-xr-x 3 oracle oinstall 4096 Oct 30 14:30 ..
drwxr-x— 74 oracle oinstall 4096 Oct 30 14:43 dbhome_2
drwxr-xr-x 75 oracle oinstall 4096 Nov 3 05:29 dbhome_3
drwxr-x— 74 oracle oinstall 4096 Jan 8 10:06 dbhome_4
drwxr-x— 74 oracle oinstall 4096 Jan 17 15:59 dbhome_5
I can just switch to oracle user, source the correct environment and after that login as usual to the database. Parameters can be changed as I like so here I could potentially switch the database to single node too.
As mentioned in the part 1 the disk redundancy is always HIGH. If I want to see further details about disk setup and usage I need to login with grid user and login as sysasm or use asmcmd.
Just to show we can query ASM:
SQL> SELECT name, type, total_mb, free_mb, required_mirror_free_mb, usable_file_mb FROM V$ASM_DISKGROUP; 2 NAME TYPE TOTAL_MB FREE_MB REQUIRED_MIRROR_FREE_MB USABLE_FILE_MB ------------------------------ ------ ---------- ---------- ----------------------- -------------- DATAC1 HIGH 269033728 240705804 14946304 75253110 RECOC1 HIGH 67239936 67011120 3735552 21091856 [grid@ ~]$ asmcmd ASMCMD> lsdg State Type Rebal Sector Logical_Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name MOUNTED HIGH N 512 512 4096 4194304 269033728 240705804 14946304 75253110 0 Y DATAC1/ MOUNTED HIGH N 512 512 4096 4194304 67239936 67011120 3735552 21091856 0 N RECOC1/
Getting Exadata from OCI gives you similar platform as on-premise with enough control to manage your architecture as you like. It also gives you additional options such as dynamic scaling etc which are really good tools to modernize your Oracle infrastructure.
However I feel the whole platform is still quite rushed out. There are uncertain configuration options which differ depending the tool you use. You can’t see the storage used from the console but instead you have to check it manually from ASM side and the lack of support with Terraform is annoying.
Also as a e-Business Suite customer we have some additional requirements with listener for example so these are something we need to setup manually.
There are so many possibilities to automate installation and setup so I hope in the upcoming months they will provide more features like for example just recently announced sparse disk group and will streamline the overall experience!