How to Reduce Exadata Core Count

Posted in: Oracle, Technical Track

During preparation for a client’s datacenter migration, we decided to move services one-by-one to the datacenter / hardware in order to keep the scope of changes controlled. To accomplish this, we also needed to resize the CPU count of Exadata servers to better attend accommodating services and also keep licensing compliant. In this scenario, one of the steps would be increasing CPUs in the new datacenter and, on the same proportion, reduce CPU counts in the old hardware.

Checking for the steps to accomplish that, however, we found references to change CPU and core count, but always described for increasing allocation, as per 2.7 Increasing the Number of Active Cores on Database Servers. Not much about reducing. I understand it can be a bit unusual, but in our case, it is perfectly reasonable. Also, consider that the planned change would be within the minimum number requirement: 2.1 Restrictions for Capacity-On-Demand on Oracle Exadata Database Machine.

When reviewing on MOS, we found the When Attempting to Change the Number of Cores, Errors With: DBM-10004 – Decreasing the Number of Active Cores is not Supported ( Doc ID 2177634.1), pointing out that this procedure was actually not supported. The same doc, however, points to the use of clause “FORCE” on “ALTER DBSERVER pendingCoreCount =x” command as a solution. After confirming the procedure with an SR, we did indeed proceed with this.

The only observation here goes to the disabling the iaasMode to play it safe and avoid the issue described as per MOS Exadata X6 Machine Is Not Showing Increased Corecount Value (Doc ID 2269705.1). Check the complete procedure below:

[[email protected]~]# dbmcli
DBMCLI: Release  - Production on Mon Sep 05 01:10:12 EEST 2019
Copyright (c) 2007, 2014, Oracle.  All rights reserved.
DBMCLI> LIST DBSERVER attributes coreCount
	 36/44
DBMCLI> ALTER DBSERVER pendingCoreCount = 24 force
DBM-10022: At least 26 physical cores need to be active in order to support IaaS.
DBMCLI> ALTER DBSERVER iaasMode = "off"
DBServer exadb01 successfully altered
DBMCLI> ALTER DBSERVER pendingCoreCount = 24 force
DBServer server01 successfully altered. Please reboot the system to make the new pendingCoreCount effective.
DBMCLI> LIST DBSERVER attributes pendingCoreCount
24/44

–> Restart the server

After restarting, it should look like:

DBMCLI> LIST DBSERVER attributes coreCount
	 24/44
DBMCLI> LIST DBSERVER attributes pendingCoreCount

Hope this helps!

email
Want to talk with an expert? Schedule a call with our team to get the conversation started.

About the Author

Lead Database Consultant
Well known in the Oracle community in Latin America and Europe where he participates regularly in technology events, Matheus is actually the youngest Oracle ACE Director in the world. Lead Database Consultant at Pythian, Matheus is a Computer Scientist by PUCRS and has been working as an Oracle DBA for the last 10 years.

No comments

Leave a Reply

Your email address will not be published. Required fields are marked *