<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Archives des Hardware &amp; Storage - dbi Blog</title>
	<atom:link href="https://www.dbi-services.com/blog/category/hardware-storage/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.dbi-services.com/blog/category/hardware-storage/</link>
	<description></description>
	<lastBuildDate>Tue, 08 Oct 2024 09:04:07 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2025/05/cropped-favicon_512x512px-min-32x32.png</url>
	<title>Archives des Hardware &amp; Storage - dbi Blog</title>
	<link>https://www.dbi-services.com/blog/category/hardware-storage/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>ExaCC OCI integration with OEM 13.5 Cloud Control installed On-premises.</title>
		<link>https://www.dbi-services.com/blog/exacc-oci-integration-with-oem-13-5-cloud-control-installed-on-premises/</link>
					<comments>https://www.dbi-services.com/blog/exacc-oci-integration-with-oem-13-5-cloud-control-installed-on-premises/#comments</comments>
		
		<dc:creator><![CDATA[Tomek Sikorski]]></dc:creator>
		<pubDate>Tue, 08 Oct 2024 08:54:46 +0000</pubDate>
				<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Database Administration & Monitoring]]></category>
		<category><![CDATA[Hardware & Storage]]></category>
		<category><![CDATA[OCI]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Enterprise Manager 13c]]></category>
		<category><![CDATA[exacc]]></category>
		<category><![CDATA[exadata]]></category>
		<category><![CDATA[exadata cloud at customer]]></category>
		<category><![CDATA[Exadata Cloud@Customer]]></category>
		<category><![CDATA[OEM]]></category>
		<category><![CDATA[Oracle Enterprise Manager]]></category>
		<category><![CDATA[Plugin]]></category>
		<guid isPermaLink="false">https://www.dbi-services.com/blog/?p=35013</guid>

					<description><![CDATA[<p>Introduction I wrote this article to show how you can integrate Legacy OEM with your Cloud environment in this case Oracle ExaCC.To have overall view on your Exadata X9M Cloud Infrastructure, statistics related to CPU/Memory/ASM Storage usage. Your on premise monitoring OEM can read data from Oracle cloud using OCI libraries and present them in [&#8230;]</p>
<p>L’article <a href="https://www.dbi-services.com/blog/exacc-oci-integration-with-oem-13-5-cloud-control-installed-on-premises/">ExaCC OCI integration with OEM 13.5 Cloud Control installed On-premises.</a> est apparu en premier sur <a href="https://www.dbi-services.com/blog">dbi Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading" id="h-introduction">Introduction</h2>



<p>I wrote this article to show how you can integrate Legacy OEM with your Cloud environment in this case Oracle ExaCC.To have overall view on your Exadata X9M Cloud Infrastructure, statistics related to CPU/Memory/ASM Storage usage. Your on premise monitoring OEM can read data from Oracle cloud using OCI libraries and present them in combination with your standard DB/VMs target monitoring, this give you powerful tool for overall view on your Enterprise environment.</p>



<p>Since version OEM release update 13.5.0.23 of OMS / Agents. There is few new interesting Dashboards and panels related to OCI Exadata Infrastructure, also RU23&nbsp;introduces the Oracle Enterprise Manager Cloud Control Exadata Management Pack and Zero Data Loss Recovery Appliance (ZDLRA) Management Pack, some Dashboards, panels view below:</p>



<figure class="wp-block-image size-large"><a href="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/OEM4-1.png"><img fetchpriority="high" decoding="async" width="1024" height="597" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/OEM4-1-1024x597.png" alt="" class="wp-image-35140" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/OEM4-1-1024x597.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/OEM4-1-300x175.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/OEM4-1-768x447.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/OEM4-1-1536x895.png 1536w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/OEM4-1-2048x1193.png 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><a href="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/oem6.png"><img decoding="async" width="1024" height="609" data-id="35032" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/oem6-1024x609.png" alt="" class="wp-image-35032" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/oem6-1024x609.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/oem6-300x178.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/oem6-768x457.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/oem6-1536x914.png 1536w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/oem6-2048x1218.png 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<figure class="wp-block-image size-large"><a href="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/oem5.png"><img decoding="async" width="1024" height="625" data-id="35029" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/oem5-1024x625.png" alt="" class="wp-image-35029" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/oem5-1024x625.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/oem5-300x183.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/oem5-768x468.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/oem5-1536x937.png 1536w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/oem5-2048x1249.png 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<figure class="wp-block-image size-large"><a href="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/OEM3.png"><img loading="lazy" decoding="async" width="1024" height="657" data-id="35028" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/OEM3-1024x657.png" alt="" class="wp-image-35028" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/OEM3-1024x657.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/OEM3-300x192.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/OEM3-768x493.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/OEM3-1536x985.png 1536w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/OEM3-2048x1314.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="575" data-id="35149" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-36-1024x575.png" alt="" class="wp-image-35149" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-36-1024x575.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-36-300x168.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-36-768x431.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-36-1536x862.png 1536w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-36-2048x1149.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large"><a href="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/Screenshot_2024-10-04_at_11_07_00123123.png"><img loading="lazy" decoding="async" width="1024" height="445" data-id="35031" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/Screenshot_2024-10-04_at_11_07_00123123-1024x445.png" alt="" class="wp-image-35031" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/Screenshot_2024-10-04_at_11_07_00123123-1024x445.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/Screenshot_2024-10-04_at_11_07_00123123-300x130.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/Screenshot_2024-10-04_at_11_07_00123123-768x334.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/Screenshot_2024-10-04_at_11_07_00123123-1536x668.png 1536w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/Screenshot_2024-10-04_at_11_07_00123123-2048x891.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</figure>



<p>Biggest advantage of this integration is that you will have wider view to your cloud environment, Concept of ExaCC is that you see and have access to VMs and databases, hardware of Exadata Dbservers and Cellservers are normally managed by Oracle.</p>



<p>Adding this OCI integration to OEM give you viasability of physical cell servers and their statistics.</p>



<p>Now lets move on how this can be configured</p>



<h2 class="wp-block-heading" id="h-prerequisites">Prerequisites:</h2>



<ol class="wp-block-list">
<li>OEM OMS/Agents update to minimum 13.5.0.23 (AUG 07/2024), why? since this version there is OCI integration enhancements and new dashboards,management packs for ExaCC. I described this in another post link here: <strong><em> <a href="https://www.dbi-services.com/blog/oem-cloud-control-release-update-to-13-5-0-23/"> https://www.dbi-services.com/blog/oem-cloud-control-release-update-to-13-5-0-23</a></em></strong></li>



<li>Get your Exacli user/password to cellservers from your environment , in procedure I will describe how to do it</li>



<li>Have OCI client/libraries installed on one of Agents host.</li>



<li>Have access to OCI directly or over HTTPS proxy from Agent host.</li>
</ol>



<h2 class="wp-block-heading" id="h-step-by-step-procedure">Step by Step Procedure:</h2>



<h2 class="wp-block-heading" id="h-get-exacli-username-and-password-to-your-exacc-cellservers-this-step-is-optional-but-recommend-to-have-more-statistics-from-cell-servers">Get Exacli username and password to your ExaCC cellservers(this step is optional but recommend to have more statistics from cell servers. </h2>



<p>Login to one of yours Virtual Exadata vm server and check username and password for StorageCells.</p>



<p>username usually have format: cloud_user_&lt;crs_cluster_name&gt;</p>



<p>to get clustername and password  ,login as grid user end execute:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; title: ; notranslate">
&#x5B;grid@s***n1 ~]$ crsctl get cluster name; 
CRS-6724: Current cluster name is &#039;zh1234clua1&#039; 

#so in this case username will be cloud_user_zh1234clua1

#now get Exadata initial password
&#x5B;opc@s***n1 ~]$ sudo su - 
&#x5B;root@s***n1 ~]# /opt/exacloud/get_cs_data.py 
*** WARNING : deprecated key derivation used. 
Using -iter or -pbkdf2 would be better. 
ExaCli initial password is: 
 **************************** 


#Collect the storage server IP address from 
/etc/oracle/cell/network-config/cellip.ora on the VM Guest. 

#Test Connection to one of cell IP addresses 
#using exacli provide username and password gathered above 
exacli -l cloud_user_zh1234clua1 -c 100.100.0.13 -e list physicaldisk 
Password: **************************** 

#in output you should receive disk list from Storage cell , if not then means that your username or passwords are incorrect.

Save credentials for later.

</pre></div>


<h2 class="wp-block-heading" id="h-create-new-named-credentials-in-oem">Create new named credentials in OEM:</h2>



<p>Go to Setup &gt; Security &gt; Named Credentials and create new with user and passwords saved above:</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="979" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/oem_cred-1024x979.png" alt="" class="wp-image-35038" style="width:459px;height:auto" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/oem_cred-1024x979.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/oem_cred-300x287.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/oem_cred-768x734.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/oem_cred.png 1278w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Now we have connection between OEM and storage Cellservers.</p>



<h2 class="wp-block-heading" id="h-create-user-group-policy-for-monitoring-and-assign-proper-policy-s-in-oci">Create user/group/policy for monitoring and assign proper policy&#8217;s in OCI.</h2>



<p>Login to OCI and create new user,group and policys</p>



<p>Go to Identity &gt; Domains &gt; Groups and create new (use name which apply to your naming convention</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="686" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-2-1024x686.png" alt="" class="wp-image-35041" style="width:624px;height:auto" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-2-1024x686.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-2-300x201.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-2-768x515.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-2-1536x1029.png 1536w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-2-2048x1372.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Create New user and attache to Group created earler:</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="658" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-3-1024x658.png" alt="" class="wp-image-35042" style="width:607px;height:auto" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-3-1024x658.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-3-300x193.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-3-768x493.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-3-1536x987.png 1536w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-3-2048x1316.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Create API keys:</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="335" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-4-1024x335.png" alt="" class="wp-image-35043" style="width:552px;height:auto" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-4-1024x335.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-4-300x98.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-4-768x251.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-4-1536x502.png 1536w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-4-2048x669.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Copy OCI configuration config file and save ssh key.</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="815" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-5-1024x815.png" alt="" class="wp-image-35044" style="width:605px;height:auto" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-5-1024x815.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-5-300x239.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-5-768x611.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-5.png 1430w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p></p>



<p>Create new policy with 2 Statements (privileges to be able to read your compartment objects) like below:</p>



<p>Go to Identity &amp; Security &gt; Policies</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="634" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-1-1024x634.png" alt="" class="wp-image-35040" style="width:608px;height:auto" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-1-1024x634.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-1-300x186.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-1-768x476.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-1-1536x952.png 1536w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-1-2048x1269.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading" id="h-download-and-install-oci-client-on-your-server">Download and install OCI Client on your server.</h2>



<p>In our case, we installing OCI on OMS server and use EM Agent deployed to this machine. To use OCI API to connect and gather data from Oracle Cloud about our infrastructure using HTTPS_PROXY server.</p>



<p>To install OCI please follow official documentation, there are different options of installation and OS versions: <a href="https://docs.oracle.com/en-us/iaas/Content/API/SDKDocs/cliinstall.htm#InstallingCLI__oraclelinux8">https://docs.oracle.com/en-us/iaas/Content/API/SDKDocs/cliinstall.htm#InstallingCLI__oraclelinux8</a></p>



<p>In our case we installing OCI Cli as oracle user on Oracle Linux 8</p>



<p>First we set http/s proxy :</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; title: ; notranslate">
oracle@agent1:~/ export HTTPS_PROXY=http://proxy.proxy.com:3038 
oracle@agent1:~/ export HTTP_PROXY=http://proxy.proxy.com:3038 

</pre></div>


<p>Download newest OCI libraries :</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; title: ; notranslate">
oracle@agent1:~/# mkdir -p /u01/app/oracle/oci/
oracle@agent1:~/# cd  /u01/app/oracle/oci/
oracle@agent1:/u01/app/oracle/oci/# bash -c &quot;$(curl -L https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.sh)&quot; 

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current 
                                 Dload  Upload   Total   Spent    Left  Speed 
100 16926  100 16926    0     0   199k      0 --:--:-- --:--:-- --:--:--  199k 
    ****************************************************************************** 
    You have started the OCI CLI Installer in interactive mode. If you do not wish 
    to run this in interactive mode, please include the --accept-all-defaults option. 
    If you have the script locally and would like to know more about 
    input options for this script, then you can run: 
    ./install.sh -h 
    If you would like to know more about input options for this script, refer to: 
    https://github.com/oracle/oci-cli/blob/master/scripts/install/README.rst 
    ****************************************************************************** 
Downloading Oracle Cloud Infrastructure CLI install script from https://raw.githubusercontent.com/oracle/oci-cli/v3.2.1/scripts/install/install.py to /tmp/oci_cli_install_tmp_VwnM. 
######################################################################################################################################################################### 100.0% 
Running install script. 
python3 /tmp/oci_cli_install_tmp_VwnM 
-- Verifying Python version. 
-- Python version 3.6.8 okay. 
===&gt; In what directory would you like to place the install? (leave blank to use &#039;/home/oracle/lib/oracle-cli&#039;): 
-- Creating directory &#039;/home/oracle/lib/oracle-cli&#039;. 
-- We will install at &#039;/home/oracle/lib/oracle-cli&#039;. 
===&gt; In what directory would you like to place the &#039;oci&#039; executable? (leave blank to use &#039;/home/oracle/bin&#039;): 
-- Creating directory &#039;/home/oracle/bin&#039;. 
-- The executable will be in &#039;/home/oracle/bin&#039;. 
===&gt; In what directory would you like to place the OCI scripts? (leave blank to use &#039;/home/oracle/bin/oci-cli-scripts&#039;): 
-- Creating directory &#039;/home/oracle/bin/oci-cli-scripts&#039;. 
-- The scripts will be in &#039;/home/oracle/bin/oci-cli-scripts&#039;. 
===&gt; Currently supported optional packages are: &#x5B;&#039;db (will install cx_Oracle)&#039;] 
What optional CLI packages would you like to be installed (comma separated names; press enter if you don&#039;t need any optional packages)?: 
-- The optional packages installed will be &#039;&#039;. 
-- Trying to use python3 venv. 
-- Executing: &#x5B;&#039;/usr/bin/python3&#039;, &#039;-m&#039;, &#039;venv&#039;, &#039;/home/oracle/lib/oracle-cli&#039;] 
-- Executing: &#x5B;&#039;/home/oracle/lib/oracle-cli/bin/pip&#039;, &#039;install&#039;, &#039;--upgrade&#039;, &#039;pip&#039;] 
Collecting pip 
  Downloading https://files.pythonhosted.org/packages/a4/6d/6463d49a933f547439d6b5b98b46af8742cc03ae83543e4d7688c2420f8b/pip-21.3.1-py3-none-any.whl (1.7MB) 
    100% |████████████████████████████████| 1.7MB 847kB/s 
Installing collected packages: pip 
  Found existing installation: pip 9.0.3 
    Uninstalling pip-9.0.3: 
      Successfully uninstalled pip-9.0.3 
Successfully installed pip-21.3.1 
You are using pip version 21.3.1, however version 24.2 is available. 
You should consider upgrading via the &#039;pip install --upgrade pip&#039; command. 
-- Executing: &#x5B;&#039;/home/oracle/lib/oracle-cli/bin/pip&#039;, &#039;install&#039;, &#039;--cache-dir&#039;, &#039;/tmp/tmpk9na7c02&#039;, &#039;wheel&#039;, &#039;--upgrade&#039;] 
Collecting wheel 
  Downloading wheel-0.37.1-py2.py3-none-any.whl (35 kB) 
Installing collected packages: wheel 
Successfully installed wheel-0.37.1 
-- Executing: &#x5B;&#039;/home/oracle/lib/oracle-cli/bin/pip&#039;, &#039;install&#039;, &#039;--cache-dir&#039;, &#039;/tmp/tmpk9na7c02&#039;, &#039;oci_cli&#039;, &#039;--upgrade&#039;] 
Collecting oci_cli 
  Downloading oci_cli-3.48.0-py3-none-any.whl (50.7 MB) 
     |████████████████████████████████| 50.7 MB 2.6 MB/s 
Collecting jmespath==0.10.0 
  Downloading jmespath-0.10.0-py2.py3-none-any.whl (24 kB) 
Collecting prompt-toolkit==3.0.29 
  Downloading prompt_toolkit-3.0.29-py3-none-any.whl (381 kB) 
     |████████████████████████████████| 381 kB 51.8 MB/s 
Collecting arrow&gt;=1.0.0 
  Donloading arrow-1.2.3-py3-none-any.whl (66 kB) 
     |████████████████████████████████| 66 kB 14.0 MB/s 
Collecting PyYAML&lt;=6.0.1,&gt;=5.4 
  Downloading PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (677 kB) 
     |████████████████████████████████| 677 kB 47.5 MB/s 
Collecting oci==2.134.0 
  Downloading oci-2.134.0-py3-none-any.whl (27.9 MB) 
     |████████████████████████████████| 27.9 MB 96.5 MB/s 
Collecting terminaltables==3.1.10 
  Downloading terminaltables-3.1.10-py2.py3-none-any.whl (15 kB) 
Collecting certifi 
  Downloading certifi-2024.8.30-py3-none-any.whl (167 kB) 
     |████████████████████████████████| 167 kB 106.3 MB/s 
Collecting cryptography&lt;43.0.0,&gt;=3.2.1 
  Downloading cryptography-40.0.2-cp36-abi3-manylinux_2_28_x86_64.whl (3.7 MB) 
     |████████████████████████████████| 3.7 MB 25.3 MB/s 
Collecting six&gt;=1.15.0 
  Downloading six-1.16.0-py2.py3-none-any.whl (11 kB) 
Collecting pyOpenSSL&lt;25.0.0,&gt;=17.5.0 
  Downloading pyOpenSSL-23.2.0-py3-none-any.whl (59 kB) 
     |████████████████████████████████| 59 kB 18.3 MB/s 
Collecting python-dateutil&lt;3.0.0,&gt;=2.5.3 
  Downloading python_dateutil-2.9.0.post0-py2.py3-none-any.whl (229 kB) 
     |████████████████████████████████| 229 kB 61.2 MB/s 
Collecting pytz&gt;=2016.10 
  Downloading pytz-2024.2-py2.py3-none-any.whl (508 kB) 
     |████████████████████████████████| 508 kB 99.2 MB/s 
Collecting click==8.0.4 
  Downloading click-8.0.4-py3-none-any.whl (97 kB) 
     |████████████████████████████████| 97 kB 19.2 MB/s 
Collecting importlib-metadata 
  Downloading importlib_metadata-4.8.3-py3-none-any.whl (17 kB) 
Collecting circuitbreaker&lt;2.0.0,&gt;=1.3.1 
  Downloading circuitbreaker-1.4.0.tar.gz (9.7 kB) 
  Preparing metadata (setup.py) ... done 
Collecting wcwidth 
  Downloading wcwidth-0.2.13-py2.py3-none-any.whl (34 kB) 
Collecting typing-extensions 
  Downloading typing_extensions-4.1.1-py3-none-any.whl (26 kB) 
Collecting cffi&gt;=1.12 
  Downloading cffi-1.15.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl (402 kB) 
     |████████████████████████████████| 402 kB 30.7 MB/s 
Collecting pycparser 
  Downloading pycparser-2.21-py2.py3-none-any.whl (118 kB) 
     |████████████████████████████████| 118 kB 89.7 MB/s 
Collecting zipp&gt;=0.5 
  Downloading zipp-3.6.0-py3-none-any.whl (5.3 kB) 
Building wheels for collected packages: circuitbreaker 
  Building wheel for circuitbreaker (setup.py) ... done 
  Created wheel for circuitbreaker: filename=circuitbreaker-1.4.0-py3-none-any.whl size=7506 sha256=cd24462c8ab8bb71fba04fa996852c0cff6c93749f3a2c74591f3a1cbfa756ec 
  Stored in directory: /tmp/tmpk9na7c02/wheels/46/17/98/db2eb826e4a98da672cffe66ec16838182cde0cf19ad2c0c70 
Successfully built circuitbreaker 
Installing collected packages: pycparser, cffi, zipp, typing-extensions, six, cryptography, wcwidth, pytz, python-dateutil, pyOpenSSL, importlib-metadata, circuitbreaker, certifi, terminaltables, PyYAML, prompt-toolkit, oci, jmespath, click, arrow, oci-cli 
Successfully installed PyYAML-6.0.1 arrow-1.2.3 certifi-2024.8.30 cffi-1.15.1 circuitbreaker-1.4.0 click-8.0.4 cryptography-40.0.2 importlib-metadata-4.8.3 jmespath-0.10.0 oci-2.134.0 oci-cli-3.48.0 prompt-toolkit-3.0.29 pyOpenSSL-23.2.0 pycparser-2.21 python-dateutil-2.9.0.post0 pytz-2024.2 six-1.16.0 terminaltables-3.1.10 typing-extensions-4.1.1 wcwidth-0.2.13 zipp-3.6.0 

===&gt; Modify profile to update your $PATH and enable shell/tab completion now? (Y/n): n 

-- If you change your mind, add &#039;source /home/oracle/lib/oracle-cli/lib/python3.6/site-packages/oci_cli/bin/oci_autocomplete.sh&#039; to your rc file and restart your shell to enable tab completion. 

-- You can run the CLI with &#039;/home/oracle/bin/oci&#039;. 

-- Installation successful. 

-- Run the CLI with /home/oracle/bin/oci --help 

</pre></div>


<p>Configure credenials to OCI user and copy API private key to host:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; title: ; notranslate">
oracle@agent1:~/# vi .oci/config 
&#x5B;DEFAULT] 
user=ocid1.user.ooracle@agent1:~/#
fingerprint=.*********************************
tenancy=ocid1.tenancy..*********************************
region=eu-zurich-1 
key_file=/home/oracle/.oci/oem_ro.pem 

 
#Create private key you can copy or create by copy/past with vi
oracle@agent1:~/# vi /home/oracle/.oci/oem_ro.pem 
 -----BEGIN PRIVATE KEY----- 
*** 
*** 
*** 
*** 
*** 
-----END PRIVATE KEY----- 

# Test your connection and gather some info for example compartment list
oracle@agent1:~/#  oci iam compartment list
{ 
  &quot;data&quot;: &#x5B; 
    { 
      &quot;compartment-id&quot;: &quot;ocid1.tenancy.oc1..*********************************&quot;, 
      &quot;defined-tags&quot;: { 
        &quot;Oracle-Tags&quot;: { 
          &quot;CreatedBy&quot;: &quot;*********************************@*********************************.com&quot;, 
          &quot;CreatedOn&quot;: &quot;2023-06-15T15:28:03.408Z&quot; 
        } 
      }, 
      &quot;description&quot;: &quot;Exadata Cloud@Customer database service&quot;, 
      &quot;freeform-tags&quot;: {}, 
      &quot;id&quot;: &quot;ocid1.compartment.o*********************************&quot;, 
      &quot;inactive-status&quot;: null, 
      &quot;is-accessible&quot;: null, 
      &quot;lifecycle-state&quot;: &quot;ACTIVE&quot;, 
      &quot;name&quot;: &quot;ExaCC*********************************&quot;, 
      &quot;time-created&quot;: &quot;2023-06-15T15:28:03.545000+00:00&quot; 
    } 
  ] 
} 
</pre></div>


<p>Set https proxy for your OEM agent (which later will be used to communicate with OCI)</p>



<p>edit <code>emd.properties</code> and add on the end 2 extra parameters. </p>



<p><code>oci_http_proxy_host=</code></p>



<p><code>oci_http_proxy_port=</code></p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: bash; title: ; notranslate">
#Configure proxy on your agent installation folder: 

oracle@agent1:~/#  vi/u01/app/oracle/agent/agent_inst/sysman/config/emd.properties
oci_http_proxy_host=proxy.proxy.com 
oci_http_proxy_port=3038 

#Restart Agent
oracle@agent1:~/# emctl stop agent 
Oracle Enterprise Manager Cloud Control 13c Release 5 
Copyright (c) 1996, 2021 Oracle Corporation.  All rights reserved. 
Stopping agent ... stopped. 

oracle@agent1:~/#  &#x5B;emagent1350] emctl start agent 
Oracle Enterprise Manager Cloud Control 13c Release 5 
Copyright (c) 1996, 2021 Oracle Corporation.  All rights reserved. 
Starting agent ........... started. 
</pre></div>


<h2 class="wp-block-heading" id="h-configure-named-credentials-in-oem-for-oci">Configure named credentials in OEM for OCI :</h2>



<p>Go to Setup &gt; Security &gt; Named Credentials Click Create tab and create credentials using keys and OCI tenants keys copied from config or credentials:</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" width="981" height="1024" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-8-981x1024.png" alt="" class="wp-image-35064" style="width:497px;height:auto" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-8-981x1024.png 981w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-8-287x300.png 287w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-8-768x802.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-8-1471x1536.png 1471w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-8.png 1586w" sizes="auto, (max-width: 981px) 100vw, 981px" /></figure>



<p>next you can test it choice agent on which we installed oci and configure proxy. </p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="826" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-6-1024x826.png" alt="" class="wp-image-35062" style="width:402px;height:auto" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-6-1024x826.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-6-300x242.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-6-768x619.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-6.png 1064w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p></p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="554" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-7-1024x554.png" alt="" class="wp-image-35063" style="width:310px;height:auto" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-7-1024x554.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-7-300x162.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-7-768x415.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-7.png 1294w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p></p>



<p></p>



<h2 class="wp-block-heading" id="h-deploy-exadata-plugins-on-agents">Deploy Exadata plugins on Agents:</h2>



<p>Go to Setup &gt; Extensibility &gt; Plug-ins</p>



<p>Choice: </p>



<p>Engineered Systems &gt; Oracle Exadata<br></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="638" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-10-1024x638.png" alt="" class="wp-image-35066" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-10-1024x638.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-10-300x187.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-10-768x478.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-10-1536x956.png 1536w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-10-2048x1275.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Click Deploy on and choice targets you wanna deploy it:</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="728" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-12-1024x728.png" alt="" class="wp-image-35068" style="width:511px;height:auto" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-12-1024x728.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-12-300x213.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-12-768x546.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-12-1536x1092.png 1536w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-12.png 1638w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Follow logs to check if deployment successful :</p>



<h2 class="wp-block-heading" id="h-discovering-exacc-targets">Discovering ExaCC targets</h2>



<p>Now we have all prerequisites configured and tested so we can discover our ExaCC :</p>



<p>Go to &gt; Setup &gt; Add Target &gt; Add Target Manually &gt; Add Using Guided Process</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="825" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-13-1024x825.png" alt="" class="wp-image-35069" style="width:522px;height:auto" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-13-1024x825.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-13-300x242.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-13-768x619.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-13.png 1308w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="706" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-14-1024x706.png" alt="" class="wp-image-35070" style="width:504px;height:auto" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-14-1024x706.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-14-300x207.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-14-768x529.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-14.png 1294w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="711" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-15-1024x711.png" alt="" class="wp-image-35071" style="width:626px;height:auto" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-15-1024x711.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-15-300x208.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-15-768x533.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-15.png 1336w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="623" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-16-1024x623.png" alt="" class="wp-image-35072" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-16-1024x623.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-16-300x182.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-16-768x467.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-16.png 1322w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Choice target ExaCC infrastructure you wanna add to OEM , you can Also specify ExaCLI credentials to monitor Cellservers and ASMs (optional) We gather this credentials earlier in this tutorial.</p>



<p>Now you can Click next and Promote , and watch status of Target Promotions.</p>



<p>Please also turn on management packs for ExaCC</p>



<p>Go to Setup &gt; Management Pack &gt; Management Pack Access &gt;</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="374" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-27-1024x374.png" alt="" class="wp-image-35113" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-27-1024x374.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-27-300x110.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-27-768x281.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-27-1536x561.png 1536w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-27-2048x748.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>After Promotion finish you should have new entry in Target tab:<br></p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="528" height="716" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-17.png" alt="" class="wp-image-35073" style="width:226px;height:auto" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-17.png 528w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-17-221x300.png 221w" sizes="auto, (max-width: 528px) 100vw, 528px" /></figure>



<p>and Few minutes later you should also see your Oracle Cloud ExaCC infrastructure with all VMs and Databases. </p>



<p><br></p>



<figure class="wp-block-image size-large"><a href="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-18.png"><img loading="lazy" decoding="async" width="1024" height="631" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-18-1024x631.png" alt="" class="wp-image-35074" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-18-1024x631.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-18-300x185.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-18-768x473.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-18-1536x946.png 1536w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-18-2048x1261.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<p>You can go to each Exadata Cluster and see more details, also to ASM Grid Infrastructure:</p>



<figure class="wp-block-image size-large"><a href="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-19.png"><img loading="lazy" decoding="async" width="1024" height="726" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-19-1024x726.png" alt="" class="wp-image-35075" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-19-1024x726.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-19-300x213.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-19-768x544.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-19-1536x1089.png 1536w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-19-2048x1452.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<p>Cell Statistics:</p>



<figure class="wp-block-image size-large"><a href="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-20.png"><img loading="lazy" decoding="async" width="1024" height="603" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-20-1024x603.png" alt="" class="wp-image-35076" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-20-1024x603.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-20-300x177.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-20-768x452.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-20-1536x905.png 1536w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-20-2048x1206.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<p>Please wait for some metrics and statistics some of them need up to 24h to be gathered.</p>



<p>One more interesting functionality of this integration is that there are new Dashboards</p>



<p>For Example Exadata Fleet Aggregated Capacity , Configuration , etc. </p>



<figure class="wp-block-image size-large"><a href="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-23.png"><img loading="lazy" decoding="async" width="1024" height="753" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-23-1024x753.png" alt="" class="wp-image-35086" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-23-1024x753.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-23-300x220.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-23-768x564.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-23-1536x1129.png 1536w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2024/10/image-23-2048x1505.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<p>They can help you with overall look and capacity planning for future, you can see your total storage, memory current usage and historical values so you can predict growing trend in future.</p>



<p>I hope you enjoy this tutorial and already plan your ExaCC integration 😉</p>
<p>L’article <a href="https://www.dbi-services.com/blog/exacc-oci-integration-with-oem-13-5-cloud-control-installed-on-premises/">ExaCC OCI integration with OEM 13.5 Cloud Control installed On-premises.</a> est apparu en premier sur <a href="https://www.dbi-services.com/blog">dbi Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dbi-services.com/blog/exacc-oci-integration-with-oem-13-5-cloud-control-installed-on-premises/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Why you should consider keeping your ODA more than 5 years</title>
		<link>https://www.dbi-services.com/blog/why-you-should-consider-keeping-your-oda-more-than-5-years/</link>
					<comments>https://www.dbi-services.com/blog/why-you-should-consider-keeping-your-oda-more-than-5-years/#respond</comments>
		
		<dc:creator><![CDATA[Jérôme Dubar]]></dc:creator>
		<pubDate>Thu, 09 Mar 2023 16:03:34 +0000</pubDate>
				<category><![CDATA[Hardware & Storage]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[durable]]></category>
		<category><![CDATA[how many years]]></category>
		<category><![CDATA[keep you oda]]></category>
		<category><![CDATA[lifetime]]></category>
		<category><![CDATA[ODA]]></category>
		<category><![CDATA[X6-2]]></category>
		<category><![CDATA[x7-2]]></category>
		<category><![CDATA[x8-2]]></category>
		<category><![CDATA[x9-2]]></category>
		<category><![CDATA[years]]></category>
		<guid isPermaLink="false">https://www.dbi-services.com/blog/?p=23255</guid>

					<description><![CDATA[<p>ODA is a long-lifetime platform!</p>
<p>L’article <a href="https://www.dbi-services.com/blog/why-you-should-consider-keeping-your-oda-more-than-5-years/">Why you should consider keeping your ODA more than 5 years</a> est apparu en premier sur <a href="https://www.dbi-services.com/blog">dbi Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">Introduction</h2>



<p>Oracle Database Appliance is a great piece of hardware: a vast majority of customers running on ODAs choose again ODAs when it&#8217;s time to renew their infrastructure. For sure, with Cloud strategies spreading around, on-premises solutions now have a serious challenger. But Cloud is not yet for all companies, and servers are still bought by customers for on-prem needs.</p>



<h2 class="wp-block-heading">What&#8217;s special with ODA?</h2>



<p>You may expect that ODA is something really special. You&#8217;re wrong. ODA&#8217;s hardware is not much different than what&#8217;s inside a classic server. And ODA is a sort of classic server because it&#8217;s nothing else than an x86_64 server from the Oracle Servers&#8217; lineup. At the very beginning of the ODA history, ODAs were labelled &#8220;SunServer x86&#8221;, and you got a sticker in the box to put on the front panel with the correct &#8220;ODA X3-2&#8221; naming. So you may think that the price difference is for the sticker only, but actually it&#8217;s much more than that. What makes ODA so special is the dedicated software bundle. 95% of the software suite on the ODA is composed of the same pieces of software you would use on a normal Linux box, but it&#8217;s driven by a unique and dedicated CLI (odacli). Since X6-2, this CLI is also available as a GUI (or BUI) through your browser for a more user-friendly experience. With this CLI or this BUI, you will manage everything: the appliance provisioning, DB homes and databases creation/deletion, patching, managing the VMs, configuring the backups, aso. And you will do all these operations much faster than you would do on a classic infrastructure. The CLI from the first ODAs was very basic, the CLI from nowadays packs a lot of features and becomes more and more clever across the time. As this CLI is bundled with the patch, all customers and all ODAs will benefit from newest features after patching.</p>



<h2 class="wp-block-heading">Hardware reliability</h2>



<p>Reliability is something that has greatly improved these past years, on ODA and also globally. For sure, some components may fail when the server will get older, but it&#8217;s mostly disks, memory modules and PSUs: these components being redundant, your databases won&#8217;t stop in case of a failure. And as your ODA will probably be covered by the hardware support from the vendor, you will receive a replacement module as soon as a failure is predicted or detected. There is virtually no lifetime limit on an ODA as soon as the few components that may failed get replaced. Furthermore, reliability of SSDs seems better than reliability of HDDs. Despite having lower write cycles number, not having moving parts also means less wear as a result.</p>



<h2 class="wp-block-heading">Software availability</h2>



<p>When you look at the latest 19.18 patch for ODA, you will see that ODA X5-2 is still among the supported models. It means that you can still patch or do a fresh setup with 19c on top of this 8-year old server. This is something we&#8217;ve already tested at dbi services, as we have this kind of old ODA in our lab.</p>



<p>If you have a look at what happened before X5-2, ODA X4-2 was supported until 2020 and has been released in 2013. 7 years of software update is the average I&#8217;ve noticed working with ODA since years.</p>



<h2 class="wp-block-heading">Disaster Recovery capabilities</h2>



<p>Disaster Recovery is achieved through Data Guard for Enterprise Edition, and Dbvisit Standby for Standard Edition 2 (most of the time). ODA projects planned without considering a DR setup became very rare. It means that your databases are not tied with a single server anymore. Most of the critical databases can (and should) move to another server within minutes, meaning that if a datacenter or a serious hardware failure occurs, you just need to failover each database and everything is back to normal. Therefore, having a rather old server is not so critical nowadays. And this is the same for all kind of hardware.</p>



<h2 class="wp-block-heading">Increasing cost of hardware</h2>



<p>Oracle software technologies are not cheap as you know, and it&#8217;s the same for hardware. Furthermore, price of ODAs increased during these past months, like many other things. Value of an ODA is still great, because you will need less days to deploy and to maintain this kind of platform. But you may need to justify your investment even more than before. If you plan to keep these appliances 1 or 2 more year(s), it will probably ease making this investment.</p>



<h2 class="wp-block-heading">Environmental considerations</h2>



<p>Last but not least. Apart from customers coming from older disk-based ODAs (until X5-2 &#8211; most of the ODAs are now SSD-only), performance improvement across ODA generation is quite moderate. Since X6-2, performance is not the main reason for moving to new hardware. According to my experience, most common reasons are: reaching the planned lifetime according to customers&#8217; standards, end of planned hardware support and no will to renew it, and disk capacity almost reached. Keeping your ODAs 7 years instead of 5 years simply means 30% less hardware wastage and can also justify a bigger disk capacity when ordering (defining accurate disk capacity requirements is quite tough for 5 years and beyond).</p>



<h2 class="wp-block-heading">Conclusion</h2>



<p>Please consider ODA as a long-lifetime platform. It definitely helps your company affording this kind of investment. And it also helps choosing a more comfortable disk setup and limiting your CO2 emission with lower pace hardware renewal.</p>
<p>L’article <a href="https://www.dbi-services.com/blog/why-you-should-consider-keeping-your-oda-more-than-5-years/">Why you should consider keeping your ODA more than 5 years</a> est apparu en premier sur <a href="https://www.dbi-services.com/blog">dbi Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dbi-services.com/blog/why-you-should-consider-keeping-your-oda-more-than-5-years/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ODA version 19.17 is available: how to patch?</title>
		<link>https://www.dbi-services.com/blog/oda-version-19-17-is-available-how-to-patch/</link>
					<comments>https://www.dbi-services.com/blog/oda-version-19-17-is-available-how-to-patch/#comments</comments>
		
		<dc:creator><![CDATA[Jérôme Dubar]]></dc:creator>
		<pubDate>Fri, 02 Dec 2022 17:45:01 +0000</pubDate>
				<category><![CDATA[Hardware & Storage]]></category>
		<category><![CDATA[Operating systems]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[19.17]]></category>
		<category><![CDATA[DCS-10001:Internal error encountered: Cannot find the corresponding image for odacli-dcs-19.17.0.0.0-221029-GI-19.17.0.0.zip in img_metadata]]></category>
		<category><![CDATA[how to patch oracle database appliance]]></category>
		<category><![CDATA[New Features]]></category>
		<category><![CDATA[ODA]]></category>
		<category><![CDATA[Oracle database appliance]]></category>
		<category><![CDATA[patch]]></category>
		<category><![CDATA[patching oracle database appliance]]></category>
		<category><![CDATA[update-server]]></category>
		<category><![CDATA[X6]]></category>
		<category><![CDATA[X7]]></category>
		<category><![CDATA[X7-2HA]]></category>
		<category><![CDATA[X7-2M]]></category>
		<category><![CDATA[X7-2S]]></category>
		<category><![CDATA[X8]]></category>
		<category><![CDATA[x8-2ha]]></category>
		<category><![CDATA[x8-2m]]></category>
		<category><![CDATA[x8-2s]]></category>
		<category><![CDATA[X9]]></category>
		<category><![CDATA[X9-2HA]]></category>
		<category><![CDATA[X9-2L]]></category>
		<category><![CDATA[X9-2S]]></category>
		<guid isPermaLink="false">https://www.dbi-services.com/blog/?p=20908</guid>

					<description><![CDATA[<p>How to patch your ODA to 19.17</p>
<p>L’article <a href="https://www.dbi-services.com/blog/oda-version-19-17-is-available-how-to-patch/">ODA version 19.17 is available: how to patch?</a> est apparu en premier sur <a href="https://www.dbi-services.com/blog">dbi Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">Introduction</h2>



<p>Patch 19.17 is now available on Oracle Database Appliance. It&#8217;s time to test it.</p>



<h2 class="wp-block-heading">What&#8217;s new?</h2>



<p>This version brings latest PSUs to database and grid homes with their bug fixes, as usual. It also brings latest 21.8 databases but as DB Systems only, 21c being an innovation release. There are not that many new features and it&#8217;s not bad. No major OS upgrade, no breaking new feature, no big changes. At some points, most of us prefer stability and easy-to-apply patches.</p>



<p>The only new features I&#8217;ve read from the release note are:</p>



<ul class="wp-block-list">
<li>Error correlation in the Browser User Interface (BUI), making a kind of crosscheck between odacli errors and log files from the various components. As you may know, odacli is just an interface on top of classic OS and Oracle tools, and it&#8217;s sometimes tough to find the log which refer to the error</li>



<li>Database patching can now be done at the database level, and not only at the DB home level, with oracle update-database</li>



<li>Enhanced patching when using Data Guard to limit downtime: I&#8217;m not so sure it will change something as it&#8217;s convenient to switch all the databases prior starting to patch</li>
</ul>



<h2 class="wp-block-heading">Which ODA is compatible with this 19.17?</h2>



<p>The new ODAs X9-2S/L/HA and for sure X8, X7 and X6 series. X5-2HA is still on the compatibility list, so you can keep this old appliance up-to-date.</p>



<h2 class="wp-block-heading">Is this patch a cumulative one?</h2>



<p>This 19.17 can be applied on top of 19.13 or later. I just applied this new patch on an X7-2M running on 19.9 using 19.13 as an intermediate version.</p>



<h2 class="wp-block-heading">Is there also a patch for my databases?</h2>



<p>Only databases version 19c are now supported, and this is OK because this is the only one you should use now. Good bye 12.1. You may use Data Preserving Reprovisioning if you come from a very old version (&lt;=18.8) and want to keep your 11g or 18c for example. I wrote a <a href="https://www.dbi-services.com/blog/oda-how-to-use-data-preserving-reprovisioning/" target="_blank" rel="noreferrer noopener">blog post on this feature</a> a few months ago.</p>



<p>It&#8217;s not in the new feature list but it seems that it&#8217;s now possible to register an old DB clone without any problem. But I would recommend to only use 19c with this patch version. Using old databases is not supported, may not work properly with odacli, and you should be aware that 11g and 12cR1 are over now.</p>



<h2 class="wp-block-heading">Download the patch and clone files</h2>



<p>Download the patch and the corresponding clones to be able to apply the complete patch.</p>



<p>34753059 =&gt; the patch itself<br>30403673 =&gt; the GI clone needed for deploying newer GI version (mandatory)<br>30403662 =&gt; the DB clone for deploying new version of 19c</p>



<p>You don&#8217;t need the ISO file for patching, but I would recommend to download it (patch 30403643).</p>



<p>Be sure to choose the very latest 19.17 when downloading the clones, download link will first propose older versions.</p>



<h2 class="wp-block-heading">Prepare the patching</h2>



<p>Before running prepatch, please check these prerequisites:</p>



<ul class="wp-block-list">
<li>filesystems have 20% available free space (does not concern acfs volumes)</li>



<li>additional rpms manually installed should be removed</li>



<li>revert profile scripts to default&#8217;s one (for grid and oracle users)</li>



<li>make sure you planned a generous downtime, 4 hours being the bare minimum for patching and troubleshooting. 1 day is never too much.</li>
</ul>



<p>You should use odabr to make snapshots of the important filesystems prior patching. It&#8217;s fast and doesn&#8217;t cost anything. I would also recommend doing a backup of most important files: tnsnames.ora and listener.ora, database list, network configuration files, aso.</p>



<h2 class="wp-block-heading">Version precheck</h2>



<p>Start to check current version on all components:</p>



<pre class="wp-block-code"><code><strong>odacli describe-component | grep -v ^$</strong>
System Version
---------------
19.13.0.0.0
System node Name
---------------
uns-oda2
Local System Version
---------------
19.13.0.0.0
Component                                Installed Version    Available Version
---------------------------------------- -------------------- --------------------
OAK                                       19.13.0.0.0           up-to-date
GI                                        19.13.0.0.211019      up-to-date
DB {
&#091; OraDB19000_home3,OraDB19000_home4 ]     19.13.0.0.211019      up-to-date
}
DCSCONTROLLER                             19.13.0.0.0           up-to-date
DCSCLI                                    19.13.0.0.0           up-to-date
DCSAGENT                                  19.13.0.0.0           up-to-date
DCSADMIN                                  19.13.0.0.0           up-to-date
OS                                        7.9                   up-to-date
ILOM                                      5.0.2.24.r141466      up-to-date
BIOS                                      41100500              up-to-date
SHARED CONTROLLER FIRMWARE                QDV1RF32              up-to-date
LOCAL DISK FIRMWARE                       0121                  up-to-date
SHARED DISK FIRMWARE                      0121                  up-to-date
HMP                                       2.4.8.0.600           up-to-date
</code></pre>



<p>Once the patch will be registered in the ODA repository, the &#8220;Available Version&#8221; column will be updated with versions provided within the patch.</p>



<h2 class="wp-block-heading">Prepararing the patch and updating the DCS tools</h2>



<p>Copy the patch files on your ODA in a temp directory. On ODA X9-2 system disks are now smaller, so don&#8217;t hesitate to put the file on an nfs share or in the FRA acfs volume if you have acfs configured for your databases. Then unzip the files:</p>



<pre class="wp-block-code"><code><strong>cd /u03/app/oracle
unzip -o p30403662_1917000_Linux-x86-64.zip  
unzip -o p30403673_1917000_Linux-x86-64.zip  
unzip -o p34753059_1917000_Linux-x86-64.zip</strong></code></pre>



<p>I first tried to register both patch and GI, but coming from 19.13 it doesn&#8217;t work:</p>



<pre class="wp-block-code"><code><strong>odacli update-repository -f /u03/app/oracle/oda-sm-19.17.0.0.0-221126.1-server.zip,/u03/app/oracle/odacli-dcs-19.17.0.0.0-221029-GI-19.17.0.0.zip</strong>

DCS-10001:Internal error encountered: Cannot find the corresponding image for /u03/app/oracle/odacli-dcs-19.17.0.0.0-221029-GI-19.17.0.0.zip in img_metadata.
</code></pre>



<p>It will work if you come from a newer version, from 19.16 for example.</p>



<p>But it&#8217;s not a problem as you can first register the patch only, update the DCS components and then register the GI clone:</p>



<pre class="wp-block-code"><code><strong>odacli update-repository -f /u03/app/oracle/oda-sm-19.17.0.0.0-221126.1-server.zip
odacli describe-job -i "dbacdf31-405f-4f08-acf2-21d78b66945a"</strong>

Job details
----------------------------------------------------------------
                     ID:  dbacdf31-405f-4f08-acf2-21d78b66945a
            Description:  Repository Update
                 Status:  Success
                Created:  December 2, 2022 9:55:39 AM CET
                Message:  /u03/app/oracle/oda-sm-19.17.0.0.0-221126.1-server.zip

Task Name                                Start Time                          End Time                            Status
---------------------------------------- ----------------------------------- ----------------------------------- ----------
Unzip bundle                             December 2, 2022 9:55:40 AM CET     December 2, 2022 9:56:09 AM CET     Success

<strong>odacli describe-component | grep -v ^$ 
</strong>System Version
---------------
19.13.0.0.0
System node Name
---------------
uns-oda2
Local System Version
---------------
19.13.0.0.0
Component                                Installed Version    Available Version
---------------------------------------- -------------------- --------------------
OAK                                       19.13.0.0.0           19.17.0.0.0
GI                                        19.13.0.0.211019      19.17.0.0.221018
DB {
&#091; OraDB19000_home3,OraDB19000_home4 ]     19.13.0.0.211019      19.17.0.0.221018
}
DCSCONTROLLER                             19.13.0.0.0           19.17.0.0.0
DCSCLI                                    19.13.0.0.0           19.17.0.0.0
DCSAGENT                                  19.13.0.0.0           19.17.0.0.0
DCSADMIN                                  19.13.0.0.0           19.17.0.0.0
OS                                        7.9                   up-to-date
ILOM                                      5.0.2.24.r141466      5.1.0.23.r146986
BIOS                                      41100500              41120100
SHARED CONTROLLER FIRMWARE                QDV1RF32              QDV1RF35
LOCAL DISK FIRMWARE                       0121                  not-available
SHARED DISK FIRMWARE                      0121                  not-available
HMP                                       2.4.8.0.600           2.4.8.9.603</code></pre>



<p>Patching from 19.13 will normally be easy as there are not that many changes.</p>



<pre class="wp-block-code"><code><strong>odacli update-dcsadmin -v 19.17.0.0.0</strong>
<strong>sleep 60; odacli describe-job -i "1b7ddd74-6108-4480-8584-251932476f44"
</strong>Job details
----------------------------------------------------------------
                     ID:  1b7ddd74-6108-4480-8584-251932476f44
            Description:  DcsAdmin patching
                 Status:  Success
                Created:  December 2, 2022 9:57:42 AM CET
                Message:

Task Name                                Start Time                          End Time                            Status
---------------------------------------- ----------------------------------- ----------------------------------- ----------
Patch location validation                December 2, 2022 9:57:42 AM CET     December 2, 2022 9:57:42 AM CET     Success
dcs-admin upgrade                        December 2, 2022 9:57:42 AM CET     December 2, 2022 9:57:49 AM CET     Success

 
<strong>odacli update-dcscomponents -v 19.17.0.0.0
</strong><em>This job is interactive
</em>{
  "jobId" : "c3ed2039-82b4-45a4-b7d4-813da9b2aa1a",
  "status" : "Success",
  "message" : "Update-dcscomponents is successful on all the node(s):DCS-Agent shutdown is successful. MySQL upgrade is successful. Metadata migration is done before. Metadata schema update is done. dcsagent RPM upgrade is successful.  dcscli RPM upgrade is successful.  dcscontroller RPM upgrade is successful.  Successfully ran setupAgentAuth.sh zookeeper RPM upgrade is successful.  ",
  "reports" : null,
  "createTimestamp" : "December 02, 2022 10:03:37 AM CET",
  "description" : "Update-dcscomponents job completed and is not part of Agent job list",
  "updatedTime" : "December 02, 2022 10:05:16 AM CET"
}

<strong>odacli update-dcsagent -v 19.17.0.0.0
</strong>sleep 180; odacli describe-job -i "716a8259-1404-454e-90fb-cf59c14921d7"
Job details
----------------------------------------------------------------
                     ID:  716a8259-1404-454e-90fb-cf59c14921d7
            Description:  DcsAgent patching
                 Status:  Success
                Created:  December 2, 2022 10:06:21 AM CET
                Message:

Task Name                                Start Time                          End Time                            Status
---------------------------------------- ----------------------------------- ----------------------------------- ----------
Stop DCS Admin                           December 2, 2022 10:06:22 AM CET    December 2, 2022 10:06:22 AM CET    Success
Generate mTLS certificates               December 2, 2022 10:06:22 AM CET    December 2, 2022 10:06:23 AM CET    Success
Exporting Public Keys                    December 2, 2022 10:06:23 AM CET    December 2, 2022 10:06:24 AM CET    Success
Creating Trust Store                     December 2, 2022 10:06:24 AM CET    December 2, 2022 10:06:26 AM CET    Success
Update config files                      December 2, 2022 10:06:26 AM CET    December 2, 2022 10:06:26 AM CET    Success
Restart DCS Admin                        December 2, 2022 10:06:26 AM CET    December 2, 2022 10:06:46 AM CET    Success
Dcs-agent upgrade  to version 19.17.0.0.0 December 2, 2022 10:06:46 AM CET    December 2, 2022 10:07:58 AM CET    Success
Update System version                    December 2, 2022 10:07:58 AM CET    December 2, 2022 10:07:58 AM CET    Success

<strong>odacli update-repository -f /u03/app/oracle/odacli-dcs-19.17.0.0.0-221029-GI-19.17.0.0.zip
sleep 60; odacli describe-job -i "4f81cf82-fed7-47a0-a6c3-69d3f9193e65"
</strong>
Job details
----------------------------------------------------------------
                     ID:  4f81cf82-fed7-47a0-a6c3-69d3f9193e65
            Description:  Repository Update
                 Status:  Success
                Created:  December 2, 2022 10:09:44 AM CET
                Message:  /u03/app/oracle/odacli-dcs-19.17.0.0.0-221029-GI-19.17.0.0.zip

Task Name                                Start Time                          End Time                            Status
---------------------------------------- ----------------------------------- ----------------------------------- ----------
Unzip bundle                             December 2, 2022 10:09:45 AM CET    December 2, 2022 10:10:21 AM CET    Success
</code></pre>



<h2 class="wp-block-heading">Prepatching report</h2>



<p>Let&#8217;s do the prepatching test:</p>



<pre class="wp-block-code"><code><strong>odacli create-prepatchreport -s -v 19.17.0.0.0
sleep 600 ; odacli describe-prepatchreport -i bb50b38f-55be-424a-bdf9-7d70206a61e1
</strong>
Patch pre-check report
------------------------------------------------------------------------
                 Job ID:  bb50b38f-55be-424a-bdf9-7d70206a61e1
            Description:  Patch pre-checks for &#091;OS, ILOM, GI, ORACHKSERVER, SERVER]
                 Status:  FAILED
                Created:  December 2, 2022 10:12:55 AM CET
                 Result:  One or more pre-checks failed for &#091;GI]

Node Name
---------------
uns-oda2

Pre-Check                      Status   Comments
------------------------------ -------- --------------------------------------
__OS__
Validate supported versions     Success   Validated minimum supported versions.
Validate patching tag           Success   Validated patching tag: 19.17.0.0.0.
Is patch location available     Success   Patch location is available.
Verify OS patch                 Success   Verified OS patch
Validate command execution      Success   Validated command execution

__ILOM__
Validate ILOM server reachable  Success   Successfully connected with ILOM
                                          server using public IP and USB
                                          interconnect
Validate supported versions     Success   Validated minimum supported versions.
Validate patching tag           Success   Validated patching tag: 19.17.0.0.0.
 
Is patch location available     Success   Patch location is available.
Checking Ilom patch Version     Success   Successfully verified the versions
Patch location validation       Success   Successfully validated location
Validate command execution      Success   Validated command execution

__GI__
Validate GI metadata            Success   Successfully validated GI metadata
Validate supported GI versions  Success   Validated minimum supported versions.
Validate available space        Success   Validated free space under /u01
Is clusterware running          Success   Clusterware is running
Validate patching tag           Success   Validated patching tag: 19.17.0.0.0.
Is system provisioned           Success   Verified system is provisioned
Validate ASM in online          Success   ASM is online
Validate kernel log level       Success   Successfully validated the OS log
                                          level
Validate minimum agent version  Success   GI patching enabled in current
                                          DCSAGENT version
Validate Central Inventory      Success   oraInventory validation passed
Validate patching locks         Failed    Lock on central inventory detected:
                                          /u01/app/oraInventory/locks
Validate clones location exist  Success   Validated clones location
Validate DB start dependencies  Success   DBs START dependency check passed
Validate DB stop dependencies   Success   DBs STOP dependency check passed
Validate space for clones       Success   Clones volume is already created
volume
Evaluate GI patching            Success   Successfully validated GI patching
Validate command execution      Success   Validated command execution

__ORACHK__
Running orachk                  Success   Successfully ran Orachk
Validate command execution      Success   Validated command execution

__SERVER__
Validate local patching         Success   Successfully validated server local
                                          patching
Validate command execution      Success   Validated command execution</code></pre>



<p>On my configuration it didn&#8217;t work but this failure is a known issue:</p>



<pre class="wp-block-code"><code><strong>rm -rf /u01/app/oraInventory/locks
</strong>
<strong>odacli create-prepatchreport -s -v 19.17.0.0.0
sleep 600 ; odacli describe-prepatchreport -i d334c952-7bd8-4dc1-bf44-ee9247f7acc2
</strong>
Patch pre-check report
------------------------------------------------------------------------
                 Job ID:  d334c952-7bd8-4dc1-bf44-ee9247f7acc2
            Description:  Patch pre-checks for &#091;OS, ILOM, GI, ORACHKSERVER, SERVER]
                 Status:  SUCCESS
                Created:  December 2, 2022 10:23:01 AM CET
                 Result:  All pre-checks succeeded

Node Name
---------------
uns-oda2

Pre-Check                      Status   Comments
------------------------------ -------- --------------------------------------
__OS__
Validate supported versions     Success   Validated minimum supported versions.
Validate patching tag           Success   Validated patching tag: 19.17.0.0.0.
Is patch location available     Success   Patch location is available.
Verify OS patch                 Success   Verified OS patch
Validate command execution      Success   Validated command execution

__ILOM__
Validate ILOM server reachable  Success   Successfully connected with ILOM
                                          server using public IP and USB
                                          interconnect
Validate supported versions     Success   Validated minimum supported versions.
Validate patching tag           Success   Validated patching tag: 19.17.0.0.0.
Is patch location available     Success   Patch location is available.
Checking Ilom patch Version     Success   Successfully verified the versions
Patch location validation       Success   Successfully validated location
Validate command execution      Success   Validated command execution

__GI__
Validate GI metadata            Success   Successfully validated GI metadata
Validate supported GI versions  Success   Validated minimum supported versions.
 
Validate available space        Success   Validated free space under /u01
Is clusterware running          Success   Clusterware is running
Validate patching tag           Success   Validated patching tag: 19.17.0.0.0.
Is system provisioned           Success   Verified system is provisioned
Validate ASM in online          Success   ASM is online
Validate kernel log level       Success   Successfully validated the OS log
                                          level
Validate minimum agent version  Success   GI patching enabled in current
                                          DCSAGENT version
Validate Central Inventory      Success   oraInventory validation passed
Validate patching locks         Success   Validated patching locks
Validate clones location exist  Success   Validated clones location
Validate DB start dependencies  Success   DBs START dependency check passed
Validate DB stop dependencies   Success   DBs STOP dependency check passed
Validate space for clones       Success   Clones volume is already created
volume
Evaluate GI patching            Success   Successfully validated GI patching
Validate command execution      Success   Validated command execution

__ORACHK__
Running orachk                  Success   Successfully ran Orachk
Validate command execution      Success   Validated command execution

__SERVER__
Validate local patching         Success   Successfully validated server local
                                          patching
Validate command execution      Success   Validated command execution</code></pre>



<p>Everything is OK to start patching.</p>



<h2 class="wp-block-heading">Patching server and GI</h2>



<p>Let&#8217;s start the update-server:</p>



<pre class="wp-block-code"><code><strong>odacli update-server -v 19.17.0.0.0
odacli describe-job -i "6e32cf55-54b5-41fc-af07-0cb773e68132"
</strong>Job details
----------------------------------------------------------------
                     ID:  6e32cf55-54b5-41fc-af07-0cb773e68132
            Description:  Server Patching
                 Status:  Success
                Created:  December 2, 2022 10:35:33 AM CET
                Message:  Successfully patched GI with RHP

Task Name                                Start Time                          End Time                            Status
---------------------------------------- ----------------------------------- ----------------------------------- ----------
Validating GI user metadata              December 2, 2022 10:35:46 AM CET    December 2, 2022 10:35:46 AM CET    Success
Validate ILOM server reachable           December 2, 2022 10:35:46 AM CET    December 2, 2022 10:35:46 AM CET    Success
Validate DCS Admin mTLS setup            December 2, 2022 10:35:46 AM CET    December 2, 2022 10:35:46 AM CET    Success
Configure export clones resource         December 2, 2022 10:35:47 AM CET    December 2, 2022 10:35:48 AM CET    Success
Creating repositories using yum          December 2, 2022 10:35:48 AM CET    December 2, 2022 10:35:52 AM CET    Success
Updating YumPluginVersionLock rpm        December 2, 2022 10:35:52 AM CET    December 2, 2022 10:35:52 AM CET    Success
Applying OS Patches                      December 2, 2022 10:35:52 AM CET    December 2, 2022 10:46:25 AM CET    Success
Creating repositories using yum          December 2, 2022 10:46:26 AM CET    December 2, 2022 10:46:26 AM CET    Success
Applying HMP Patches                     December 2, 2022 10:46:26 AM CET    December 2, 2022 10:46:46 AM CET    Success
Patch location validation                December 2, 2022 10:46:46 AM CET    December 2, 2022 10:46:46 AM CET    Success
Oda-hw-mgmt upgrade                      December 2, 2022 10:46:47 AM CET    December 2, 2022 10:47:21 AM CET    Success
OSS Patching                             December 2, 2022 10:47:21 AM CET    December 2, 2022 10:47:21 AM CET    Success
Applying Firmware Disk Patches           December 2, 2022 10:47:21 AM CET    December 2, 2022 10:47:23 AM CET    Success
Applying Firmware Controller Patches     December 2, 2022 10:47:24 AM CET    December 2, 2022 10:48:12 AM CET    Success
Checking Ilom patch Version              December 2, 2022 10:48:12 AM CET    December 2, 2022 10:48:13 AM CET    Success
Patch location validation                December 2, 2022 10:48:13 AM CET    December 2, 2022 10:48:13 AM CET    Success
Save password in Wallet                  December 2, 2022 10:48:13 AM CET    December 2, 2022 10:48:13 AM CET    Success
Disabling IPMI v2                        December 2, 2022 10:48:13 AM CET    December 2, 2022 10:48:14 AM CET    Success
Apply Ilom patch                         December 2, 2022 10:48:14 AM CET    December 2, 2022 10:57:11 AM CET    Success
Copying Flash Bios to Temp location      December 2, 2022 10:57:11 AM CET    December 2, 2022 10:57:11 AM CET    Success
Starting the clusterware                 December 2, 2022 10:57:11 AM CET    December 2, 2022 10:58:54 AM CET    Success
Registering image                        December 2, 2022 10:58:54 AM CET    December 2, 2022 10:58:54 AM CET    Success
Registering working copy                 December 2, 2022 10:58:54 AM CET    December 2, 2022 10:58:54 AM CET    Success
Registering image                        December 2, 2022 10:58:54 AM CET    December 2, 2022 10:58:54 AM CET    Success
Creating GI home directories             December 2, 2022 10:58:54 AM CET    December 2, 2022 10:58:54 AM CET    Success
Extract GI clone                         December 2, 2022 10:58:54 AM CET    December 2, 2022 10:58:55 AM CET    Success
Provisioning Software Only GI with RHP   December 2, 2022 10:58:55 AM CET    December 2, 2022 10:58:55 AM CET    Success
Patch GI with RHP                        December 2, 2022 10:58:55 AM CET    December 2, 2022 11:05:10 AM CET    Success
Updating GIHome version                  December 2, 2022 11:05:10 AM CET    December 2, 2022 11:05:14 AM CET    Success
Validate GI availability                 December 2, 2022 11:05:52 AM CET    December 2, 2022 11:05:52 AM CET    Success
Patch KVM CRS type                       December 2, 2022 11:05:52 AM CET    December 2, 2022 11:05:52 AM CET    Success
Patch VM vDisks CRS dependencies         December 2, 2022 11:05:52 AM CET    December 2, 2022 11:05:52 AM CET    Success
Patch DB System domain config            December 2, 2022 11:05:53 AM CET    December 2, 2022 11:05:53 AM CET    Success
Update System version                    December 2, 2022 11:05:53 AM CET    December 2, 2022 11:05:53 AM CET    Success
Cleanup JRE Home                         December 2, 2022 11:05:53 AM CET    December 2, 2022 11:05:53 AM CET    Success
Add SYSNAME in Env                       December 2, 2022 11:05:53 AM CET    December 2, 2022 11:05:53 AM CET    Success
Starting the clusterware                 December 2, 2022 11:05:53 AM CET    December 2, 2022 11:05:53 AM CET    Success
Setting ACL for disk groups              December 2, 2022 11:05:53 AM CET    December 2, 2022 11:05:57 AM CET    Success
Enable LKCE                              December 2, 2022 11:07:50 AM CET    December 2, 2022 11:10:37 AM CET    Success
Update previous workarounds              December 2, 2022 11:10:37 AM CET    December 2, 2022 11:10:37 AM CET    Success
Generating and saving BOM                December 2, 2022 11:10:37 AM CET    December 2, 2022 11:12:32 AM CET    Success
PreRebootNode Actions                    December 2, 2022 11:12:32 AM CET    December 2, 2022 11:13:19 AM CET    Success
Reboot Ilom                              December 2, 2022 11:13:19 AM CET    December 2, 2022 11:13:19 AM CET    Success</code></pre>



<p>Server reboots 5 minutes after the patch ends. On this X7-2M server patching lasted 40 minutes.</p>



<p>Checking filesystems told me that there is a problem on the /boot. It&#8217;s quite common on an ODA where multiple patches were applied. If you have this problem, please identify the old kernels and remove the rpms packages:</p>



<pre class="wp-block-code"><code><strong>df -h /boot
</strong>Filesystem      Size  Used Avail Use% Mounted on
/dev/md0        474M  451M     0 100% /boot

<strong>uname -a
</strong>Linux uns-oda2 4.14.35-2047.518.4.1.el7uek.x86_64 #2 SMP Tue Oct 18 18:08:21 PDT 2022 x86_64 x86_64 x86_64 GNU/Linux
<strong>rpm -qa | grep kernel-uek-4
</strong>kernel-uek-4.14.35-2047.508.3.2.el7uek.x86_64
kernel-uek-4.14.35-2025.400.9.el7uek.x86_64
kernel-uek-4.14.35-2047.518.4.1.el7uek.x86_64

<strong>rpm -e kernel-uek-4.14.35-2025.400.9.el7uek.x86_64
</strong>
<strong>df -h /boot
</strong>Filesystem      Size  Used Avail Use% Mounted on
/dev/md0        474M  331M  119M  74% /boot
</code></pre>



<h2 class="wp-block-heading">Patching the storage</h2>



<p>Patching the storage is only needed if describe-component tells you that you&#8217;re not up-to-date. On my X7-2M I had to patch:</p>



<pre class="wp-block-code"><code><strong>odacli update-storage -v 19.17.0.0.0
odacli describe-job -i "93199b6d-b400-43cf-812f-20ffaf59d704"
</strong>Job details
----------------------------------------------------------------
                     ID:  93199b6d-b400-43cf-812f-20ffaf59d704
            Description:  Storage Firmware Patching
                 Status:  Success
                Created:  December 2, 2022 11:29:47 AM CET
                Message:

Task Name                                Start Time                          End Time                            Status
---------------------------------------- ----------------------------------- ----------------------------------- ----------
Applying Firmware Disk Patches           December 2, 2022 11:29:53 AM CET    December 2, 2022 11:29:55 AM CET    Success
Applying Firmware Controller Patches     December 2, 2022 11:29:56 AM CET    December 2, 2022 11:37:21 AM CET    Success
Generating and saving BOM                December 2, 2022 11:37:21 AM CET    December 2, 2022 11:38:28 AM CET    Success
PreRebootNode Actions                    December 2, 2022 11:38:28 AM CET    December 2, 2022 11:38:28 AM CET    Success
Reboot Ilom                              December 2, 2022 11:38:28 AM CET    December 2, 2022 11:38:28 AM CET    Success</code></pre>



<p>I never encountered troubles during storage patching, so it should be fine.</p>



<h2 class="wp-block-heading">Patching the DB homes</h2>



<p>Time for patching the DB homes depends on the number of DB homes and number of databases. In this example, I will apply the patch on my two 19c DB homes:</p>



<pre class="wp-block-code"><code><strong>odacli list-dbhomes
</strong>ID                                       Name                 DB Version                               Home Location                                 Status
---------------------------------------- -------------------- ---------------------------------------- --------------------------------------------- ----------
f33e91e6-ac8c-48b1-a599-2e32ddf46b30     OraDB19000_home3     19.13.0.0.211019                         /u01/app/odaorahome/oracle/product/19.0.0.0/dbhome_3 CONFIGURED
804165be-d58e-44c6-b51d-c2729a99b8e9     OraDB19000_home4     19.13.0.0.211019                         /u01/app/odaorahome/oracle/product/19.0.0.0/dbhome_4 CONFIGURED</code></pre>



<p>The DB clone is needed:</p>



<pre class="wp-block-code"><code><strong>cd /u03/app/oracle/
unzip -o p30403662_1917000_Linux-x86-64.zip
odacli update-repository -f /u03/app/oracle/odacli-dcs-19.17.0.0.0-221029-DB-19.17.0.0.zip
odacli describe-job -i "5ab4fcaa-2452-4f43-b329-cc3df03abbf7"
</strong>
Job details
----------------------------------------------------------------
                     ID:  5ab4fcaa-2452-4f43-b329-cc3df03abbf7
            Description:  Repository Update
                 Status:  Success
                Created:  December 2, 2022 11:50:02 AM CET
                Message:  /u03/app/oracle/odacli-dcs-19.17.0.0.0-221029-DB-19.17.0.0.zip

Task Name                                Start Time                          End Time                            Status
---------------------------------------- ----------------------------------- ----------------------------------- ----------
Unzip bundle                             December 2, 2022 11:50:02 AM CET    December 2, 2022 11:50:38 AM CET    Success</code></pre>



<p>A prepatching is also needed here:</p>



<pre class="wp-block-code"><code><strong>odacli create-prepatchreport -d -i f33e91e6-ac8c-48b1-a599-2e32ddf46b30 -v 19.17.0.0.0
odacli describe-prepatchreport -i 4142cc7e-edbf-4aa2-9db1-cf5f2ea2ab94
</strong>
Patch pre-check report
------------------------------------------------------------------------
                 Job ID:  4142cc7e-edbf-4aa2-9db1-cf5f2ea2ab94
            Description:  Patch pre-checks for &#091;DB, ORACHKDB]: DbHome is OraDB19000_home3
                 Status:  FAILED
                Created:  December 2, 2022 11:55:08 AM CET
                 Result:  One or more pre-checks failed for &#091;ORACHK]

Node Name
---------------
uns-oda2

Pre-Check                      Status   Comments
------------------------------ -------- --------------------------------------
__DB__
Validate DB Home ID             Success   Validated DB Home ID:
                                          f33e91e6-ac8c-48b1-a599-2e32ddf46b30
Validate patching tag           Success   Validated patching tag: 19.17.0.0.0.
Is system provisioned           Success   Verified system is provisioned
Validate minimum agent version  Success   Validated minimum agent version
Is GI upgraded                  Success   Validated GI is upgraded
Validate available space for    Success   Validated free space required under
db                                        /u01
Validate dbHomesOnACFS          Success   User has configured disk group for
configured                                Database homes on ACFS
Validate Oracle base            Success   Successfully validated Oracle Base
Is DB clone available           Success   Successfully validated clone file
                                          exists
Evaluate DBHome patching with   Success   Successfully validated updating
RHP                                       dbhome with RHP.  and local patching
                                          is possible
Validate command execution      Success   Validated command execution

__ORACHK__
Running orachk                  Failed    ORAchk validation failed: .
Validate command execution      Success   Validated command execution
Check for parameter             Failed    AHF-3744: Database parameter
global_names                              GLOBAL_NAMES is not set to
                                          recommended value
Check for parameter             Failed    AHF-3744: Database parameter
global_names                              GLOBAL_NAMES is not set to
                                          recommended value
Check for parameter             Failed    AHF-3744: Database parameter
global_names                              GLOBAL_NAMES is not set to
                                          recommended value</code></pre>



<p>I don&#8217;t care about Orachk recommendations on my databases because it has been set like that. I will apply the patch on this DB home with the force option:</p>



<pre class="wp-block-code"><code><strong>odacli update-dbhome -i f33e91e6-ac8c-48b1-a599-2e32ddf46b30 -v 19.17.0.0.0 -f
sleep 600 ; odacli describe-job -i "0e4a424b-9892-46d9-90d8-ebb61737ef03"
</strong>
Job details
----------------------------------------------------------------
                     ID:  0e4a424b-9892-46d9-90d8-ebb61737ef03
            Description:  DB Home Patching: Home Id is f33e91e6-ac8c-48b1-a599-2e32ddf46b30
                 Status:  Success
                Created:  December 2, 2022 12:11:31 PM CET
                Message:

Task Name                                Start Time                          End Time                            Status
---------------------------------------- ----------------------------------- ----------------------------------- ----------
Creating wallet for DB Client            December 2, 2022 12:12:18 PM CET    December 2, 2022 12:12:18 PM CET    Success
Patch databases by RHP                   December 2, 2022 12:12:18 PM CET    December 2, 2022 12:18:34 PM CET    Success
Updating database metadata               December 2, 2022 12:18:34 PM CET    December 2, 2022 12:18:34 PM CET    Success
Set log_archive_dest for Database        December 2, 2022 12:18:34 PM CET    December 2, 2022 12:18:37 PM CET    Success
Patch databases by RHP                   December 2, 2022 12:18:37 PM CET    December 2, 2022 12:20:09 PM CET    Success
Updating database metadata               December 2, 2022 12:20:09 PM CET    December 2, 2022 12:20:09 PM CET    Success
Set log_archive_dest for Database        December 2, 2022 12:20:09 PM CET    December 2, 2022 12:20:13 PM CET    Success
Patch databases by RHP                   December 2, 2022 12:20:13 PM CET    December 2, 2022 12:25:58 PM CET    Success
Updating database metadata               December 2, 2022 12:25:58 PM CET    December 2, 2022 12:25:58 PM CET    Success
Set log_archive_dest for Database        December 2, 2022 12:25:58 PM CET    December 2, 2022 12:26:00 PM CET    Success
Update System version                    December 2, 2022 12:26:00 PM CET    December 2, 2022 12:26:00 PM CET    Success
Generating and saving BOM                December 2, 2022 12:26:00 PM CET    December 2, 2022 12:28:03 PM CET    Success
TDE parameter update                     December 2, 2022 12:28:39 PM CET    December 2, 2022 12:28:39 PM CET    Success</code></pre>



<p>It&#8217;s the exact same procedure for the second DB home.</p>



<p>New DB homes have been created and my databases are now linked to these new ones:</p>



<pre class="wp-block-code"><code><strong>odacli list-dbhomes
</strong>ID                                       Name                 DB Version                               Home Location                                 Status
---------------------------------------- -------------------- ---------------------------------------- --------------------------------------------- ----------
f33e91e6-ac8c-48b1-a599-2e32ddf46b30     OraDB19000_home3     19.13.0.0.211019                         /u01/app/odaorahome/oracle/product/19.0.0.0/dbhome_3 CONFIGURED
804165be-d58e-44c6-b51d-c2729a99b8e9     OraDB19000_home4     19.13.0.0.211019                         /u01/app/odaorahome/oracle/product/19.0.0.0/dbhome_4 CONFIGURED
7741bb27-43cc-484c-9525-5f854262c33d     OraDB19000_home5     19.17.0.0.221018                         /u01/app/odaorahome/oracle/product/19.0.0.0/dbhome_5 CONFIGURED
cacbc994-04ae-4f40-ae96-a5b57bb3d89a     OraDB19000_home6     19.17.0.0.221018                         /u01/app/odaorahome/oracle/product/19.0.0.0/dbhome_6 CONFIGURED

<strong>odacli list-databases
</strong>ID                                       DB Name    DB Type  DB Version           CDB        Class    Shape    Storage    Status        DbHomeID
---------------------------------------- ---------- -------- -------------------- ---------- -------- -------- ---------- ------------ ----------------------------------------
cbc31d02-5507-4e90-97b4-42a65bb2e2b7     PCGO_LCDF  SI       19.17.0.0.221018     false      OLTP     odb1     ACFS       CONFIGURED   7741bb27-43cc-484c-9525-5f854262c33d
118c79a4-c5cc-463c-ae29-d92208f502a7     PCSGO_LCDF SI       19.17.0.0.221018     false      OLTP     odb1     ACFS       CONFIGURED   cacbc994-04ae-4f40-ae96-a5b57bb3d89a
4892fc73-e89a-4fc4-8fac-c4d4f91ba64d     TCGO       SI       19.17.0.0.221018     false      OLTP     odb1     ACFS       CONFIGURED   7741bb27-43cc-484c-9525-5f854262c33d
ef0cc1fe-86b8-4f6d-9abe-a619147337ca     TCSGO      SI       19.17.0.0.221018     false      OLTP     odb1     ACFS       CONFIGURED   7741bb27-43cc-484c-9525-5f854262c33d
</code></pre>



<p>The old DB homes can now be safely removed:</p>



<pre class="wp-block-code"><code><strong>odacli delete-dbhome -i f33e91e6-ac8c-48b1-a599-2e32ddf46b30
sleep 60 ;  odacli delete-dbhome -i 804165be-d58e-44c6-b51d-c2729a99b8e9
sleep 120 ; odacli list-jobs | tail -n 3
</strong>212c0662-a062-40c6-925b-3b915effa23d     Database Home OraDB19000_home3 Deletion with id f33e91e6-ac8c-48b1-a599-2e32ddf46b30 December 2, 2022 1:01:09 PM CET     Success
a64b32ac-9cad-4f23-acec-66077a5f856d     Database Home OraDB19000_home4 Deletion with id 804165be-d58e-44c6-b51d-c2729a99b8e9 December 2, 2022 1:01:41 PM CET     Success

</code></pre>



<h2 class="wp-block-heading">Final checks</h2>



<p>Let&#8217;s get the final versions:</p>



<pre class="wp-block-code"><code><strong>odacli describe-component | grep -v ^$
</strong>System Version
---------------
19.17.0.0.0
System node Name
---------------
uns-oda2
Local System Version
---------------
19.17.0.0.0
Component                                Installed Version    Available Version
---------------------------------------- -------------------- --------------------
OAK
                                          19.17.0.0.0           up-to-date
GI
                                          19.17.0.0.221018      up-to-date
DB {
&#091;OraDB19000_home5 &#091;PCGO_LCDF,TCGO,
TCSGO]]                                   19.17.0.0.221018      up-to-date
&#091;OraDB19000_home6 &#091;PCSGO_LCDF]]
                                          19.17.0.0.221018      up-to-date
}
DCSCONTROLLER
                                          19.17.0.0.0           up-to-date
 
DCSCLI
                                          19.17.0.0.0           up-to-date
DCSAGENT
                                          19.17.0.0.0           up-to-date
DCSADMIN
                                          19.17.0.0.0           up-to-date
OS
                                          7.9                   up-to-date
ILOM
                                          5.1.0.23.r146986      up-to-date
BIOS
                                          41120100              up-to-date
LOCAL CONTROLLER FIRMWARE {
&#091;c6]
                                          80000690              up-to-date
&#091;c7]
                                          214.2.271.9           up-to-date
}
SHARED CONTROLLER FIRMWARE
                                          QDV1RF35              up-to-date
LOCAL DISK FIRMWARE
                                          N2010121              up-to-date
SHARED DISK FIRMWARE
                                          N2010121              up-to-date
HMP
                                          2.4.8.9.603           up-to-date
</code></pre>



<p>Everything is fine. I&#8217;m quiet for 2-3 months.</p>



<h2 class="wp-block-heading">Cleanse the old patches</h2>



<p>The old patches will never be used again, so don&#8217;t forget to remove them from the repository if your ODA has already been patched:</p>



<pre class="wp-block-code"><code><strong>odacli cleanup-patchrepo -cl -v 19.13.0.0.0
</strong>
<strong>odacli describe-job -i "7e1506b9-5778-47ed-84eb-65d976819c80"
</strong>Job details
----------------------------------------------------------------
                     ID:  7e1506b9-5778-47ed-84eb-65d976819c80
            Description:  Cleanup patchrepos
                 Status:  Success
                Created:  December 2, 2022 12:56:14 PM CET
                Message:

Task Name                                Start Time                          End Time                            Status
---------------------------------------- ----------------------------------- ----------------------------------- ----------
Cleanup Repository                       December 2, 2022 12:56:14 PM CET    December 2, 2022 12:56:14 PM CET    Success
Cleanup JRE Home                         December 2, 2022 12:56:15 PM CET    December 2, 2022 12:56:15 PM CET    Success
Cleanup old ASR rpm                      December 2, 2022 12:56:15 PM CET    December 2, 2022 12:56:15 PM CET    Success</code></pre>



<h2 class="wp-block-heading">Put back your own settings</h2>



<p>Once everything is OK, don&#8217;t forget to put back your settings:</p>



<ul class="wp-block-list">
<li>add your additional rpms manually if needed</li>



<li>put back your profile scripts for grid and oracle users</li>



<li>…</li>
</ul>



<h2 class="wp-block-heading">Patching DB Systems</h2>



<p>If you use DB Systems on your ODA, meaning that some of your databases are running in dedicated VMs, you will need to apply the patch inside each DB System. I haven&#8217;t tried on my X7-2M because it only runs bare metal databases, but you will need to list your DB Systems, connect to each one, and apply the server and database patches:</p>



<pre class="wp-block-code"><code><strong>odacli list-dbsystems
ssh ...
odacli update-server -v 19.17.0.0.0
odacli update-dbhome -i ... -v 19.17.0.0.0</strong></code></pre>



<h2 class="wp-block-heading">Conclusion</h2>



<p>This release is easy to apply coming from 19.13 and also probably from newer versions. Future releases may include a major OS upgrade and 23c sooner or later.</p>
<p>L’article <a href="https://www.dbi-services.com/blog/oda-version-19-17-is-available-how-to-patch/">ODA version 19.17 is available: how to patch?</a> est apparu en premier sur <a href="https://www.dbi-services.com/blog">dbi Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dbi-services.com/blog/oda-version-19-17-is-available-how-to-patch/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Warning: ODA HA disk enclosure is not smart!</title>
		<link>https://www.dbi-services.com/blog/warning-oda-ha-disk-enclosure-is-not-smart/</link>
					<comments>https://www.dbi-services.com/blog/warning-oda-ha-disk-enclosure-is-not-smart/#respond</comments>
		
		<dc:creator><![CDATA[Jérôme Dubar]]></dc:creator>
		<pubDate>Fri, 25 Nov 2022 16:05:14 +0000</pubDate>
				<category><![CDATA[Hardware & Storage]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[controller]]></category>
		<category><![CDATA[Database Appliance]]></category>
		<category><![CDATA[ebod]]></category>
		<category><![CDATA[enclosure components controllers down]]></category>
		<category><![CDATA[oda]]></category>
		<category><![CDATA[oracle database appliance]]></category>
		<category><![CDATA[storage enclosure]]></category>
		<category><![CDATA[X3-2]]></category>
		<category><![CDATA[X4-2]]></category>
		<category><![CDATA[X5-2HA]]></category>
		<category><![CDATA[x6-2ha]]></category>
		<category><![CDATA[X7-2HA]]></category>
		<category><![CDATA[x8-2ha]]></category>
		<category><![CDATA[X9-2HA]]></category>
		<guid isPermaLink="false">https://www.dbi-services.com/blog/?p=20663</guid>

					<description><![CDATA[<p>Introduction Apart from the number of servers (1 vs 2), the main difference between Oracle Database Appliance lite (S/L) and High-Availability (HA) is the data disks location. They are inside the server on lite ODAs, and in a dedicated disk enclosure on HA ODAs. Obviously, this is because when 2 nodes want to use the [&#8230;]</p>
<p>L’article <a href="https://www.dbi-services.com/blog/warning-oda-ha-disk-enclosure-is-not-smart/">Warning: ODA HA disk enclosure is not smart!</a> est apparu en premier sur <a href="https://www.dbi-services.com/blog">dbi Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">Introduction</h2>



<p>Apart from the number of servers (1 vs 2), the main difference between Oracle Database Appliance lite (S/L) and High-Availability (HA) is the data disks location. They are inside the server on lite ODAs, and in a dedicated disk enclosure on HA ODAs. Obviously, this is because when 2 nodes want to use the same disks, these disks have to be shared. And this is why HA needs a SAS disk enclosure.</p>



<h2 class="wp-block-heading">Disk technology on ODA</h2>



<p>On lite ODAs, disks are SSDs inside the server and connected to the PCI Express bus without any interface, it&#8217;s the NVMe technology. This is very fast. There are faster technologies, like NVRam, but price/performance ratio made NVMe technology a game changer.</p>



<p>HA ODAs are not that fast regarding disk bandwidth. This is because NVMe only works for disks locally connected to the server&#8217;s motherboard. Both HA ODA nodes come with SAS controllers, these being connected to a SAS disk enclosure with SAS SSDs in it. As this enclosure is quite big (same height as the 2 nodes together), disk capacity is much higher than lite ODAs. A fully loaded X9-2HA ODA with SSDs has 184TB, it&#8217;s more than twice the 81TB capacity of a fully loaded ODA X9-2L. Furthermore, you can add another storage enclosure to X9-2HA to double the disk capacity to 369TB. And if you need even more capacity, there is an high capacity version of this enclosure with a mix of SSDs and HDDs for a maximum RAW capacity of 740TB. This is huge!</p>



<h2 class="wp-block-heading">Hardware monitoring on ODA</h2>



<p>Monitoring the ODA hardware is done from ILOM, the management console. ILOM can send SNMP traps and raise an alert if something is wrong. For an HA ODA, you have 2 ILOMs to monitor, as the 2 nodes are separate hardware. There&#8217;s a catch when it comes to monitoring the storage enclosure. This enclosure is not active, meaning that it doesn&#8217;t have any intelligence, and therefore cannot raise any alert. And ILOM from the nodes is not aware of hardware outside the nodes. You may think that it&#8217;s not really a problem because data disks are monitored by ASM. But this enclosure also has SAS interfaces to get connected with the nodes. And if one of these interfaces is down, you may not detect the problem.</p>



<h2 class="wp-block-heading">The use case</h2>



<p>My customer has multiple HA ODAs, and I was doing a sanity checks of these ODAs. Everything was fine until I did an orachk on an X6-2HA:</p>



<pre class="wp-block-code"><code>odaadmcli orachk
INFO: 2022-11-16 16:41:11: Running orachk under /usr/bin/orachk Searching for running databases . . . . .
........
List of running databases registered in OCR
1. XXX
3. YYY
4. ZZZ 
5. All of above
6. None of above
Select databases from list for checking best practices. For multiple databases, select 5 for All or comma separated number like 1,2 etc &#091;1-6]&#091;5]. 6
RDBMS binaries found at /u01/app/oracle/product/19.0.0.0/dbhome_1 and ORACLE_HOME not set. Do you want to set ORACLE_HOME to "/u01/app/oracle/product/19.0.0.0/dbhome_1"?&#091;y/n]&#091;y] y
...
<strong>FAIL =&gt; Several enclosure components controllers might be down</strong>
...</code></pre>



<p>This is not something nice to see. My storage enclosure has a problem.</p>



<p>I will do another check with odaadmcli:</p>



<pre class="wp-block-code"><code>odaadmcli show enclosure

        NAME        SUBSYSTEM         STATUS      METRIC

        E0_FAN0     Cooling           OK          4910 rpm
        E0_FAN1     Cooling           OK          4530 rpm
        E0_FAN2     Cooling           OK          4920 rpm
        E0_FAN3     Cooling           OK          4570 rpm
        E0_IOM0     Encl_Electronics  OK          -
        E0_IOM1     Encl_Electronics  Not availab -
        E0_PSU0     Power_Supply      OK          -
        E0_PSU1     Power_Supply      OK          -
        E0_TEMP0    Amb_Temp          OK          23 C
        E0_TEMP1    Midplane_Temp     OK          23 C
        E0_TEMP2    PCM0_Inlet_Temp   OK          29 C
        E0_TEMP3    PCM0_Hotspot_Temp OK          26 C
        E0_TEMP4    PCM1_Inlet_Temp   OK          44 C
        E0_TEMP5    PCM1_Hotspot_Temp OK          28 C
        E0_TEMP6    IOM0_Temp         OK          22 C
        E0_TEMP7    IOM1_Temp         OK          28 C</code></pre>



<p>Enclosure is not visible through one of the SAS controller. Maybe there is a failure, but the node is not able to say that there is a failure. It may be related to an unplugged SAS cable, as I found on MOS.</p>



<p>Let&#8217;s do a validate storage topology:</p>



<pre class="wp-block-code"><code>odacli validate-storagetopology
INFO    : ODA Topology Verification
INFO    : Running on Node0
INFO    : Check hardware type
SUCCESS : Type of hardware found : X6-2
INFO    : Check for Environment(Bare Metal or Virtual Machine)
SUCCESS : Type of environment found : Bare Metal
INFO    : Check number of Controllers
SUCCESS : Number of Internal RAID bus controllers found : 1
SUCCESS : Number of External SCSI controllers found : 2
INFO    : Check for Controllers correct PCIe slot address
SUCCESS : Internal RAID controller   : 23:00.0
SUCCESS : External LSI SAS controller 0 : 03:00.0
SUCCESS : External LSI SAS controller 1 : 13:00.0
INFO    : Check if JBOD powered on
SUCCESS : 0JBOD : Powered-on
INFO    : Check for correct number of EBODS(2 or 4)
FAILURE : Check for correct number of EBODS(2 or 4) : 1
<strong>ERROR   : 1 EBOD found on the system, which is less than 2 EBODS with 1 </strong>JBOD
INFO    : Above details can also be found in the log file=/opt/oracle/oak/log/srvxxx/storagetopology/StorageTopology-2022-11-16-17:21:43_34790_17083.log
</code></pre>



<p>EBOD stands for Expanded Bunch Of Disks, which is not very clear. But as disks are OK, this is probably related to cabling or controller in the enclosure.</p>



<h2 class="wp-block-heading">Solution</h2>



<p>My customer went to the datacenter and first checked the cabling, but it was fine. Opening an SR on My Oracle Support quickly solved the problem. A new controller was sent, it was swapped in the enclosure with the defect one without any downtime, and everything is fine then.</p>



<h2 class="wp-block-heading">Conclusion</h2>



<p>There is absolutely no problem with the HA storage enclosure not being smart. You don&#8217;t need a smart storage for this kind of server, as ODA is a &#8220;Simple. Reliable. Affordable&#8221; solution.</p>



<p>In this particular case, it&#8217;s hard to detect that the failure is a real one. But my customer was using a RAC setup with a failure in one of the redundant components, maybe since months. It&#8217;s definitely not satisfying. From time to time, manual and human checks are still needed!</p>
<p>L’article <a href="https://www.dbi-services.com/blog/warning-oda-ha-disk-enclosure-is-not-smart/">Warning: ODA HA disk enclosure is not smart!</a> est apparu en premier sur <a href="https://www.dbi-services.com/blog">dbi Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dbi-services.com/blog/warning-oda-ha-disk-enclosure-is-not-smart/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>When unreachable NFS share mess up your Dbvisit Standby configuration</title>
		<link>https://www.dbi-services.com/blog/when-unreachable-nfs-share-mess-up-your-dbvisit-standby-configuration/</link>
					<comments>https://www.dbi-services.com/blog/when-unreachable-nfs-share-mess-up-your-dbvisit-standby-configuration/#respond</comments>
		
		<dc:creator><![CDATA[Joël Cattin]]></dc:creator>
		<pubDate>Thu, 09 Dec 2021 20:57:10 +0000</pubDate>
				<category><![CDATA[Database management]]></category>
		<category><![CDATA[Hardware & Storage]]></category>
		<category><![CDATA[Operating systems]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[archive log]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[dbvisit]]></category>
		<category><![CDATA[fuser]]></category>
		<category><![CDATA[Network]]></category>
		<category><![CDATA[NFS]]></category>
		<category><![CDATA[timeout]]></category>
		<guid isPermaLink="false">https://www.dbi-services.com/blog/when-unreachable-nfs-share-mess-up-your-dbvisit-standby-configuration/</guid>

					<description><![CDATA[<p>If I had to rank my favorite Oracle-related tools and software, Dbvisit Standby would likely be at the top of the list. You are reading this post, so you probably know that Dbvisit Standby is a Disaster/Recovery solution for Oracle Database Standard Edition (aka Data Guard for poor people 😛 ). The reasons why I [&#8230;]</p>
<p>L’article <a href="https://www.dbi-services.com/blog/when-unreachable-nfs-share-mess-up-your-dbvisit-standby-configuration/">When unreachable NFS share mess up your Dbvisit Standby configuration</a> est apparu en premier sur <a href="https://www.dbi-services.com/blog">dbi Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>If I had to rank my favorite Oracle-related tools and software, <a href="https://dbvisit.com/solutions/standby-software" target="_blank" rel="noopener">Dbvisit Standby</a> would likely be at the top of the list.<br />
You are reading this post, so you probably know that Dbvisit Standby is a Disaster/Recovery solution for Oracle Database Standard Edition (aka Data Guard for poor people <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f61b.png" alt="😛" class="wp-smiley" style="height: 1em; max-height: 1em;" /> ).</p>
<p>The reasons why I like this product are mostly related to the following points (non-exhaustive list) :</p>
<ul>
<li>Ease of installation and configuration</li>
<li>Ease of use</li>
<li>Lightness</li>
<li>Stability</li>
<li>Continuous evolution (new features)</li>
<li><a href="https://dbvisit.atlassian.net/wiki/spaces/DS10QSG/overview" target="_blank" rel="noopener">Documentation</a> quality</li>
<li>Technical support efficiency</li>
</ul>
<p>Despite all these qualities, it can happen that Dbvisit doesn&#8217;t work as it should and some troubleshooting is required.<br />
In this post, I will describe a problem I encountered on the Dbvisit Standby (version 10.1) environment of one of our customers.</p>
<h3>Issue</h3>
<p>The following error message appeared while running the <em>dbvctl</em> command to transfer and the apply archive logs :</p>
<pre class="brush: bash; gutter: true; first-line: 1">Dbvisit Standby process for preposs still running on odaprep01 (pid=53835).
See trace file 53835_dbvctl_preposs_202112081932.trc for more details.
Exceeded RUNNING_MAX_TIMES_TRIED=1 attempts.
(if Dbvisit Standby process is no longer running, then delete lock file /u01/app/dbvisit/standby/pid/dbvisit_preposs.pid)</pre>
<p>This seems to indicate that the archive logs transfer process did not succeed properly and got stuck on the server.</p>
<p>Let&#8217;s have a look to the existing processes :</p>
<pre class="brush: bash; gutter: true; first-line: 1">[oracle@odaprep01 ~]$ ps -ef | grep dbvisit
oracle   33833 14053  0 Dec08 ?        00:00:00 sh -c /usr/sbin/fuser /u01/app/dbvisit/standby/tmp/14053_3_12003.3.dbvisit.202112081923.sqlplus.dbv 2&gt;/dev/null
oracle   33834 33833  0 Dec08 ?        00:00:00 /usr/sbin/fuser /u01/app/dbvisit/standby/tmp/14053_3_12003.3.dbvisit.202112081923.sqlplus.dbv
oracle   34813 34812  0 Dec08 ?        00:00:00 /bin/sh -c /u01/app/dbvisit/standby/dbvctl -d preposs &gt;/tmp/dbvisit_apply_logs_preposs.log 2&gt;&amp;1
oracle   34814 34813  0 Dec08 ?        00:00:00 /u01/app/dbvisit/standby/dbvctl                                             -d preposs
oracle   35239 34814  0 Dec08 ?        00:00:00 sh -c /usr/sbin/fuser /u01/app/dbvisit/standby/tmp/34814.0.dbvisit.202112081924.sqlplus.dbv 2&gt;/dev/null
oracle   35240 35239  0 Dec08 ?        00:00:00 /usr/sbin/fuser /u01/app/dbvisit/standby/tmp/34814.0.dbvisit.202112081924.sqlplus.dbv
oracle   36929     1  0 Sep17 ?        02:54:14 /u01/app/dbvisit/standby/dbvctl                                             -d preposs -D start
oracle   38142 14053  0 Dec08 ?        00:00:00 sh -c /usr/sbin/fuser /u01/app/dbvisit/standby/tmp/14053_4_1.4.dbvisit.202112082033.sqlplus.dbv 2&gt;/dev/null
oracle   38143 38142  0 Dec08 ?        00:00:00 /usr/sbin/fuser /u01/app/dbvisit/standby/tmp/14053_4_1.4.dbvisit.202112082033.sqlplus.dbv
oracle   41184     1  0 Sep03 ?        01:17:16 /u01/app/dbvisit/dbvnet/dbvnet -d start
oracle   44524 14053  0 Dec08 ?        00:00:00 sh -c /usr/sbin/fuser /u01/app/dbvisit/standby/tmp/14053_5_1.5.dbvisit.202112082143.sqlplus.dbv 2&gt;/dev/null
oracle   44525 44524  0 Dec08 ?        00:00:00 /usr/sbin/fuser /u01/app/dbvisit/standby/tmp/14053_5_1.5.dbvisit.202112082143.sqlplus.dbv
oracle   45780 14053  0 Dec08 ?        00:00:00 sh -c /usr/sbin/fuser /u01/app/dbvisit/standby/tmp/14053_6_1.6.dbvisit.202112082253.sqlplus.dbv 2&gt;/dev/null
oracle   45781 45780  0 Dec08 ?        00:00:00 /usr/sbin/fuser /u01/app/dbvisit/standby/tmp/14053_6_1.6.dbvisit.202112082253.sqlplus.dbv
oracle   51450 14053  0 00:03 ?        00:00:00 sh -c /usr/sbin/fuser /u01/app/dbvisit/standby/tmp/14053_7_1.7.dbvisit.202112090003.sqlplus.dbv 2&gt;/dev/null
oracle   51451 51450  0 00:03 ?        00:00:00 /usr/sbin/fuser /u01/app/dbvisit/standby/tmp/14053_7_1.7.dbvisit.202112090003.sqlplus.dbv
oracle   53234 14053  0 01:13 ?        00:00:00 sh -c /usr/sbin/fuser /u01/app/dbvisit/standby/tmp/14053_8_1.8.dbvisit.202112090113.sqlplus.dbv 2&gt;/dev/null
oracle   53235 53234  0 01:13 ?        00:00:00 /usr/sbin/fuser /u01/app/dbvisit/standby/tmp/14053_8_1.8.dbvisit.202112090113.sqlplus.dbv
oracle   54442 14053  0 02:23 ?        00:00:00 sh -c /usr/sbin/fuser /u01/app/dbvisit/standby/tmp/14053_9_1.9.dbvisit.202112090223.sqlplus.dbv 2&gt;/dev/null
oracle   54443 54442  0 02:23 ?        00:00:00 /usr/sbin/fuser /u01/app/dbvisit/standby/tmp/14053_9_1.9.dbvisit.202112090223.sqlplus.dbv
oracle   59799 14053  0 03:33 ?        00:00:00 sh -c /usr/sbin/fuser /u01/app/dbvisit/standby/tmp/14053_10_1.10.dbvisit.202112090333.sqlplus.dbv 2&gt;/dev/null
oracle   59800 59799  0 03:33 ?        00:00:00 /usr/sbin/fuser /u01/app/dbvisit/standby/tmp/14053_10_1.10.dbvisit.202112090333.sqlplus.dbv
oracle   60840 14053  0 04:43 ?        00:00:00 sh -c /usr/sbin/fuser /u01/app/dbvisit/standby/tmp/14053_11_1.11.dbvisit.202112090443.sqlplus.dbv 2&gt;/dev/null
oracle   60841 60840  0 04:43 ?        00:00:00 /usr/sbin/fuser /u01/app/dbvisit/standby/tmp/14053_11_1.11.dbvisit.202112090443.sqlplus.dbv
oracle   61931 14053  0 05:53 ?        00:00:00 sh -c /usr/sbin/fuser /u01/app/dbvisit/standby/tmp/14053_12_1.12.dbvisit.202112090553.sqlplus.dbv 2&gt;/dev/null
oracle   61932 61931  0 05:53 ?        00:00:00 /usr/sbin/fuser /u01/app/dbvisit/standby/tmp/14053_12_1.12.dbvisit.202112090553.sqlplus.dbv
oracle   64979 14053  0 07:03 ?        00:00:00 sh -c /usr/sbin/fuser /u01/app/dbvisit/standby/tmp/14053_13_1.13.dbvisit.202112090703.sqlplus.dbv 2&gt;/dev/null
oracle   64980 64979  0 07:03 ?        00:00:00 /usr/sbin/fuser /u01/app/dbvisit/standby/tmp/14053_13_1.13.dbvisit.202112090703.sqlplus.dbv
oracle   67322 14053  0 08:13 ?        00:00:00 sh -c /usr/sbin/fuser /u01/app/dbvisit/standby/tmp/14053_14_1.14.dbvisit.202112090813.sqlplus.dbv 2&gt;/dev/null
oracle   67323 67322  0 08:13 ?        00:00:00 /usr/sbin/fuser /u01/app/dbvisit/standby/tmp/14053_14_1.14.dbvisit.202112090813.sqlplus.dbv
oracle   68513 14053  0 09:23 ?        00:00:00 sh -c /usr/sbin/fuser /u01/app/dbvisit/standby/tmp/14053_15_1.15.dbvisit.202112090923.sqlplus.dbv 2&gt;/dev/null
oracle   68514 68513  0 09:23 ?        00:00:00 /usr/sbin/fuser /u01/app/dbvisit/standby/tmp/14053_15_1.15.dbvisit.202112090923.sqlplus.dbv
oracle   71517 14053  0 10:33 ?        00:00:00 sh -c /usr/sbin/fuser /u01/app/dbvisit/standby/tmp/14053_16_1.16.dbvisit.202112091033.sqlplus.dbv 2&gt;/dev/null
oracle   71518 71517  0 10:33 ?        00:00:00 /usr/sbin/fuser /u01/app/dbvisit/standby/tmp/14053_16_1.16.dbvisit.202112091033.sqlplus.dbv
oracle   72932 14053  0 11:43 ?        00:00:00 sh -c /usr/sbin/fuser /u01/app/dbvisit/standby/tmp/14053_17_1.17.dbvisit.202112091143.sqlplus.dbv 2&gt;/dev/null
oracle   72933 72932  0 11:43 ?        00:00:00 /usr/sbin/fuser /u01/app/dbvisit/standby/tmp/14053_17_1.17.dbvisit.202112091143.sqlplus.dbv
oracle   78878     1  0 Sep03 ?        00:09:45 /u01/app/dbvisit/dbvagent/dbvagent -d start
[oracle@odaprep02 ~]$</pre>
<p>Mmmh, quite a big mess here, isn&#8217;t ?</p>
<h3>Troubleshooting</h3>
<p>You certainly noticed that there is a lot of blocked processes running the <em><a href="https://man7.org/linux/man-pages/man1/fuser.1.html" target="_blank" rel="noopener">fuser</a></em> command. Actually, before transferring an archive logs from the primary server to the standby one, <em>fuser</em> is executed to ensure that the concerned archive log is not being used by another process (e.g RMAN backup). This behavior can be confirmed by analyzing the trace file (&lt;dbvisit_home&gt;/traces directory) generated by the <em>dbvctl</em> command :</p>
<pre class="brush: bash; gutter: true; first-line: 1; highlight: [1]">209 11:08:41 main::UTIL_UNIX_is_file_open: run command: /usr/sbin/fuser /u03/app/oracle/fast_recovery_area/PRODOSS_DC41/archivelog/2021_12_09/o1_mf_1_162040_jv3oc7xb_.arc
20211209 11:08:41 main::UTIL_run_command: ORACLE_HOME: /u01/app/oracle/product/19.0.0.0/dbhome_2
20211209 11:08:41 main::UTIL_run_command: PATH: /usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/usr/sbin:/sbin:/u01/app/oracle/product/19.0.0.0/dbhome_2/bin
20211209 11:08:41 main::UTIL_run_command: LD_LIBRARY_PATH: /u01/app/dbvisit/standby/lib:/u01/app/oracle/product/19.0.0.0/dbhome_2/lib</pre>
<p class="brush: bash; gutter: true; first-line: 1">The first action I took was to disable the Dbvisit jobs from the crontab &#8211; on both sides &#8211; to avoid some new processes to be generated.<br />
Then I killed all the blocked processes listed above to start from a clean situation, and I deleted the PID file stored in the &lt;dbvisit_home&gt;/pid &gt; directory.<br />
Finally I executed manually the <em>fuser</em> command against an archive log and there I could see that the command remained stuck, without any result to return. Ctrl-C was needed to stop it. This strange behavior was also the same with some other commands like <em><a href="https://man7.org/linux/man-pages/man1/df.1p.html" target="_blank" rel="noopener">df</a> </em> or <em><a href="https://man7.org/linux/man-pages/man8/lsof.8.html" target="_blank" rel="noopener">lsof</a>.</em></p>
<h3>Root cause</h3>
<p>By analyzing the system logs (/var/log/messages), I could observe that a NFS share mounted on the server was no longer reachable :</p>
<pre class="brush: bash; gutter: true; first-line: 1">Dec  8 19:38:08 odaprep01 kernel: nfs: server 10.84.48.100 not responding, timed out
Dec  8 19:41:08 odaprep01 kernel: nfs: server 10.84.48.100 not responding, timed out
Dec  8 19:41:14 odaprep01 kernel: nfs: server 10.84.48.100 not responding, timed out</pre>
<p>And that&#8217;s why the <em>fuser</em> command triggered by <em>dbvctl </em>never ended.</p>
<p>Now, you are probably wondering &#8220;<em>t</em><em>he archive logs are not stored on the NFS, so </em><em>why did this have an impact ?</em>&#8220;.<br />
Let me explain&#8230;<br />
<em>fuser</em> is designed to access all processes <span style="text-decoration: underline">at one time</span> to determine if any of their files is stored on the local file system. To discover that, a stat() call is used to identify the attributes of the processes&#8217; executable. If the executable is stored on a NFS, the stat() call result depends on the NFS availability to be successful and can hang if it&#8217;s not reachable.</p>
<p class="brush: bash; gutter: true; first-line: 1">To solve the issue, I had of course to unmount the unreachable NFS mount point (umount -l &lt;mount_point&gt;).<br />
As Dbvisit were not working properly since several hours, the standby database was out of sync because of archive logs gap. Unfortunately, the missing archive logs where not present anymore into the Fast Recovery Area, so I had to restore them from the RMAN backup :</p>
<pre class="brush: bash; gutter: true; first-line: 1">RMAN&gt; restore archivelog from logseq=26160 until logseq=26190;

Starting restore at 09-DEC-2021 12:26:39
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=365 device type=DISK

channel ORA_DISK_1: starting archived log restore to default destination
channel ORA_DISK_1: restoring archived log
archived log thread=1 sequence=26169
channel ORA_DISK_1: restoring archived log
archived log thread=1 sequence=26170
channel ORA_DISK_1: reading from backup piece /u03/app/oracle/fast_recovery_area/PREPOSS_DC41/backupset/2021_12_09/o1_mf_annnn_TAG20211209T002732_jv2hv54g_.bkp
channel ORA_DISK_1: piece handle=/u03/app/oracle/fast_recovery_area/PREPOSS_DC41/backupset/2021_12_09/o1_mf_annnn_TAG20211209T002732_jv2hv54g_.bkp tag=TAG20211209T002732
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:15
channel ORA_DISK_1: starting archived log restore to default destination
channel ORA_DISK_1: restoring archived log
archived log thread=1 sequence=26160
channel ORA_DISK_1: restoring archived log
archived log thread=1 sequence=26161
channel ORA_DISK_1: restoring archived log
archived log thread=1 sequence=26162
channel ORA_DISK_1: restoring archived log
archived log thread=1 sequence=26163
...
...
...
channel ORA_DISK_1: restoring archived log
archived log thread=1 sequence=26188
channel ORA_DISK_1: restoring archived log
archived log thread=1 sequence=26189
channel ORA_DISK_1: restoring archived log
archived log thread=1 sequence=26190
channel ORA_DISK_1: reading from backup piece /u01/app/oracle/admin/preposs/backup/20211209_111002_arc_PREPOSS_533362994_s2246_p1.bck
channel ORA_DISK_1: piece handle=/u01/app/oracle/admin/preposs/backup/20211209_111002_arc_PREPOSS_533362994_s2246_p1.bck tag=ARC_20211209_111002
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:07
Finished restore at 09-DEC-2021 12:27:17

RMAN&gt;</pre>
<p>And finally, I was able to restart the <em>dbvctl </em>command to resolve the gap by transferring and applying the restored archive logs :</p>
<pre class="brush: bash; gutter: true; first-line: 1">oracle@odaprep01:/u01/app/dbvisit/standby/trace/ [preposs] dbvctl -d preposs
=============================================================
Dbvisit Standby Database Technology (10.1.0_0_gba3a9e08) (pid 15459)
dbvctl started on odaprep01: Thu Dec  9 12:28:33 2021
=============================================================

&gt;&gt;&gt; Obtaining information from standby database (RUN_INSPECT=Y)... done
    Thread: 1 Archive log gap: 35. Transfer log gap: 35
&gt;&gt;&gt; Transferring Log file(s) from preposs on odaprep01 to odaprep02:

    thread 1 sequence 26160 (o1_mf_1_26160_jv3t012k_.arc)... done
    thread 1 sequence 26161 (o1_mf_1_26161_jv3szzng_.arc)... done
    thread 1 sequence 26162 (o1_mf_1_26162_jv3t00lo_.arc)... done
    thread 1 sequence 26163 (o1_mf_1_26163_jv3szzpx_.arc)... done
    ...
    ...
    ...
    thread 1 sequence 26188 (o1_mf_1_26188_jv3t0jgx_.arc)... done
    thread 1 sequence 26189 (o1_mf_1_26189_jv3t0jpb_.arc)... done
    thread 1 sequence 26190 (o1_mf_1_26190_jv3t0gr6_.arc)... done

&gt;&gt;&gt; Dbvisit Archive Management Module (AMM)

    Config: number of archives to keep      = 0
    Config: number of days to keep archives = 1
    Config: archive backup count            = 1
    Config: diskspace full threshold        = 80%
==========

    Total number of archive logs   : 35
    Current disk percent full (/u03/app/oracle/fast_recovery_area/) = 10%
==========

    Current disk percent full (FRA) = 0%
==========

    Number of archive logs deleted = 0

=============================================================
dbvctl ended on odaprep01: Thu Dec  9 12:30:19 2021
=============================================================</pre>
<h3></h3>
<h3>Conclusion</h3>
<p>That was not a Dbvisit issue. As I said at the very beginning, Dbvisit is a great tool <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /> .<br />
Hint: if you want to get the <em>fuser, df, lsof </em>commands working even when a mounted NFS is temporarily unreachable, a solution would be to mount it with the <em>soft </em>option :</p>
<pre class="brush: bash; gutter: true; first-line: 1">mount -o rw,soft host.server.com/share /mymountpoint</pre>
<p>According to the documentation :<br />
<em>&#8220;<strong>soft</strong></em><br />
<em>      Generates a soft mount of the NFS file system. If an error occurs, the stat() function returns with an error.<br />
</em><em>      <span style="text-decoration: underline">If the option hard is used, stat() does not return until the file system is available</span>.&#8221;</em></p>
<p>Hope this helps.</p>
<p>L’article <a href="https://www.dbi-services.com/blog/when-unreachable-nfs-share-mess-up-your-dbvisit-standby-configuration/">When unreachable NFS share mess up your Dbvisit Standby configuration</a> est apparu en premier sur <a href="https://www.dbi-services.com/blog">dbi Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dbi-services.com/blog/when-unreachable-nfs-share-mess-up-your-dbvisit-standby-configuration/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ODA update-server to 19.12 fails on Patch GI with RHP</title>
		<link>https://www.dbi-services.com/blog/oda-update-server-to-19-12-fails-on-patch-gi-with-rhp/</link>
					<comments>https://www.dbi-services.com/blog/oda-update-server-to-19-12-fails-on-patch-gi-with-rhp/#respond</comments>
		
		<dc:creator><![CDATA[David Hueber]]></dc:creator>
		<pubDate>Thu, 04 Nov 2021 15:09:04 +0000</pubDate>
				<category><![CDATA[Database Administration & Monitoring]]></category>
		<category><![CDATA[Hardware & Storage]]></category>
		<category><![CDATA[Operating systems]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Cluster]]></category>
		<category><![CDATA[ODA]]></category>
		<category><![CDATA[Upgrade]]></category>
		<guid isPermaLink="false">https://www.dbi-services.com/blog/oda-update-server-to-19-12-fails-on-patch-gi-with-rhp/</guid>

					<description><![CDATA[<p>Sometimes giving a workshop is a good opportunities to test new things&#8230;this what happened to me today&#8230;  🙂 While giving an ODA workshop, I thought it was a good opportunity to test patching to the new 19.12 release. However during the update-server process we got a failure on the our ODA update to 19.12 failing [&#8230;]</p>
<p>L’article <a href="https://www.dbi-services.com/blog/oda-update-server-to-19-12-fails-on-patch-gi-with-rhp/">ODA update-server to 19.12 fails on Patch GI with RHP</a> est apparu en premier sur <a href="https://www.dbi-services.com/blog">dbi Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Sometimes giving a workshop is a good opportunities to test new things&#8230;this what happened to me today&#8230;  <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>While giving an ODA workshop, I thought it was a good opportunity to test patching to the new 19.12 release.<br />
However during the update-server process we got a failure on the our ODA update to 19.12 failing on GI patch using RHP.</p>
<p>Let&#8217;s see how we fixed it&#8230;</p>
<p><span id="more-16767"></span></p>
<p class="brush: bash; gutter: true; first-line: 1">So this is our starting point:</p>
<pre class="brush: bash; gutter: true; first-line: 1">[root@dbi-oda-x8 tmp]# odacli describe-job -i d3efbbf5-f1db-4c5e-8f03-e8876f85a341

Job details
----------------------------------------------------------------
                     ID:  d3efbbf5-f1db-4c5e-8f03-e8876f85a341
            Description:  Server Patching
                 Status:  Failure
                Created:  November 4, 2021 11:01:15 AM CET
                Message:  DCS-10001:Internal error encountered: Fail to patch GI with RHP : DCS-10001:Internal error encountered: DCS-10001:Internal error encountered: clonemetadata.xml file is not present in local repository.
Update repository with new clones and retry same command...

Task Name                                Start Time                          End Time                            Status
---------------------------------------- ----------------------------------- ----------------------------------- ----------
Server patching                          November 4, 2021 11:01:23 AM CET    November 4, 2021 11:22:16 AM CET    Failure
Server patching                          November 4, 2021 11:01:24 AM CET    November 4, 2021 11:22:16 AM CET    Failure
Creating repositories using yum          November 4, 2021 11:02:36 AM CET    November 4, 2021 11:02:38 AM CET    Success
Updating YumPluginVersionLock rpm        November 4, 2021 11:02:38 AM CET    November 4, 2021 11:02:38 AM CET    Success
Applying OS Patches                      November 4, 2021 11:02:38 AM CET    November 4, 2021 11:10:49 AM CET    Success
Creating repositories using yum          November 4, 2021 11:10:50 AM CET    November 4, 2021 11:10:50 AM CET    Success
Applying HMP Patches                     November 4, 2021 11:10:50 AM CET    November 4, 2021 11:11:08 AM CET    Success
Patch location validation                November 4, 2021 11:11:08 AM CET    November 4, 2021 11:11:08 AM CET    Success
oda-hw-mgmt upgrade                      November 4, 2021 11:11:09 AM CET    November 4, 2021 11:11:41 AM CET    Success
OSS Patching                             November 4, 2021 11:11:42 AM CET    November 4, 2021 11:11:42 AM CET    Success
Applying Firmware Disk Patches           November 4, 2021 11:11:42 AM CET    November 4, 2021 11:11:46 AM CET    Success
Applying Firmware Controller Patches     November 4, 2021 11:11:46 AM CET    November 4, 2021 11:11:50 AM CET    Success
Checking Ilom patch Version              November 4, 2021 11:11:50 AM CET    November 4, 2021 11:11:50 AM CET    Success
Patch location validation                November 4, 2021 11:11:50 AM CET    November 4, 2021 11:11:50 AM CET    Success
Save password in Wallet                  November 4, 2021 11:11:50 AM CET    November 4, 2021 11:11:51 AM CET    Success
Apply Ilom patch                         November 4, 2021 11:11:51 AM CET    November 4, 2021 11:20:48 AM CET    Success
Copying Flash Bios to Temp location      November 4, 2021 11:20:48 AM CET    November 4, 2021 11:20:48 AM CET    Success
Server patching                          November 4, 2021 11:20:48 AM CET    November 4, 2021 11:22:16 AM CET    Failure
Starting the clusterware                 November 4, 2021 11:20:48 AM CET    November 4, 2021 11:22:16 AM CET    Success
registering image                        November 4, 2021 11:22:16 AM CET    November 4, 2021 11:22:16 AM CET    Success
registering working copy                 November 4, 2021 11:22:16 AM CET    November 4, 2021 11:22:16 AM CET    Success
registering image                        November 4, 2021 11:22:16 AM CET    November 4, 2021 11:22:16 AM CET    Success
Creating GI home directories             November 4, 2021 11:22:16 AM CET    November 4, 2021 11:22:16 AM CET    Success
Extract GI clone                         November 4, 2021 11:22:16 AM CET    November 4, 2021 11:22:16 AM CET    Success
Provisioning Software Only GI with RHP   November 4, 2021 11:22:16 AM CET    November 4, 2021 11:22:16 AM CET    Success
Patch GI with RHP                        November 4, 2021 11:22:16 AM CET    November 4, 2021 11:22:16 AM CET    Failure</pre>
<p>&nbsp;</p>
<p>So basically we had a failure because of</p>
<pre>Patch GI with RHP November 4, 2021 11:22:16 AM CET November 4, 2021 11:22:16 AM CET Failure</pre>
<p>&nbsp;</p>
<p>with as explanation the following message:</p>
<pre>DCS-10001:Internal error encountered: Fail to patch GI with RHP : DCS-10001:Internal error encountered:</pre>
<pre>DCS-10001:Internal error encountered: <strong>clonemetadata.xml file is not present in local repository</strong>.</pre>
<p>&nbsp;</p>
<p>This basically sounded like with we were missing the GI clone for the the 19.12 in our local repository (/opt/oracle/oak/pkgrepos)</p>
<p>The first check we was to verify one more time that our update repository job, to import the GI clone, worked properly</p>
<pre class="brush: bash; gutter: true; first-line: 1">[root@dbi-oda-x8 clones]# odacli describe-job -i 3792c33b-3804-44f7-9806-eddf21bb4939

Job details
----------------------------------------------------------------
                     ID:  3792c33b-3804-44f7-9806-eddf21bb4939
            Description:  Repository Update
                 Status:  Success
                Created:  November 4, 2021 10:20:26 AM CET
                Message:  /tmp/ODA/odacli-dcs-19.12.0.0.0-210822.1-DB-19.12.0.0.zip,/tmp/ODA/odacli-dcs-19.12.0.0.0-210822.1-GI-19.12.0.0.zip

Task Name                                Start Time                          End Time                            Status
---------------------------------------- ----------------------------------- ----------------------------------- ----------
Unzip bundle                             November 4, 2021 10:20:29 AM CET    November 4, 2021 10:21:56 AM CET    Success
registering image                        November 4, 2021 10:21:57 AM CET    November 4, 2021 10:21:57 AM CET    Success
registering image                        November 4, 2021 10:21:57 AM CET    November 4, 2021 10:21:57 AM CET    Success</pre>
<p>&nbsp;</p>
<p>OK as this was fine, we decided to check if the file is really physically there:</p>
<pre class="brush: bash; gutter: true; first-line: 1">[root@dbi-oda-x8 ~]# cd /opt/oracle/oak/pkgrepos/orapkgs/clones/
[root@dbi-oda-x8 clones]# ls -l
total 22095968
-rw-r--r-- 1 root root      13813 Aug 23 19:06 clonemetadata.xml
-rw-r--r-- 1 root root 4500047202 Feb  9  2021 db19.210119.tar.gz
-r-xr-xr-x 1 root root 5033359682 Aug 23 19:10 db19.210720.tar.gz
-r-xr-xr-x 1 root root 6542844964 Aug 23 19:06 grid19.210720.tar.gz
-rw-r--r-- 1 root root 6542464864 Feb  9  2021 grid19.tar.gz
drwx------ 2 root root      65536 Nov  4 11:01 lost+found</pre>
<p>Hmmm the file is there and with a simple grep command we can confirm that it is available in the clonemedata.xml too.</p>
<p>We started searching in the ODA 19.12 Release Note for the known issues and the end of the list we found the following <a href="https://docs.oracle.com/en/engineered-systems/oracle-database-appliance/19.12/cmtrn/issues-with-oda-odacli.html#GUID-505471A0-1397-4182-ACB8-AE6269ED987A">one</a>:</p>
<p><a href="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2022/04/ODA-19.2-KnowIssue.png"><img loading="lazy" decoding="async" class="alignnone wp-image-52102" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2022/04/ODA-19.2-KnowIssue.png" alt="ODA 19.12 know issue on server update for misssing version" width="802" height="249" /></a></p>
<p>Ok it is not exactly the same message (not talking about clonemedata.xml) but still linked to missing version.<br />
The proposed workaround is:</p>
<p><a href="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2022/04/ODA-19-2-Workaround.png"><img loading="lazy" decoding="async" class="alignnone wp-image-52107" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2022/04/ODA-19-2-Workaround.png" alt="Server update workaround by changing file ownership" width="788" height="240" /></a></p>
<p>So let&#8217;s have a look to our setup on the source GI Home</p>
<pre class="brush: bash; gutter: true; first-line: 1">[root@dbi-oda-x8 bin]# ls -l osdbagrp*
-rwxr-xr-x 1 root oinstall 33488 Nov  3 13:24 osdbagrp
-rw-r----- 1 root oinstall     0 Feb  9  2021 osdbagrp0</pre>
<p>As in the know issue, the file is not belonging to grid user. We tried then to change the ownership</p>
<pre class="brush: bash; gutter: true; first-line: 1">[root@dbi-oda-x8 bin]# chown grid osdbagrp


[root@dbi-oda-x8 bin]# ls -l osdbagrp*
-rwxr-xr-x 1 grid oinstall 33488 Nov  3 13:24 osdbagrp
-rw-r----- 1 root oinstall     0 Feb  9  2021 osdbagrp0</pre>
<p>Then we run the command recommended to update the registry&#8230;unfortunately neither worked</p>
<pre class="brush: bash; gutter: true; first-line: 1">[root@dbi-oda-x8 bin]# odacli update-registry -n gihome
DCS-10112:Specified components are already discovered.


[root@dbi-oda-x8 bin]# odacli update-registry -n system
DCS-10112:Specified components are already discovered.</pre>
<p>As it didn&#8217;t wanted to update the information, we decided to force the update</p>
<pre class="brush: bash; gutter: true; first-line: 1">[root@dbi-oda-x8 bin]# odacli update-registry -n gihome -f

Job details
----------------------------------------------------------------
                     ID:  4a9c149b-d59a-4a05-baea-2acfa446ec34
            Description:  Discover System Components : gihome
                 Status:  Created
                Created:  November 4, 2021 11:42:05 AM CET
                Message:

Task Name                                Start Time                          End Time                            Status
---------------------------------------- ----------------------------------- ----------------------------------- ----------</pre>
<p>Checking the state of the job shows that it is sucessful</p>
<pre class="brush: bash; gutter: true; first-line: 1">[root@dbi-oda-x8 bin]# odacli describe-job -i 4a9c149b-d59a-4a05-baea-2acfa446ec34

Job details
----------------------------------------------------------------
                     ID:  4a9c149b-d59a-4a05-baea-2acfa446ec34
            Description:  Discover System Components : gihome
                 Status:  Success
                Created:  November 4, 2021 11:42:05 AM CET
                Message:

Task Name                                Start Time                          End Time                            Status
---------------------------------------- ----------------------------------- ----------------------------------- ----------
Rediscover GiHome                        November 4, 2021 11:42:05 AM CET    November 4, 2021 11:42:07 AM CET    Success</pre>
<p>&nbsp;</p>
<p>The final steps is then to re-run the update server command:</p>
<pre class="brush: bash; gutter: true; first-line: 1">[root@dbi-oda-x8 bin]# odacli update-server -v 19.12.0.0.0
{
  "jobId" : "946922b3-aefa-4c75-b2e1-019e9d404118",
  "status" : "Created",
  "message" : "Success of server update will trigger reboot of the node after 4-5 minutes. Please wait until the node reboots.",
  "reports" : [ ],
  "createTimestamp" : "November 04, 2021 11:42:57 AM CET",
  "resourceList" : [ ],
  "description" : "Server Patching",
  "updatedTime" : "November 04, 2021 11:42:57 AM CET"
}</pre>
<p>After few minutes the patching of the server is finally successful <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<pre class="brush: bash; gutter: true; first-line: 1">[root@dbi-oda-x8 ~]# odacli describe-job -i 946922b3-aefa-4c75-b2e1-019e9d404118

Job details
----------------------------------------------------------------
                     ID:  946922b3-aefa-4c75-b2e1-019e9d404118
            Description:  Server Patching
                 Status:  Success
                Created:  November 4, 2021 11:42:57 AM CET
                Message:  Successfully patched GI with RHP

Task Name                                Start Time                          End Time                            Status
---------------------------------------- ----------------------------------- ----------------------------------- ----------
Creating repositories using yum          November 4, 2021 11:43:11 AM CET    November 4, 2021 11:43:13 AM CET    Success
Updating YumPluginVersionLock rpm        November 4, 2021 11:43:13 AM CET    November 4, 2021 11:43:13 AM CET    Success
Applying OS Patches                      November 4, 2021 11:43:13 AM CET    November 4, 2021 11:43:14 AM CET    Success
Creating repositories using yum          November 4, 2021 11:43:15 AM CET    November 4, 2021 11:43:15 AM CET    Success
Applying HMP Patches                     November 4, 2021 11:43:15 AM CET    November 4, 2021 11:43:16 AM CET    Success
Patch location validation                November 4, 2021 11:43:16 AM CET    November 4, 2021 11:43:16 AM CET    Success
oda-hw-mgmt upgrade                      November 4, 2021 11:43:16 AM CET    November 4, 2021 11:43:16 AM CET    Success
OSS Patching                             November 4, 2021 11:43:16 AM CET    November 4, 2021 11:43:16 AM CET    Success
Applying Firmware Disk Patches           November 4, 2021 11:43:16 AM CET    November 4, 2021 11:43:20 AM CET    Success
Applying Firmware Controller Patches     November 4, 2021 11:43:20 AM CET    November 4, 2021 11:43:24 AM CET    Success
Checking Ilom patch Version              November 4, 2021 11:43:24 AM CET    November 4, 2021 11:43:24 AM CET    Success
Patch location validation                November 4, 2021 11:43:24 AM CET    November 4, 2021 11:43:24 AM CET    Success
Save password in Wallet                  November 4, 2021 11:43:25 AM CET    November 4, 2021 11:43:25 AM CET    Success
Apply Ilom patch                         November 4, 2021 11:43:25 AM CET    November 4, 2021 11:43:25 AM CET    Success
Copying Flash Bios to Temp location      November 4, 2021 11:43:25 AM CET    November 4, 2021 11:43:25 AM CET    Success
Starting the clusterware                 November 4, 2021 11:43:25 AM CET    November 4, 2021 11:43:25 AM CET    Success
registering image                        November 4, 2021 11:43:25 AM CET    November 4, 2021 11:43:26 AM CET    Success
registering working copy                 November 4, 2021 11:43:26 AM CET    November 4, 2021 11:43:26 AM CET    Success
registering image                        November 4, 2021 11:43:26 AM CET    November 4, 2021 11:43:26 AM CET    Success
Creating GI home directories             November 4, 2021 11:43:26 AM CET    November 4, 2021 11:43:26 AM CET    Success
Extract GI clone                         November 4, 2021 11:43:26 AM CET    November 4, 2021 11:43:26 AM CET    Success
Provisioning Software Only GI with RHP   November 4, 2021 11:43:26 AM CET    November 4, 2021 11:43:26 AM CET    Success
Patch GI with RHP                        November 4, 2021 11:43:26 AM CET    November 4, 2021 11:50:05 AM CET    Success
Updating GIHome version                  November 4, 2021 11:50:06 AM CET    November 4, 2021 11:50:08 AM CET    Success
Update System version                    November 4, 2021 11:50:23 AM CET    November 4, 2021 11:50:23 AM CET    Success
Cleanup JRE Home                         November 4, 2021 11:50:23 AM CET    November 4, 2021 11:50:23 AM CET    Success
Add SYSNAME in Env                       November 4, 2021 11:50:23 AM CET    November 4, 2021 11:50:23 AM CET    Success
Setting ACL for disk groups              November 4, 2021 11:50:23 AM CET    November 4, 2021 11:50:27 AM CET    Success
preRebootNode Actions                    November 4, 2021 11:52:14 AM CET    November 4, 2021 11:55:06 AM CET    Success
Reboot Ilom                              November 4, 2021 11:55:06 AM CET    November 4, 2021 11:55:06 AM CET    Success</pre>
<p>&nbsp;</p>
<p>Here we go our ODA is now up-to-date in version 19.12, we can continue with:</p>
<ul>
<li>cleaning the repo</li>
<li>manually cleaning the former GI Home</li>
<li>Creating a Database Home Store</li>
<li>&#8230;</li>
<li>&#8230; <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f600.png" alt="😀" class="wp-smiley" style="height: 1em; max-height: 1em;" /></li>
</ul>
<p>Enjoy! <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f60e.png" alt="😎" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>L’article <a href="https://www.dbi-services.com/blog/oda-update-server-to-19-12-fails-on-patch-gi-with-rhp/">ODA update-server to 19.12 fails on Patch GI with RHP</a> est apparu en premier sur <a href="https://www.dbi-services.com/blog">dbi Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dbi-services.com/blog/oda-update-server-to-19-12-fails-on-patch-gi-with-rhp/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Exadata X9M release</title>
		<link>https://www.dbi-services.com/blog/exadata-x9m-release/</link>
					<comments>https://www.dbi-services.com/blog/exadata-x9m-release/#respond</comments>
		
		<dc:creator><![CDATA[Oracle Team]]></dc:creator>
		<pubDate>Wed, 29 Sep 2021 11:33:40 +0000</pubDate>
				<category><![CDATA[Database Administration & Monitoring]]></category>
		<category><![CDATA[Database management]]></category>
		<category><![CDATA[Hardware & Storage]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[appliance]]></category>
		<category><![CDATA[Exadata]]></category>
		<category><![CDATA[Oracle RDBMS]]></category>
		<category><![CDATA[personal thought]]></category>
		<guid isPermaLink="false">https://www.dbi-services.com/blog/exadata-x9m-release/</guid>

					<description><![CDATA[<p>I would like to share some personal thoughts. September 28th 2021, Oracle released the eleventh Exadata data machine called &#8220;X9M-2&#8221; (2 CPU sockets), X9M-8 (8 sockets) and ZDLRA X9M. Exadata is a computing platform to run Oracle RDBMS, zero data loss recovery appliance (ZDLRA) is a platform to backup Oracle RDBMS and based on Exadata [&#8230;]</p>
<p>L’article <a href="https://www.dbi-services.com/blog/exadata-x9m-release/">Exadata X9M release</a> est apparu en premier sur <a href="https://www.dbi-services.com/blog">dbi Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>I would like to share some personal thoughts. September 28th 2021, Oracle released the eleventh Exadata data machine called &#8220;X9M-2&#8221; (2 CPU sockets), X9M-8 (8 sockets) and ZDLRA X9M. Exadata is a computing platform to run Oracle RDBMS, zero data loss recovery appliance (ZDLRA) is a platform to backup Oracle RDBMS and based on Exadata hardware.</p>
<p><span id="more-16719"></span></p>
<h4>Combining hard- and software and importance of documentation</h4>
<p>Oracle Exadata is undoubtedly an interesting platform to run Oracle RDBMS on. It&#8217;s the combination of hard- and software that makes the difference to other platforms. Maybe you remember the famous release of Apple iPhone that redefined smartphone market using sweet spots on hard- and software?<br />
For the readers technically interested, I recommend to have a look at <a href="https://docs.oracle.com/en/engineered-systems/index.html">documentation</a>. See <a href="https://docs.oracle.com/en/engineered-systems/exadata-database-machine/dbmso/hardware-components-exadata-db-machine.html#GUID-1C6D6FCA-6B44-42DE-AA64-EA5F9791F9DC">here for example on hardware details</a> allowing to compare old and new. Please also find a comparison in the next section.<br />
Regarding ZDLRA, one can find site planning, network configuration, hardware and software installation, and maintenance in <a href="https://docs.oracle.com/en/engineered-systems/zero-data-loss-recovery-appliance/19.2/amogd/changes-zdlra-19.2.1.1.2.html">documentation</a>. To date, there is no documentation available on new features, but you may check <a href="https://docs.oracle.com/en/engineered-systems/zero-data-loss-recovery-appliance/19.2/books.html">all books</a> at a later time.</p>
<h4>What changed? A comparison</h4>
<p>Please find <a href="https://docs.oracle.com/en/engineered-systems/exadata-database-machine/dbmso/hardware-components-exadata-db-machine.html#GUID-1C6D6FCA-6B44-42DE-AA64-EA5F9791F9DC">in documentation hardware details on a single webpage</a>. In whitepapers, Oracle briefly introduces features and list some benchmark results:</p>
<ul>
<li><a href="https://www.oracle.com/a/ocom/docs/oracle-database-exadata-cloud-service-ds.pdf">X8M-2 whitepaper</a></li>
<li><a href="https://www.oracle.com/a/ocom/docs/engineered-systems/exadata/exadata-x8m-8-ds.pdf">X8M-8 whitepaper</a></li>
<li><a href="https://www.oracle.com/a/ocom/docs/engineered-systems/exadata/exadata-x9m-2-ds.pdf">X9M-2 whitepaper</a></li>
<li><a href="https://www.oracle.com/a/ocom/docs/engineered-systems/exadata/exadata-x9m-8-ds.pdf">X9M-8 whitepaper</a></li>
</ul>
<p><strong>Compute nodes hardware</strong></p>
<table style="border-collapse: collapse;width: 81.22837370242215%;height: 568px">
<tbody>
<tr style="height: 24px">
<td style="width: 24.584775086505193%;height: 24px"><strong>Metric</strong></td>
<td style="width: 16.62629757785467%;height: 24px"><strong># CPU sockets</strong></td>
<td style="width: 15.760219183809063%;height: 24px"><strong>X8M</strong></td>
<td style="width: 12.64808531446083%;height: 24px"><strong>X9M</strong></td>
<td style="width: 11.608996539792393%;height: 24px"><strong>increase %</strong></td>
</tr>
<tr style="height: 39px">
<td style="width: 24.584775086505193%;height: 39px">8K database read I/Os per second</td>
<td style="width: 16.62629757785467%;height: 39px">2 (X?M-2)</td>
<td style="width: 15.760219183809063%;height: 39px">1&#8217;500&#8217;000</td>
<td style="width: 12.64808531446083%;height: 39px">2&#8217;800&#8217;000</td>
<td style="width: 11.608996539792393%;height: 39px">87 %</td>
</tr>
<tr style="height: 24px">
<td style="width: 24.584775086505193%;height: 24px"></td>
<td style="width: 16.62629757785467%;height: 24px">8 (X?M-8)</td>
<td style="width: 15.760219183809063%;height: 24px">5&#8217;000&#8217;000</td>
<td style="width: 12.64808531446083%;height: 24px">5&#8217;000&#8217;000</td>
<td style="width: 11.608996539792393%;height: 24px">0 %</td>
</tr>
<tr style="height: 24px">
<td style="width: 24.584775086505193%;height: 24px">8K flash write I/Os per second</td>
<td style="width: 16.62629757785467%;height: 24px">2 (X?M-2)</td>
<td style="width: 15.760219183809063%;height: 24px">980&#8217;000</td>
<td style="width: 12.64808531446083%;height: 24px">2&#8217;000&#8217;000</td>
<td style="width: 11.608996539792393%;height: 24px">204 %</td>
</tr>
<tr style="height: 24px">
<td style="width: 24.584775086505193%;height: 24px"></td>
<td style="width: 16.62629757785467%;height: 24px">8 (X?M-8)</td>
<td style="width: 15.760219183809063%;height: 24px">3&#8217;000&#8217;000</td>
<td style="width: 12.64808531446083%;height: 24px">3&#8217;000&#8217;000</td>
<td style="width: 11.608996539792393%;height: 24px">0 %</td>
</tr>
<tr style="height: 24px">
<td style="width: 24.584775086505193%;height: 24px">Max Memory in GB</td>
<td style="width: 16.62629757785467%;height: 24px">2 (X?M-2)</td>
<td style="width: 15.760219183809063%;height: 24px">1536</td>
<td style="width: 12.64808531446083%;height: 24px">2048</td>
<td style="width: 11.608996539792393%;height: 24px">33 %</td>
</tr>
<tr style="height: 24px">
<td style="width: 24.584775086505193%;height: 24px"></td>
<td style="width: 16.62629757785467%;height: 24px">8 (X?M-8)</td>
<td style="width: 15.760219183809063%;height: 24px">6144</td>
<td style="width: 12.64808531446083%;height: 24px">6144</td>
<td style="width: 11.608996539792393%;height: 24px">0 %</td>
</tr>
<tr style="height: 120px">
<td style="width: 24.584775086505193%;height: 45px">Total CPU cores</td>
<td style="width: 16.62629757785467%;height: 215px" rowspan="4">2 (X?M-2)</td>
<td style="width: 15.760219183809063%;height: 45px">48</td>
<td style="width: 12.64808531446083%;height: 45px">64</td>
<td style="width: 11.608996539792393%;height: 45px">33 %</td>
</tr>
<tr style="height: 10px">
<td style="width: 24.584775086505193%;height: 58px">single core marks</td>
<td style="width: 15.760219183809063%;height: 58px"><span style="font-family: inherit;font-size: inherit">ca. 960</span></td>
<td style="width: 12.64808531446083%;height: 58px">ca. 1200</td>
<td style="width: 11.608996539792393%;height: 58px">25 %</td>
</tr>
<tr style="height: 56px">
<td style="width: 24.584775086505193%;height: 56px">multi core marks</td>
<td style="width: 15.760219183809063%;height: 56px">ca. 24&#8217;000</td>
<td style="width: 12.64808531446083%;height: 56px">ca. 45&#8217;000</td>
<td style="width: 11.608996539792393%;height: 56px">87.5 %</td>
</tr>
<tr style="height: 56px">
<td style="width: 24.584775086505193%;height: 56px">model</td>
<td style="width: 15.760219183809063%;height: 56px">Intel® Xeon®<br />
8260, 2.4 Ghz</td>
<td style="width: 12.64808531446083%;height: 56px">Intel® Xeon® 8358, 2.6Ghz</td>
<td style="width: 11.608996539792393%;height: 56px">n/a</td>
</tr>
<tr style="height: 120px">
<td style="width: 24.584775086505193%;height: 48px">Total CPU cores</td>
<td style="width: 16.62629757785467%;height: 170px" rowspan="4">8 (X?M-8)</td>
<td style="width: 15.760219183809063%;height: 48px">192</td>
<td style="width: 12.64808531446083%;height: 48px">
<div class="page" title="Page 18">
<div class="section">
<div class="layoutArea">
<div class="column">
<p>192</p>
</div>
</div>
</div>
</div>
</td>
<td style="width: 11.608996539792393%;height: 48px">0 %</td>
</tr>
<tr style="height: 10px">
<td style="width: 24.584775086505193%;height: 10px">single core marks</td>
<td style="width: 15.760219183809063%;height: 10px">ca. 960</td>
<td style="width: 12.64808531446083%;height: 10px">
<div class="page" title="Page 18">
<div class="section">
<div class="layoutArea">
<div class="column">
<p>ca. 960</p>
</div>
</div>
</div>
</div>
</td>
<td style="width: 11.608996539792393%;height: 10px">0 %</td>
</tr>
<tr style="height: 56px">
<td style="width: 24.584775086505193%;height: 56px">multi core marks</td>
<td style="width: 15.760219183809063%;height: 56px">ca. 26&#8217;000</td>
<td style="width: 12.64808531446083%;height: 56px">
<div class="page" title="Page 18">
<div class="section">
<div class="layoutArea">
<div class="column">
<p>ca. 26&#8217;000</p>
</div>
</div>
</div>
</div>
</td>
<td style="width: 11.608996539792393%;height: 56px">0 %</td>
</tr>
<tr style="height: 56px">
<td style="width: 24.584775086505193%;height: 56px">model</td>
<td style="width: 15.760219183809063%;height: 56px">Intel® Xeon®<br />
8268, 2.9 Ghz</td>
<td style="width: 12.64808531446083%;height: 56px">
<div class="page" title="Page 18">
<div class="section">
<div class="layoutArea">
<div class="column">
<p>Intel® Xeon® 8268, 2.9 Ghz</p>
</div>
</div>
</div>
</div>
</td>
<td style="width: 11.608996539792393%;height: 56px">n/a</td>
</tr>
</tbody>
</table>
<p>CPU scores are taken from <a href="https://browser.geekbench.com/v5/cpu/search?utf8=✓&amp;q=xeon+8358">geekbench 5 results database</a>, take with caution, may not be reliable. No increase on X?M-8 compute nodes, as same hardware on both versions. Main reason to use X?M-8 is more max memory available per compute node (think of in-memory database option). No average latency given on IOPS, therefore results are not completely documented and one need to interpret them with caution.<br />
Please note benefit using persistent memory on compute node (in memory mode, so to increase total amount of RAM, but no persistence) are not as big as using PMEM on storage node (app-direct mode, persistence). <a href="https://itpeernetwork.intel.com/intel-optane-dc-persistent-memory-operating-modes/">See here the modes explained</a>.</p>
<p><strong>Storage nodes hardware</strong></p>
<table style="border-collapse: collapse;width: 80.96885813148789%;height: 608px">
<tbody>
<tr style="height: 24px">
<td style="width: 24.238754325259514%;height: 24px"><strong>Metric</strong></td>
<td style="width: 17.231833910034602%;height: 24px"><strong>Model</strong></td>
<td style="width: 15.367527816079996%;height: 24px"><strong>X8M</strong></td>
<td style="width: 12.867766301567064%;height: 24px"><strong>X9M</strong></td>
<td style="width: 11.26297577854671%;height: 24px"><strong>increase %</strong></td>
</tr>
<tr style="height: 48px">
<td style="width: 24.238754325259514%;height: 48px" rowspan="3">8K database read I/Os per second</td>
<td style="width: 17.231833910034602%;height: 48px">Extreme Flash (EF)</td>
<td style="width: 15.367527816079996%;height: 48px">1&#8217;500&#8217;000</td>
<td style="width: 12.867766301567064%;height: 48px">2&#8217;300&#8217;000</td>
<td style="width: 11.26297577854671%;height: 48px">53 %</td>
</tr>
<tr style="height: 24px">
<td style="width: 17.231833910034602%;height: 24px">High capacity (HC)</td>
<td style="width: 15.367527816079996%;height: 24px">1&#8217;500&#8217;000</td>
<td style="width: 12.867766301567064%;height: 24px">2&#8217;300&#8217;000</td>
<td style="width: 11.26297577854671%;height: 24px">53 %</td>
</tr>
<tr style="height: 24px">
<td style="width: 17.231833910034602%;height: 24px">Extended (XT)</td>
<td style="width: 15.367527816079996%;height: 24px">n/a</td>
<td style="width: 12.867766301567064%;height: 24px">n/a</td>
<td style="width: 11.26297577854671%;height: 24px">n/a</td>
</tr>
<tr style="height: 24px">
<td style="width: 24.238754325259514%;height: 24px" rowspan="3">8K flash write I/Os per second</td>
<td style="width: 17.231833910034602%;height: 24px">Extreme Flash (EF)</td>
<td style="width: 15.367527816079996%;height: 24px">470&#8217;000</td>
<td style="width: 12.867766301567064%;height: 24px">614&#8217;000</td>
<td style="width: 11.26297577854671%;height: 24px">31 %</td>
</tr>
<tr style="height: 24px">
<td style="width: 17.231833910034602%;height: 24px">High capacity (HC)</td>
<td style="width: 15.367527816079996%;height: 24px">470&#8217;000</td>
<td style="width: 12.867766301567064%;height: 24px">614&#8217;000</td>
<td style="width: 11.26297577854671%;height: 24px">31 %</td>
</tr>
<tr style="height: 24px">
<td style="width: 17.231833910034602%;height: 24px">Extended (XT)</td>
<td style="width: 15.367527816079996%;height: 24px">n/a</td>
<td style="width: 12.867766301567064%;height: 24px">n/a</td>
<td style="width: 11.26297577854671%;height: 24px">n/a</td>
</tr>
<tr style="height: 48px">
<td style="width: 24.238754325259514%;height: 48px" rowspan="3">Flash raw capacity in TB</td>
<td style="width: 17.231833910034602%;height: 48px">Extreme Flash (EF)</td>
<td style="width: 15.367527816079996%;height: 48px">51.2, <span style="font-family: inherit;font-size: inherit">PCIe 3.0</span></td>
<td style="width: 12.867766301567064%;height: 48px">51.2, <span style="font-family: inherit;font-size: inherit">PCIe4.0</span></td>
<td style="width: 11.26297577854671%;height: 48px">0 %</td>
</tr>
<tr style="height: 24px">
<td style="width: 17.231833910034602%;height: 24px">High capacity (HC)</td>
<td style="width: 15.367527816079996%;height: 24px">25.6, <span style="font-family: inherit;font-size: inherit">PCIe 3.0</span></td>
<td style="width: 12.867766301567064%;height: 24px">25.6,  PCI 4.0</td>
<td style="width: 11.26297577854671%;height: 24px">0 %</td>
</tr>
<tr style="height: 24px">
<td style="width: 17.231833910034602%;height: 24px">Extended (XT)</td>
<td style="width: 15.367527816079996%;height: 24px">0</td>
<td style="width: 12.867766301567064%;height: 24px">1</td>
<td style="width: 11.26297577854671%;height: 24px"></td>
</tr>
<tr style="height: 48px">
<td style="width: 24.238754325259514%;height: 48px" rowspan="3">Disk raw capacity in TB</td>
<td style="width: 17.231833910034602%;height: 48px">Extreme Flash (EF)</td>
<td style="width: 15.367527816079996%;height: 48px">0</td>
<td style="width: 12.867766301567064%;height: 48px">0</td>
<td style="width: 11.26297577854671%;height: 48px">0 %</td>
</tr>
<tr style="height: 24px">
<td style="width: 17.231833910034602%;height: 24px">High capacity (HC)</td>
<td style="width: 15.367527816079996%;height: 24px">168</td>
<td style="width: 12.867766301567064%;height: 24px">216</td>
<td style="width: 11.26297577854671%;height: 24px">28.6%</td>
</tr>
<tr style="height: 24px">
<td style="width: 17.231833910034602%;height: 24px">Extended (XT)</td>
<td style="width: 15.367527816079996%;height: 24px">168</td>
<td style="width: 12.867766301567064%;height: 24px">216</td>
<td style="width: 11.26297577854671%;height: 24px">28.6%</td>
</tr>
<tr style="height: 48px">
<td style="width: 24.238754325259514%;height: 48px" rowspan="2">Persistent memory raw capacity in TB</td>
<td style="width: 17.231833910034602%;height: 48px">Extreme Flash (EF)</td>
<td style="width: 15.367527816079996%;height: 48px">1.5<br />
Series 100</td>
<td style="width: 12.867766301567064%;height: 48px">1.5<br />
Series 200</td>
<td style="width: 11.26297577854671%;height: 48px">0%<br />
32 % bandwidth</td>
</tr>
<tr style="height: 24px">
<td style="width: 17.231833910034602%;height: 24px">High capacity (HC)</td>
<td style="width: 15.367527816079996%;height: 24px">1.5<br />
Series 100</td>
<td style="width: 12.867766301567064%;height: 24px">1.5,<br />
Series 200</td>
<td style="width: 11.26297577854671%;height: 24px">0%<br />
32 % bandwidth</td>
</tr>
<tr style="height: 104px">
<td style="width: 24.238754325259514%;height: 104px" rowspan="3">Total CPU cores</td>
<td style="width: 17.231833910034602%;height: 104px">Extreme Flash (EF)</td>
<td style="width: 15.367527816079996%;height: 104px">32<br />
2x <span style="font-family: inherit;font-size: inherit">Intel Xeon 5218 processors (2.3GHz)</span></td>
<td style="width: 12.867766301567064%;height: 104px">32 (2)<br />
2x <span style="font-family: inherit;font-size: inherit">Intel® Xeon® 8352Y 2.2 Ghz</span></td>
<td style="width: 11.26297577854671%;height: 104px">0 % (1)</td>
</tr>
<tr style="height: 24px">
<td style="width: 17.231833910034602%;height: 24px">High capacity (HC)</td>
<td style="width: 15.367527816079996%;height: 24px">32<br />
2x <span style="font-family: inherit;font-size: inherit">Intel Xeon 5218 processors (2.3GHz)</span></td>
<td style="width: 12.867766301567064%;height: 24px">32 (2)<br />
2x <span style="font-family: inherit;font-size: inherit">Intel® Xeon® 8352Y 2.2 Ghz (2)</span></td>
<td style="width: 11.26297577854671%;height: 24px">0 % (1)</td>
</tr>
<tr>
<td style="width: 17.231833910034602%">Extended (XT)</td>
<td style="width: 15.367527816079996%">16<br />
1x <span style="font-family: inherit;font-size: inherit">Intel Xeon 5218 processors (2.3GHz)</span></td>
<td style="width: 12.867766301567064%">16 (2)<br />
1x <span style="font-family: inherit;font-size: inherit">Intel® Xeon® 8352Y 2.2 Ghz</span></td>
<td style="width: 11.26297577854671%">0% (1)</td>
</tr>
</tbody>
</table>
<p>No increase on flash storage and persistent memory capacity. PMEM bandwidth increase <a href="https://www.intel.com/content/www/us/en/products/docs/memory-storage/optane-persistent-memory/optane-persistent-memory-200-series-brief.html">according to Intel</a>. No average latency given on IOPS, therefore results are not completely documented and one need to interpret them with caution.<br />
(1) Comparison on base frequency must be taken with caution as there are more factors on a CPU to influence overall system performance. Other factors are CPU quantity, max turbo frequency, cache sizes, number of Ultra Path Interconnects (UPI), thermal design power (TDP), PCIe version and root complex, number of memory channels, etc. (list not complete).<br />
(2) Xeon 8352Y was set to use only 16 out of 32 available cores using <a href="https://www.kernel.org/doc/html/latest/admin-guide/pm/intel-speed-select.html">Intel Speed Select Technology &#8211; Performance Profile</a>. This technology may not be used to lower RDBMS license costs. On Exadata, use <a href="https://docs.oracle.com/en/engineered-systems/exadata-database-machine/dbmli/restricted-licensing1.html#GUID-EB1E9A0D-2BFF-42BF-865F-8AFCA7207525">Capacity on Demand</a> feature instead. Scale up possible, scale down not. Similar to <a href="https://docs.oracle.com/en/engineered-systems/oracle-database-appliance/19.12/cmtli/oracle-database-appliance-licensing-overview.html#GUID-84962F3A-A2F6-40C1-AADB-4344AAD03305">Oracle Database Appliance</a>. One may also use <a href="https://www.oracle.com/assets/partitioning-070609.pdf">hard partitioning</a>.</p>
<p><strong>Full rack configuration<br />
</strong></p>
<p>Performance increase between X8M and X9M platform according to Oracle tests (we don&#8217;t know how Oracle is testing and if test are consistent) are quite impressive. Interestingly, x9M full rack with high capacity storage uses 14 instead of 12 storage nodes. Besides taht, there ist more CPU power as more modern hardware available both on compute and storage nodes. No average latency given on IOPS, therefore results are not completely documented and one need to interpret them with caution.</p>
<table style="border-collapse: collapse;width: 100%;height: 144px">
<tbody>
<tr style="height: 24px">
<td style="width: 25%;height: 24px"><strong>Metric</strong></td>
<td style="width: 25%;height: 24px"><strong>X8M</strong></td>
<td style="width: 25%;height: 24px"><strong>X9M</strong></td>
<td style="width: 25%;height: 24px"><strong>Increase</strong></td>
</tr>
<tr style="height: 48px">
<td style="width: 25%;height: 48px">8K database read I/Os per second</td>
<td style="width: 25%">12&#8217;000&#8217;000</td>
<td style="width: 25%">22&#8217;400&#8217;000</td>
<td style="width: 25%">86.7%</td>
</tr>
<tr style="height: 24px">
<td style="width: 25%;height: 24px">8K flash write I/Os per second</td>
<td style="width: 25%">5&#8217;640&#8217;000</td>
<td style="width: 25%">8&#8217;596&#8217;000</td>
<td style="width: 25%">52.4 %</td>
</tr>
<tr style="height: 24px">
<td style="width: 25%;height: 24px">Database Servers<br />
Total cores</td>
<td style="width: 25%;height: 24px">8 x X8M-2<br />
400</td>
<td style="width: 25%;height: 24px">8 x X9M-2<br />
512</td>
<td style="width: 25%;height: 24px">0 %<br />
28 %</td>
</tr>
<tr style="height: 24px">
<td style="width: 25%;height: 24px">Storage Servers<br />
Total cores</td>
<td style="width: 25%;height: 24px">12 x High capacity<br />
384</td>
<td style="width: 25%;height: 24px">14 x High capacity<br />
448</td>
<td style="width: 25%;height: 24px">16.7 %</td>
</tr>
<tr style="height: 24px">
<td style="width: 25%;height: 24px">Disk raw capacity in TB</td>
<td style="width: 25%;height: 24px">2016</td>
<td style="width: 25%;height: 24px">
<div class="page" title="Page 21">
<div class="section">
<div class="layoutArea">
<div class="column">
<div class="page" title="Page 21">
<div class="section">
<div class="layoutArea">
<div class="column">
<p>3024</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</td>
<td style="width: 25%;height: 24px"> 50%</td>
</tr>
<tr style="height: 24px">
<td style="width: 25%;height: 24px">Flash raw capacity in TB</td>
<td style="width: 25%;height: 24px">307.2</td>
<td style="width: 25%;height: 24px">358.4</td>
<td style="width: 25%;height: 48px" rowspan="2">16.7 %</td>
</tr>
<tr style="height: 24px">
<td style="width: 25%;height: 24px">Persistent Memory raw capacity in TB</td>
<td style="width: 25%;height: 24px">18</td>
<td style="width: 25%;height: 24px">21</td>
</tr>
</tbody>
</table>
<p>Please note there are also other configurations available:</p>
<table style="border-collapse: collapse;width: 100%;height: 306px">
<tbody>
<tr style="height: 24px">
<td style="width: 25%;height: 48px" colspan="2" rowspan="2"><strong>Configuration</strong><br />
<strong><br />
</strong></td>
<td style="width: 22.1954425942156%;height: 24px" colspan="2"><strong>Compute nodes</strong></td>
<td style="width: 21.406660823838735%;height: 24px" colspan="2"><strong>Storage nodes</strong></td>
<td style="width: 31.39789658194566%;height: 24px" rowspan="2"><strong>Remarks</strong></td>
</tr>
<tr style="height: 24px">
<td style="width: 10.74715162138475%;height: 24px">X8M-2</td>
<td style="width: 11.44829097283085%;height: 24px">X9M-2</td>
<td style="width: 10.834794040315508%;height: 24px">X8M-2</td>
<td style="width: 10.571866783523229%;height: 24px">X9M-2</td>
</tr>
<tr style="height: 128px">
<td style="width: 25%;height: 128px" colspan="2">Eight rack</td>
<td style="width: 10.74715162138475%;height: 128px">2</td>
<td style="width: 11.44829097283085%;height: 128px">2</td>
<td style="width: 10.834794040315508%;height: 128px">3</td>
<td style="width: 10.571866783523229%;height: 128px">3</td>
<td style="width: 31.39789658194566%;height: 128px">
<ul>
<li>Minimum Exadata configuration</li>
<li>Only half the CPU cores as of quarter rack activated, half the storage build in</li>
<li>Expand by upgrade to quarter rack first, then add additional compute and storage nodes</li>
</ul>
</td>
</tr>
<tr style="height: 39px">
<td style="width: 25%;height: 39px" colspan="2">Quarter rack</td>
<td style="width: 10.74715162138475%;height: 39px">2</td>
<td style="width: 11.44829097283085%;height: 39px">2</td>
<td style="width: 10.834794040315508%;height: 39px">3</td>
<td style="width: 10.571866783523229%;height: 39px">3</td>
<td style="width: 31.39789658194566%;height: 63px" rowspan="3">
<ul>
<li>Expand by adding additional compute and storage nodes (elastic configuration)</li>
</ul>
</td>
</tr>
<tr style="height: 24px">
<td style="height: 24px" colspan="2">Half rack</td>
<td style="width: 10.74715162138475%;height: 24px">4</td>
<td style="width: 11.44829097283085%;height: 24px">4</td>
<td style="width: 10.834794040315508%;height: 24px">6</td>
<td style="width: 10.571866783523229%;height: 24px">7</td>
</tr>
<tr>
<td style="width: 25%" colspan="2">Full rack</td>
<td style="width: 10.74715162138475%">8 X8M-2<br />
or<br />
3 X8M-8</td>
<td style="width: 11.44829097283085%">8 X9M-2<br />
or<br />
3 X9M-8</td>
<td style="width: 10.834794040315508%">12</td>
<td style="width: 10.571866783523229%">14</td>
</tr>
<tr style="height: 19px">
<td style="width: 12.5%;height: 67px" rowspan="2">Elastic configuration</td>
<td style="width: 12.5%;height: 19px">single rack</td>
<td style="width: 10.74715162138475%;height: 19px">up to 19,<br />
912 cores max</td>
<td style="width: 11.44829097283085%;height: 19px">up to 19,<br />
1216 cores max</td>
<td style="width: 10.834794040315508%;height: 19px">up to 19,<br />
608 cores max</td>
<td style="width: 10.571866783523229%;height: 19px">up to 18,<br />
576 cores max</td>
<td style="width: 31.39789658194566%;height: 19px">
<ul>
<li>One can combine compute and storage nodes in a rack</li>
</ul>
</td>
</tr>
<tr style="height: 48px">
<td style="width: 12.5%;height: 48px">multi rack</td>
<td style="width: 10.74715162138475%;height: 48px">up to 32 compute nodes</td>
<td style="width: 11.44829097283085%;height: 48px"> ?, but possibly higher than X8M</td>
<td style="width: 10.834794040315508%;height: 48px">up to 64 storage nodes</td>
<td style="width: 10.571866783523229%;height: 48px">?, but possibly higher than X8M</td>
<td style="width: 31.39789658194566%;height: 48px">
<ul>
<li>Multi rack deployments are possible by connecting racks via integrated RoCE network fabric. RoCE stands for <strong>R</strong>emote direct memory access <strong>o</strong>ver <strong>C</strong>onverged <strong>E</strong>thernet.</li>
<li>Limits without using additonal RoCE network fabric<br />
X8M: 8 racks<br />
X9M: 12 racks</li>
</ul>
</td>
</tr>
</tbody>
</table>
<p>Oracle Exadata Configuration Assistant (OECA) for Exadata simplifies the elastic configuration process. OECA helps you to investigate and plan a variety of elastic configuration scenarios. Yet not updated with X9M platform data, but certainly in future. <a href="https://www.oracle.com/database/technologies/oeca-download.html">Download it here</a>, an Oracle account is needed.</p>
<div class="page" title="Page 1">
<h4 class="layoutArea">Some words on performance</h4>
</div>
<p>Please be advised: Performance increase is not only due to hardware change (latest Intel Xeon Ice lake CPUs, PCIe 4.0 instead 3.0, series 200 persistent memory instead 100, &#8230; you name it), but also to software which may be used on both X8 and X9M platforms. It&#8217;s interesting to see what implications there are when choosing a processor platform. Maybe to see AMD and/or even a port to ARM CPUs in future on Exadata?<br />
Furthermore, I believe hardware tuning is the easiest of all methods to tune Oracle RDBMS. But not the one with biggest effects. There can be a bigger impact by tuning on SQL level or simply keep active data sets in databases small (e.g. one uses partitioning and offload data on a regular basis). Both SQL tuning and data archiving means that a tuning specialist needs to understand how end users use a service. And how the service is meant to be used. Unfortunately there is a difference between the two&#8230; Therefore tuning is individual in every company even using the exact same software. Writing this I got remembered to the 2009 german movie &#8220;<a href="https://en.wikipedia.org/wiki/Same_Same_But_Different">Same Same But Different</a>&#8220;&#8230;<br />
To sum it up: Tuning is hard work, a true craft, sometimes even art&#8230; It&#8217;s advisable to tune with a scientific approach (knowing the effects before implementing them) and end tuning efforts when impact on performance from an end user perspective is too low. So get end users in the tuning boat.</p>
<h4><strong>What can be learned from cloud</strong></h4>
<p>Speaking on performance tuning, one can think of services that can not be run on public clouds because of network latency. That can be a reason to have an Exadata on customer side (Exadata Cloud@Customer offering). But one can learn from cloud services to engineer environments on-premises. I see at least two interesting aspects:</p>
<ol style="list-style-type: lower-alpha">
<li><strong>Automatisation<br />
</strong>Saves time and ensures quality. DBAs end up becoming developers. Running services autonomously by data mine data ditctionary (or simple use &#8220;statistics&#8221;, but this term is not as modern as &#8220;data mining&#8221;) is also part of automatisation.</li>
<li><strong>Standardisation</strong><br />
Many database workloads can fit in a few standards. Maybe you start to set them like T-shirt sizes S, M, L, XL on your oracle RDBMS offerings? No rule without exception, there are always and will be services demanding more or less. But don&#8217;t underestimate the power of Standardisation.<br />
T-shirt sizes are usefull to define limits when consolidate a large number of database on same hardware. Exadata offers Ressource Manager to limit CPU, memory and disk usage.</li>
</ol>
<p>To me it&#8217;s important to understand that both automatisation and standardisation can be achieved running services on premises as well. But probably at higher costs and time efforts. Data can be the second valuable asset in a company after employees and must be protected (see section &#8220;On trust&#8221;), so money is not important. Time and agility are some main reasons why to move workload to cloud. But a supplier should not take decisions for the customer, it&#8217;s always him to decide.</p>
<h4>On trust</h4>
<p>At the end, trust between customer and supplier is an important factor to choose a solution. Trust is a cultural thing, not everybody act the same. This makes live quite interesting, don&#8217;t you think? Regarding Exadata Cloud@customer service, customers trust Oracle corporation to run their workloads and deal with their data even hardware stays in customers data center. Not every supplier is capable protecting data as many incidents showed in the past, and risks will increase with standardisation (less variants to choose from) and monopolisation (fewer vendors). There would be an interesting experiment on Cloud@customer services: What happens if one caps internet access to the Exadata hardware? Will databases continue to run? Yes, according to Thomas Teske (see comments below), but not suggested.</p>
<h4>On appliances</h4>
<p>A vendor may know it&#8217;s solution best on capabilities and limits, so it&#8217;s a logic step to also offer appliances. The more complex a solution, the more this can become true. Oracle RDBMS is a complex piece of software. Appliances and services have to fit in an existing environment. My experience is: The bigger the company, the bigger the environment, the more vendors/silos there are, the less standards used. Quite an impressive amount of people are dealing to migrate data and services from one platform to another. This is by far not every time successful. Furthermore, legacy platforms stay longer as expected. It&#8217;s easy to end up as a zoo keeper.</p>
<h4>Time to refactor?</h4>
<p>On the other hand: if only the vendor is able to build meaningful appliances to its software, did the vendor reach or even miss the point in time to refactor its software products? Oracle RDBMS was first commercially available in 1979. Honestly, I have no idea how much code and ideas still exist from older times in today versions. And personally, I think Oracle strategy is mainly on introducing new features (cloud drives development) and not robustness and fixing bugs. It&#8217;s also quite hard for developers to keep up with what hardware and software today are offering. Modern programming languages and remote direct memory access (RDMA) and persistent memory are just some examples. One goal is that hardware interacts the most direct way with hardware using the least amount of software (and main CPU cycles), so overall performance will improve. Dealing with Oracle RDBMS, licence costs that are CPU based may be lowered. Maybe one time you pay for payload and not CPU power?</p>
<h4>On future</h4>
<p>But maybe at the end the most fundamental steps are to</p>
<ul>
<li>release software using an appropriate open source licence</li>
<li>work constantly on simplicity and close with end customers</li>
<li>identify and lowering technical depths before implementing new features</li>
<li>monetise not by selling licences but services</li>
</ul>
<h4>Back to reality</h4>
<p>I think most developers, C-Managers and end users don&#8217;t care about databases at all. If it comes to Oracle RDBMS, few people understand the complex engine. Most workloads fit in standard configuration, but there are huge risk for misconfiguration. If in doubt, leave standard values and avoid to use hidden parameters. PL/SQL is far too complex, as a result most payload is simply being processed on application server or client level. To transport data has negative effects on costs, energy consumption and performance. On the other hand processing data outside database level may avoid database vendor lock-in. Application come and go, database engines stay.</p>
<p>An optimal service</p>
<ul>
<li>may be available promptly,</li>
<li>usage may be self explaining (focus on usability),</li>
<li>payload may stay under end user control (with the basic feature to erase) and</li>
<li>it&#8217;s performance may scale automatically up and down according to current workload while maintaining low end users response times.</li>
</ul>
<p>Easy requirements, hard to materialise.</p>
<p>Thinking out loud. What is your opinion?</p>
<p>&nbsp;</p>
<hr />
<p>Revision history:</p>
<p><strong>2021-10-26</strong></p>
<ul>
<li>Typos</li>
<li>Intel® Xeon® 8352Y is 32 cores, not 16<br />
It&#8217;s a typo in Oracle X9M-x Whitepapers and <a href="https://docs.oracle.com/en/engineered-systems/exadata-database-machine/dbmso/hardware-components-exadata-db-machine.html#GUID-41BF307D-CA76-46D1-BB60-564BE1CD075A">documentation</a>, I informed some people working for Oracle.<br />
<strong>Thank you, nirwander</strong></li>
<li>ExaC@C Experiment: Services will continue if you cap internet access, according to Thomas Teske.<br />
<strong>Thank you, Thomas</strong></li>
<li>Cloud learnings: ExaC@C mentioned as possible reason to minimise network latency</li>
<li>Total cores comparison: Added storage cell XT</li>
</ul>
<p><strong>2021-10-28</strong></p>
<ul>
<li>Hint why not persistent memory used on compute nodes.</li>
<li>Mentioned other factors on CPUs to influence overall system performance</li>
<li>X9 storage nodes: Xeon 8352Y uses 16 instead 32 cores as an <a href="https://www.kernel.org/doc/html/latest/admin-guide/pm/intel-speed-select.html">Intel Speed Select Technology &#8211; Performance Profile</a> is in place. May not be used to lower RDBMS license cost, mentioned other possibilities.</li>
</ul>
<p><strong>Thanks for explanation, Gavin Parish and Thomas Teske</strong></p>
<p>L’article <a href="https://www.dbi-services.com/blog/exadata-x9m-release/">Exadata X9M release</a> est apparu en premier sur <a href="https://www.dbi-services.com/blog">dbi Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dbi-services.com/blog/exadata-x9m-release/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>When to secure erase storage devices? How to do it on Oracle Database Appliances?</title>
		<link>https://www.dbi-services.com/blog/when-to-secure-erase-storage-devices-how-to-do-it-on-oracle-database-appliances/</link>
					<comments>https://www.dbi-services.com/blog/when-to-secure-erase-storage-devices-how-to-do-it-on-oracle-database-appliances/#respond</comments>
		
		<dc:creator><![CDATA[Oracle Team]]></dc:creator>
		<pubDate>Wed, 16 Jun 2021 12:50:32 +0000</pubDate>
				<category><![CDATA[Hardware & Storage]]></category>
		<category><![CDATA[Operating systems]]></category>
		<category><![CDATA[data wipe]]></category>
		<category><![CDATA[it security]]></category>
		<category><![CDATA[ODA]]></category>
		<category><![CDATA[odaeraser.py]]></category>
		<category><![CDATA[secure data erase]]></category>
		<guid isPermaLink="false">https://www.dbi-services.com/blog/when-to-secure-erase-storage-devices-how-to-do-it-on-oracle-database-appliances/</guid>

					<description><![CDATA[<p>TL;DR If hardware stays inside your data center, it&#8217;s ok to secure erase storage devices. If it leaves your data center (decommission, move to another location), it&#8217;s best to physically destroy (shredder) it. Storage devices are not only hard drives, solid state drives, but also the ones holding data temporarily like memory modules (RAM) and [&#8230;]</p>
<p>L’article <a href="https://www.dbi-services.com/blog/when-to-secure-erase-storage-devices-how-to-do-it-on-oracle-database-appliances/">When to secure erase storage devices? How to do it on Oracle Database Appliances?</a> est apparu en premier sur <a href="https://www.dbi-services.com/blog">dbi Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><b>TL;DR<br />
</b>If hardware stays inside your data center, it&#8217;s ok to secure erase storage devices. If it leaves your data center (decommission, move to another location), it&#8217;s best to physically destroy (shredder) it. Storage devices are not only hard drives, solid state drives, but also the ones holding data temporarily like memory modules (RAM) and CPUs (containing caches, register, &#8230;). As a consequence, do not sell used storage devices.<br />
Main reason to follow this advice is the risk that when third parties got this hardware and are able to recover data, possible abuse can seriously damage your business. Some examples for abuse are: damaging your reputation by going public, selling data, or act quietly by analyzing your data with the goal to develop a better business plan than you have. In many industries data is a very valuable asset today, adequate protection even after hardware reaches it&#8217;s lifecycle is important.</p>
<p>Regarding Oracle Database Appliance, use the script odaeraser.py to securely erase. It&#8217;s a good practise to do this before re-imaging.</p>
<p><span id="more-12712"></span></p>
<h2>When to secure erase storage devices</h2>
<p>It’s convenient to erase data that falls in security category “low” and “medium” as described by NIST (<a href="https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-88r1.pdf">see this document</a>, Figure 4-1 “Sanitization and Disposition Decision Flow”). However, if the data can be categorized “high”, it’s recommended to physically destroy all storage devices by shredding and buying new ones. German &#8220;Bundesamt für Sicherheit in der Informationstechnik&#8221;, known as BSI, recommends similar to NIST:</p>
<ul>
<li>First determine the level of data protection according to DIN 66399</li>
<li>Then choose an appropriate erase method</li>
</ul>
<p>Furthermore, BSI recommends using higher efforts on secure erase when storage devices are not used in the same scope or sold.<br />
Personal recommendation: do not sell used storage devices (hard drives, ssd, memory, CPUs). Main reasons are</p>
<ul>
<li>You do not know what happens to sold hardware (even if securely erased). The combination of physical possession of hardware and time higher the risks that data believed to be erased securely is recovered and abused.</li>
<li>Data is a valuable asset. It&#8217;s value is even higher if data is stored in databases: it&#8217;s potentially curated, therefore very valuable and even in perfectly structured form to work with. That&#8217;s why using a database to deal with large amount of data.</li>
</ul>
<h2><strong>About data erasure and sanitization</strong></h2>
<p>On <a href="https://en.wikipedia.org/wiki/Data_erasure">Wikipedia</a>, one can find an accurate explanation:</p>
<p><code>Data erasure (sometimes referred to as data clearing, data wiping, or data destruction) is a software-based<br />
method of overwriting the data that aims to completely destroy all electronic data residing on a hard disk<br />
drive or other digital media by using zeros and ones to overwrite data onto all sectors of the device.<br />
By overwriting the data on the storage device, the data is rendered unrecoverable<br />
and achieves data sanitization.</code></p>
<p>According to the <a href="https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-88r1.pdf">“Guidelines for Media Sanitization” published by NIST</a>,</p>
<p><code>Sanitization is a process to render access to</code><code>target data (the data subject to the sanitization technique)<br />
on the media infeasible for a given level of recovery effort.<br />
...<br />
Clear, Purge, and Destroy are actions that can be taken to sanitize media. The categories of sanitization<br />
are defined as follows:<br />
- Clear applies logical techniques to sanitize data in all user-addressable storage locations for<br />
protection against simple non-invasive data recovery techniques; typically applied through the standard<br />
Read and Write commands to the storage device, such as by rewriting with a new value or using a menu option<br />
to reset the device to the factory state (where rewriting is not supported).<br />
- Purge applies physical or logical techniques that render Target Data recovery infeasible using state of<br />
the art laboratory techniques.<br />
- Destroy renders Target Data recovery infeasible using state of the art laboratory techniques and results<br />
in the subsequent inability to use the media for storage of data.<br />
</code></p>
<h2><strong>Oracle Database Appliance: Script odaeraser.py</strong></h2>
<p>Oracle Corporation provides the script odaeraser.py that will both clean and purge all data stored on mass storage devices on Oracle Database Appliance. The script is exhausting possibilities both on given software and hardware layer. It follows the minimum sanitization recommendations documented in the NIST guidelines for all devices that permanently storage data used in the Oracle Database Appliance. For details, <a href="https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-88r1.pdf">see pages 32 to 38 of this document</a>.</p>
<p>odaeraser.py is written in python programming language and works on ODA platforms from V2, t0 X8 (and will probably also work on upcoming hardware), both high availability and lite versions (S and M). An ODA consists of multiple types of mass storage devices such as hard disks, SSDs and NVMe storage devices. The script first detects the device types and uses then an appropriate cleaning and purging method.</p>
<p>Script usage can be found in Oracle documentation, <a href="https://docs.oracle.com/en/engineered-systems/oracle-database-appliance/19.10/cmtxn/reimaging-oda.html#GUID-2696CFD4-5C94-410E-9D25-D4CD293AF938">for example for current X8 platform</a>.</p>
<h2><strong>Script analysis</strong></h2>
<p>Done on script version 19.3.0.0.0/1 dated  2019/04/15<br />
Issued erase commands and parameters did not change comparing to version 18.3.0.0.0/3 dated 2018/10/15.<br />
Personally, I do not expect functional changes in script for future 19.x script updates.</p>
<h3>Cleaning data</h3>
<p>The script only cleans data on hard disk drives.</p>
<h4>Method used for hard disk drives</h4>
<p>See line 244 in script. Data on hard disk drives will be overwritten using <a href="https://linux.die.net/man/1/scrub">scrub</a>. In script, variables are used for parameters, what is finally executed is:</p>
<p><code>/usr/bin/scrub -p dod -f -b 10M $device</code></p>
<p>The parameters used are explained on the man page for scrub :</p>
<p style="padding-left: 40px"><code>-p dod</code><br />
Forces scrub to use a pattern to overwrite the disk drive following the standard<br />
DoD 5220.22-M by the National Industrial Security Program, that is the nominal authority (in the United States) for managing the needs of private industry to access classified information.<br />
The dod pattern overwrites drives in three steps using only:</p>
<ol>
<li style="list-style-type: none">
<ol>
<li>value 0, verify data written</li>
<li>value 1, verify data written</li>
<li>overwrite disk completely with random values, verify data written</li>
</ol>
</li>
</ol>
<p style="padding-left: 40px"><code>-f</code><br />
Scrub even if target contains signature indicating it has already been scrubbed.</p>
<p style="padding-left: 40px"><code>-b &lt;scrub block size&gt;</code><br />
Perform read and write calls using the specified block size (in bytes). K, M, or G may be appended to the number to change the units to KiBytes, MiBytes, or GiBytes, respectively. In script, 10MiBytes are used (line 84)</p>
<h3>Purging Data</h3>
<h4>Methods used for hard disk drives and SSDs</h4>
<p>The following methods are using SCSI commandos which are sent from the initiator (the host bus adapter) to the target (the disk or SSD). According to SBC-4 documentation on SCSI commandos (<a href="http://www.t10.org/cgi-bin/ac.pl?t=f&amp;f=sbc4r17.pdf">see this document, chapter 4.11 &#8220;sanitize operations&#8221;</a>) , the sanitize commando on the storage device is resumed after a power loss or logical unit reset. During sanitization, the storage device does not accept new commandos from the initiator. Sanitization operations are performed on</p>
<ul>
<li>The medium on the device that store logical block data</li>
<li>The medium on the device that is not being used to store logical block data. That are areas previously used to store block data, areas available for allocation and physical blocks that have become inaccessible.</li>
<li>All cache</li>
</ul>
<h5>Crypto erase</h5>
<p>See line 257 in script. On certain storage devices, a key is used to encrypt data. The crypto erase operation is removing this key and replacing it with a new key. Without the original key, it’s not possible to decrypt data on the device anymore. In script, variables are used for parameters, what is finally executed is:<br />
<code><br />
</code><code>/usr/bin/sg_raw -vvv -t 300 48 83 00 00 00 00 00 00 00 00</code><br />
The <a href="https://www.mankier.com/8/sg_raw">sg_raw utility</a> sends an arbitrary SCSI command (between 6 and 256 bytes) to the device. The command byte is specified in plain hex format without a prefix or suffix. The parameters used are explained on the man page for sg_raw :</p>
<p style="padding-left: 40px"><code>-vvv</code><br />
Increase level of verbosity</p>
<p style="padding-left: 40px"><code>-t &lt;timeout&gt;</code><br />
Wait up to # of seconds for command completion (in script: 300 seconds, see line 80). Note that if a command times out the operating system may start by aborting the command and if that is unsuccessful it may attempt to reset the device.</p>
<p style="padding-left: 40px"><code>&lt;scsi command&gt;</code><br />
SCSI command to sanitize device using crypto erase method (in script: 48 83 00 00 00 00 00 00 00 00, line 249)</p>
<h5>Overwrite</h5>
<p>See line 271  in script. To overwrite data on storage device, a pattern is used. In script, variables are used for parameters, what is finally executed is:</p>
<p><code>/usr/bin/sg_raw -vvv --infile /tmp/odaeraser.zeros.dat --send=516 48 81 00 00 00 00 00 02 04 00</code></p>
<p style="padding-left: 40px"><code>-vvv</code><br />
Increase level of verbosity</p>
<p style="padding-left: 40px"><code>--infile /tmp/odaeraser.zeros.dat</code><br />
Read data from File instead of stdin, here from file /tmp/odaeraser.zeros.dat</p>
<p style="padding-left: 40px"><code>--send=516</code><br />
Read SLEN bytes of data, either from stdin or from a file, and send them to the DEVICE</p>
<p style="padding-left: 40px"><code>48 81 00 00 00 00 00 02 04 00</code><br />
SCSI command to sanitize device using overwrite method</p>
<h5>Block erase</h5>
<p>See line 285 in script. Block erase causes the device to alter information by setting the physical blocks, even those not accessible by the operating system, to a vendor specific value. In script, variables are used for parameters, what is finally executed is:</p>
<p><code>/usr/bin/sg_raw -vvv 48 82 00 00 00 00 00 00 00 00</code></p>
<p style="padding-left: 40px"><code>-vvv</code><br />
Increase level of verbosity</p>
<p style="padding-left: 40px"><code>48 82 00 00 00 00 00 00 00 00<br />
</code>SCSI command to sanitize device using block erase method</p>
<h4>Method used to purge NVM Express SSDs</h4>
<h5>Secure erase</h5>
<p>See line 296 in script. If the NVMe SSD is capable of self-encryption, the “crypto erase” method is used, otherwise it uses “block erase” method. In script, variables are used for parameters, what is finally executed is:</p>
<p><code>/usr/sbin/nvmeadm erase -a -s</code><br />
The parameters used are explained on the <a href="https://docs.oracle.com/cd/E52095_01/html/E52099/gooip.html">man page of nvmeadm</a></p>
<p style="padding-left: 40px"><code>erase</code><br />
Erases the NVMe namespace media for the controller</p>
<p style="padding-left: 40px"><code>-a</code><br />
Erase all namespaces</p>
<p style="padding-left: 40px"><code>-s</code><br />
Retrieves the vendor-specific information of the specified controller</p>
<p>L’article <a href="https://www.dbi-services.com/blog/when-to-secure-erase-storage-devices-how-to-do-it-on-oracle-database-appliances/">When to secure erase storage devices? How to do it on Oracle Database Appliances?</a> est apparu en premier sur <a href="https://www.dbi-services.com/blog">dbi Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dbi-services.com/blog/when-to-secure-erase-storage-devices-how-to-do-it-on-oracle-database-appliances/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Does it still make sense to deploy a virtualized HA ODA in 2021?</title>
		<link>https://www.dbi-services.com/blog/does-it-still-make-sense-to-deploy-a-virtualized-ha-oda-in-2021/</link>
					<comments>https://www.dbi-services.com/blog/does-it-still-make-sense-to-deploy-a-virtualized-ha-oda-in-2021/#respond</comments>
		
		<dc:creator><![CDATA[Jérôme Dubar]]></dc:creator>
		<pubDate>Fri, 14 May 2021 10:40:30 +0000</pubDate>
				<category><![CDATA[Database management]]></category>
		<category><![CDATA[Hardware & Storage]]></category>
		<category><![CDATA[Operating systems]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[19.10]]></category>
		<category><![CDATA[19.11]]></category>
		<category><![CDATA[19.9]]></category>
		<category><![CDATA[HA]]></category>
		<category><![CDATA[kvm]]></category>
		<category><![CDATA[OAKCLI]]></category>
		<category><![CDATA[ODA]]></category>
		<category><![CDATA[odacli]]></category>
		<category><![CDATA[olvm]]></category>
		<category><![CDATA[Oracle database appliance]]></category>
		<category><![CDATA[ovm]]></category>
		<category><![CDATA[OVM server]]></category>
		<category><![CDATA[virtualized]]></category>
		<category><![CDATA[X7-2HA]]></category>
		<category><![CDATA[x8-2ha]]></category>
		<guid isPermaLink="false">https://www.dbi-services.com/blog/does-it-still-make-sense-to-deploy-a-virtualized-ha-oda-in-2021/</guid>

					<description><![CDATA[<p>Introduction Starting from version 19.11 of the Oracle Database Appliance software bundle, OLVM will definitely replace OVM server as virtualization engine. This change has quite a big impact as there will be no more virtualized specific deployment. Bare metal will come as a standard for all ODAs, and creating VMs for applications, or even databases, [&#8230;]</p>
<p>L’article <a href="https://www.dbi-services.com/blog/does-it-still-make-sense-to-deploy-a-virtualized-ha-oda-in-2021/">Does it still make sense to deploy a virtualized HA ODA in 2021?</a> est apparu en premier sur <a href="https://www.dbi-services.com/blog">dbi Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Introduction</h2>
<p>Starting from version 19.11 of the Oracle Database Appliance software bundle, OLVM will definitely replace OVM server as virtualization engine. This change has quite a big impact as there will be no more virtualized specific deployment. Bare metal will come as a standard for all ODAs, and creating VMs for applications, or even databases, will be possible on top of that, for sure if you need them. And you can decide later to use virtualized machines. For now, 19.11 not being yet available, you&#8217;ll have to decide to deploy 19.10, not available for full virtualization support, and 19.9, the last release for OVM based virtualization. Which one should you use?</p>
<h2>Past</h2>
<p>OVM server stands for Oracle Virtualized Machines server. This comes on top of Xen, an 18-year old hypervisor also available in other commercial products, like Citrix XenServer. The first goal of OVM server on ODA was to allow all configurations of cores regarding the license (for example, bare metal X3-2 ODAs were only supporting 4+ cores, when virtualized mode started from 2 cores). The second goal was to benefit from the remaining cores on the system to run your applications, most often those connected to the databases. It made sense because ODAs were expensive servers, so buying a 2-node appliance with its dedicated storage for only using a pair of cores for a few databases was not that interesting. </p>
<p>In 2016, Oracle put &#8220;lite&#8221; ODAs on the market with a brand new CLI (odacli) and without virtualized mode. Virtualization was only possible on these servers with KVM, which is a virtualization tool provided within the Linux OS, but without the possibility to dedicate some cores to the database and the others to VMs. HA ODAs were still compatible with the OVM based virtualized mode, but only bare metal mode was using the brand new CLI.</p>
<h2>Present</h2>
<p>Oracle did a lot of work on ODA, especially regarding the odacli features. These features have not been back ported to oakcli, and oakcli is basically stuck to what&#8217;s were available 5 years ago. No GUI, no Data Guard feature, no backup management, no repository, no jobs, &#8230; Going back to oakcli after using odacli is a big step backward.</p>
<p>If you want to use virtualized machines on ODA, you have 2 options. Use the virtualized mode and get stuck with oakcli (and it&#8217;s also limited to HA ODAs) or use the bare metal mode, but hard partitioning is not supported for the VMs, meaning that you will run your applications on the cores dedicated to your DBs. </p>
<p>Virtualized mode is still available up to 19.9 version of the ODA software bundle. This software bundle not being too old, you could think that it&#8217;s the solution to adopt. Current bare metal version is 19.10.</p>
<p>Lite models brought huge popularity to ODAs, most of the customers are using these models. Some customers still need HA ODA, but most of them are deployed in bare metal mode. As a result, I think that more than 90% of running ODAs are using odacli stack.</p>
<h2>Future</h2>
<p>Days of OVM server are numbered. Starting a new project in version 19.9 on ODA X8-HA this year may not be a good idea. If this solution will do the job, you will probably need to patch your ODA for security reason during the next years, and this would probably be a problem. Because patches are only bundle patches, you patch everything or nothing.</p>
<p>OLVM (Oracle Linux Virtualization Manager), will completely replace OVM server starting from 19.11. OLVM adds hard partitioning (and much more) on top of KVM, meaning that it will have the same license flexibility as OVM server.</p>
<p>I heard about a migration path currently being prepared by Oracle for going from OVM server to OLVM, but it&#8217;s surely quite a tough job and I would definitely prefer to do a reimaging instead of a complex patching if I had to choose. And I don&#8217;t think that a virtualized ODA could get future patches: you&#8217;ll probably stay in 19.9 for a while.</p>
<p>Nobody will prevent you to start with OVM server and you could probably switch to OLVM later, but you&#8217;ll have to change quite a lot of procedures, as odacli and OLVM are totally different tools compared to oakcli and OVM server. This will imply a lot of work from your side.</p>
<p>In terms of support, OVM server premier support is already over, but in the particular case of ODA, it&#8217;s probably still supported for a year or two, as it&#8217;s part of your ODA configuration. But ask this question to Oracle to make sure.</p>
<h2>Conclusion</h2>
<p>For a new project, I would not go on virtualized ODA 19.9, I would better deploy my ODA in 19.10 bare metal mode, play with it and get trained on it in the next months, and upgrade to 19.11 as soon as it will be available. This is because I want to deploy technologies that will fit my needs for the next 5 years. OLVM with odacli and 19c is probably the most convincing bundle for that.</p>
<p>L’article <a href="https://www.dbi-services.com/blog/does-it-still-make-sense-to-deploy-a-virtualized-ha-oda-in-2021/">Does it still make sense to deploy a virtualized HA ODA in 2021?</a> est apparu en premier sur <a href="https://www.dbi-services.com/blog">dbi Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dbi-services.com/blog/does-it-still-make-sense-to-deploy-a-virtualized-ha-oda-in-2021/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Clone a Terabyte Database in Seconds</title>
		<link>https://www.dbi-services.com/blog/clone-a-terabyte-database-in-seconds/</link>
					<comments>https://www.dbi-services.com/blog/clone-a-terabyte-database-in-seconds/#respond</comments>
		
		<dc:creator><![CDATA[Oracle Team]]></dc:creator>
		<pubDate>Thu, 01 Apr 2021 04:57:19 +0000</pubDate>
				<category><![CDATA[Database Administration & Monitoring]]></category>
		<category><![CDATA[Database management]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Hardware & Storage]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[clone]]></category>
		<category><![CDATA[Oracle Database]]></category>
		<category><![CDATA[Pure Storage]]></category>
		<category><![CDATA[PureStorage]]></category>
		<guid isPermaLink="false">https://www.dbi-services.com/blog/clone-a-terabyte-database-in-seconds/</guid>

					<description><![CDATA[<p>Introduction Have you ever cloned a database using RMAN? Have you ever gotten the advice not to clone during daytime to avoid performance downgrade on the entire storage or network? For a proof of concept, we wanted to evaluate a Pure Storage array in terms of feasibility and speed of database cloning by using storage-based [&#8230;]</p>
<p>L’article <a href="https://www.dbi-services.com/blog/clone-a-terabyte-database-in-seconds/">Clone a Terabyte Database in Seconds</a> est apparu en premier sur <a href="https://www.dbi-services.com/blog">dbi Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h3>Introduction</h3>
<p>Have you ever cloned a database using RMAN?<br />
Have you ever gotten the advice not to clone during daytime to avoid performance downgrade on the entire storage or network?<br />
For a proof of concept, we wanted to evaluate a Pure Storage array in terms of feasibility and speed of database cloning by using storage-based snapshot technology.<br />
First, I want to mention that PureStorage produces Storage devices in several sizes, all based on NVMe devices together with a high bandwidth connection and data compression.<br />
All in all a “fast as hell” storage but this is not enough. There is additionally a snapshot technology which enables a snapshot-copy of a volume in no time, regardless of its size.<br />
We wanted to see if it works as well for cloning Oracle databases.</p>
<h3>Starting point</h3>
<p>We set up:<br />
• Two virtual machines on two ESX hosts, running RHEL 7.9<br />
• Two sets of disk-groups to store the database files.<br />
• A source database, running on machine 1, Oracle Release 19.10.<br />
• Prepare machine 2 for a target database to be created by cloning</p>
<p>We had to install only very few extras on the virtual machines<br />
• Install rpms, required by PureStorage<br />
• Configure multipathing<br />
• Update UDEV rules</p>
<h3>About the Storage</h3>
<p>The GUI allows comfortably to create volumes and assign them to groups and “Protection Groups”.<br />
<img loading="lazy" decoding="async" class="alignnone wp-image-48962" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2021/03/create_vol.png" alt="" width="642" height="298" /><br />
Connect the volumes with the hosts.<br />
<img loading="lazy" decoding="async" class="alignnone wp-image-48985" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2022/04/DHE1_connect_vol_to_ESX.png" alt="" width="658" height="246" /></p>
<p>In vSphere Client, attach the volumes to the VMs<br />
<img loading="lazy" decoding="async" class="alignnone wp-image-48979" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2022/04/DHE1_attach_Volumes.png" alt="" width="685" height="313" /></p>
<p><strong>Configure the volumes on Linux OS</strong><br />
<img loading="lazy" decoding="async" class="alignnone wp-image-48983" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2022/04/DHE1_configure_volume_on_OS.png" alt="" width="621" height="364" /></p>
<p><strong>configure multipath</strong></p>
<pre>vi /etc/multipath.conf</pre>
<pre>multipaths {
 multipath { wwid 3624a9370F9C23FA49CFC431C00013CD5  alias  oradbi1-data }
 multipath { wwid 3624a9370F9C23FA49CFC431C00013CD7  alias  oradbi1-fra  }
 multipath { wwid 3624a9370F9C23FA49CFC431C00013CD6  alias oradbi1-redo  }
}</pre>
<p><strong>create filesystems on the volumes</strong></p>
<pre>mkfs.ext4 /dev/mapper/oradbi2-data
mkfs.ext4 /dev/mapper/3624a9370f9c23fa49cfc431c00013cda
mkfs.ext4 /dev/mapper/3624a9370f9c23fa49cfc431c00013cd9
mkfs.ext4 /dev/mapper/3624a9370f9c23fa49cfc431c00013cd8</pre>
<p><strong>enter the volumes in fstab<br />
</strong>vi /etc/fstab</p>
<pre>/dev/mapper/3624a9370f9c23fa49cfc431c00013cd5 /u02/oradata             ext4  defaults  0 0
/dev/mapper/3624a9370f9c23fa49cfc431c00013cd6 /u03/oradata             ext4  defaults  0 0
/dev/mapper/3624a9370f9c23fa49cfc431c00013cd7 /u90/fast_recovery_area  ext4  defaults  0 0</pre>
<p>And finally mount them</p>
<pre>mount -a

</pre>
<h3><strong>Now you can clone the database.</strong></h3>
<p>On the <strong>target</strong> server, shut down the database and unmount the volumes:<br />
<img loading="lazy" decoding="async" class="alignnone wp-image-49000" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2022/04/DHE1_shutdown.png" alt="" width="473" height="104" /><br />
<strong><img loading="lazy" decoding="async" class="alignnone wp-image-49001" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2022/04/DHE1_unmount.png" alt="" width="470" height="105" /></strong></p>
<h3><strong>Create a snapshot</strong></h3>
<p>You can either use the GUI or CLI.<br />
in the web-console, navigate to Storage -&gt; Protection Groups<br />
select the Protection Group you want to “snapshot”<br />
select “create” from the overflow-menu<br />
provide a “speaking” name for your first snapshot.<br />
<img loading="lazy" decoding="async" class="alignnone wp-image-48990" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2022/04/DHE1_create_snapshot_GUI.png" alt="" width="664" height="381" /></p>
<p>Next you copy the volume snapshots to their target counterparts:<br />
<img loading="lazy" decoding="async" class="alignnone wp-image-49006" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2022/04/DHE1_copy_vol_snap_to_target.png" alt="" width="625" height="344" /><br />
That&#8217;s it !</p>
<h4>On the CLI it looks even simpler:</h4>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-49005" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2022/04/DHE1_create_snapshot_copy_CLI.png" alt="" width="665" height="288" /></p>
<p>Only two commands required: “purepgroup snap” and “purevol copy”<br />
That’s all !</p>
<p>You can mount the copied volumes now and start the database on the target side:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-49008" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2022/04/DHE_1_mount.png" alt="" width="573" height="128" /></p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-49009" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2022/04/DHE_1_startup.png" alt="" width="563" height="263" /></p>
<p>You have probably noted that the copy is nothing else than a copy.</p>
<p>Means that your target-DB has still the same name as the source-DB.</p>
<p>Don’t worry! Changing the name and the DBID of a database, will be continued next week.<br />
see my blog &#8220;<a href="https://www.dbi-services.com/blog/rename-your-db-clone-completely/" target="_blank" rel="noopener">Rename your DB clone completely</a>&#8220;</p>
<p>L’article <a href="https://www.dbi-services.com/blog/clone-a-terabyte-database-in-seconds/">Clone a Terabyte Database in Seconds</a> est apparu en premier sur <a href="https://www.dbi-services.com/blog">dbi Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dbi-services.com/blog/clone-a-terabyte-database-in-seconds/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Page Caching using Disk: Enhanced 
Lazy Loading (feed)

Served from: www.dbi-services.com @ 2026-04-04 01:10:16 by W3 Total Cache
-->