Ubuntu server intall Ubuntu Oracle 12c Release 1

来源:互联网 发布:忘记mac的开机密码 编辑:程序博客网 时间:2024/05/21 23:59

This post will document the steps needed to overcome the installation issues one can encounter when installing the latest release of the Oracle Database 12c. Some of the errors encountered look like the ones on 11c, but since there are quite a few more now, I decided to document these for others as a reference.

Disclaimer: When I set out to tackle the installation errors, my goal was to “make it work, one way or the other”. I’m not running this installation on a production environment, not in the least since Ubuntu 12.04 is not supported, but I needed to have a local database to fiddle with on my local laptop. The solution provided can make a Linux Admin cringe, and if not landing one in a grave, at least make one turn itself over in his/her grave.

I won’t delve into the specific system configuration packages and required settings, since these are documented in abundance either on the OTN, or on other sites. Basically these kind of issues are easy to resolve by  just installing the missing package and re-run the installer. The issues discussed below are the errors one will encounter when the linker starts doing it’s thing.

However, for ease of getting started, I’ll list a quick listing of needed packages and needed settings, from a “freshly” installed ubuntu 12.04 installation:

As root:

root# apt-get install elfutils libaio1 libaio-dev libstdc++6-4.4-dev numactl pdksh sysstat unixODBC-dev unixODBC build-essential libaio1 gawk ksh libmotif3 alien libtool

Create and prepare Oracle user:

root# addgroup oinstallroot# addgroup dbaroot# useradd -g oinstall -G dba -p password -d /home/oracle -s /bin/bash oracleroot# mkdir /home/oracleroot# chown -R oracle:dba /home/oracle

Create and prepare location to install the oracle binaries:

root# mkdir -p /oracleroot# chown -R oracle:dba /oracle

Edit and add to the sysctl.conf:

root# vi /etc/sysctl.conf# Oracle 12c entriesfs.aio-max-nr=1048576fs.file-max=6815744kernel.shmall=2097152kernel.shmmni=4096kernel.sem=250 32000 100 128net.ipv4.ip_local_port_range=9000 65500net.core.rmem_default=262144net.core.rmem_max=4194304net.core.wmem_default=262144net.core.wmem_max=1048586kernel.shmmax=1073741824

Save the file.

Note: kernel.shmmax = max possible value, e.g. size of physical memory in bytes. This machine has 8GB, but I want to keep the memory allocation low, so we are specifying 1GB. Adjust the parameter as needed.

Load new kernel parameters, by running following as root user,

root# sysctl -p

Edit and adjust the /etc/security/limits.conf file:

root# vi /etc/security/limits.conf#Oracle 12coracle soft nproc 2048oracle hard nproc 16384oracle soft nofile 1024oracle hard nofile 65536

Prerequisites:

  • Prepare the system settings.
  • Install all the packages needed for the Oracle software as usual.

Download and install the Oracle Database software, make sure you have the correct bit version (in my case: 64 bit).

Unpack the software in a location with ample room to hold the unpacked software. For sake of documentation, let’s assume I’ve unpacked this in the /tmp/Oracle12c directory.

Navigate to /location_of_unpacked_software/database and run the command:

oracle$/tmp/Oracle12c/database$ ./runInstaller
Starting Oracle Universal Installer...Checking Temp space: must be greater than 500 MB.   Actual 115797 MB    PassedChecking swap space: must be greater than 150 MB.   Actual 952 MB    PassedChecking monitor: must be configured to display at least 256 colors.    Actual 16777216    PassedPreparing to launch Oracle Universal Installer from /tmp/OraInstall2013-09-17_06-57-27PM. Please wait ...

Selection_003A pop-up appears while the installer loads the files.

Oracle Database 12c Release 1 Installer - Installing database - Step 1 of 10_004Choose whether you like to be spammed by OTN. I choose not to.
Press Next.

My Oracle Support Username-Email Address Not Specified_005I’m pretty sure about this, so press Yes.

Oracle Database 12c Release 1 Installer - Installing database - Step 2 of 10_007This is not a test run for patching, so for now I choose to skip software updates (seems to be the default, anyway). Press Next.

Oracle Database 12c Release 1 Installer_008This pop-up can appear, and is to be expected since we are not running a supported environment. I choose to ignore this, since I have a running installation of Oracle 11c on this system. One can take the prerequisites of this Oracle version as a guideline of which packages to install.

Oracle Database 12c Release 1 Installer - Installing database - Step 3 of 10_001Choose to install the database software only, since if this is succeeding, we can install a database later to test if the installation is successful. Press Next.

Oracle Database 12c Release 1 Installer - Installing database - Step 4 of 10_002A single installation will do for now. Press Next.

Oracle Database 12c Release 1 Installer - Installing database - Step 5 of 12_003I prefer English, so I press Next.

Oracle Database 12c Release 1 Installer - Installing database - Step 6 of 12_004Select the option most applicable here, I choose Enterprise so I get to test all the components to my hearts delight! Press Next.

Oracle Database 12c Release 1 Installer - Installing database - Step 7 of 12_003Enter the location where the database software (aka oracle binaries) need to be installed. I deviate from any form of standard and place it for ease of reference in /oracle and below. Be sure to grant the oracle user ownership en access permissions on this location.
Press Next.

Oracle Database 12c Release 1 Installer - Installing database - Step 8 of 12_004Enter the location of the Oracle Inventory directory. In this case it is in a new location, but a previous run has shown me you can perfectly use an existing 11g inventory location. Press Next.

Oracle Database 12c Release 1 Installer - Installing database - Step 9 of 13_005Select the preferred groups, I keep everything on the  “dba” group, since the oracle user is taking care of all the Oracle stuff. Press Next.

Oracle Database 12c Release 1 Installer - Installing database - Step 11 of 13_006Check the configuration parameters, edit where necessary. When done, press Install.

Oracle Database 12c Release 1 Installer - Installing database - Step 12 of 13_007The PREPARE phase should not give much issues..not at all actually.

Oracle Database 12c Release 1 Installer - Installing database - Step 12 of 13_008The COPY phase should also pass, since this is just extracting and well..copying..If this fails, check the bit version of the download, of the extracted files..or disk space…

Oracle Database 12c Release 1 Installer - Installing database - Step 12 of 13_009The linking phase…now here is where the fun starts! Expect to see a couple of these pop-ups, but no need to fret, we are going to take them on one at a time!

As the pop-up suggest, open the log file on the console. Note: in the console where the ./runinstaller.sh was started, you can find the location of the log file also.

In this case the log file is located at:

/oracle/oraInventory/logs/installActions2013-09-19_08-51-51AM.log

Open a separate window and put a ‘tail’ on this log file, since we need to keep on top of this now, and use this a lot.

$ tail -f  /oracle/oraInventory/logs/installActions2013-09-19_08-51-51AM.log

What we are looking for is this:

INFO: Start output from spawned process:INFO: ----------------------------------INFO:INFO: /oracle/base/dbhome_1/bin/genclntshINFO: /usr/bin/ld: cannot find /usr/lib64/libpthread_nonshared.a insideINFO: collect2: ld returned 1 exit statusINFO: genclntsh: Failed to link libclntshcore.so.12.1INFO: make: *** [client_sharedlib] Error 1INFO: End output from spawned process.INFO: ----------------------------------INFO: Exception thrown from action: makeException Name: MakefileExceptionException String: Error in invoking target 'client_sharedlib' of makefile '/oracle/base/dbhome_1/rdbms/lib/ins_rdbms.mk'. See '/oracle/oraInventory/logs/installActions2013-09-19_08-51-51AM.log' for details.Exception Severity: 1

This line looks interesting:

INFO: /usr/bin/ld: cannot find /usr/lib64/libpthread_nonshared.a inside

We seem to have missed a lib..let’s fix this:

root:~# locate libpthread_nonshared/usr/lib/i386-linux-gnu/libpthread_nonshared.a/usr/lib/x86_64-linux-gnu/libpthread_nonshared.a

Ah, the lib is on the system, but not on the location the installer expects it.

root:~# ln -s /usr/lib /usr/lib/lib64root:~# ln /usr/lib/x86_64-linux-gnu/libpthread_nonshared.a /usr/lib64/libpthread_nonshared.a

Note: The system used is pure 64 bit, but oracle seems not to be aware of this. Ergo: the symlink.

Now: hit the “Retry” button of the installer.

Oracle Database 12c Release 1 Installer - Installing database - Step 12 of 13_009Again: an error. As expected. Look in the tail of the log file:

INFO: /oracle/base/dbhome_1/bin/genclntshINFO: /usr/bin/ld: cannot find /usr/lib64/libc_nonshared.a insidecollect2:INFO: ld returned 1 exit statusINFO: genclntsh: Failed to link libclntshcore.so.12.1make: *** [client_sharedlib] Error 1INFO: End output from spawned process.INFO: ----------------------------------INFO: Exception thrown from action: makeException Name: MakefileExceptionException String: Error in invoking target 'client_sharedlib' of makefile '/oracle/base/dbhome_1/rdbms/lib/ins_rdbms.mk'. See '/oracle/oraInventory/logs/installActions2013-09-19_08-51-51AM.log' for details.Exception Severity: 1

Another lib we seem to miss. Let’s repeat our previous trick:

root:~# locate libc_nonshared.a/usr/lib/libc_nonshared.a/usr/lib/x86_64-linux-gnu/libc_nonshared.aroot:~# ln -s /usr/lib/x86_64-linux-gnu/libc_nonshared.a /usr/lib64root:~# ls -l /usr/lib64/libc_nonshared.alrwxrwxrwx 1 root root 42 Sep 19 10:53 /usr/lib64/libc_nonshared.a -> /usr/lib/x86_64-linux-gnu/libc_nonshared.a

Now: hit the “retry” button of the installer.

Oracle Database 12c Release 1 Installer - Installing database - Step 12 of 13_001

The installer should continue for a bit with the linking part..until…

Selection_004Let’s check the log file again:

INFO:  - Linking password utility (orapwd)INFO: rm -f /oracle/base/dbhome_1/rdbms/lib/orapwdINFO: /oracle/base/dbhome_1/bin/orald -o /oracle/base/dbhome_1/rdbms/lib/orapwd -m64 -z noexecstack -Wl,--disable-new-dtags -L/oracle/base/dbhome_1/rdbms/lib/ -L/oracle/base/dbhome_1/lib/ -L/oracle/base/dbhome_1/lib/stubs/   /oracle/base/dbhome_1/rdbms/lib/s0kuzr.o /oracle/base/dbhome_1/rdbms/lib/kuzrclsr.o  -lclntsh -lclntshcore  `cat /oracle/base/dbhome_1/lib/ldflags`    -lncrypt12 -lnsgr12 -lnzjs12 -ln12 -lnl12 -lnro12 `cat /oracle/base/dbhome_1/lib/ldflags`    -lncrypt12 -lnsgr12 -lnzjs12 -ln12 -lnl12 -lnnz12INFO:  -lzt12 -lztkg12 -lztkg12 -lclient12 -lnnetd12  -lvsn12 -lcommon12 -lgeneric12 -lmm -lsnls12 -lnls12  -lcore12 -lsnls12 -lnls12 -lcore12 -lsnls12 -lnls12 -lxml12 -lcore12 -lunls12 -lsnls12 -lnls12 -lcore12 -lnls12 `cat /oracle/base/dbhome_1/lib/ldflags`    -lncrypt12 -lnsgr12 -lnzjs12 -ln12 -lnl12 -lnro12 `cat /oracle/base/dbhome_1/lib/ldflags`    -lncrypt12 -lnsgr12 -lnzjs12 -ln12 -lnl12 -lclient12 -lnnetd12  -lvsn12 -lcommon12 -lgeneric12   -lsnls12 -lnls12  -lcore12 -lsnls12 -lnls12 -lcore12 -lsnls12 -lnINFO: ls12 -lxml12 -lcore12 -lunls12 -lsnls12 -lnls12 -lcore12 -lnls12 -lclient12 -lnnetd12  -lvsn12 -lcommon12 -lgeneric12 -lsnls12 -lnls12  -lcore12 -lsnls12 -lnls12 -lcore12 -lsnls12 -lnls12 -lxml12 -lcore12 -lunls12 -lsnls12 -lnls12 -lcore12 -lnls12   `cat /oracle/base/dbhome_1/lib/sysliblist` -Wl,-rpath,/oracle/base/dbhome_1/lib -lm    `cat /oracle/base/dbhome_1/lib/sysliblist` -ldl -lm   -L/oracle/base/dbhome_1/lib -lasmclntsh12 -lcell12 -lskgxp12 -lskgxn2 -lhasgen12 -locr12 -lclsra12 -ldbcfg12INFO: /usr/bin/ld: /oracle/base/dbhome_1/lib//libclntsh.so: undefined reference to symbol 'ztucxtb'/usr/bin/ld: note: 'ztucxtb' is defined in DSO /oracle/base/dbhome_1/lib//libnnz12.so so try adding it to the linker command line/oracle/base/dbhome_1/lib//libnnz12.so: could not read symbols: Invalid operationINFO: collect2: ld returned 1 exit statusINFO: make: *** [/oracle/base/dbhome_1/rdbms/lib/orapwd] Error 1INFO: End output from spawned process.INFO: ----------------------------------INFO: Exception thrown from action: makeException Name: MakefileExceptionException String: Error in invoking target 'all_no_orcl' of makefile '/oracle/base/dbhome_1/rdbms/lib/ins_rdbms.mk'. See '/oracle/oraInventory/logs/installActions2013-09-19_08-51-51AM.log' for details.Exception Severity: 1

Ah, we seem to have problems with building ORAPWD.

This line looks promising:

/oracle/base/dbhome_1/lib//libnnz12.so: could not read symbols: Invalid operation

Let’s investigate this lib:

oracle$ cd /oracle/base/dbhome_1/lib/oracle$/oracle/base/dbhome_1/lib$ ldd libnnz12.solinux-vdso.so.1 =>  (0x00007fff759d9000)        libclntshcore.so.12.1 => not foundlibc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f324050f000)/lib64/ld-linux-x86-64.so.2 (0x00007f3240ff5000)oracle@anniepb:/oracle/base/dbhome_1/lib$

Weird, this lib is an oracle lib..and the installer is looking for it in the wrong location. I’ll link this lib in the general lib location where it always can be found: /usr/lib.

root# ln -s /oracle/base/dbhome_1/lib/libclntshcore.so.12.1 /usr/lib/root# ls -l /usr/lib/libclntshcore.so.12.1lrwxrwxrwx 1 root root 47 Sep 19 11:08 /usr/lib/libclntshcore.so.12.1 -> /oracle/base/dbhome_1/lib/libclntshcore.so.12.1root#

Check if the linker can resolve the library.

oracle$ ldd /oracle/base/dbhome_1/lib/libnnz12.solinux-vdso.so.1 =>  (0x00007fffb9fff000)        libclntshcore.so.12.1 => /usr/lib/libclntshcore.so.12.1 (0x00007f6278756000)libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f6278397000)libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f6278192000)libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f6277e96000)libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f6277c79000)librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f6277a70000)/lib64/ld-linux-x86-64.so.2 (0x00007f62793cd000)

Ok, that is one. But there is more! Due to how the GCC is configured in Ubuntu, we need to do some extra alterations..

Open  the make file: /oracle/base/dbhome_1/rdbms/lib/ins_rdbms.mk

oracle$ vi /oracle/base/dbhome_1/rdbms/lib/ins_rdbms.mk

Search for the lines:

$(ORAPWD) : $(ALWAYS) $(ORAPWD_DEPS)$(SILENT)$(ECHO)$(SILENT)$(ECHO) " - Linking password utility (orapwd)"$(RMF) $@$(ORAPWD_LINKLINE)

Add the following:

$(ORAPWD) : $(ALWAYS) $(ORAPWD_DEPS)$(SILENT)$(ECHO)$(SILENT)$(ECHO) " - Linking password utility (orapwd)"$(RMF) $@$(ORAPWD_LINKLINE) -lnnz12

Don’t forget to save the file!

Now: hit the “Retry” button of the installer.

Selection_004*kabloe-ie..* again an error…the same? No! check the log:

INFO:  - Linking HS OTS agentINFO: rm -f /oracle/base/dbhome_1/rdbms/lib/hsotsINFO: /oracle/base/dbhome_1/bin/orald -o /oracle/base/dbhome_1/rdbms/lib/hsots -m64 -z noexecstack -Wl,--disable-new-dtags -L/oracle/base/dbhome_1/rdbms/lib/ -L/oracle/base/dbhome_1/lib/ -L/oracle/base/dbhome_1/lib/stubs/   /oracle/base/dbhome_1/rdbms/lib/hormt.o           /oracle/base/dbhome_1/rdbms/lib/homts.o                 /oracle/base/dbhome_1/rdbms/lib/hoat.o /oracle/base/dbhome_1/rdbms/lib/hsxaora.o /oracle/base/dbhome_1/rdbms/lib/xaondy.o -lagtsh -lpthread -lclntsh -lclntshcore   `cat /oracle/base/dbhome_1/lib/sysliblist` -INFO: Wl,-rpath,/oracle/base/dbhome_1/lib -lm    `cat /oracle/base/dbhome_1/lib/sysliblist` -ldl -lm   -L/oracle/base/dbhome_1/lib  -lnsgr12INFO: /usr/bin/ld: /oracle/base/dbhome_1/lib//libagtsh.so: undefined reference to symbol 'ssMemRealloc'/usr/bin/ld: note: 'ssMemRealloc' is defined in DSO /oracle/base/dbhome_1/lib//libclntshcore.so so try adding it to the linker command line/oracle/base/dbhome_1/lib//libclntshcore.so: could not read symbols: Invalid operationINFO: collect2: ld returned 1 exit statusINFO: make: *** [/oracle/base/dbhome_1/rdbms/lib/hsots] Error 1INFO: End output from spawned process.INFO: ----------------------------------INFO: Exception thrown from action: makeException Name: MakefileExceptionException String: Error in invoking target 'all_no_orcl' of makefile '/oracle/base/dbhome_1/rdbms/lib/ins_rdbms.mk'. See '/oracle/oraInventory/logs/installActions2013-09-19_08-51-51AM.log' for details.Exception Severity: 1

Let’s see:

INFO: /usr/bin/ld: /oracle/base/dbhome_1/lib//libagtsh.so: undefined reference to symbol 'ssMemRealloc

A different library..Let’s investigate and fix:

oracle$ ldd /oracle/base/dbhome_1/lib//libagtsh.solinux-vdso.so.1 =>  (0x00007fffd9151000)libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f50778cd000)        libclntsh.so.12.1 => not foundlibc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f507750d000)/lib64/ld-linux-x86-64.so.2 (0x00007f5077eaf000)

ah, an missing lib again..Also an Oracle lib..

root# ln -s /oracle/base/dbhome_1/lib/libclntsh.so.12.1 /usr/libroot# ls -l /usr/lib/libclntsh.so.12.1lrwxrwxrwx 1 root root 43 Sep 19 11:20 /usr/lib/libclntsh.so.12.1 -> /oracle/base/dbhome_1/lib/libclntsh.so.12.1root#

Check if this did the trick:

oracle$ ldd /oracle/base/dbhome_1/lib//libagtsh.solinux-vdso.so.1 =>  (0x00007fff12137000)libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007faa87fca000)        libclntsh.so.12.1 => /usr/lib/libclntsh.so.12.1 (0x00007faa852db000)libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007faa84f1b000)/lib64/ld-linux-x86-64.so.2 (0x00007faa885ac000)libnnz12.so => /oracle/base/dbhome_1/lib/libnnz12.so (0x00007faa84805000)libons.so => /oracle/base/dbhome_1/lib/libons.so (0x00007faa845c1000)libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007faa842c4000)libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007faa840a7000)libaio.so.1 => /lib/x86_64-linux-gnu/libaio.so.1 (0x00007faa83ea5000)libclntshcore.so.12.1 => /oracle/base/dbhome_1/lib/libclntshcore.so.12.1 (0x00007faa83954000)librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007faa8374c000)

Perfect!

Adjust the makefile again: /oracle/base/dbhome_1/rdbms/lib/ins_rdbms.mk

 oracle$ vi /oracle/base/dbhome_1/rdbms/lib/ins_rdbms.mk

Search for the lines:

$(HSOTS) : $(ALWAYS) $(HSOTS_DEPS)$(SILENT)$(ECHO)$(SILENT)$(ECHO) " - Linking HS OTS agent"$(RMF) $@$(HSOTS_LINKLINE)

Add the following:

$(HSOTS) : $(ALWAYS) $(HSOTS_DEPS)$(SILENT)$(ECHO)$(SILENT)$(ECHO) " - Linking HS OTS agent"$(RMF) $@$(HSOTS_LINKLINE) -lagtsh

Save the file.

For this error, the above fix doesn’t seem to be enough, so let’s put in a extra parameter somewhere to pacify the compiler:

Open  the environment file: /oracle/base/dbhome_1/rdbms/lib/ins_rdbms.mk

oracle$ vi /oracle/base/dbhome_1/rdbms/lib/env_rdbms.mk

Search for the lines:

HSOTS_LINKLINE=$(LINK) $(OPT) $(HSOTSMAI) $(HSALIB_SUBSET1) $(HS_OTS_DRIVER) $(HS_XASWITCH_ORA) $(RDBMSLIB)$(XAD_OFF) $(HSALIB_SUBSET2)Add the following:HSOTS_LINKLINE=$(LINK) $(OPT) -Wl,--no-as-needed $(HSOTSMAI) $(HSALIB_SUBSET1) $(HS_OTS_DRIVER) $(HS_XASWITCH_ORA) $(RDBMSLIB)$(XAD_OFF) $(HSALIB_SUBSET2)

Save the file.

Now: hit the “Retry” button of the installer.

Selection_004Again!? Yep. Again. Same error? No! Check the log file:

INFO:  - Linking HS Distributed External Procedure agentINFO: rm -f /oracle/base/dbhome_1/rdbms/lib/hsdepxaINFO: /oracle/base/dbhome_1/bin/orald -o /oracle/base/dbhome_1/rdbms/lib/hsdepxa -m64 -z noexecstack -Wl,--disable-new-dtags -L/oracle/base/dbhome_1/rdbms/lib/ -L/oracle/base/dbhome_1/lib/ -L/oracle/base/dbhome_1/lib/stubs/   /oracle/base/dbhome_1/rdbms/lib/hormd.o                 /oracle/base/dbhome_1/rdbms/lib/homts.o                 /oracle/base/dbhome_1/rdbms/lib/hoax.o /oracle/base/dbhome_1/rdbms/lib/xaondy.o -lagtsh -lpthread -lclntsh -lclntshcore   `cat /oracle/base/dbhome_1/lib/sysliblist` -Wl,-rpath,/oracle/base/dbhome_1/lib -lmINFO:    `cat /oracle/base/dbhome_1/lib/sysliblist` -ldl -lm   -L/oracle/base/dbhome_1/lib  -lnsgr12INFO: /usr/bin/ld: /oracle/base/dbhome_1/lib//libagtsh.so: undefined reference to symbol 'ssMemRealloc'/usr/bin/ld: note: 'ssMemRealloc' is defined in DSO /oracle/base/dbhome_1/lib//libclntshcore.so so try adding it to the linker command line/oracle/base/dbhome_1/lib//libclntshcore.so: could not read symbols: Invalid operationINFO: collect2: ld returned 1 exit statusINFO: make: *** [/oracle/base/dbhome_1/rdbms/lib/hsdepxa] Error 1INFO: End output from spawned process.INFO: ----------------------------------INFO: Exception thrown from action: makeException Name: MakefileExceptionException String: Error in invoking target 'all_no_orcl' of makefile '/oracle/base/dbhome_1/rdbms/lib/ins_rdbms.mk'. See '/oracle/oraInventory/logs/installActions2013-09-19_08-51-51AM.log' for details.Exception Severity: 1

We already fixed the dynamic library dependency, so we just adjust the following:

Open  the environment file: /oracle/base/dbhome_1/rdbms/lib/ins_rdbms.mk

oracle$ vi /oracle/base/dbhome_1/rdbms/lib/env_rdbms.mk

Search for the lines:

HSDEPXA_LINKLINE=$(LINK) $(OPT) $(HSDEPMAI) $(HSALIB_SUBSET1) $(HS_DEP_DRIVER) $(RDBMSLIB)$(XAD_OFF) $(HSALIB_SUBSET2)

Change this to:

HSDEPXA_LINKLINE=$(LINK) $(OPT) -Wl,--no-as-needed $(HSDEPMAI) $(HSALIB_SUBSET1) $(HS_DEP_DRIVER) $(RDBMSLIB)$(XAD_OFF) $(HSALIB_SUBSET2)

Save the file.

Now: hit the “Retry” button of the installer.

Selection_004And again…an error..Let’s see what the problem is.. check the log file:

INFO: ly+0x3296): undefined reference to `oss_cell_discovery_close'/oracle/base/dbhome_1/lib//libocrb12.so: undefined reference to `kgfoOpenFile'/oracle/base/dbhome_1/lib//libocrb12.so: undefined reference to `kgfoCreateCtxExt'/oracle/base/dbhome_1/lib//libocrb12.so: undefined reference to `kgfoIO'/oracle/base/dbhome_1/lib//libocrb12.so: undefined reference to `kgfoFnameMax'/oracle/base/dbhome_1/lib//libocrb12.so: undefined reference to `kgfoCommit2P'/oracle/base/dbhome_1/lib//libocrb12.so: undefined refereINFO: nce to `kgfoCheckHdl'/oracle/base/dbhome_1/lib//libocrb12.so: undefined reference to `kgfoRenameFile'/oracle/base/dbhome_1/lib//libocrb12.so: undefined reference to `kgfoDeleteFile'/oracle/base/dbhome_1/lib//libocrb12.so: undefined reference to `kgfoCloseFile'/oracle/base/dbhome_1/lib//libocrb12.so: undefined reference to `kgfoErrorMessage'/oracle/base/dbhome_1/lib//libocrb12.so: undefined reference to `kgfoGetSize'/oracle/base/dbhome_1/lib//libocrb12.so: undefined reference to `kgfoCreateFile'/oraclINFO: e/base/dbhome_1/lib//libocrb12.so: undefined reference to `kgfoOpenDirty'/oracle/base/dbhome_1/lib//libocrb12.so: undefined reference to `kgfoCheckMount'/oracle/base/dbhome_1/lib//libocrb12.so: undefined reference to `kgfoDestroyCtx'/oracle/base/dbhome_1/lib//libocrb12.so: undefined reference to `kgfoShrinkFile'/oracle/base/dbhome_1/lib//libocrb12.so: undefined reference to `kgfoControl'/oracle/base/dbhome_1/lib//libocrb12.so: undefined reference to `kgfoCreate2P'INFO: collect2: ld returned 1 exit statusINFO: make: *** [/oracle/base/dbhome_1/rdbms/lib/kfod] Error 1INFO: End output from spawned process.INFO: ----------------------------------INFO: Exception thrown from action: makeException Name: MakefileExceptionException String: Error in invoking target 'all_no_orcl' of makefile '/oracle/base/dbhome_1/rdbms/lib/ins_rdbms.mk'. See '/oracle/oraInventory/logs/installActions2013-09-19_08-51-51AM.log' for details.Exception Severity: 1

Ow. Ok..So..This is a completely different one..

This line though..

INFO: make: *** [/oracle/base/dbhome_1/rdbms/lib/kfod] Error 1

This is a not a dynamic executable, so we just open the env file again..

oracle$ vi /oracle/base/dbhome_1/rdbms/lib/env_rdbms.mk

Search for the lines:

KFOD_LINKLINE=$(LINK) $(S0MAIN) $(SSKFODED) $(SKFODPT) $(KFODOBJ) $(LIBGENERIC) $(LLIBDBTOOLS) $(LIBGENERIC) $(LLIBSAGE) $(LLIBSKGXP) $(LIBCORE) $(CSSCLNTLIBS_SERVER) $(LLIBASMCLNT) $(LINKTTLIBS)

Change this to:

KFOD_LINKLINE=$(LINK) $(S0MAIN) -Wl,--no-as-needed $(SSKFODED) $(SKFODPT) $(KFODOBJ) $(LIBGENERIC) $(LLIBDBTOOLS) $(LIBGENERIC) $(LLIBSAGE) $(LLIBSKGXP) $(LIBCORE) $(CSSCLNTLIBS_SERVER) $(LLIBASMCLNT) $(LINKTTLIBS)

Save the file.

Now: hit the “Retry” button of the installer.

Selection_004*boink* Again! let’s check the log:

INFO: ellScanInit':kfkl.c:(text.unlikely+0x3081): undefined reference to `oss_initialize'kfkl.c:(text.unlikely+0x30e9): undefined reference to `oss_cell_discovery_open'kfkl.cINFO: :(text.unlikely+0x3172): undefined reference to `oss_cell_discovery_fetch'/oracle/base/dbhome_1/lib//libasmclnt12.a(kfkl.o): In function `kfklCellScanNext':kfkl.c:(text.unlikely+0x3231): undefined reference to `oss_cell_discovery_fetch'/oracle/base/dbhome_1/lib//libasmclnt12.a(kfkl.o): In function `kfklCellScanTerm':kfkl.c:(text.unlikely+0x3296): undefined reference to `oss_cell_discovery_close'collect2: ld returned 1 exit statusINFO: make: *** [/oracle/base/dbhome_1/rdbms/lib/amdu] Error 1INFO: End output from spawned process.INFO: ----------------------------------INFO: Exception thrown from action: makeException Name: MakefileExceptionException String: Error in invoking target 'all_no_orcl' of makefile '/oracle/base/dbhome_1/rdbms/lib/ins_rdbms.mk'. See '/oracle/oraInventory/logs/installActions2013-09-19_08-51-51AM.log' for details.Exception Severity: 1

Ah, the AMDU is the issue..again: we adjust the gcc parameter..

oracle$ vi /oracle/base/dbhome_1/rdbms/lib/env_rdbms.mk

Search for the lines:

AMDU_LINKLINE=$(LINK) $(S0MAIN) -Wl,--no-as-needed $(SSKFMUED) $(SKFMUPT) $(LLIBDBTOOLS) $(LLIBCORE) $(LLIBGENERIC) $(LLIBUNLSRTL) $(LLIBNLSRTL) $(LLIBCORE) $(LLIBSAGE) $(LLIBSKGXP) $(LLIBNLSRTL) $(CSSCLNTLIBS_SERVER) $(LLIBASMCLNT) $(LINKTTLIBS)

Change these to:

AMDU_LINKLINE=$(LINK) $(S0MAIN) -Wl,--no-as-needed $(SSKFMUED) $(SKFMUPT) $(LLIBDBTOOLS) $(LLIBCORE) $(LLIBGENERIC) $(LLIBUNLSRTL) $(LLIBNLSRTL) $(LLIBCORE) $(LLIBSAGE) $(LLIBSKGXP) $(LLIBNLSRTL) $(CSSCLNTLIBS_SERVER) $(LLIBASMCLNT) $(LINKTTLIBS)

Save the file.

Now: hit the “Retry” button of the installer.

Selection_004Check, another one! Check the log..

INFO: make: *** [/oracle/base/dbhome_1/rdbms/lib/kfed] Error 1INFO: End output from spawned process.INFO: ----------------------------------INFO: Exception thrown from action: makeException Name: MakefileExceptionException String: Error in invoking target 'all_no_orcl' of makefile '/oracle/base/dbhome_1/rdbms/lib/ins_rdbms.mk'. See '/oracle/oraInventory/logs/installActions2013-09-19_08-51-51AM.log' for details.Exception Severity: 1

ah, KFED..Also not dynamic.

oracle$ vi /oracle/base/dbhome_1/rdbms/lib/env_rdbms.mk

Search for the lines:

KFED_LINKLINE=$(LINK) $(S0MAIN) $(SSKFEDED) $(SKFEDPT)  $(LLIBDBTOOLS) $(LLIBSAGE) $(LLIBSKGXP) $(CSSCLNTLIBS_SERVER) $(LLIBASMCLNT) $(LINKTTLIBS)

Add the line below:

KFED_LINKLINE=$(LINK) $(S0MAIN) -Wl,--no-as-needed $(SSKFEDED) $(SKFEDPT)  $(LLIBDBTOOLS) $(LLIBSAGE) $(LLIBSKGXP) $(CSSCLNTLIBS_SERVER) $(LLIBASMCLNT) $(LINKTTLIBS)

Save the file.

Now: hit the “Retry” button of the installer.

Selection_004Yep…It’s for real..Another one..Check the log:

INFO: rm -f /oracle/base/dbhome_1/rdbms/lib/plshprofINFO: /oracle/base/dbhome_1/bin/orald -o /oracle/base/dbhome_1/rdbms/lib/plshprof -m64 -z noexecstack -Wl,--disable-new-dtags -L/oracle/base/dbhome_1/rdbms/lib/ -L/oracle/base/dbhome_1/lib/ -L/oracle/base/dbhome_1/lib/stubs/   /oracle/base/dbhome_1/rdbms/lib/s0khpf.o  -lclient12 -lpls12  -lrt -lplp12 -lslax12 -lpls12  -lrt -lplp12 -lclntsh -lclntshcore  `cat /oracle/base/dbhome_1/lib/ldflags`    -lncrypt12 -lnsgr12 -lnzjs12 -ln12 -lnl12 -lnro12 `cat /oracle/base/dbhome_1/lib/ldflags`    -lncrypt12 -lnsgr12 -lnzjsINFO: 12 -ln12 -lnl12 -lnnz12 -lzt12 -lztkg12 -lztkg12 -lclient12 -lnnetd12  -lvsn12 -lcommon12 -lgeneric12 -lmm -lsnls12 -lnls12  -lcore12 -lsnls12 -lnls12 -lcore12 -lsnls12 -lnls12 -lxml12 -lcore12 -lunls12 -lsnls12 -lnls12 -lcore12 -lnls12 `cat /oracle/base/dbhome_1/lib/ldflags`    -lncrypt12 -lnsgr12 -lnzjs12 -ln12 -lnl12 -lnro12 `cat /oracle/base/dbhome_1/lib/ldflags`    -lncrypt12 -lnsgr12 -lnzjs12 -ln12 -lnl12 -lclient12 -lnnetd12  -lvsn12 -lcommon12 -lgeneric12   -lsnls12 -lnls12  -lcore12 -lsnls12 -lnls1INFO: 2 -lcore12 -lsnls12 -lnls12 -lxml12 -lcore12 -lunls12 -lsnls12 -lnls12 -lcore12 -lnls12 -lclient12 -lnnetd12  -lvsn12 -lcommon12 -lgeneric12 -lsnls12 -lnls12  -lcore12 -lsnls12 -lnls12 -lcore12 -lsnls12 -lnls12 -lxml12 -lcore12 -lunls12 -lsnls12 -lnls12 -lcore12 -lnls12   `cat /oracle/base/dbhome_1/lib/sysliblist` -Wl,-rpath,/oracle/base/dbhome_1/lib -lm    `cat /oracle/base/dbhome_1/lib/sysliblist` -ldl -lm   -L/oracle/base/dbhome_1/libINFO: /usr/bin/ld: /oracle/base/dbhome_1/lib//libclient12.a(kpue.o): undefined reference to symbol 'ons_subscriber_close'/usr/bin/ld: note: 'ons_subscriber_close' is defined in DSO /oracle/base/dbhome_1/lib/libons.so so try adding it to the linker command line/oracle/base/dbhome_1/lib/libons.so: could not read symbols: Invalid operationINFO: collect2: ld returned 1 exit statusINFO: make: *** [/oracle/base/dbhome_1/rdbms/lib/plshprof] Error 1INFO: End output from spawned process.INFO: ----------------------------------INFO: Exception thrown from action: makeException Name: MakefileExceptionException String: Error in invoking target 'utilities' of makefile '/oracle/base/dbhome_1/rdbms/lib/ins_rdbms.mk'. See '/oracle/oraInventory/logs/installActions2013-09-19_08-51-51AM.log' for details.Exception Severity: 1

The fix is known by now, open the make file:

oracle$ vi /oracle/base/dbhome_1/rdbms/lib/ins_rdbms.mk

Search for the lines:

$(PLSHPROF) : $(ALWAYS) $(PLSHPROF_DEPS)$(SILENT)$(ECHO)$(SILENT)$(ECHO) " - Linking hierarchical profiler utility (plshprof)"$(RMF) $@$(PLSHPROF_LINKLINE)

Explicitly add the libons.so file, to satisfy the compiler again:

$(PLSHPROF) : $(ALWAYS) $(PLSHPROF_DEPS)$(SILENT)$(ECHO)$(SILENT)$(ECHO) " - Linking hierarchical profiler utility (plshprof)"$(RMF) $@$(PLSHPROF_LINKLINE) -lons

Save the file.

Now: hit the “Retry” button of the installer.

Selection_004Yes, indeed..The next one is popping up..Again: hit the log file..

INFO:  - Linking recovery manager (rman)INFO: rm -f /oracle/base/dbhome_1/rdbms/lib/rmanINFO: /oracle/base/dbhome_1/bin/orald -o /oracle/base/dbhome_1/rdbms/lib/rman -m64 -z noexecstack -Wl,--disable-new-dtags -L/oracle/base/dbhome_1/rdbms/lib/ -L/oracle/base/dbhome_1/lib/ -L/oracle/base/dbhome_1/lib/stubs/   /oracle/base/dbhome_1/lib/s0main.o /oracle/base/dbhome_1/rdbms/lib/sskrmed.o /oracle/base/dbhome_1/rdbms/lib/skrmpt.o -ldbtools12 -lclient12 -lsql12 -lpls12  -lrt -lplp12 -lsnls12 -lunls12 -lnls12 -lslax12 -lpls12  -lrt -lplp12 /oracle/base/dbhome_1/lib/libplc12.a -lclntsh -lclntshcore  `cat /oINFO: racle/base/dbhome_1/lib/ldflags`    -lncrypt12 -lnsgr12 -lnzjs12 -ln12 -lnl12 -lnro12 `cat /oracle/base/dbhome_1/lib/ldflags`    -lncrypt12 -lnsgr12 -lnzjs12 -ln12 -lnl12 -lnnz12 -lzt12 -lztkg12 -lztkg12 -lclient12 -lnnetd12  -lvsn12 -lcommon12 -lgeneric12 -lmm -lsnls12 -lnls12  -lcore12 -lsnls12 -lnls12 -lcore12 -lsnls12 -lnls12 -lxml12 -lcore12 -lunls12 -lsnls12 -lnls12 -lcore12 -lnls12 `cat /oracle/base/dbhome_1/lib/ldflags`    -lncrypt12 -lnsgr12 -lnzjs12 -ln12 -lnl12 -lnro12 `cat /oracle/base/dbhome_1/INFO: lib/ldflags`    -lncrypt12 -lnsgr12 -lnzjs12 -ln12 -lnl12 -lclient12 -lnnetd12  -lvsn12 -lcommon12 -lgeneric12   -lsnls12 -lnls12  -lcore12 -lsnls12 -lnls12 -lcore12 -lsnls12 -lnls12 -lxml12 -lcore12 -lunls12 -lsnls12 -lnls12 -lcore12 -lnls12 -lclient12 -lnnetd12  -lvsn12 -lcommon12 -lgeneric12 -lsnls12 -lnls12  -lcore12 -lsnls12 -lnls12 -lcore12 -lsnls12 -lnls12 -lxml12 -lcore12 -lunls12 -lsnls12 -lnls12 -lcore12 -lnls12   `cat /oracle/base/dbhome_1/lib/sysliblist` -Wl,-rpath,/oracle/base/dbhome_1/lib -lmINFO:    `cat /oracle/base/dbhome_1/lib/sysliblist` -ldl -lm   -L/oracle/base/dbhome_1/libINFO: /usr/bin/ld: /oracle/base/dbhome_1/lib//libclient12.a(kpue.o): undefined reference to symbol 'ons_subscriber_close'/usr/bin/ld: note: 'ons_subscriber_close' is defined in DSO /oracle/base/dbhome_1/lib/libons.so so try adding it to the linker command line/oracle/base/dbhome_1/lib/libons.so: could not read symbols: Invalid operationINFO: collect2: ld returned 1 exit statusINFO: make: *** [/oracle/base/dbhome_1/rdbms/lib/rman] Error 1INFO: End output from spawned process.INFO: ----------------------------------INFO: Exception thrown from action: makeException Name: MakefileExceptionException String: Error in invoking target 'utilities' of makefile '/oracle/base/dbhome_1/rdbms/lib/ins_rdbms.mk'. See '/oracle/oraInventory/logs/installActions2013-09-19_08-51-51AM.log' for details.Exception Severity: 1

Ah, not an un-important one..Let’s fix this quickly:

oracle$ vi /oracle/base/dbhome_1/rdbms/lib/ins_rdbms.mk

Search for the lines:

$(RMAN) : $(ALWAYS) $(RMAN_DEPS)$(SILENT)$(ECHO)$(SILENT)$(ECHO) " - Linking recovery manager (rman)"$(RMF) $@$(RMAN_LINKLINE)

Change to:

$(RMAN) : $(ALWAYS) $(RMAN_DEPS)$(SILENT)$(ECHO)$(SILENT)$(ECHO) " - Linking recovery manager (rman)"$(RMF) $@$(RMAN_LINKLINE) -lons

Save the file.

Now: hit the “Retry” button of the installer.

Selection_004Yes, again…But the end is nigh..Check the log files again..

INFO:  - Linking dg4pwd utilityINFO: rm -f /oracle/base/dbhome_1/rdbms/lib/dg4pwdINFO: /oracle/base/dbhome_1/bin/orald -o /oracle/base/dbhome_1/rdbms/lib/dg4pwd -m64 -z noexecstack -Wl,--disable-new-dtags -L/oracle/base/dbhome_1/rdbms/lib/ -L/oracle/base/dbhome_1/lib/ -L/oracle/base/dbhome_1/lib/stubs/   /oracle/base/dbhome_1/rdbms/lib/dg4pwd.o /oracle/base/dbhome_1/rdbms/lib/houzi.o        -lpthread -lclntsh -lclntshcore   `cat /oracle/base/dbhome_1/lib/sysliblist` -Wl,-rpath,/oracle/base/dbhome_1/lib -lm    `cat /oracle/base/dbhome_1/lib/sysliblist` -ldl -lm   -L/oracle/base/dbhome_1/libINFO: /usr/bin/ld: /oracle/base/dbhome_1/rdbms/lib/houzi.o: undefined reference to symbol 'ztcsh'/usr/bin/ld: note: 'ztcsh' is defined in DSO /oracle/base/dbhome_1/lib/libnnz12.so so try adding it to the linker command line/oracle/base/dbhome_1/lib/libnnz12.so: could not read symbols: Invalid operationINFO: collect2: ld returned 1 exit statusINFO: make: *** [/oracle/base/dbhome_1/rdbms/lib/dg4pwd] Error 1INFO: End output from spawned process.INFO: ----------------------------------INFO: Exception thrown from action: makeException Name: MakefileExceptionException String: Error in invoking target 'utilities' of makefile '/oracle/base/dbhome_1/rdbms/lib/ins_rdbms.mk'. See '/oracle/oraInventory/logs/installActions2013-09-19_01-00-29PM.log' for details.Exception Severity: 1

Ah, GCC is in a twitch again:

/oracle/base/dbhome_1/lib/libnnz12.so: could not read symbols: Invalid operation

Edit the make file again:

oracle$ vi /oracle/base/dbhome_1/rdbms/lib/ins_rdbms.mk

Search for the lines:

$(TG4PWD) : $(ALWAYS) $(TG4PWD_DEPS)$(SILENT)$(ECHO)$(SILENT)$(ECHO) " - Linking $(TG4DG4)pwd utility"$(RMF) $@$(TG4PWD_LINKLINE)

And add the following:

$(TG4PWD) : $(ALWAYS) $(TG4PWD_DEPS)$(SILENT)$(ECHO)$(SILENT)$(ECHO) " - Linking $(TG4DG4)pwd utility"$(RMF) $@$(TG4PWD_LINKLINE) -lnnz12

Save the file.

Now: hit the “Retry” button of the installer.

Selection_004And again: Check the log file:

INFO: Linking external procedure agent (/oracle/base/dbhome_1/rdbms/lib/extproc)INFO: rm -f /oracle/base/dbhome_1/rdbms/lib/extprocINFO: /oracle/base/dbhome_1/bin/orald -o /oracle/base/dbhome_1/rdbms/lib/extproc -m64 -z noexecstack -Wl,--disable-new-dtags -L/oracle/base/dbhome_1/rdbms/lib/ -L/oracle/base/dbhome_1/lib/ -L/oracle/base/dbhome_1/lib/stubs/   /oracle/base/dbhome_1/rdbms/lib/hormc.o   /oracle/base/dbhome_1/rdbms/lib/homts.o               -lagtsh -lpthread -lclntsh -lclntshcore   `cat /oracle/base/dbhome_1/lib/sysliblist` -Wl,-rpath,/oracle/base/dbhome_1/lib -lm    `cat /oracle/base/dbhome_1/lib/sysliblist` -ldl -lm   -L/oracle/base/dbhome_1/INFO: lib  -lnsgr12INFO: /usr/bin/ld: /oracle/base/dbhome_1/lib//libagtsh.so: undefined reference to symbol 'nsdisc'/usr/bin/ld: note: 'nsdisc' isINFO:  defined in DSO /oracle/base/dbhome_1/lib//libclntsh.so so try adding it to the linker command line/oracle/base/dbhome_1/lib//libclntsh.so: could not read symbols: Invalid operationcollect2: ld returned 1 exit statusINFO: make: *** [/oracle/base/dbhome_1/rdbms/lib/extproc] Error 1INFO: End output from spawned process.INFO: ----------------------------------INFO: Exception thrown from action: makeException Name: MakefileExceptionException String: Error in invoking target 'utilities' of makefile '/oracle/base/dbhome_1/rdbms/lib/ins_rdbms.mk'. See '/oracle/oraInventory/logs/installActions2013-09-19_01-00-29PM.log' for details.Exception Severity: 1

And edit the make file to get the compilers satisfaction:

oracle$ vi /oracle/base/dbhome_1/rdbms/lib/ins_rdbms.mkSearch for the lines:
$(EXTPROC): $(ALWAYS) $(EXTPROC_DEPS)$(SILENT)$(ECHO)$(SILENT)$(ECHO) "Linking external procedure agent ($@)"$(RMF) $@$(EXTPROC_LINKLINE)

And change to:

$(EXTPROC): $(ALWAYS) $(EXTPROC_DEPS)$(SILENT)$(ECHO)$(SILENT)$(ECHO) "Linking external procedure agent ($@)"$(RMF) $@$(EXTPROC_LINKLINE) -lagtsh

Save the file.

Now edit the env file:

oracle$ vi /oracle/base/dbhome_1/rdbms/lib/env_rdbms.mk

Search for the lines:

EXTPROC_LINKLINE=$(LINK) $(OPT) $(EXTPMAI) $(PROD_EXTPROC_OPT) $(HSALIB_SUBSET1) $(HSALIB_SUBSET2)

And add:

EXTPROC_LINKLINE=$(LINK) $(OPT) -Wl,--no-as-needed $(EXTPMAI) $(PROD_EXTPROC_OPT) $(HSALIB_SUBSET1) $(HSALIB_SUBSET2)

Save the file.

Now: hit the “Retry” button of the installer.

Selection_004Almost there! Check the log again:

INFO:  - Linking tnslsnrINFO: rm -f tnslsnrINFO: /oracle/base/dbhome_1/bin/orald -o tnslsnr -m64 -z noexecstack -Wl,--disable-new-dtags -L/oracle/base/dbhome_1/network/lib/ -L/oracle/base/dbhome_1/lib/ -L/oracle/base/dbhome_1/lib/stubs/  /oracle/base/dbhome_1/network/lib/s0nsgl.o /oracle/base/dbhome_1/network/lib/snsglp.o -lclntsh -lclntshcore  `cat /oracle/base/dbhome_1/lib/ldflags`    -lncrypt12 -lnsgr12 -lnzjs12 -ln12 -lnl12 -lnro12 `cat /oracle/base/dbhome_1/lib/ldflags`    -lncrypt12 -lnsgr12 -lnzjs12 -ln12 -lnl12 -lnnz12 -lzt12 -lztkg12 -lztkg12 -lcINFO: lient12 -lnnetd12  -lvsn12 -lcommon12 -lgeneric12 -lmm -lsnls12 -lnls12  -lcore12 -lsnls12 -lnls12 -lcore12 -lsnls12 -lnls12 -lxml12 -lcore12 -lunls12 -lsnls12 -lnls12 -lcore12 -lnls12 `cat /oracle/base/dbhome_1/lib/ldflags`    -lncrypt12 -lnsgr12 -lnzjs12 -ln12 -lnl12 -lnro12 `cat /oracle/base/dbhome_1/lib/ldflags`    -lncrypt12 -lnsgr12 -lnzjs12 -ln12 -lnl12 -lclient12 -lnnetd12  -lvsn12 -lcommon12 -lgeneric12   -lsnls12 -lnls12  -lcore12 -lsnls12 -lnls12 -lcore12 -lsnls12 -lnls12 -lxml12 -lcore12 -lunls1INFO: 2 -lsnls12 -lnls12 -lcore12 -lnls12 -lclient12 -lnnetd12  -lvsn12 -lcommon12 -lgeneric12 -lsnls12 -lnls12  -lcore12 -lsnls12 -lnls12 -lcore12 -lsnls12 -lnls12 -lxml12 -lcore12 -lunls12 -lsnls12 -lnls12 -lcore12 -lnls12   `cat /oracle/base/dbhome_1/lib/sysliblist` -Wl,-rpath,/oracle/base/dbhome_1/lib -lm    `cat /oracle/base/dbhome_1/lib/sysliblist` -ldl -lm   -L/oracle/base/dbhome_1/lib -lons -lnl12  -ln12 -lnlsnr12 -lnlsnrc12 -lnsgr12 -lncm12 -lnro12 -ln12   -lnl12 -lnlsnr12 -lnlsnrc12 -lncm12 -ln12     -lINFO: mINFO: /usr/bin/ld: /oracle/base/dbhome_1/lib//libclntsh.so: undefined reference to symbol 'ztcr2rnd'/usr/bin/ld: note: 'ztcr2rnd' is defined in DSO /oracle/base/dbhome_1/lib//libnnz12.so so try adding it to the linker command line/oracle/base/dbhome_1/lib//libnnz12.so: could not read symbols: Invalid operationINFO: collect2: ld returned 1 exit statusINFO: make: *** [tnslsnr] Error 1INFO: End output from spawned process.INFO: ----------------------------------INFO: Exception thrown from action: makeException Name: MakefileExceptionException String: Error in invoking target 'install' of makefile '/oracle/base/dbhome_1/network/lib/ins_net_server.mk'. See '/oracle/oraInventory/logs/installActions2013-09-19_01-00-29PM.log' for details.Exception Severity: 1

Edit the make file (THIS IS NOT THE SAME AS BEFORE!):

/oracle/base/dbhome_1/network/lib/ins_net_server.mk

look for:

tnslsnr: $(S0NSGL) $(SNSGLP) $(NSGLPNP)$(SILENT)$(ECHO) " - Linking $(TNSLSNR)"$(RMF) $@$(TNSLSNR_LINKLINE)

And add TWO libs:

tnslsnr: $(S0NSGL) $(SNSGLP) $(NSGLPNP)$(SILENT)$(ECHO) " - Linking $(TNSLSNR)"$(RMF) $@$(TNSLSNR_LINKLINE) -lnnz12 -lons

Save the file.

Now: hit the “Retry” button of the installer.

Selection_004Yes, again..This is still expected..Well..You know where to look now, don’t you? ;-)

INFO: /oracle/base/dbhome_1/lib//libocrb12.so: undefined reference to `kgfoCloseFile'/oracle/base/dbhome_1/lib//libocrb12.so: undefined reference to `kgfoShrinkFile'/oracle/base/dbhome_1/lib//libocrb12.so: undefined reference to `kgfoCommit2P'/oracle/base/dbhome_1/lib//libocrb12.so: undefined reference to `kgfoErrorMessage'/oracle/base/dbhome_1/lib//libocrb12.so: undefined reference to `kgfoGetSize'/oracle/base/dbhome_1/lib//libocrb12.so: undefined reference to `kgfoOpenDirty'/oracle/base/dbhome_1/lib//liboINFO: crb12.so: undefined reference to `kgfoIO'/oracle/base/dbhome_1/lib//libocrb12.so: undefined reference to `kgfoCreateCtxExt'/oracle/base/dbhome_1/lib//libocrb12.so: undefined reference to `kgfoCreate2P'/oracle/base/dbhome_1/lib//libocrb12.so: undefined reference to `kgfoCheckHdl'/oracle/base/dbhome_1/lib//libocrb12.so: undefined reference to `kgfoDestroyCtx'/oracle/base/dbhome_1/lib//libocrb12.so: undefined reference to `kgfoRenameFile'/oracle/base/dbhome_1/lib//libocrb12.so: undefined reference to `kgINFO: foCreateFile'/oracle/base/dbhome_1/lib//libocrb12.so: undefined reference to `kgfoDeleteFile'/oracle/base/dbhome_1/lib//libocrb12.so: undefined reference to `kgfoFnameMax'/oracle/base/dbhome_1/lib//libocrb12.so: undefined reference to `kgfoCheckMount'/oracle/base/dbhome_1/lib//libocrb12.so: undefined reference to `kgfoControl'/oracle/base/dbhome_1/lib//libocrb12.so: undefined reference to `kgfoOpenFile'/oracle/base/dbhome_1/lib//libocrutl12.so: undefined reference to `lfieno'collect2: ld returned 1 eINFO: xit statusINFO: make: *** [/oracle/base/dbhome_1/rdbms/lib/oracle] Error 1INFO: End output from spawned process.INFO: ----------------------------------INFO: Exception thrown from action: makeException Name: MakefileExceptionException String: Error in invoking target 'irman ioracle' of makefile '/oracle/base/dbhome_1/rdbms/lib/ins_rdbms.mk'. See '/oracle/oraInventory/logs/installActions2013-09-19_01-00-29PM.log' for details.Exception Severity: 1

Ah, we have seen this before! A library is not feeling satisfied..

Fix it like this:

oracle$  ldd /oracle/base/dbhome_1/lib//libocrb12.solinux-vdso.so.1 =>  (0x00007fffa83e3000)libocrutl12.so => not foundlibc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fe62fe75000)/lib64/ld-linux-x86-64.so.2 (0x00007fe630520000)
root# ln -s /oracle/base/dbhome_1/lib//libocrutl12.so /usr/libroot# ls -l /usr/lib/libocrutl12.solrwxrwxrwx 1 root root 41 Sep 19 13:44 /usr/lib/libocrutl12.so -> /oracle/base/dbhome_1/lib//libocrutl12.sooracle$ ldd /oracle/base/dbhome_1/lib//libocrb12.solinux-vdso.so.1 =>  (0x00007fff3d7ff000)        libocrutl12.so => /usr/lib/libocrutl12.so (0x00007fec9674c000)libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fec9638d000)/lib64/ld-linux-x86-64.so.2 (0x00007fec96c48000)

Ok, the library is happy..

Then edit the file : /oracle/base/dbhome_1/rdbms/lib/env_rdbms.mk

ORACLE_LINKLINE=$(ORACLE_LINKER) $(PL_FLAGS) $(ORAMAI) $(SSORED) $(TTCSOI) $(ORACLE_KERNEL_LIBS) $(LINKLDLIBS)

Change to:

ORACLE_LINKLINE=$(ORACLE_LINKER) -Wl,--no-as-needed $(PL_FLAGS) $(ORAMAI) $(SSORED) $(TTCSOI) $(ORACLE_KERNEL_LIBS) $(LINKLDLIBS)

Save the file.

Now: hit the “Retry” button of the installer.

Oracle Database 12c Release 1 Installer - Installing database - Step 12 of 13_005Wait,WAIT!! … Is it for real!?!? YES! We are PAST THE LINKER!! Now let the installer humm along..

Selection_007AH! This looks familiar…well..let’s just do this..

Execute the scripts AS ROOT:

root# /oracle/oraInventory/orainstRoot.shChanging permissions of /oracle/oraInventory.Adding read,write permissions for group.Removing read,write,execute permissions for world.Changing groupname of /oracle/oraInventory to oinstall.The execution of the script is complete.root# /oracle/base/dbhome_1/root.shPerforming root user operation for Oracle 12cThe following environment variables are set as:ORACLE_OWNER= oracleORACLE_HOME=  /oracle/base/dbhome_1Enter the full pathname of the local bin directory: [/usr/local/bin]:Copying dbhome to /usr/local/bin ...Copying oraenv to /usr/local/bin ...Copying coraenv to /usr/local/bin ...Creating /etc/oratab file...Entries will be added to the /etc/oratab file as needed byDatabase Configuration Assistant when a database is createdFinished running generic part of root script.Now product-specific root actions will be performed.

And continue by pressing OK on the install screen.

Oracle Database 12c Release 1 Installer - Installing database - Step 13 of 13_008Indeed…Successful indeed…The base software is installed!

Great job, well done! Now grab yourself a good cup of coffee and relish in this accomplishment! No mean feat at all!

Of course, this is only the basis, we need to reap the benefits of all this work by installing (and at the same time do a sanity check to see if we really did our work correct) an database..

So: let’s fire up  the DBCA!

Quickly setup the environment:

~$ export ORACLE_HOME=/oracle/base/dbhome_1oracle:~$ export PATH=$PATH:$ORACLE_HOME/binoracle:~$ dbca

_003

Database Configuration Assistant - Welcome - Step 1 of 5_010Press Next.

Database Configuration Assistant - Welcome - Step 1 of 5_010

Select advanced mode (we like control!) and press Next.

Database Configuration Assistant - Create Database - Step 3 of 13_013A General purpose db with samples: perfect! Press Next.

Database Configuration Assistant - Create Database - Step 4 of 13_015

Of course we go for the new features, but let’s play it cool, just create a container with just one PDB first..

Make the adjustments, and press Next.

Database Configuration Assistant - Create Database - Step 5 of 13_001Due to lack of OEM Cloud…we stick to the EM Database express (also VERY nice to play with!)

Press Next.

Database Configuration Assistant - Create Database - Step 6 of 14_002One ring to rule them all…erhm..password that is..will do..Press Next after making the adjustments.

Database Configuration Assistant - Create Database - Step 7 of 14_003One listener will suffice for now..Press Next.

Database Configuration Assistant - Create Database - Step 8 of 14_004Just a simple setup for now WITH FRA and ARCHIVING enabled..we are going to backup this database before we “rough treat” it ;-)..Make the adjustments, and press Next.

Database Configuration Assistant - Create Database - Step 9 of 14_005Yes, we love the examples…and we do need some data to play and display with..Press Next.

Database Configuration Assistant - Create Database - Step 10 of 14_006I can live with these settings, and we change them later anyway..so press Next.

Database Configuration Assistant - Create Database - Step 11 of 14_007Hmm, yes, please create a template for future reference, and yes, please create the database. Click the options and press Next.

Database Configuration Assistant - Create Database - Step 13 of 14_008Check the settings…and press Finish (the moment of truth!)..

Database Configuration Assistant_009Almost then…Click the pop-up..Press OK.

Database Configuration Assistant - Create Database - Step 14 of 14_002The DBCA gets going..

Selection_004

And finishes! Note down this information and press OK.

Selection_005Press Close.

And we are done. A new fresh database ready to use and abuse!

A small test is, of course, mandatory:

~$ sqlplus / as sysdbaSQL*Plus: Release 12.1.0.1.0 Production on Thu Sep 19 19:11:17 2013Copyright (c) 1982, 2013, Oracle.  All rights reserved.Connected to:Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit ProductionWith the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
oracle$ export ORACLE_SID=packarddboracle$ sqlplus / as sysdbaSQL*Plus: Release 12.1.0.1.0 Production on Thu Sep 19 19:11:17 2013Copyright (c) 1982, 2013, Oracle.  All rights reserved.Connected to:Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit ProductionWith the Partitioning, OLAP, Advanced Analytics and Real Application Testing optionsSQL> select instance_name from gv$instance;INSTANCE_NAME----------------packarddbSQL>exitDisconnected from Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit ProductionWith the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

And RMAN:

$ rman  target /Recovery Manager: Release 12.1.0.1.0 - Production on Thu Sep 19 19:13:50 2013Copyright (c) 1982, 2013, Oracle and/or its affiliates.  All rights reserved.connected to target database: PACKARDD (DBID=415606655)RMAN> show all;using target database control file instead of recovery catalogRMAN configuration parameters for database with db_unique_name PACKARDDB are:CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # defaultCONFIGURE BACKUP OPTIMIZATION OFF; # defaultCONFIGURE DEFAULT DEVICE TYPE TO DISK; # defaultCONFIGURE CONTROLFILE AUTOBACKUP ON; # defaultCONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # defaultCONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # defaultCONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # defaultCONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # defaultCONFIGURE MAXSETSIZE TO UNLIMITED; # defaultCONFIGURE ENCRYPTION FOR DATABASE OFF; # defaultCONFIGURE ENCRYPTION ALGORITHM 'AES128'; # defaultCONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # defaultCONFIGURE RMAN OUTPUT TO KEEP FOR 7 DAYS; # defaultCONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # defaultCONFIGURE SNAPSHOT CONTROLFILE NAME TO '/oracle/base/dbhome_1/dbs/snapcf_packarddb.f'; # defaultRMAN>

It seems we are ready to roll!

I hope this post was of use to you, and of course, I’m open to suggestions. Please correct me if I made wrong assumptions, or you have improvements.

Happy Database’ing!

来自:http://www.360doc.com/content/15/0617/18/10087950_478807655.shtml

0 0
原创粉丝点击