一.引入问题

帮朋友在CentOS上安装一个10g的Oracle,结果朋友的CentOS版本是6.2的版本,最新的一个版本,不过Linux上基本都差不多,所以按照以前的步骤,迅速的操作起来,结果遇到N多以前没有遇到过的错误。安装被迫中断,尝试忽略之前的错误,又会遇到其他的错误。

64位 linux平台下Oracle安装文档

http://blog.csdn.net/tianlesoftware/article/details/6062816

如何搭建一个数据库服务器平台

http://blog.csdn.net/tianlesoftware/article/details/5602291

1.1 ins_ctx.mk 问题

[oracle@xd logs]$ tail  installActions2012-05-05_01-20-00PM.log

INFO: collect2: ld returned 1 exit status

INFO: make: *** [ctxhx] Error 1

INFO: End output from spawned process.

INFO: ----------------------------------

INFO: Exception thrown from action: make

Exception Name: MakefileException

Exception String: Error in invoking target'install' of makefile '/u01/app/oracle/product/10.2.0/db_1/ctx/lib/ins_ctx.mk'.See '/u01/app/oracle/oraInventory/logs/installActions2012-05-05_01-20-00PM.log'for details.

Exception Severity: 1

[oracle@xd logs]$ yum install gcc

Loaded plugins: fastestmirror,refresh-packagekit, security

You need to be root to perform thiscommand.

[oracle@xd logs]$ rpm -qa --queryformat"%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})/n" | grep libgcc

libgcc-4.4.6-3.el6 (i686)

libgcc-4.4.6-3.el6 (x86_64)

1.2 ins_rdbms.mk 问题

[oracle@xd logs]$ tail  installActions2012-05-05_01-20-00PM.log

INFO: make[1]: Leaving directory`/u01/app/oracle/product/10.2.0/db_1/rdbms/lib'

INFO: make: *** [extproc32] Error 2

INFO: End output from spawned process.

INFO: ----------------------------------

INFO: Exception thrown from action: make

Exception Name: MakefileException

Exception String: Error in invoking target'all_no_orcl' of makefile '/u01/app/oracle/product/10.2.0/db_1/rdbms/lib/ins_rdbms.mk'.See '/u01/app/oracle/oraInventory/logs/installActions2012-05-05_01-20-00PM.log'for details.

Exception Severity: 1

1.3 ins_emdb.mk 问题

[oracle@xd logs]$ tail  installActions2012-05-05_01-20-00PM.log

INFO: make[1]: Leaving directory `/u01/app/oracle/product/10.2.0/db_1/sysman/lib'

INFO: make: *** [nmccollector] Error 2

INFO: End output from spawned process.

INFO: ----------------------------------

INFO: Exception thrown from action: make

Exception Name: MakefileException

Exception String: Error in invoking target'collector' of makefile'/u01/app/oracle/product/10.2.0/db_1/sysman/lib/ins_emdb.mk'. See'/u01/app/oracle/oraInventory/logs/installActions2012-05-05_01-20-00PM.log' fordetails.

Exception Severity: 1

1.4 ins_net_client.mk 问题

[oracle@xd logs]$ tailinstallActions2012-05-05_01-51-59PM.log

INFO: /usr/bin/ar:/u01/app/oracle/product/10.2.0/db_1/lib32/nnfgt.o: No such file or directory

INFO: make: *** [nnfgt.o] Error 1

INFO: End output from spawned process.

INFO: ----------------------------------

INFO: Exception thrown from action: make

Exception Name: MakefileException

Exception String: Error in invoking target'nnfgt.o' of makefile'/u01/app/oracle/product/10.2.0/db_1/network/lib/ins_net_client.mk'. See'/u01/app/oracle/oraInventory/logs/installActions2012-05-05_01-51-59PM.log' fordetails.

Exception Severity: 1

1.5 ins_precomp.mk 问题

[oracle@xd logs]$ tailinstallActions2012-05-05_01-51-59PM.log

INFO: /bin/chmod: cannot access`/u01/app/oracle/product/10.2.0/db_1/precomp/lib/proc': No such file ordirectory

INFO: make: ***[/u01/app/oracle/product/10.2.0/db_1/precomp/lib/proc] Error 1

INFO: End output from spawned process.

INFO: ----------------------------------

INFO: Exception thrown from action: make

Exception Name: MakefileException

Exception String: Error in invoking target'relink' of makefile'/u01/app/oracle/product/10.2.0/db_1/precomp/lib/ins_precomp.mk'. See'/u01/app/oracle/oraInventory/logs/installActions2012-05-05_01-51-59PM.log' fordetails.

Exception Severity: 1

1.6 ins_plsql.mk 问题

[oracle@xd logs]$ tailinstallActions2012-05-05_01-51-59PM.log

collect2: ld returned 1 exit status

INFO: make: *** [wrap] Error 1

INFO: End output from spawned process.

INFO: ----------------------------------

INFO: Exception thrown from action: make

Exception Name: MakefileException

Exception String: Error in invoking target'install' of makefile'/u01/app/oracle/product/10.2.0/db_1/plsql/lib/ins_plsql.mk'. See'/u01/app/oracle/oraInventory/logs/installActions2012-05-05_01-51-59PM.log' fordetails.

Exception Severity: 1

1.7 ins_net_server.mk 问题

[oracle@xd logs]$ tailinstallActions2012-05-05_01-51-59PM.log

collect2: ld returned 1 exit status

INFO: make: *** [tnslsnr] Error 1

INFO: End output from spawned process.

INFO: ----------------------------------

INFO: Exception thrown from action: make

Exception Name: MakefileException

Exception String: Error in invoking target'install' of makefile'/u01/app/oracle/product/10.2.0/db_1/network/lib/ins_net_server.mk'. See'/u01/app/oracle/oraInventory/logs/installActions2012-05-05_01-51-59PM.log' fordetails.

Exception Severity: 1

1.8 ins_nau.mk 问题

[oracle@xd logs]$ tailinstallActions2012-05-05_01-51-59PM.log

INFO: ld returned 1 exit status

INFO: make: *** [oklist] Error 1

INFO: End output from spawned process.

INFO: ----------------------------------

INFO: Exception thrown from action: make

Exception Name: MakefileException

Exception String: Error in invoking target'ioklist iokinit iokdstry' of makefile'/u01/app/oracle/product/10.2.0/db_1/network/lib/ins_nau.mk'. See'/u01/app/oracle/oraInventory/logs/installActions2012-05-05_01-51-59PM.log' fordetails.

Exception Severity: 1

1.9 ins_ldap.mk 问题

[oracle@xd logs]$ tailinstallActions2012-05-05_01-51-59PM.log

collect2: ld returned 1 exit status

INFO: make: *** [ldapadd] Error 1

INFO: End output from spawned process.

INFO: ----------------------------------

INFO: Exception thrown from action: make

Exception Name: MakefileException

Exception String: Error in invoking target'clientonlyinstall' of makefile'/u01/app/oracle/product/10.2.0/db_1/ldap/lib/ins_ldap.mk'. See'/u01/app/oracle/oraInventory/logs/installActions2012-05-05_01-51-59PM.log' fordetails.

Exception Severity: 1

1.10 ins_srvm.mk 问题

[oracle@xd logs]$ tailinstallActions2012-05-05_01-51-59PM.log

INFO: ld returned 1 exit status

INFO: make: *** [rawutl] Error 1

INFO: End output from spawned process.

INFO: ----------------------------------

INFO: Exception thrown from action: make

Exception Name: MakefileException

Exception String: Error in invoking target'install' of makefile'/u01/app/oracle/product/10.2.0/db_1/srvm/lib/ins_srvm.mk'. See'/u01/app/oracle/oraInventory/logs/installActions2012-05-05_01-51-59PM.log' fordetails.

Exception Severity: 1

1.11 ins_has.mk 问题

[oracle@xd logs]$ tailinstallActions2012-05-05_01-51-59PM.log

collect2: ld returned 1 exit status

INFO: make: *** [/u01/app/oracle/product/10.2.0/db_1/racg/lib/racgmain]Error 1

INFO: End output from spawned process.

INFO: ----------------------------------

INFO: Exception thrown from action: make

Exception Name: MakefileException

因为之前没有在CentOS 6.2 上安装过Oracle,所以开始也是争对具体情况去分析,饶了一圈之后,最终定位是安装之前少包了,才导致在安装过程中一些Binary Options不能进行link。用yum 把需要的包全部打上之后,再次安装就没有问题了。

这里要清楚一个概念,就是Binary Options, 其就是Oracle 的组件,我们在把Oracle 安装到系统上时,会对这些组件进行一个link的操作,我们这里因为少了包导致不能进行link。

OracleBinary Options 说明

http://blog.csdn.net/tianlesoftware/article/details/7577637

这次是太大意了,安装之前没有去检查包是否安装全了,因为根据以往的经验,把没有的包打上就可以了,没想到还有其他的包少了。所以操作中务必小心,要按照文档步骤来。

其实在Linux 6平台下,可以使用oracle-rdbms-server-11gR2-preinstall包来操作,这个包会帮我们解决很多问题,包括前期包的依赖性和相关的参数配置工作,关于该包的使用,具体参考:

Oracle Linux6 下Oracle RDBMS Server 11gR2 Preinstall RPM 包说明

http://blog.csdn.net/tianlesoftware/article/details/7456878

在Oracle Linux5中参考:

Oracle ValidatedConfigurations 安装使用 说明

http://blog.csdn.net/tianlesoftware/article/details/7061684

二.MOS 上部分解决方法

对第一部分列出的问题,这里从MOS上摘取2个的解决方案。

2.1 Ins_net_client.Mk 问题一

MOS 文章:

'Error In Invoking Target Ntcontab.o OfMakefile Ins_net_client.Mk' [ID 341621.1]

2.1.1 Symptoms

A popuperror occurs during the installation of the Oracle9i R2 Client (9.2.0.1)on Sun Solaris 5.9 (64-bit).

Popup error message:
Error in invoking target ntcontab.o of makefile ins_net_client.mk

2.1.2 Cause

Expected defaultSun Solaris installed utilities (from Sun Packages) not present in /usr/ccs/bindirectory.

Instead thefollowing utilities were symbolically linked to other provider (packaged)utilities and/or renamed in the '/usr/ccs/bin' directory:

/usr/ccs/bin/ar >> was symbolically linked to /software/binutils/bin/ar(original ar was
moved ot a new name)
/usr/ccs/bin/as >> was moved to a new name
/usr/ccs/bin/ld >> was symbolically linked to software/binutils/bin/ld(original ld was
moved ot a new name)

Investigation with System Administrator.

2.1.3 Solution

To implement the solution, please executethe following steps:

1. Request the System Administrator remove the symbolic links and restore theexpected default Sun Solaris installed utilities (at least long enough tocomplete the Oracle Client installation and relinking.

2. Once in place, run the Oracle9i R2 Client installation, or manually relinkthe Oracle Client:
--手工relink Oracle client

Run:
cd $ORACLE_HOME/network/lib
make -f ins_net_client.mk nnfgt.o
make -f ins_net_client.mk ntcontab.o
make -f ins_net_client.mk client_sharedlib
make -f ins_net_client.mk install

cd $ORACLE_HOME/sqlplus/lib
make -f ins_sqlplus.mk install

cd $ORACLE_HOME/bin
relink client

2.2 Ins_net_client.Mk 问题二

MOS 文章:

Installing OracleAS on a Linux 64bit: Errorin invoking target ntcontab.o of makefile ins_net_client.mk [ID 400301.1]

2.2.1 Symptoms

While installingthe Application Server 10.1.2.0.2 on a Linux 64 bit distribution (e.g.RedHat 4.0 64bit) the following error may be raised in a pop up windowwhen the Universal Installer starts linking the binaries:

Error ininvoking target 'ntcontab.o' of makefile'/myoraclehome/network/lib/ins_net_client.mk'

The error may beraised by any installation type (Infrastructure, Metadata Repository, IdentityManagement, Midtiers).

2.2.2 Changes

Toinstall the Application Server 10.1.2.0.2 in a Linux 64bit O/S we need totailor the environment so the gcc compiler works as a 32bitcompiler.  By default the gcc compiler bundled with the Linux x86 64bitdistributions works in 64bit mode.

2.2.3 Cause

There were 2 issues preventing thecompilation:

1) The /usr/bin/gcc compiler need to bewrapped to compile in 32bit mode and pick up the crt1.o file

2) The /usr/lib/crt1.o file was missing.

2.2.4 Solution

Firstly review the advice given in:

Note:377359.1 HandlingOracle Application Server 10g Relinking Errors on Redhat and Suse 64-bit Linux

If the advice in this note does not lead to a solution,try the work-around steps given below.

1) Create ashell script /usr/bin/gcc containing the following entries. Note the scriptwill differ depending on the gcc version. Create a different shell scriptdepending on the gccNN version:

For gcc32:

#!/bin/sh
exec /usr/bin/gcc32 -m32 -static -libgcc -B/usr/lib/ "$@"

For gcc33:

#!/bin/sh
exec /usr/bin/gcc33 -m32 -static -libgcc -B/usr/lib/ "$@"

For gcc34:

#!bin/sh
exec /usr/bin/gcc34 -m32 -static -libgcc -B/usr/lib-L/usr/lib/gcc/x86_64-redhat-linux/3.4.3/32 "$@"

2) Install the glibc-devel-2.3.4-2.25(32bit) RPM and verify you have /usr/lib/crt1.o afterwards

3) Verify libdb.so.2 is installedin the system. The file should be there if gnome-libs-1.4.1.2.90-34.1 (orlater) is installed:

rpm -qa |grep gnome-libs ==> Verifygnome-libs is there
rpm -ql gnome-libs-1.4.1.2.90-34.1| grep libdb ==> Verify libdb.so.2 isincluded in the rpm

4) Retry the failed relink and continue theinstallation.

2.3 ins_ctx.mk 问题

MOS 文章:

Error in Invoking Target 'Install' of Makefile $ORACLE_HOME/ctx/lib/ins_ctx.mk [ID 362285.1]

2.3.1 Symptoms

While executingthe link phase of an Oracle Database Server installation on LINUX x86-64 thefollowing error occurs:

$ORACLE_HOME/bin/ctxhx fails to relink witherror
/usr/bin/ld: cannot find -lgcc_s_32

2.3.2 Cause

Missing required 32bit RPMs for:
libgcc

Per :
Note851598.1 Linux OS Requirements Reference List for Database Server

2.3.3 Solution

1. Check if you have the missing RPMinstalled.  For example:

rpm -qa --queryformat"%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})/n" | grep libgcc

libgcc-4.1.2-48.el5 (x86_64)  <<<64bit version
libgcc-4.1.2-48.el5 (i386)   <<<32bit version

2. Install any missing RPM's per:

Note851598.1 Linux OS Requirements Reference List for Database Server

In this case libgcc-4.1.2-48.el5 (i386) <<<32bit version was missing.

3. Relink per

Note131321.1 How to Relink Oracle Database Software on UNIX/LINUX

for example:

% relink all > /tmp/relink.txt2>&1

4. Check relink.txt for errors

三.Relink Oracle Database 说明

MOS文章:

How to Relink Oracle Database Software on UNIX [ID 131321.1]

3.1 背景说明

Applicationsfor UNIX are generally not distributed as complete executables.

Oracle,like many application vendors who create products for UNIX, distributeindividual object files, library archives of object files, and some sourcefiles which then get "relinked" at the operating system level duringinstallation to create usable executables. This guarantees a reliable integration with functions provided by the OSsystem libraries.

UNIX平台下的应用通常不是作为一个完整的可执行文件来部署的。Oracle 分散部署单独的对象文件,对象文件的library archives 和一些源文件,然后在安装过程中,在系统级别获取这些对象的link,并用其创建可执行文件。

3.1.1 在以下情况下会自动进行Relink

Relinking occurs automatically under thesecircumstances:

(1)An Oracle product has beeninstalled with an Oracle provided installer.

(2)An Oracle patch set has beenapplied via an Oracle provided installer.

3.1.2 The following information has been added to the 'Certify' section of MyOracleSupport:

General Notes For Oracle Database - Enterprise Edition:
   O/S Information: 
   The vendors guarantee operating systembinary compatibility; therefore, no reinstall or relink of the Oracle software isrequired when upgrading these operating systems unless specifically statedotherwise.

3.1.3 Relinking Oraclemanually is suggested under the following circumstances(even though the OSvendor may not require it):

--在以下情况下需要手工的Relinking Oracle

(1)An OS upgrade has occurred.
(2)A change has been made to the OSsystem libraries.  This can occur duringthe application of an OS patch.
(3)A new install failed during therelinking phase.
(4)Individual Oracle executables coredump during initial startup.
(5)An individual Oracle patch has beenapplied (however, explicit relink instructions are usually either included inthe README or integrated into the patch install script)

3.2 Relinking Oracle

注意事项:

This note shouldnot be used for 11GR2 GI/ASM home's (GI: Grid Infrastructure).

You shouldrather refer to clusterware admin guide and/or How to Check WhetherOracle Binary/Instance is RAC Enabled and Relink Oracle Binary in RAC.

以下方法争对的是单实例,如果是RAC,参考:

How to Check Whether Oracle Binary/Instance is RAC Enabled and Relink Oracle Binary in RAC [ID 284785.1]

手工Relink的步骤如下:

[Step 1] Log into theUNIX system as the Oracle software owner:
=============================================================
Typically this is the user 'oracle'.

[STEP 2] Verify that your$ORACLE_HOME is set correctly:
=============================================================
For all Oracle Versions and Platforms, perform this basic environment check 
first:
 
 % cd $ORACLE_HOME
 % pwd

Doing this will ensure that $ORACLE_HOME is set correctly in your currentenvironment.

[Step 3] Verify and/or Configure theUNIX Environment for proper relinking:
=============================================================

For all Oracle Versionsand UNIX Platforms:
 The Platform specific environment variablesLIBPATH, LD_LIBRARY_PATH,  SHLIB_PATHtypically are already set to include system library locations like  '/usr/lib'. In most cases, you need only check what they are set to first, then addthe $ORACLE_HOME/lib directory to them where appropriate.

i.e.:  %setenv LD_LIBRARY_PATH ${ORACLE_HOME}/lib:${LD_LIBRARY_PATH}  (see note:131207.1How to Set UNIX Environment Variables for help with  setting UNIX environment variables)

If on AIX with:

--------------

NOTE: Beforerelinking, after stopping all required processes, issue the     following as root to detach all files frommemory that are not attached to an active process:
         # /usr/sbin/slibclean

Oracle 7.3.X:
       - Set LIBPATH to include$ORACLE_HOME/lib
    
    Oracle 8.0.X:
       - Set LIBPATH to include$ORACLE_HOME/lib
       - Set LD_LIBRARY_PATH to include$ORACLE_HOME/lib and 
         $ORACLE_HOME/network/lib (Requiredwhen using Oracle products that use Java)
       - Set LINK_CNTRL to L_PTHREADS_D7if using AIX 4.3. ('oslevel' verifies  OSversion)
    
    Oracle 8.1.X, 9.X.X, 10.X.X or 11.x.x:
       - For 8.1.5, set LINK_CNTRL toL_PTHREADS_D7
       - If not 8.1.5, ensure thatLINK_CNTRL is not set
       - Set LIBPATH to include$ORACLE_HOME/lib

If on DATA GENERAL AVIION (DG) with:
-----------------------------------
    Oracle 7.3.X or 8.0.X:
       - Set LD_LIBRARY_PATH to include$ORACLE_HOME/lib
       - ensure TARGET_BINARY_INTERFACEis unset
    
    Oracle 8.1.X:
       - Set LD_LIBRARY_PATH toinclude         $ORACLE_HOME/lib:$ORACLE_HOME/JRE/lib/PentiumPro/native_threads

If on HP-UX with:
----------------
    Oracle 7.3.X,8.0.X, 8.1.X;
       - Set SHLIB_PATH to $ORACLE_HOME/lib
       If using 64bit 8i Oracle, also
       - Set LD_LIBRARY_PATH to$ORACLE_HOME/lib64
       - ensure LPATH is unset
 
    Oracle 9.X.X,10.X.X or 11.x.x;
       - ensure LPATH is unset

If on NCR with:
--------------
    Oracle 7.3.X, 8.0.X or 8.1.X:
       - Set LD_LIBRARY_PATH to include$ORACLE_HOME/lib:/usr/ccs/lib

If on SCO UNIXware with:
-----------------------

Oracle 7.3.X or 8.0.X:
       - Set LD_LIBRARY_PATH to include$ORACLE_HOME/lib
    
    Oracle 8.1.X:
       - Set LD_LIBRARY_PATH to include 
        $ORACLE_HOME/lib:$ORACLE_HOME/JRE/lib/x86at/native_threads

If on SGI with:
--------------
    32bit Oracle 7.3.X or 8.0.X:
       - Set LD_LIBRARY_PATH to include$ORACLE_HOME/lib
       - Set SGI_ABI to -32

64bit Oracle 8.0.X or 8.1.X (8i isonly available in 64bit):
       - Set LD_LIBRARY_PATH to include$ORACLE_HOME/lib
       - Set SGI_ABI to -64
       - If one does not already exist,create the file compiler.defaults and 
         set the COMPILER_DEFAULTS_PATHvariable:

In the Oracle software owner's $HOMEdirectory, create a file called      'compiler.defaults':
  
        % cd $HOME
        % echo"-DEFAULT:abi=64:isa=mips3:proc=r10k" > compiler.defaults

Then set the environment variableCOMPILER_DEFAULTS_PATH to point to the $HOME directory.
  
        % setenv COMPILER_DEFAULTS_PATH$HOME
  
     If this is not set, relinking willfail because the compiler defaults to      MIPS4 objects although Oracle requiresMIPS3.
       - Set LD_LIBRARY64_PATH to includethe $ORACLE_HOME/lib and the         $ORACLE_HOME/javavm/admin directories. 
       - Set LD_LIBRARYN32_PATH toinclude the $ORACLE_HOME/lib32 directory.

NOTE:LD_LIBRARY64_PATH & LD_LIBRARYN32_PATH must be undefined when installingsoftware with Oracle Universal Installer.

If on SOLARIS (Sparc or Intel) with:
------------------------------------
    Oracle 7.3.X, 8.0.X, or 8.1.X:
       - Ensure that /usr/ccs/bin isbefore /usr/ucb in $PATH  
         % which ld   ....should return '/usr/ccs/bin/ld'

If using 32bit(pre 9i) Oracle, 
       - SetLD_LIBRARY_PATH=$ORACLE_HOME/lib

If using 64bit(pre 9i) Oracle, 
       - SetLD_LIBRARY_PATH=$ORACLE_HOME/lib
       - SetLD_LIBRARY_PATH_64=$ORACLE_HOME/lib64

Oracle 9.X.X or higher:
       - LD_LIBRARY_PATH &LD_LIBRARY_PATH_64 do not need to be set to include a reference to$ORACLE_HOME/lib or $ORACLE_HOME/lib64 for a generic database softwareinstallation. (However they should not contain a reference to the ORACLE_HOMEof another Oracle version)

If on Digital/Tru64,IBM/Sequent PTX, Linux or any other UNIX Platform not mentioned above with:
------------------------------------------------------------------------------

Oracle 7.3.X, 8.0.X, 8.1.X, 9.X.X,10.X.X or 11.x.x:
       - Set LD_LIBRARY_PATH to include$ORACLE_HOME/lib

[Step 4] For all Oracle Versions and UNIX Platforms: 
=============================================================
Verify that you performed Step 2 correctly:

% env | pg  ....make sure that you see the correctabsolute path for 
   $ORACLE_HOME in the variabledefinitions.

[Step 5] For all Oracle Versions and UNIX Platforms: 
=============================================================
Verify umask is set correctly:

% umask

This must return 022.  If it does not,set umask to 022.

% umask 022
 % umask

[Step 6] Run the OS Commands to Relink Oracle: 
=============================================================

Important Notes:

--Relink 前的重要说明

(1)Before relinking Oracle, shut downboth the database and the listener.
(2)The following commands will outputa lot of text to your session window. To capture this output for upload tosupport, redirect the output to a file.
(3)If relinking a client installation,it's expected that some aspects of the following commands will fail if thecomponents were not originally installed.

For all UNIX platforms:

Oracle 7.3.x 
------------
 Forexecutables:  oracle, exp, imp, sqlldr,tkprof

% cd $ORACLE_HOME/rdbms/lib 
      % make -f ins_rdbms.mk install

Forexecutables:  svrmgrl, svrmgrm

% cd $ORACLE_HOME/svrmgr/lib 
      % make -f ins_svrmgr.mk linstallminstall      <- linstall is forsvrmgrl, minstall is for svrmgrm

Forexecutables:  sqlplus

% cd $ORACLE_HOME/sqlplus/lib 
      % make -f ins_sqlplus.mk install

Forexecutables:  dbsnmp, oemevent, oratclsh

% cd $ORACLE_HOME/network/lib 
      % make -f ins_agent.mk install

Forexecutables:  names, namesctl

% cd $ORACLE_HOME/network/lib 
      % make -f ins_names.mk install

Forexecutables:  tnslsnr, lsnrctl, tnsping,csmnl, trceval, trcroute

% cd $ORACLE_HOME/network/lib 
      % make -f ins_network.mk install

Oracle 8.0.x 
------------
 Forexecutables:  oracle, exp, imp, sqlldr,tkprof, mig, dbv, orapwd, rman, svrmgrl, ogms, ogmsctl

% cd $ORACLE_HOME/rdbms/lib 
      % make -f ins_rdbms.mk install

Forexecutables:  sqlplus

% cd $ORACLE_HOME/sqlplus/lib 
      % make -f ins_sqlplus.mk install

For executables:  dbsnmp, oemevent, oratclsh, libosm.so

% cd $ORACLE_HOME/network/lib 
      % make -f ins_oemagent.mk install

Forexecutables:  tnslsnr, lsnrctl, namesctl,names, osslogin, trcasst, trcroute

% cd $ORACLE_HOME/network/lib 
      % make -f ins_network.mk install

在Oracle 8.1 之前的版本,必须手工的relink 相关的工具,在8.1 之后,Oracle 提供了Relink 脚本,其可以帮助我们relink 大部分的工具。

Oracle 8.1.X, 9.X.X, 10.X.X or 11.X.X
-------------------------------------
  *** NEW IN 8i AND ABOVE ***

A 'relink' script is provided in the$ORACLE_HOME/bin directory.
     % cd $ORACLE_HOME/bin
     % relink      ...this will display all of the command'soptions.
       usage: relink

accepted valuesfor parameter: all, oracle, network, client,        client_sharedlib, interMedia, precomp,utilities, oemagent, ldap 
  
  Note: ldap option is available onlyfrom 9i. In 8i, you would have to manually relink ldap.

You can relink most of the executables associated with anOracle Server Installation  by runningthe following command:

--可以使用relink命令关联大部分可执行文件:

% relink all

This will notrelink every single executable Oracle provides(you can discern whichexecutables were relinked by checking their timestamp with 'ls -l' in the$ORACLE_HOME/bin directory).  However,'relink all' will recreate the shared libraries that most executables rely onand thereby resolve most issues that require a proper relink.

@bug:1337908  THE $ORACLE_HOME/BIN/RELINK SCRIPT DOES NOTRELINK EXP, IMP SQLLOADER 
@bug:2338590  RELINK ALL DOES NOT RELINK SQLPLUS

11.2.x special instructions (11.2.0.1,11.2.0.2 etc...)
--Oracle 11.2.X中的特殊指令

--------------------------------------

A) From 11GR2 the relink script will only accept "all" as argument(it is also explained in:  Oracle 11gR2Relink New Feature).

--从Oracle 11.2.x 开始,relink 只接收all 参数。

See in C) the traditional 'make' commands that can be run independently.

B) From 11GR2 (11.2.0.1,11.2.0.2 etc...) the relink script no longer scans for*.mk files and no longer runs the make commands (that is what it used to do in11.1 and lower versions).

All relinkoperations are done via the new runInstaller method described in:  
Note883299.1 : Oracle 11gR2 Relink New Features.

从Oracle11.2.x开始,relink 脚本不在扫描*.mk 和执行make命令。所有的relink操作都是通过runInstaller的方法来进行,关于11gR2中Relink的新特性,参考MOS文档。

A compatibilityscript was put in place for 11gR2 so if someone runs "relink all" itwill actually use the runInstaller method of relinking.

--为了脚本的兼容性,即使在11gR2中执行relink all,实际上也是使用runInstaller的方法来进行relink。

One exception in11.2.0.1: Sun Sparc Solaris which for scan of *.mk and make are still in use.

--唯一例外的情况是在Sun Sparc Solaris下的11.2.0.1.其还是使用扫描*.mk和make命令。

You may use thefollowing command which will only output errors to the screen, if any, but willcapture the entire relink to a log file:

$ORACLE_HOME/oui/bin/runInstaller -relink -waitForCompletion -maketargetsxml$ORACLE_HOME/inventory/make/makeorder.xml /ORACLE_HOME=$ORACLE_HOME 2>&1| tee $ORACLE_HOME/install/relink.log | grep -i error | grep -iv warning

C) Running the 'make' commands independently:

--在11gR2中单独运行make命令进行relink:

Forexecutables:  oracle, exp, imp, sqlldr,tkprof, mig, dbv, orapwd, rman, svrmgrl, ogms, ogmsctl

% cd $ORACLE_HOME/rdbms/lib 
      % make -f ins_rdbms.mk install

NOTE: After relinking the oracle executable, make sure that the permissions onthe executable are 6751 (-rwsr-s--x). If they are not, run the followingcommand as the Oracle software owner:

% cd $ORACLE_HOME/bin
      % chmod 6751 oracle

Forexecutables:  sqlplus

% cd $ORACLE_HOME/sqlplus/lib 
      % make -f ins_sqlplus.mk install

Forexecutables:  isqlplus   (Oracle9i and higher versions)

% cd $ORACLE_HOME/sqlplus/lib 
      % make -f ins_sqlplus.mkinstall_isqlplus

Forexecutables:  dbsnmp, oemevent, oratclsh

% cd $ORACLE_HOME/network/lib 
      % make -f ins_oemagent.mk install

NOTE: After relinking the dbsnmp executable, it is necessary to run thefollowing commands as root (so that the ownership/permissions on the executableare correct):

# cd $ORACLE_HOME/bin
      # chown root dbsnmp
      # chmod 6750 dbsnmp

@ References: note:233559.1and bug:2858326

Forexecutables:  names, namesctl

% cd $ORACLE_HOME/network/lib 
      % make -f ins_names.mk install

Forexecutables:  osslogin, trcasst,trcroute, onrsd, tnsping

% cd $ORACLE_HOME/network/lib 
      % make -f ins_net_client.mk install

Forexecutables:  tnslsnr, lsnrctl

% cd $ORACLE_HOME/network/lib 
      % make -f ins_net_server.mk install

For executablesrelated to ldap (for example Oracle Internet Directory):

% cd $ORACLE_HOME/ldap/lib
      % make -f ins_ldap.mk install

3.3 How to Tell if Relinking Was Successful:

If relinking wassuccessful, the make command will eventually return to the OS prompt without anerror. There will NOT be a 'Relinking Successful' type message.

If You Receive an Error Message During Relinking:
=============================================================

Confirm that themessage you received is an actual fatal error and not a warning. Relinkingerrors usually terminate the relinking process and contain verbiage similar tothe following:

'Fatal error','Ld: fatal', 'Exit Code 1'

While warningswill look similar to: 'ld: warning: option -YP appears more than once, firstsetting taken' and can most often be ignored.

If you receivean error that terminates the relinking process, your first step should be toextract the relevant information about the error from the make output:

This can be broken down into three basic steps:
 1. Identify the OS utility that isreturning the error.
    'ld', 'make', 'cc', 'mv', 'cp', 'ar'are common sources.
 2. Identify the type of error:
    'Permission Denied', 'UndefinedSymbol', 'File Not Found' are common types.
 3. Identify the files or symbolsinvolved.

Using theinformation from above as keywords, search Oracle's My Oracle Supportrepository ( https://support.oracle.com ) for previous occurrences of the sameerror. If no previous occurrences are found or a solution is not provided,generate an iTAR that includes the complete error text.

-------------------------------------------------------------------------------------------------------

https://www.cndba.cn/Dave/article/1313

Oracle 单实例 Relink Binary Options 说明的更多相关文章

  1. Oracle Study之--Oracle 单实例11.2.0.1.0升级到11.2.0.3.0

    Oracle Study之--Oracle 单实例11.2.0.1.0升级到11.2.0.3.0 系统环境: 操作系统:RedHat EL6(64位) Oracle:    Oracle 11gR2 ...

  2. Oracle单实例情况下的library cache pin的问题模拟与问题分析

    Oracle单实例情况下的library cache pin的问题模拟与问题分析 參考自: WAITEVENT: "library cache pin" Reference Not ...

  3. oracle 单实例DG(搭建篇一)

    一,介绍 lodding... 二,安装前环境配置 01,依赖包的安装: yum install binutils-* yum install compat-libstdc++-* yum insta ...

  4. Oracle 单实例数据库安装和real application clusters数据库安装的区别

    在想了解Oracle单实例数据可和RAC数据库前,请确保你已经知道了数据库和实例的关系,如果不了解,请参考Oracle 数据库实例和数据库. 单实例数据库模式 单实例模式下,一个数据库只能通过一个实例 ...

  5. Oracle 单实例 迁移到 RAC 实例 -- 使用RMAN 异机恢复

    Oracle 官网有关单实例迁移到RAC的一个步骤说明: How to Convert 10g Single-Instance database to 10g RAC using Manual Con ...

  6. Oracle单实例启动多个实例

    Oracle多实例运行,单个实例就是一个数据库!,一个数据库对应多个实例是RAC Linux建立oracle的实例步骤: 1.在linux服务器的图形界面下,打开一个终端,输入如下的命令: xhost ...

  7. oracle 单实例DG(配置篇二)

    一,DG搭建实例--主库配置 one : 归档配置 01,查看归档  1 select log_mode,force_logging from v$database; 02,开启归档 关闭数据库重新启 ...

  8. Oracle 单实例 2个service的问题

    [oracle@PD admin]$ ps -ef | grep smon oracle 1917 1 0 Aug21 ? 00:33:51 ora_smon_podinndb oracle 2265 ...

  9. oracle 单实例DG(切换篇三)

    一,开篇 此篇操作承接上文,必须完成DG实例搭建完成方可有执行以下内容的实例 二,切换物理备库 one. oracle01库命令 select switchover_status from v$dat ...

随机推荐

  1. php中判断mysql查询返回结果集是否为空

    我是php的新手,对于判断 $query = "SELECT * FROM driver; $result = mysql_query($query) or die(mysql_error( ...

  2. BVH with SAH (Bounding Volume Hierarchy with Surface Area Heuristic)

      - BVH with SAH (Bounding Volume Hierarchy  with Surface Area Heuristic) -      0. Overview 包围层次盒(B ...

  3. java web 机试

    经过近一个月的学习,我们的java web已经学习完了. 这是我们这次的机试题. 一:题目 请利用MVC设计模式,并使用JSP.Servlet.JSTL和JQuery等技术实现动态条件的分页显示查询. ...

  4. js实现四叉树算法

    最近在看canvas动画方面教程,里面提到了采用四叉树检测碰撞.之前也看到过四叉树这个名词,但是一直不是很懂.于是就又找了一些四叉树方面的资料看了看,做个笔记,就算日后忘了,也可以回来看看. Quad ...

  5. CAlayer二

    下面学习一下图层的anchorPoint,position属性在ViewDidLoad中self.View添加View1,在View1中添加图层calayer self.view1=[[UIView ...

  6. 【angular5项目积累总结】结合adal4实现http拦截器(token)

    import { Injectable } from '@angular/core'; import { HttpEvent, HttpInterceptor, HttpHandler, HttpRe ...

  7. 在WPF中实现平滑滚动

    WPF实现滚动条还是比较方便的,只要在控件外围加上ScrollViewer即可,但美中不足的是:滚动的时候没有动画效果.在滚动的时候添加过渡动画能给我们的软件增色不少,例如Office 2013的滚动 ...

  8. C#调用百度地图API经验分享(四)

    这一篇,记录一下我调用的地图API实现的功能.下面介绍的都是一些片段的节选,不能直接复制就运行.在实现之前肯定要加载地图,先放一个webbroser控件,然后如下: private void Form ...

  9. EF只更新变化的字段

    摘要 在使用EF的时候,由于表字段较多,所以在更新的时候,想要只更新变化的字段,有没有办法呢? 解决办法 代码片段 public async Task<int> UpdateAsync(T ...

  10. Java基础——网络编程(二)

    一.套接字 Socket 网络驱动程序提供给应用程序编程的接口和一种机制,可以比喻成一个港口码头 应用程序只要把货放在这,就算完成了货物的运送.它在应用程序中创建,通过一种绑定机制与驱动程序建立关系, ...