{"id":3575,"date":"2025-05-26T21:02:55","date_gmt":"2025-05-26T21:02:55","guid":{"rendered":"https:\/\/w3buddy.com\/?p=3575"},"modified":"2026-01-15T12:44:17","modified_gmt":"2026-01-15T07:14:17","slug":"how-to-backup-and-restore-oracle_home-binaries-and-oracle-inventory-before-patching","status":"publish","type":"post","link":"https:\/\/w3buddy.com\/blog\/how-to-backup-and-restore-oracle_home-binaries-and-oracle-inventory-before-patching\/","title":{"rendered":"How to Backup and Restore ORACLE_HOME Binaries and Oracle Inventory Before Patching"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Backing up your Oracle software environment \u2014 including the software binaries (ORACLE_HOME) and inventory metadata (oraInventory) \u2014 is a critical safety step before applying any patches to the database or operating system. This guide provides a clear, step-by-step process with real-world command outputs to help DBAs prepare for a reliable rollback if needed.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Why It Matters<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>ORACLE_HOME contains Oracle executables, configuration files, and libraries.<\/li>\n\n\n\n<li>oraInventory maintains all Oracle installation details, necessary for patching and upgrades.<\/li>\n<\/ul>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">\u26a0\ufe0f Without a proper backup, any corruption or failed patch may require a full reinstallation of Oracle software.<\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">Backup Preparation (Optional but Recommended)<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83e\uddef 1. Stop the Database (Recommended for Clean Backups)<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code><code>$ ps -ef | grep pmon\noracle   24531     1  0 10:12 ?        00:00:00 ora_pmon_MYDB\noracle   24578 24490  0 10:13 pts\/0    00:00:00 grep pmon\n\n$ sqlplus \/ as sysdba\nSQL&gt; SHUTDOWN IMMEDIATE;\nDatabase closed.\nDatabase dismounted.\nORACLE instance shut down.<\/code><\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd0c 2. Stop the Listener (Optional but Advised)<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code><code>$ ps -ef | grep tns\noracle   24641     1  0 10:15 ?        00:00:00 \/u01\/app\/oracle\/product\/19.0.0\/dbhome_1\/bin\/tnslsnr LISTENER\noracle   24678 24490  0 10:16 pts\/0    00:00:00 grep tns\n\n$ lsnrctl stop LISTENER\n\nLSNRCTL for Linux: Version 19.0.0.0.0 - Production\nConnecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=host1)(PORT=1521)))\nThe command completed successfully<\/code><\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Creating Backups of Oracle Inventory and ORACLE_HOME<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udce6 3. Back Up Oracle Inventory<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">First, identify the location:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code>$ cat \/etc\/oraInst.loc\ninventory_loc=\/u01\/app\/oraInventory\ninst_group=dba<\/code><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Then perform the backup:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code>$ cd \/u01\/app\/\n$ tar -pczvf \/u02\/oracle\/backup\/oraInventory_bkup.tar.gz oraInventory\n\noraInventory\/\noraInventory\/ContentsXML\/\noraInventory\/ContentsXML\/inventory.xml\n... (more files)<\/code><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ud83d\udcc1 <strong>Output Example:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code>$ ls -lh \/u02\/oracle\/backup\/\n-rw-r--r-- 1 oracle dba 5.2M May 27 11:10 oraInventory_bkup.tar.gz<\/code><\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83c\udfd7\ufe0f 4. Back Up ORACLE_HOME Directory<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Navigate to your Oracle installation path:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code>$ cd \/u01\/app\/oracle\/product\n$ ls\n19.0.0<\/code><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Backup using <code>tar<\/code> with compression and background execution:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code>$ nohup tar -pczvf \/u02\/oracle\/backup\/oracle_home_bkup.tar.gz 19.0.0 &amp;\n\n&#91;1] 27792\nnohup: ignoring input and redirecting stderr to stdout<\/code><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Check the process:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code>$ jobs -l\n&#91;1]+ 27792 Running tar -pczvf \/u02\/oracle\/backup\/oracle_home_bkup.tar.gz 19.0.0 &amp;<\/code><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ud83d\udcc1 <strong>Verify Output:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code>$ ls -lh \/u02\/oracle\/backup\/\n-rw-r--r-- 1 oracle dba 3.2G May 27 11:18 oracle_home_bkup.tar.gz<\/code><\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Restoring Oracle Inventory and ORACLE_HOME<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd12 1. Shut Down the Database (Mandatory)<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code><code>$ sqlplus \/ as sysdba\nSQL&gt; SHUTDOWN IMMEDIATE;\nDatabase closed.\nDatabase dismounted.\nORACLE instance shut down.<\/code><\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u26d4 2. Stop the Listener (Mandatory)<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code><code>$ lsnrctl stop LISTENER\n\nConnecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=host1)(PORT=1521)))\nThe command completed successfully<\/code><\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd01 3. Restore Oracle Inventory<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Navigate to the base path:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code>$ cd \/u01\/app\/\n$ mv oraInventory oraInventory_old\n$ tar -pxzvf \/u02\/oracle\/backup\/oraInventory_bkup.tar.gz\n\noraInventory\/\noraInventory\/ContentsXML\/\n...<\/code><\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd04 4. Restore ORACLE_HOME<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code><code>$ cd \/u01\/app\/oracle\/product\n$ mv 19.0.0 19.0.0_old\n$ tar -pxzvf \/u02\/oracle\/backup\/oracle_home_bkup.tar.gz<\/code><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u2705 <strong>Reset Ownership and Permissions (if needed):<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code>$ chown -R oracle:dba 19.0.0\n$ chmod -R 755 19.0.0<\/code><\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Helpful Notes and Final Advice<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Always confirm that the backup file is complete (check size and content).<\/li>\n\n\n\n<li>Consider backing up your <a href=\"https:\/\/w3buddy.com\/blog\/how-to-backup-oracle-oratab-bash_profile-and-environment-variables\/\">oratab<\/a>, <a href=\"https:\/\/w3buddy.com\/blog\/how-to-backup-oracle-oratab-bash_profile-and-environment-variables\/\">.bash_profile<\/a>, and <a href=\"https:\/\/w3buddy.com\/blog\/how-to-backup-oracle-oratab-bash_profile-and-environment-variables\/\">environment variables<\/a> too.<\/li>\n\n\n\n<li><a href=\"https:\/\/w3buddy.com\/blog\/automate-oracle_home-and-oracle-inventory-backup-with-one-click-restore-before-patching\/\">Automate<\/a> this backup with a script during your patch preparation window.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\u2705 Summary Checklist<\/h3>\n\n\n\n<figure class=\"wp-block-table has-small-font-size\"><table><thead><tr><th>Task<\/th><th>Status<\/th><\/tr><\/thead><tbody><tr><td>Stop DB &amp; Listener (Optional\/Recommended)<\/td><td>\u2705<\/td><\/tr><tr><td>Backup Oracle Inventory<\/td><td>\u2705<\/td><\/tr><tr><td>Backup ORACLE_HOME<\/td><td>\u2705<\/td><\/tr><tr><td>Restore steps validated<\/td><td>\u2705<\/td><\/tr><\/tbody><\/table><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Backing up your Oracle software environment \u2014 including the software binaries (ORACLE_HOME) and inventory metadata (oraInventory) \u2014 is a critical safety step before applying any patches to the database or operating system. This guide provides a clear, step-by-step process with real-world command outputs to help DBAs prepare for a reliable rollback if needed. Why It [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"googlesitekit_rrm_CAowu461DA:productID":"","footnotes":""},"categories":[1225],"tags":[],"class_list":["post-3575","post","type-post","status-publish","format-standard","hentry","category-database"],"_links":{"self":[{"href":"https:\/\/w3buddy.com\/blog\/wp-json\/wp\/v2\/posts\/3575","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/w3buddy.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/w3buddy.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/w3buddy.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/w3buddy.com\/blog\/wp-json\/wp\/v2\/comments?post=3575"}],"version-history":[{"count":5,"href":"https:\/\/w3buddy.com\/blog\/wp-json\/wp\/v2\/posts\/3575\/revisions"}],"predecessor-version":[{"id":3595,"href":"https:\/\/w3buddy.com\/blog\/wp-json\/wp\/v2\/posts\/3575\/revisions\/3595"}],"wp:attachment":[{"href":"https:\/\/w3buddy.com\/blog\/wp-json\/wp\/v2\/media?parent=3575"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/w3buddy.com\/blog\/wp-json\/wp\/v2\/categories?post=3575"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/w3buddy.com\/blog\/wp-json\/wp\/v2\/tags?post=3575"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}