Sunday, 1 July 2018

Interview Q and A for Oracle Installation, Patching, Cloning and Upgrade Part - 4

111. What are the different options available for clone.pl ?
-O : If you use this argument, anything following it is passed to the OUI clone command line. For example, you can use this option to pass the location of the oraparam.ini file to be used by OUI:
Eg: -O -paramFile C:\OraHome_1\oui\oraparam.ini
-debug : If you use this argument, the script runs in debug mode.
-help : If you use this argument, the script prints the help for the clone script.

112. What are the mandatory parameters for cloning (clone.pl)?
ORACLE_HOME="<Path to the Oracle_Homebeing_cloned>"
ORACLE_HOME_NAME="<Oracle_Home_Name for the Oracle_Home being cloned>"
ORACLE_BASE="<Path _to _the _Oracle_Base>" (Only applicable to 11g)
Windows :
perl<Oracle_Home>\clone\bin\clone.pl ORACLE_HOME="C:\u01\app\product\oracle\clone_home"
ORACLE_HOME_NAME="CLONE"
Linux-based and UNIX-based systems:
perl<Oracle_Home>/clone/bin/clone.pl ORACLE_HOME="/u01/app/product/oracle/clone_home"
ORACLE_HOME_NAME="CLONE

113. Why do you require cloner stage patches for 9.2?
Cloner stage patches are required while cloning 9iR2 installations because in 9iR2 certain products were installed outside the Oracle Home, for example, oui, jre etc., as opposed to 10g where everything is installed inside the Oracle Home.

114. Can you use jar utility for archiving and compressing the Oracle Home ?
Do not use the jar utility for archiving and compressing the Oracle Home, as this causes the file permissions to become lost.

115. Do the source and the destination path (of the Oracle Home to be cloned) need to be the same ?
The source and the destination path (of the Oracle Home to be cloned) need not be the same.

116. Are the changes made by applying one-off patches on the source Oracle Home also present after the clone operation?
Yes, all the changes made by applying one-off patches on the source Oracle Home are also present after the clone operation.

117. Can you use the cloned Oracle Home as the source for another cloning operation ?
Yes, you can also use the cloned Oracle Home as the source for another cloning operation. The cloned installation behaves the same as the source installation. For example, the cloned Oracle Home can be removed using OUI orpatched using OPatch.

118. Does the size of the binaries at the source and the destination differ ?
Yes, the size of the binaries at the source and the destination may differ because these are relinked as part of the clone operation, and the operating system patch levels may also differ between these two source and destination servers. Additionally, the number of files in the cloned home would increase because several files copied from the source, specifically those being instantiated, are backed up as part of the clone operation.

119. Is it necessary to shutdown database(s) and stop all processes running out of the Oracle Home before copying it for cloning?
It is not necessary, but it is recommended that the database(s), listeners and any processes in the source home are shutdown so that we have a clean backup of the installation to create the target home.

120. What is the significance of the inventory pointer file (oraInst.loc) while cloning?
If the oraInst.loc file is present in a non-default location (default location is /var/opt/oracle/oraInst.loc or/etc/oraInst.loc) then edit the cs.properties file and add the following to the clone_command_line and preclone_command_line:
-ignoreSysPrereqs -invPtrLoc<path_to_oraInst.loc>/oraInst.loc

121. Can you clone the Oracle Home across platforms?
No, cloning across platforms is not possible because the binaries across platforms are different
Eg : Binary for Solaris cannot be used on Linux.

122. Can you clone the Oracle Home across different OS versions ?
Yes, cloning across OS versions is possible provided the Oracle version is certified on the respective OS version. Eg : Cloning can be done from RHEL5 to RHEL6 and vice versa.

123. Can you clone with a different OS user/group?
Yes, you can clone with a different OS user/group.

124. What is the difference between attach home and cloning?
During cloning OUI replays the actions that are performed during the actual installation of the home, whereas attachhome attaches an Oracle Home to the Central Inventory or to register an existing Oracle Home with the CentralInventory when it is lost or corrupted.

125. Is the preparation phase ($ORACLE_HOME/clone/bin/prepare_clone.pl) required for Database and CRS Oracle Home cloning ?
No, database and CRS Oracle Home cloning does not require the script ($ORACLE_HOME/clone/bin/prepare_clone.pl)during preparation phase.

126. What is the $ORACLE_HOME/clone/config/cs.properties file used for ?
$ORACLE_HOME/clone/config/cs.properties file can be used for passing values in the command line to OUI for cloning.
You can enter values in the line clone_command_line=<value>.
The values entered here are appended to the OUI command line, which is run to perform the clone operation. For example, to specify a non-default location for the Oracle Inventory file on UNIX system computers, you can add the following line to the cs.properties file:
clone_command_line= -invptrloc /private/oracle/oraInst.loc
Note: To specify multiple arguments, separate each argument with a space.

127. Is it required to run root.sh after cloning?
Yes, on UNIX/Linux installations, after the cloning operation is completed, it is mandatory to run root.sh (as root) in the cloned Oracle Home.

128. Common ERROR in cloning process ?
ERROR: (Only applicable to 11g)
Values for the following variables could not be obtained from the command line or response file(s):
ORACLE_BASE Cloning cannot continue
Reason: ORACLE_BASE is a mandatory variable for 11g cloning. As the variable ORACLE_BASE is not set, OUI throws the above error.
Solution:
Option 1: Specify the variable when invoking the OUI or clone.pl.
perl <Oracle_Home>\clone\bin\clone.pl ORACLE_HOME="<Path to the Oracle_Home being_cloned>"
ORACLE_HOME_NAME="<Oracle_Home_Name for the Oracle_Home being cloned>" ORACLE_BASE="<Path to the Oracle_Base>"
setup.exe -clone -silent -noconfig ORACLE_HOME="<Path to the Oracle_Home being_cloned>"
ORACLE_HOME_NAME="<Oracle_Home_Name for the Oracle_Home being cloned>" ORACLE_BASE="<Path to the Oracle_Base>"
./runInstaller -clone -silent -noconfig ORACLE_HOME="<Path to the Oracle_Home being_cloned>"
ORACLE_HOME_NAME="<Oracle_Home_Name for the Oracle_Home being cloned>" ORACLE_BASE="<Path to the Oracle_Base>"
For more details On ORACLE_BASE in 11g :
Refer Metalink Note 454442.1 11g Install : Understanding about Oracle Base, Oracle Home and Oracle Inventory locations
Option 2: Set the variable ORACLE_BASE in the environment:
set ORACLE_BASE=<Path to the Oracle_Base> ( Windows )
export ORACLE_BASE=<Path to the Oracle_Base> ( Unix )
Then restart the cloning
ERROR:
The home at <ORACLE_HOME_path>is invalid or corrupt. Unable to continue cloning
Reason: The target ORACLE_HOME variable supplied/passed for cloning
Solution: Pass a valid target ORACLE_HOME variable for cloning
ERROR: Oracle Home has not been specified. Aborting the clone operation.
ERROR: Values for the following variables could not be obtained from the command line or response file(s):ORACLE_HOME_NAME Cloning cannot continue
Reason: The mandatory variables required (passed) for cloning are:
ORACLE_HOME
ORACLE_HOME_NAME
If any of the above variables are not passed, then OUI throws the above error.
Solution: Pass the mandatory variables ORACLE_HOME & ORACLE_HOME_NAME
(In 11g ORACLE_BASE is also mandatory)
Eg: ./runInstaller -clone -silent -noconfig ORACLE_HOME="<Path to the Oracle_Home being_cloned>"
ORACLE_HOME_NAME="<Oracle_Home_Name for the Oracle_Home being cloned>"
ERROR:
OUI-10198: Unable to create a new Oracle Home with name <home_name>. An Oracle Home with this name already exists. Please select another name.
SEVERE:OUI-10198: Unable to create a new Oracle Home with name <home_name>. An Oracle Home with this name already exists. Please select another name.
java.io.IOException: OUI-10198: Unable to create a new Oracle Home with name <home_name>. An Oracle Home with this name already exists. Please select another name.
Reason: The ORACLE_HOME_NAME is the name of the Oracle Home directory in which Oracle products are installed. This should be unique in a server/node.
Cloning requires an ORACLE_HOME_NAME (for the new Oracle Home) which is not present in the server already.
The above error mentions that the value of the variable passed by the ORACLE_HOME_NAME is already existing on the server.
Solution: Specify another ORACLE_HOME_NAME which is not present already.
The ORACLE_HOME_NAME can be found in the file <path to central
inventory>/ContentsXML/inventory.xml
Windows : "C:\Program Files\Oracle\Inventory\ContentsXML\inventory.xml ( by default)
Unix : Locate the oraInst.loc file (/var/opt/oracle or /etc) and hence the location of
Central Inventory
For example the entry will be :
<HOME NAME="OraDb10g_home1" LOC="D:\10GR2\db_1" TYPE="O" IDX="1" />
Here ORACLE_HOME_NAME will be OraDb10g_home1

129. What is relinking ?
The predefined functions for any language are defined inside the library files for that language and it is required to Compile the code to create a binary format file (object file).The Object files are then linked together with OS libraries to create one executable file. Successful linking requires all the function definition should be found , Linking generates an executable from it's component. The terms linking and relinking mean the same in this context and used interchangeably. In both cases an executable is being built from pre-built components. The types of files involved in relinking are:
* .c (source code file)
* .o (object file)
* .a (archived file)
* .so or .sl on HP/UX (PA-RISC) (library files)

130.  What is relinking of Oracle Home Binaries ?
The Oracle software is shipped in form of object files (.o files), archive files (.a files) and then grouped in a compressed jar format. These object files are then get "relinked" at the operating system level during installation to create usable executables. This guarantees a reliable integration with functions provided by the OS system libraries.
Generally, during relinking the current executables are renamed and saved, while the new executables are being generated. Once the new executables are in place and you have successfully tested that the new executables are working, you can delete the old executables in the directory ORACLE_HOME/bin. Each old executable has an 'O' appended to it's file name, for example, 'exp' is renamed to 'expO'.
The advantage of providing the object file is that it reduces the patch/package size , instead of providing the whole libraries or program , only objects files are shipped which then linked with OS libraries to create usable executables.
The following are the directories where various object files and archive files will reside in Oracle Home.
- /lib
- /usr/lib
- $ORACLE_HOME/lib
- $ORACLE_HOME/rdbms/lib
- $ORACLE_HOME/<product>/lib
There is file named “ sysliblist “ which lives in $ORACLE_HOME/rdbms/lib or $ORACLE_HOME/lib directory. It contains a list of other libraries, which need to be included.

131. Why Oracle Home Relinking is required ?
Oracle Home relinking is required to link Oracle provided object files to the OS system library. Relinking guarantees a reliable integration with functions provided by the OS system libraries.
Relinking occurs automatically under these circumstances:
An Oracle Database has been installed with Oracle Universal Installer ( OUI )
An Oracle Database Patchset has been applied via Oracle Universal Installer ( OUI )
An Oracle Database Patch has been applied using “ opatch tool “
Relinking can also be performed manually.

132. When Manual relinking is required?
Manual relinking is required in below situations.
A) After OS upgrade, Generally OS Vendors guarantee operating system binary compatibility, therefore, no reinstall or relink of the Oracle software is required when upgrading these operating systems unless specifically stated otherwise.
"However Oracle recommends performing manual relinking of Oracle Home binaries after OS upgrade".
B) After Operating system has been patched.( Recommended ).
C) Relinking phase during installation of Oracle Home has errors/warnings.
D) Application of a RDBMS patch failed in relinking phase.
E) Applications gives error for missing lib files in RDBMS home.
F) Troubleshooting RDBMS home binaries issue.
G) After manually modifying RDBMS home binary permissions.
H) Verifying Integrity of Oracle Home Binaries.
I) Resetting Oracle Home binaries permission.

133. Is relinking required after an OS upgrade , Downgrade , Patching or removal of the patch ?
Yes, Oracle recommends to perform manual relinking of Oracle Home Binaries after OS Upgrade , Patching ,Downgrade or removal of the Patch or any change which impact OS library behavior . Successful relinking shows Oracle Executable are properly linked with OS binaries.

134.  How to relink Oracle Home ?
Below are the steps to relink Oracle Home Binaries.
A) Set Environment variables
When linking the following environment variables need to be set:
DISPLAY
TERM or ORACLE_TERM
ORACLE_HOME
PATH to include $ORACLE_HOME/bin
LD_LIBRARY_PATH $ORACLE_HOME/lib:/usr/lib
SHLIB_PATH $ORACLE_HOME/lib:/usr/lib (for HP-UX only)
B) Verify umask value is set as 022 , in case umask value is not correct , set umask to 022 ( run cammand " umask 022 " )
C) Stop all oracle instances accessing this ORACLE_HOME, listener and sqlplus in case if any. For AIX OS only as root user run slibclean, after 5 minutes run slibclean once again.
It is safe to run slibclean even if other database are up and running , please refer to below document for more details Note 435071.1 Can Slibclean command be Executed when the Database is up and running?
D) As Oracle user perform following Command:
$ORACLE_HOME/bin/relink
Accepted values for parameter:
"all ", " oracle " , " network", "client" , "client_sharedlib" , "interMedia" , "precomp" , "utilities ",
"oemagent", "ldap".
The manual relinking logs can be collected using unix redirection feature as mentioned below :
$ $ORACLE_HOME/bin/relink all >> relink.out
The Ouput will be written to relink.out file.
Reference Note 131321.1 How to Relink Oracle Database Software on UNIX
E) Additional option available for 11GR2
11.2.0.1 Database onwards there is an another option to use “ Oracle Universal Installer “ to perform relinking as mentioned below:
Below option can be used with runinstaller
-relink : For performing relink actions on the oracle home
Usage: -relink -maketargetsxml <location of maketargetsxml> [-makedepsxml <location of makedepsxml>] [name=value]
Example :
$ORACLE_HOME/oui/bin/runInstaller -relink -waitForCompletion -maketargetsxml
$ORACLE_HOME/inventory/make/makeorder.xml -logLocation $ORACLE_HOME/install
ORACLE_HOME=$ORACLE_HOME > $ORACLE_HOME/install/relink.log 2>&1
F) relinking individual components
You can manually relink any one executable or all executables at any one time using the supplied 'MAKE' files and providing an appropriate link_option. Below describes the command used to perform a manual relink:
make -f <makefile> <link_option>
To relink an executable the above command is executed by the user who is logged on to the system as the software owner. The command is executed from the LIB directory where the <makefile> resides, i.e.
$ORACLE_HOME/<product_name>/lib
where <product_name> could be oracle, forms45 or reports30 etc.
G ) debugging relinking logs
relinking script is a shell script and can be debugged as like any normal script as below:
$ sh -x relink all >relink_all.out 2>&1
The output will be written to relink_all.out file.

135. Where to find relinking logs ?
linking during Oracle Home Installation or Patchset installation
 relinking logs during installation of Oracle Home binaries can be found in below file:
$ORACLE_HOME/install/make.log
Also you can fine relinking logs in OUI logs for the database installation. Below document describes the details of OUI installation log files:
Note 403212.1 "Location Of Logs For Opatch And OUI
linking during Oracle patching using opatch
relinking occurs during patch ( PSU or One off patch ) installation using opatch and logs can be found in opatch logs .Below document describes the details of OUI installation log files:
Note 403212.1 "Location Of Logs For Opatch And OUI
Manual relinking
The manual relinking logs can also be collected using unix redirection feature:
$ $ORACLE_HOME/bin/relink all >> relink.out
The logs will be redirected to relink.out file
Additional feature for 11gR2
Option 1
If relink is performed using OUI then "$ORACLE_HOME/install/relink.log" is not created by default.
To send the relink output to $ORACLE_HOME/install/relink.log we need to redirect the output explicitly.
$ORACLE_HOME/oui/bin/runInstaller -relink -waitForCompletion -maketargetsxml
$ORACLE_HOME/inventory/make/makeorder.xml -logDir $ORACLE_HOME/install ORACLE_HOME=$ORACLE_HOME
> $ORACLE_HOME/install/relink.log 2>&1
Option 2
In case of " relink all " command, it always creates a new log file with a name "relink.log" and it will not append log information to the existing relink log file . The previous log will be saved with a timestamp ( Ex: relinkActions2009-09-14_09-01-10-PM.log )

136. What are the known issues with manual relinking ?
A) Relink all is a generic script and it will try to relink all the components irrespective of the fact whether the components is installed or not and will give errors .You need to verify if the components in installed or not ( use “opatch lsinventory –details” command to list installed components )
For Oracle Client where not all the components is installed , “ relink all “ is likely to give many errors. The better way to relink a client home is to issue below command:
$ relink client
B) Executing "relink all" will reset the ownership and permission for root owned files. After "relink all", it is recommended to change the ownership and permission back.
More details are in Note.1555453.1 - Executing "relink all" resets permission of extjob, jssu, oradism, externaljob.ora

137. How to troubleshoot relinking issues ?
Relinking errors during Oracle Home installation or Applying Patchset.
A) Please check whether the database version you are trying to install is certified on your OS version or not. Refer to below documentation and look for " Certification (or compatibility) Information " to check the certification details:
Note 1194734.1 Where do I find that on My Oracle Support (MOS) [Video]
B) Verify if the downloaded software is not corrupt , Please refer to below documentation for more details: Note 549617.1 How To Verify The Integrity Of A Patch/Software Download? [Video]
C) Confirm whether you have verified all the OS pre-requirements as described in below documentaion O Installation Guide:
Note 169706.1 Oracle Database on Unix AIX,HP-UX,Linux,Mac OS X,Solaris,Tru64 Unix Operating Systems Installation and Configuration Requirements Quick Reference (8.0.5 to 11.2).
Or
Run the install validation engine from the following article to verify system requirements.
Note 250262.1 "RDA 4 - Health Check / Validation Engine Guide"
Use the following command for Health Check
./rda.sh -dT hcve
The results are written to a HTML file that is located in the RDA output directory.The HTML file can be opened in any web browser and will give details reports of any OS pre-requirements missing in the server , verify if the OS meets all the OS pre-requirements for installing the respective database version.
D) Verify if below command’s are included in PATH :
which ar
which ld
which cc
which gcc
which make
If any of the above commands does not return the PATH of command it means the command PATH is not set and you have to set it manually. Also try running these commands manually and see these commands working fine at OS level
E) Check if enough space is availble in /tmp directory and filesystem where ORACLE_HOME Resides
F) The relinking error while installation is gathered in below log file:
$ORACLE_HOME/install/make.log and OUI log file
G) Identify the first occurrence of “ warning” , “fatal” , “ error” , "stop” , "exception” , "severe ", "Exit Code 1" messages and these messages will help you out in identifying the root cause if relinking failure .

Relinking errors during patching of Oracle Home using opatch
A) Check the following points
1) You have downloaded correct version of patch ( Acording to your database version and OS version )
2) The patch zip file name that you have downloaded shows the correct version and platform.
3) The size of the downloaded zip file is the same as shown on the download page.
4) The patch is downloaded/transferred in "BINARY" mode if it is downloaded on the some other machine and then transferred to this machine.
5) The patch is unzipped at the same server which is being patched.
6 ) Verify if the downloaded patch zip file is not corrupt as per below Note.
Note: 549617.1 - How To Verify The Integrity Of A Patch/Software Download? [Video].
B) If patch has been applied and patching has been failed?
1) Restore from pre-backup stage or in case backup is not availble rollback the failed patch as described in below documentation.
Note.312767.1 How to rollback a failed Interim patch installation.
2) Perform manual relinking of the database , if you still get the same error it means the issue is not with patching , if error is no more appearing then its issue with patching.
3) Check if enough space is availble in /tmp directory and filesystem where ORACLE_HOME Resides
3) Look into the opatch logs and identify the first occurrence of the error, Below document describe the details of opatch log files.
Note 403212.1 "Location Of Logs For Opatch And OUI"
5) Identify the first occurrence of “ warning” , “fatal” , “ error” , "stop” , "exception” , "severe ", "Exit Code 1" messages and these messages will help you out in identifying the root cause if relinking failure .

138. What are the utilities to troubleshoot relinking issues?
A ) nm
Used to list all symbols in an .o, .a and binary file. It is useful in finding where a symbol is defined. A useful command to use would be:
nm <file> | grep <symbol>
Where <file> states the name of the library you want to examine and <symbol> names the symbol you are actually looking for.
B) ar
Builds and maintains libraries and archives of .o files. Using this command you can group .o files into a single archive  (.a) for use in creating executables. It is used to insert, delete & replace objects files from an archive library.
C) Symfind
A script available at below location
$ORACLE_HOME/bin/symfind <symbol>:
looks for a symbol in the shared objects of Oracle. This script basically performs the two above commands.

139. Does relinking occurs in windows ?
Relinking concept is applicable for Unix platform only , relinking does not occur in Windows OS.

140.What is OUI ?
Oracle Universal Installer (OUI) is a Java-based graphical user interface (GUI) application that enables you to install Oracle components from a CD, multiple CDs, or the Web.

OUI performs component-based installations and enables different levels of integrated bundle, suite, and Web-based installations, as well as complex logic in a single package. The installation engine portable across all Java-enabled platforms, and platform-specific issues can be encapsulated from the overall installation process.

No comments:

Post a Comment