原文地址:https://blog.dbi-services.com/clone-oracle-21c-home/
原文作者:Mouhamadou Diaw
當我們在同一臺服務器或新服務器上部署新的 Oracle Home 時,可以使用下載的 Oracle 二進制文件像往常一樣從頭開始安裝,然后可以在新的 Oracle Homes 上應用補丁,但是這可能需要耗費很長的時間。
Oracle 提供了一些工具來克隆現有的 Oracle 主目錄,其中包含所有補丁。我通常使用著名的 clone.pl 腳本,但它仍然適用于 Oracle 21c 嗎?
因此我決定做一些測試來確認。
目前我已經在 Oracle Home 安裝 33239276 補丁:
oracle@oraadserver:/home/oracle/ [DB21 (CDB$ROOT)] echo $ORACLE_HOME/
/u01/app/oracle/product/21.3.0/db_1/
oracle@oraadserver:/u01/app/oracle/product/21.3.0/ [DB21 (CDB$ROOT)] opatch lspatches
33239276;Database Release Update : 21.4.0.0.211019 (33239276)
OPatch succeeded.
oracle@oraadserver:/u01/app/oracle/product/21.3.0/ [DB21 (CDB$ROOT)]
我決定使用傳統的 clone.pl 腳本在同一臺服務器上克隆它:
1、將 db_1 中的二進制文件復制到新的 db_2 的 Oracle_home 目錄中,隨后進行壓縮(zip、cp、tar…),接著只需調整 db_1 上的權限即可:
[root@oraadserver 21.3.0]# pwd
/u01/app/oracle/product/21.3.0
[root@oraadserver 21.3.0]#
[root@oraadserver 21.3.0]# ls -ld *
drwxr-xr-x. 66 oracle oinstall 4096 Dec 20 14:52 db_1
drwxr-xr-x. 66 oracle oinstall 4096 Dec 20 14:52 db_2
[root@oraadserver 21.3.0]#
2、使用用戶 oracle 運行腳本 clone.pl,如下所示:
oracle@oraadserver:/home/oracle/ [DB21 (CDB$ROOT)] /u01/app/oracle/product/21.3.0/db_2/perl/bin/perl /u01/app/oracle/product/21.3.0/db_2/clone/bin/clone.pl ORACLE_BASE="/u01/app/oracle" ORACLE_HOME="/u01/app/oracle/product/21.3.0/db_2" ORACLE_HOME_NAME=OraDB21Home3
Jan 24, 2022 1:04:03 PM oracle.install.library.util.MachineInfo isHostExadata
INFO: This host is not an Exadata system.
[INFO] [INS-32183] Use of clone.pl is deprecated in this release. Clone operation is equivalent to performing a Software Only installation from the image.
You must use /u01/app/oracle/product/21.3.0/db_2/runInstaller script available to perform the Software Only install. For more details on image based installation, refer to help documentation.
Starting Oracle Universal Installer...
You can find the log of this install session at:
/u01/app/oraInventory/logs/cloneActions2022-01-24_01-04-02PM.log
.................................................. 5% Done.
.................................................. 10% Done.
.................................................. 15% Done.
.................................................. 20% Done.
.................................................. 25% Done.
.................................................. 30% Done.
.................................................. 35% Done.
.................................................. 40% Done.
.................................................. 45% Done.
.................................................. 50% Done.
.................................................. 55% Done.
.................................................. 60% Done.
.................................................. 65% Done.
.................................................. 70% Done.
.................................................. 75% Done.
........................................
Copy files in progress.
Copy files successful.
Link binaries in progress.
..........
Link binaries successful.
Setup files in progress.
..........
Setup files successful.
Setup Inventory in progress.
Setup Inventory successful.
..........
Finish Setup successful.
The cloning of OraDB21Home3 was successful.
Please check '/u01/app/oraInventory/logs/cloneActions2022-01-24_01-04-02PM.log' for more details.
Setup Oracle Base in progress.
Setup Oracle Base successful.
.................................................. 88% Done.
Setup Read-Only Oracle Home in progress.
Setup Read-Only Oracle Home successful.
.................................................. 96% Done.
As a root user, execute the following script(s):
1. /u01/app/oracle/product/21.3.0/db_2/root.sh
.................................................. 100% Done.
oracle@oraadserver:/home/oracle/ [DB21 (CDB$ROOT)]
盡管過程中有警告“[INFO] [INS-32183] Use of clone.pl is deprecated in this release…”,但結果是成功的。最后只需要根據需要運行 root.sh 腳本:
[root@oraadserver 21.3.0]# /u01/app/oracle/product/21.3.0/db_2/root.sh
Check /u01/app/oracle/product/21.3.0/db_2/install/root_oraadserver_2022-01-24_13-07-38-506111736.log for the output of root script
[root@oraadserver 21.3.0]#
然后我們可以驗證 Oracle Home 克隆是否正常:
oracle@oraadserver:/home/oracle/ [rdbms213c2] echo $ORACLE_HOME/
/u01/app/oracle/product/21.3.0/db_2/
oracle@oraadserver:/home/oracle/ [rdbms213c2] opatch lspatches
33239276;Database Release Update : 21.4.0.0.211019 (33239276)
OPatch succeeded.
oracle@oraadserver:/home/oracle/ [rdbms213c2]
通過以上告警提示,我們可以看到 clone.pl 已被棄用,Oracle 建議從映像執行僅軟件安裝。這個過程是如何工作的?
一起來看看這個方法!
1、首先使用 runInstaller 命令創建映像,如下所示
從源 Oracle Home 執行:
[oracle@oraadserver ~]$ /u01/app/oracle/product/21.3.0/db_1/runInstaller -createGoldImage -destinationLocation /home/oracle/gold_software/ Launching Oracle Database Setup Wizard...
安裝向導運行如下圖所示:


如果您沒有配置圖形環境或不想使用圖形工具,只需使用命令中的靜默選項:
[oracle@oraadserver ~]$ /u01/app/oracle/product/21.3.0/db_1/runInstaller -silent -createGoldImage -destinationLocation /home/oracle/gold_software/
2、現在讓我們使用剛剛創建的 goldimage 部署一個新的 Oracle Home 目錄:
第一步是解壓新 Oracle Home 文件夾中的 goldimage:
oracle@oraadserver:/home/oracle/gold_software/ [rdbms213c] ls -ltra total 3622644 drwx------. 8 oracle oinstall 4096 Jan 24 13:38 .. -rw-r--r--. 1 oracle oinstall 3709576334 Jan 24 13:44 db_home_2022-01-24_01-38-44PM.zip drwxr-xr-x. 2 oracle oinstall 46 Jan 24 13:44 . oracle@oraadserver:/home/oracle/gold_software/ [rdbms213c] mkdir -p /u01/app/oracle/product/21.3.0/db_2 oracle@oraadserver:/home/oracle/gold_software/ [rdbms213c] unzip -d /u01/app/oracle/product/21.3.0/db_2 db_home_2022-01-24_01-38-44PM.zip
之后我們可以在新的 Oracle Home 中使用 runInstaller 開始部署:
[oracle@oraadserver db_2]$ pwd
/u01/app/oracle/product/21.3.0/db_2
[oracle@oraadserver db_2]$ ./runInstaller
安裝過程和往常一樣(但這里我們不需要安裝最終的補丁,因為它們已經在 GoldImage 中了),不展示所有過程:


并且在安裝結束時,我們可以驗證新的 Oracle Home 是否具有相同的補丁:
oracle@oraadserver:/home/oracle/ [rdbms213c2] opatch lspatches 33239276;Database Release Update : 21.4.0.0.211019 (33239276) OPatch succeeded. oracle@oraadserver:/home/oracle/ [rdbms213c2]
請注意,如果您沒有或不想要圖形工具,您也可以在此處使用靜默安裝,我們還可以驗證 Oracle Inventory 是否正常:
oracle@oraadserver:/home/oracle/ [rdbms213c2] opatch util LoadXML -xmlInput /u01/app/oraInventory/ContentsXML/inventory.xml
Oracle Interim Patch Installer version 12.2.0.1.27
Copyright (c) 2022, Oracle Corporation. All rights reserved.
Oracle Home : /u01/app/oracle/product/21.3.0/db_2
Central Inventory : /u01/app/oraInventory
from : /u01/app/oracle/product/21.3.0/db_2/oraInst.loc
OPatch version : 12.2.0.1.27
OUI version : 12.2.0.9.0
Log file location : /u01/app/oracle/product/21.3.0/db_2/cfgtoollogs/opatch/opatch2022-01-24_14-05-10PM_1.log
Invoking utility "loadxml"
UtilSession: XML file is OK.
OPatch succeeded.
oracle@oraadserver:/home/oracle/ [rdbms213c2]
結論:
我們看到了如何將現有的 Oracle Home 克隆到新的。雖然您仍然可以使用傳統的 clone.pl 腳本,但強烈建議對最新的 Oracle 版本采用映像方法。




