In this Document
APPLIES TO:
Oracle Database - Enterprise Edition - Version 9.2.0.1 to 12.1.0.1 [Release 9.2 to 12.1]
Generic UNIX
PURPOSE
This Document contains Frequently Asked Questions for relinking on Oracle Home , The Concept in this document is applicable for RDBMS Home .
QUESTIONS AND ANSWERS1) 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)
2) 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.
3) 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.
4) 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.
5) 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.
6) 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.1Can 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
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
Reference
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.
7) 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:
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:
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 )
8) 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
9) 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.1How 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.
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 . To find known issues check for known issues section in this document or search in MOS portal if any known issue exist for these messages .In case you are still facing the issue , please raise an SR with Oracle Support and upload the above details in SR for investigation.
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.
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 . To find known issues check for known issues section in this document or search in MOS portal if any known issue exist for these messages .In case you are still facing the issue , please raise an SR with Oracle Support and upload the above details in SR for investigation.
10) 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.
11) Does relinking occurs in windows ?
Relinking concept is applicable for Unix platform only , relinking does not occur in Windows OS.
Known Issues1) AIX Operating System
i) You are expected to see below warning messages during relinking phase in AIX ( while database installation , patching or manual relinking ).
ld: 0711-773 WARNING:
ld: 0711-783 WARNING:
ld: 0711-319 WARNING:
ld: 0711-415 WARNING:
ld: 0711-224 WARNING:
ld: 0711-324 WARNING:
ld: 0711-301 WARNING:
ld: 0711-345 WARNING:
Please refer to below document for more details
Note 402945.1 While installing one-off Patch on AIX systems, getting several WARNING messages: OUI-67215 - TOC overflow and/or xlC: not found / xlC: Execute permission denied
II) If you are seeing " ld: 0711-780 SEVERE ERROR" while relinking phase you have to follow solution as per below documentaion as this is not a ignorable error.
Note 1379753.1 AIX: ORA-07445 [ksmpclrpga] OR ORA-07445 [ksupop] ORA-07445 [lxhlinfo] OR Link/Relink/Make Fails With: ld: 0711-780 SEVERE ERROR: Symbol .ksmpfpva (entry 58964) in object libserver11.a[ksmp.o]
2) Solaris Operating System
Below Messages can be ignored during relinking phase in Solaris Operating system ( while 11gR2 database installation , patching or manual relinking ).
ld: warning: symbol `_start' has differing types:
(file /home03/oracle/product/11.2.0/dbhome_1/lib/prod/lib/v9/crt1.o type=FUNC; file /home03/oracle/product/11.2.0/dbhome_1/lib//libserver11.a(skds.o) type=OBJT);
Please refer to below Document for more details.
Note 1446945.1 "ld: warning: symbol `_start' has differing types:" While Installing Or Patching 11gR2 On Oracle Solaris Platform
NOTE:312767.1 - How to Rollback a Failed Interim Patch Installation
NOTE:549617.1 - How To Verify The Integrity Of A Patch/Software Download? [Video]
NOTE:883299.1 - Oracle 11gR2 Relink New Feature
NOTE:131321.1 - How to Relink Oracle Database Software on UNIX
NOTE:61628.1 - 8i: Building Makefiles and Libraries for Oracle Precompilers
- FAQ: Oracle Flex ASM 12c / 12.1 (Doc ID 1573137.1)
FAQ: Oracle Flex ASM 12c / 12.1 (Doc ID 1573137.1) APPLIES TO: Oracle Database - Enterprise Edition ...
- RMAN RECOVER TABLE 功能是 Oracle Database 12c 的新增功能 (Doc ID 1521524.1)
RMAN RECOVER TABLE Feature New to Oracle Database 12c (Doc ID 1521524.1) APPLIES TO: Oracle Database ...
- Data Guard:Oracle 12c –新增和更新的功能 (Doc ID 1558256.1)
Data Guard: Oracle 12c – New and updated Features (Doc ID 1558256.1) APPLIES TO: Oracle Database - E ...
- 06 Frequently Asked Questions (FAQ) 常见问题解答 (常见问题)
Frequently Asked Questions (FAQ) Origins 起源 What is the purpose of the project? What is the history ...
- 成员函数指针 C++ FAQ LITE — Frequently Asked Questions
http://www.sunistudio.com/cppfaq/pointers-to-members.html C++ FAQ LITE — Frequently Asked Questions ...
- FAQ – Automatic Undo Management (AUM) / System Managed Undo (SMU) (Doc ID 461480.1)
FAQ – Automatic Undo Management (AUM) / System Managed Undo (SMU) (Doc ID 461480.1) APPLIES TO: Orac ...
- tmux frequently asked questions
tmux frequently asked questions How is tmux different from GNU screen? tmux and GNU screen have ...
- Frequently Asked Questions
转自:http://www.tornadoweb.org/en/stable/faq.html Frequently Asked Questions Why isn’t this example wi ...
- openvswith Frequently Asked Questions
Open vSwitch <http://openvswitch.org> 参考地址:http://git.openvswitch.org/cgi-bin/gitweb.cgi?p=ope ...
随机推荐
- JVM几种垃圾回收器介绍
整理自:http://www.cnblogs.com/lspz/p/6397649.html 一.如何回收? 1.1 垃圾收集算法: (1)标记-清除(Mark-Sweep)算法 这是最基础的算法,就 ...
- 每天一个linux命令(目录)
转:http://www.cnblogs.com/peida/archive/2012/12/05/2803591.html 开始详细系统的学习linux常用命令,坚持每天一个命令,所以这个系列为每天 ...
- Double与BigDecimal 精度问题
转自:http://superivan.iteye.com/blog/963628 [1] 精确的浮点运算: 在Java里面,有时候为了保证数值的准确性需要精确的数据,先提供一个例子就可以发现问题了: ...
- shell命令——if
if中[ ]实际上调用的是test的一种快捷方法.bash的数值和字符串比较运算符: 注意=两边的空格 字符串 数值 为真,如果 x = y x -eq y x != y x -ne y x ...
- postgersql服务启动不了 FATAL: the database system is starting up
公司装有postgersql的数据库的服务器意外宕机,重启后数据库启动不了了,系统是windows 软件版本10,在网上找了解决方案 参考这篇文章https://blog.csdn.net/baidu ...
- ASP.NET编辑与更新数据(非GridView控件实现)
Insus.NET在实现<ASP.NET开发,从二层至三层,至面向对象 (5)>http://www.cnblogs.com/insus/p/3880606.html 中,没有把数据编辑与 ...
- 手机调试 --- 通过chrome测试手机网站
移动端有时候我们要调试手机网站. Chrome怎么调试手机页面呢? 毕竟有时候手机支持的JS度跟PC不一样.最开始就遇见了.手机端浏览器不支持执行string.includes. PC端支持该函数, ...
- Spring boot 入门五:springboot 开启声明式事务
springboot开启事务很简单,只需要一个注解@Transactional 就可以了.因为在springboot中已经默认对jpa.jdbc.mybatis开启了事务.这里以spring整合myb ...
- Linux常用基本命令( touch )
touch命令: 作用:创建空文件,或者改变文件的时间戳属性 格式: touch [option] [file] 1,同时创建一个或者多个空文件 ghostwu@dev:~/linux/mkdir$ ...
- div阴影
.box-shadow{ //Firefox4.0- -moz-box-shadow:投影方式 X轴偏移量 Y轴偏移量阴影模糊半径 阴影扩展半径 阴影颜色; //Safariand Google ch ...