Item | Current Location | Future Location |
---|---|---|
ORACLE_BASE | /opt/app/oracle | /u01/app/oracle |
ORACLE_HOME | /opt/app/oracle/product/11.2.0/dbhome_1 | /u01/app/oracle/product/11.2.0/dbhome_1 |
GI_HOME | /opt/app/oracle/product/12.1.0/grid | /u01/app/oracle/product/12.1.0/grid |
Oracle Inventory | /opt/app/oraInventory | /u01/app/oraInventory |
As could be seen from the locations the GI home is a 12.1 while the DB runs out of a 11.2 (11.2.0.4) home.
1. It is assumed the mount point /u01 exists. Create the two base directories first, that is the Oracle base and oracle inventory directories and set the necessary permissions.
# cd /u01/ # mkdir -p app/oracle # mkdir -p app/oraInventory # chmod 775 oracle # chmod 770 oraInventory # chown oracle:oinstall oracle # chown grid:oinstall oraInventory2. Stop the database and the HA service.
srvctl stop database -d westdb crsctl stop has3. Detach the current GI home from the inventory.
[grid@west bin]$ ./runInstaller -silent -waitforcompletion -detachHome ORACLE_HOME='/opt/app/oracle/product/12.1.0/grid' Starting Oracle Universal Installer... Checking swap space: must be greater than 500 MB. Actual 4097 MB Passed The inventory pointer is located at /etc/oraInst.loc 'DetachHome' was successful.Check the GI home was removed from the inventory by checking in the inventory.xml
<HOME NAME="OraGI12Home1" LOC="/opt/app/oracle/product/12.1.0/grid" TYPE="O" IDX="1" REMOVED="T"/>4. Create the future GI Home location.
mkdir -p /u01/app/oracle/product/12.1.0/Copy the current grid folder to the future location.
cd /opt/app/oracle/product/12.1.0 cp -pR grid /u01/app/oracle/product/12.1.0/5. Clone the GI Home in the new location. Pass the new Oracle base, GI home and oracle inventory locations to the clone script.
cd /u01/app/oracle/product/12.1.0/grid/clone/bin $ perl clone.pl -silent ORACLE_BASE=/u01/app/oracle ORACLE_HOME=/u01/app/oracle/product/12.1.0/grid ORACLE_HOME_NAME=OraGI12Home1 INVENTORY_LOCATION=/u01/app/oraInventory CRS=true ./runInstaller -clone -waitForCompletion "ORACLE_BASE=/u01/app/oracle" "ORACLE_HOME=/u01/app/oracle/product/12.1.0/grid" "ORACLE_HOME_NAME=OraGI12Home1" "INVENTORY_LOCATION=/u01/app/oraInventory" -silent -paramFile /u01/app/oracle/product/12.1.0/grid/clone/clone_oraparam.ini Starting Oracle Universal Installer... Checking Temp space: must be greater than 500 MB. Actual 17853 MB Passed Checking swap space: must be greater than 500 MB. Actual 4097 MB Passed Preparing to launch Oracle Universal Installer from /tmp/OraInstall2019-03-07_06-42-57PM. Please wait ...You can find the log of this install session at: /u01/app/oraInventory/logs/cloneActions2019-03-07_06-42-57PM.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. .................................................. 80% Done. .................................................. 85% Done. ..........Could not backup file /u01/app/oracle/product/12.1.0/grid/root.sh to /u01/app/oracle/product/12.1.0/grid/root.sh.ouibak Could not backup file /u01/app/oracle/product/12.1.0/grid/rootupgrade.sh to /u01/app/oracle/product/12.1.0/grid/rootupgrade.sh.ouibak 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 OraGI12Home1 was successful. Please check '/u01/app/oraInventory/logs/cloneActions2019-03-07_06-42-57PM.log' for more details. Setup Oracle Base in progress. Setup Oracle Base successful. .................................................. 95% Done. As a root user, execute the following script(s): 1. /u01/app/oraInventory/orainstRoot.sh 2. /u01/app/oracle/product/12.1.0/grid/root.sh .................................................. 100% Done. You have new mail in /var/spool/mail/grid6. After running the orainstRoot.sh the inventory location gets updated in the /etc/oraInst.loc
/u01/app/oraInventory/orainstRoot.sh cat /etc/oraInst.loc inventory_loc=/u01/app/oraInventory inst_group=oinstall7. Running the root.sh will generate a log file which will have commands to run to create a Oracle restart setup or a cluster setup.
Check /u01/app/oracle/product/12.1.0/grid/install/root_west.domain.net_2019-03-07_18-45-23.log for the output of root script # tail -f /u01/app/oracle/product/12.1.0/grid/install/root_west.domain.net_2019-03-07_18-45-23.log Now product-specific root actions will be performed. To configure Grid Infrastructure for a Stand-Alone Server run the following command as the root user: /u01/app/oracle/product/12.1.0/grid/perl/bin/perl -I/u01/app/oracle/product/12.1.0/grid/perl/lib -I/u01/app/oracle/product/12.1.0/grid/crs/install /u01/app/oracle/product/12.1.0/grid/crs/install/roothas.pl8. Before running the command mentioned in the log file, the existing Oracle restart configuration need to be de-configured. If not following error will occur.
Using configuration parameter file: /u01/app/oracle/product/12.1.0/grid/crs/install/crsconfig_params 2019/03/07 18:46:12 CLSRSC-350: Cannot configure two CRS instances on the same cluster 2019/03/07 18:46:14 CLSRSC-352: CRS is already configured on this node for the CRS home location /opt/app/oracle/product/12.1.0/gridTo de-configure run the following command.
# /u01/app/oracle/product/12.1.0/grid/perl/bin/perl roothas.pl -deconfig -force Using configuration parameter file: ./crsconfig_params 2019/03/07 18:47:50 CLSRSC-337: Successfully deconfigured Oracle Restart stack9. Run the command to create the Oracle restart setup.
# /u01/app/oracle/product/12.1.0/grid/perl/bin/perl -I/u01/app/oracle/product/12.1.0/grid/perl/lib -I/u01/app/oracle/product/12.1.0/grid/crs/install /u01/app/oracle/product/12.1.0/grid/crs/install/roothas.pl Using configuration parameter file: /u01/app/oracle/product/12.1.0/grid/crs/install/crsconfig_params LOCAL ADD MODE Creating OCR keys for user 'grid', privgrp 'oinstall'.. Operation successful. LOCAL ONLY MODE Successfully accumulated necessary OCR keys. Creating OCR keys for user 'root', privgrp 'root'.. Operation successful. CRS-4664: Node west successfully pinned. 2019/03/07 18:48:26 CLSRSC-330: Adding Clusterware entries to file 'oracle-ohasd.service' west 2019/03/07 13:18:58 /u01/app/oracle/product/12.1.0/grid/cdata/west/backup_20190307_131858.olr 459864538 CRS-2791: Starting shutdown of Oracle High Availability Services-managed resources on 'west' CRS-2673: Attempting to stop 'ora.evmd' on 'west' CRS-2677: Stop of 'ora.evmd' on 'west' succeeded CRS-2793: Shutdown of Oracle High Availability Services-managed resources on 'west' has completed CRS-4133: Oracle High Availability Services has been stopped. CRS-4123: Oracle High Availability Services has been started. 2019/03/07 18:50:11 CLSRSC-327: Successfully configured Oracle Restart for a standalone server10. Check the GI home added to inventory in new inventory location.
<HOME NAME="OraGI12Home1" LOC="/u01/app/oracle/product/12.1.0/grid" TYPE="O" IDX="1" CRS="true"/>11. Add listener and ASM to the Oracle restart config.
srvctl add listener -l listener -o /u01/app/oracle/product/12.1.0/grid -p 1521 srvctl start listener -l listener srvctl add asm -l listener -p +data/asm/ASMPARAMETERFILE/REGISTRY.253.881942589 -d "/dev/sd*" srvctl start asm crsctl stat res -t -------------------------------------------------------------------------------- Name Target State Server State details -------------------------------------------------------------------------------- Local Resources -------------------------------------------------------------------------------- ora.DATA.dg ONLINE ONLINE west STABLE ora.FLASH.dg ONLINE ONLINE west STABLE ora.LISTENER.lsnr ONLINE ONLINE west STABLE ora.asm ONLINE ONLINE west Started,STABLE ora.ons OFFLINE OFFLINE west STABLE -------------------------------------------------------------------------------- Cluster Resources -------------------------------------------------------------------------------- ora.cssd 1 ONLINE ONLINE west STABLE ora.diskmon 1 OFFLINE OFFLINE STABLE ora.evmd 1 ONLINE ONLINE west STABLE --------------------------------------------------------------------------------
12. Next step is to move the Oracle home to new location. As this is a role separated setup, write permission must be granted to oracle user for admin and diag directories inside Oracle base.
cd $ORACLE_BASE chmod 775 admin diagCreate the new Oracle home location and copy the current Oracle home (dbhome_1) to new location.
# cd /u01/app/oracle/product # mkdir -p 11.2.0 # cd /opt/app/oracle/product/11.2.0 # cp -pR dbhome_1 /u01/app/oracle/product/11.2.0/13. Clone the DB Home
$ cd /u01/app/oracle/product/11.2.0/dbhome_1/clone/ /u01/app/oracle/product/11.2.0/dbhome_1/perl/bin/perl clone.pl ORACLE_BASE="/u01/app/oracle/" ORACLE_HOME="/u01/app/oracle/product/11.2.0/dbhome_1" OSDBA_GROUP=dba OSOPER_GROUP=oper -defaultHomeName ./runInstaller -clone -waitForCompletion "ORACLE_BASE=/u01/app/oracle/" "ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1" "oracle_install_OSDBA=dba" "oracle_install_OSOPER=oper" -defaultHomeName -defaultHomeName "CRS=true" -silent -noConfig -nowait Starting Oracle Universal Installer... Checking swap space: must be greater than 500 MB. Actual 4097 MB Passed Preparing to launch Oracle Universal Installer from /tmp/OraInstall2019-03-07_07-21-14PM. Please wait ...Oracle Universal Installer, Version 11.2.0.4.0 Production Copyright (C) 1999, 2013, Oracle. All rights reserved. You can find the log of this install session at: /u01/app/oraInventory/logs/cloneActions2019-03-07_07-21-14PM.log .................................................................................................... 100% Done. Installation in progress (Thursday, 7 March 2019 19:21:31 o'clock IST) ........................................................................... 75% Done. Install successful Linking in progress (Thursday, 7 March 2019 19:21:43 o'clock IST) Link successful Setup in progress (Thursday, 7 March 2019 19:22:43 o'clock IST) Setup successful End of install phases.(Thursday, 7 March 2019 19:23:08 o'clock IST) WARNING: The following configuration scripts need to be executed as the "root" user. /u01/app/oracle/product/11.2.0/dbhome_1/root.sh To execute the configuration scripts: 1. Open a terminal window 2. Log in as "root" 3. Run the scripts The cloning of OraHome1 was successful. Please check '/u01/app/oraInventory/logs/cloneActions2019-03-07_07-21-14PM.log' for more details.Check the inventory is updated with new DB home location.
<HOME NAME="OraDb11g_home1" LOC="/u01/app/oracle/product/11.2.0/dbhome_1" TYPE="O" IDX="2"/>14. Update the /etc/oratab with the new Oracle home location. Add the database to the Oracle restart configuration.
srvctl add database -d westdb -o /u01/app/oracle/product/11.2.0/dbhome_1 -p +DATA/westdb/spfilewestdb.ora -a "data,flash" srvctl start database -d westdbCertain init parameters will refer to paths under previous Oracle base. Change them to reflect the current Oracle base.
show parameter diagnostic_dest diagnostic_dest string /opt/app/oracle alter system set diagnostic_dest='/u01/app/oracle' scope=both; alter system set audit_file_dest='/u01/app/oracle/admin/westdb/adump' scope=spfile; mkdir -p u01/app/oracle/admin/westdb/adump15. Stop the database and the Oracle restart stack. Rename the old base location (/opt/app/) to something temporary (/opt/appx/) and start the database. If all steps are followed there shouldn't be any references to previous location. Current oracle base directory could also be found out with orabase.
$ orabase /u01/app/oracleOnce certain no references to old locations remain those could be removed.