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 oinstall root# addgroup dba root# useradd -g oinstall -G dba -p password -d /home/oracle -s /bin/bash oracle root# mkdir /home/oracle root# chown -R oracle:dba /home/oracle
Create and prepare location to install the oracle binaries:
root# mkdir -p /oracle root# chown -R oracle:dba /oracle
Edit and add to the sysctl.conf:
root# vi /etc/sysctl.conf # Oracle 12c entries fs.aio-max-nr=1048576 fs.file-max=6815744 kernel.shmall=2097152 kernel.shmmni=4096 kernel.sem=250 32000 100 128 net.ipv4.ip_local_port_range=9000 65500 net.core.rmem_default=262144 net.core.rmem_max=4194304 net.core.wmem_default=262144 net.core.wmem_max=1048586 kernel.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 12c oracle soft nproc 2048 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536
Prerequisites:
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 Passed Checking swap space: must be greater than 150 MB. Actual 952 MB Passed Checking monitor: must be configured to display at least 256 colors. Actual 16777216 Passed Preparing to launch Oracle Universal Installer from /tmp/OraInstall2013-09-17_06-57-27PM. Please wait ...
A pop-up appears while the installer loads the files.
Choose whether you like to be spammed by OTN. I choose not to.
Press Next.
I’m pretty sure about this, so press Yes.
This is not a test run for patching, so for now I choose to skip software updates (seems to be the default, anyway). Press Next.
This 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.
Choose 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.
A single installation will do for now. Press Next.
I prefer English, so I press Next.
Select the option most applicable here, I choose Enterprise so I get to test all the components to my hearts delight! Press Next.
Enter 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.
Enter 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.
Select the preferred groups, I keep everything on the “dba” group, since the oracle user is taking care of all the Oracle stuff. Press Next.
Check the configuration parameters, edit where necessary. When done, press Install.
The PREPARE phase should not give much issues..not at all actually.
The 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…
The 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/genclntsh INFO: /usr/bin/ld: cannot find /usr/lib64/libpthread_nonshared.a inside INFO: collect2: ld returned 1 exit status INFO: genclntsh: Failed to link libclntshcore.so.12.1 INFO: make: *** [client_sharedlib] Error 1 INFO: End output from spawned process. INFO: ---------------------------------- INFO: Exception thrown from action: make Exception Name: MakefileException Exception 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/lib64 root:~# 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.
Again: an error. As expected. Look in the tail of the log file:
INFO: /oracle/base/dbhome_1/bin/genclntsh INFO: /usr/bin/ld: cannot find /usr/lib64/libc_nonshared.a inside collect2: INFO: ld returned 1 exit status INFO: genclntsh: Failed to link libclntshcore.so.12.1 make: *** [client_sharedlib] Error 1 INFO: End output from spawned process. INFO: ---------------------------------- INFO: Exception thrown from action: make Exception Name: MakefileException Exception 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.a root:~# ln -s /usr/lib/x86_64-linux-gnu/libc_nonshared.a /usr/lib64 root:~# ls -l /usr/lib64/libc_nonshared.a lrwxrwxrwx 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.
The installer should continue for a bit with the linking part..until…
Let’s check the log file again:
INFO: - Linking password utility (orapwd) INFO: rm -f /oracle/base/dbhome_1/rdbms/lib/orapwd INFO: /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 -lnnz12 INFO: -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 -ln INFO: 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 -ldbcfg12 INFO: /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 operation INFO: collect2: ld returned 1 exit status INFO: make: *** [/oracle/base/dbhome_1/rdbms/lib/orapwd] Error 1 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 '/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.so
linux-vdso.so.1 => (0x00007fff759d9000)
libclntshcore.so.12.1 => not found
libc.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.1 lrwxrwxrwx 1 root root 47 Sep 19 11:08 /usr/lib/libclntshcore.so.12.1 -> /oracle/base/dbhome_1/lib/libclntshcore.so.12.1 root#
Check if the linker can resolve the library.
oracle$ ldd /oracle/base/dbhome_1/lib/libnnz12.so
linux-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.
*kabloe-ie..* again an error…the same? No! check the log:
INFO: - Linking HS OTS agent INFO: rm -f /oracle/base/dbhome_1/rdbms/lib/hsots INFO: /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 -lnsgr12 INFO: /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 operation INFO: collect2: ld returned 1 exit status INFO: make: *** [/oracle/base/dbhome_1/rdbms/lib/hsots] Error 1 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 '/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.so
linux-vdso.so.1 => (0x00007fffd9151000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f50778cd000)
libclntsh.so.12.1 => not found
libc.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/lib root# ls -l /usr/lib/libclntsh.so.12.1 lrwxrwxrwx 1 root root 43 Sep 19 11:20 /usr/lib/libclntsh.so.12.1 -> /oracle/base/dbhome_1/lib/libclntsh.so.12.1 root#
Check if this did the trick:
oracle$ ldd /oracle/base/dbhome_1/lib//libagtsh.so
linux-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.
Again!? Yep. Again. Same error? No! Check the log file:
INFO: - Linking HS Distributed External Procedure agent INFO: rm -f /oracle/base/dbhome_1/rdbms/lib/hsdepxa INFO: /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 -lm INFO: `cat /oracle/base/dbhome_1/lib/sysliblist` -ldl -lm -L/oracle/base/dbhome_1/lib -lnsgr12 INFO: /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 operation INFO: collect2: ld returned 1 exit status INFO: make: *** [/oracle/base/dbhome_1/rdbms/lib/hsdepxa] Error 1 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 '/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.
And 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 refere INFO: 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' /oracl INFO: 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 status INFO: make: *** [/oracle/base/dbhome_1/rdbms/lib/kfod] Error 1 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 '/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.
*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.c INFO: :(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 status INFO: make: *** [/oracle/base/dbhome_1/rdbms/lib/amdu] Error 1 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 '/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.
Check, another one! Check the log..
INFO: make: *** [/oracle/base/dbhome_1/rdbms/lib/kfed] Error 1 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 '/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.
Yep…It’s for real..Another one..Check the log:
INFO: rm -f /oracle/base/dbhome_1/rdbms/lib/plshprof INFO: /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 -lnzjs INFO: 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 -lnls1 INFO: 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/lib INFO: /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 operation INFO: collect2: ld returned 1 exit status INFO: make: *** [/oracle/base/dbhome_1/rdbms/lib/plshprof] Error 1 INFO: End output from spawned process. INFO: ---------------------------------- INFO: Exception thrown from action: make Exception Name: MakefileException Exception 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.
Yes, 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/rman INFO: /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 /o INFO: 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 -lm INFO: `cat /oracle/base/dbhome_1/lib/sysliblist` -ldl -lm -L/oracle/base/dbhome_1/lib INFO: /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 operation INFO: collect2: ld returned 1 exit status INFO: make: *** [/oracle/base/dbhome_1/rdbms/lib/rman] Error 1 INFO: End output from spawned process. INFO: ---------------------------------- INFO: Exception thrown from action: make Exception Name: MakefileException Exception 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.
Yes, again…But the end is nigh..Check the log files again..
INFO: - Linking dg4pwd utility INFO: rm -f /oracle/base/dbhome_1/rdbms/lib/dg4pwd INFO: /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/lib INFO: /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 operation INFO: collect2: ld returned 1 exit status INFO: make: *** [/oracle/base/dbhome_1/rdbms/lib/dg4pwd] Error 1 INFO: End output from spawned process. INFO: ---------------------------------- INFO: Exception thrown from action: make Exception Name: MakefileException Exception 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.
And 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/extproc INFO: /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 -lnsgr12 INFO: /usr/bin/ld: /oracle/base/dbhome_1/lib//libagtsh.so: undefined reference to symbol 'nsdisc' /usr/bin/ld: note: 'nsdisc' is INFO: 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 operation collect2: ld returned 1 exit status INFO: make: *** [/oracle/base/dbhome_1/rdbms/lib/extproc] Error 1 INFO: End output from spawned process. INFO: ---------------------------------- INFO: Exception thrown from action: make Exception Name: MakefileException Exception 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.mk Search 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.
Almost there! Check the log again:
INFO: - Linking tnslsnr INFO: rm -f tnslsnr INFO: /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 -lc INFO: 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 -lunls1 INFO: 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 -l INFO: m INFO: /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 operation INFO: 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 '/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.
Yes, 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//libo INFO: 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 `kg INFO: 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 e INFO: xit status INFO: make: *** [/oracle/base/dbhome_1/rdbms/lib/oracle] Error 1 INFO: End output from spawned process. INFO: ---------------------------------- INFO: Exception thrown from action: make Exception Name: MakefileException Exception 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.so
linux-vdso.so.1 => (0x00007fffa83e3000)
libocrutl12.so => not found
libc.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/lib
root# ls -l /usr/lib/libocrutl12.so
lrwxrwxrwx 1 root root 41 Sep 19 13:44 /usr/lib/libocrutl12.so -> /oracle/base/dbhome_1/lib//libocrutl12.so
oracle$ ldd /oracle/base/dbhome_1/lib//libocrb12.so
linux-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.
Wait,WAIT!! … Is it for real!?!? YES! We are PAST THE LINKER!! Now let the installer humm along..
AH! This looks familiar…well..let’s just do this..
Execute the scripts AS ROOT:
root# /oracle/oraInventory/orainstRoot.sh Changing 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.sh Performing root user operation for Oracle 12c The following environment variables are set as: ORACLE_OWNER= oracle ORACLE_HOME= /oracle/base/dbhome_1 Enter 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 by Database Configuration Assistant when a database is created Finished running generic part of root script. Now product-specific root actions will be performed.
And continue by pressing OK on the install screen.
Indeed…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_1 oracle:~$ export PATH=$PATH:$ORACLE_HOME/bin oracle:~$ dbca
Press Next.
Select advanced mode (we like control!) and press Next.
A General purpose db with samples: perfect! Press Next.
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.
Due to lack of OEM Cloud…we stick to the EM Database express (also VERY nice to play with!)
Press Next.
One ring to rule them all…erhm..password that is..will do..Press Next after making the adjustments.
One listener will suffice for now..Press Next.
Just 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.Yes, we love the examples…and we do need some data to play and display with..Press Next.
I can live with these settings, and we change them later anyway..so press Next.
Hmm, yes, please create a template for future reference, and yes, please create the database. Click the options and press Next.
Check the settings…and press Finish (the moment of truth!)..
Almost then…Click the pop-up..Press OK.
And finishes! Note down this information and press OK.
Press Close.
And we are done. A new fresh database ready to use and abuse!
A small test is, of course, mandatory:
~$ sqlplus / as sysdba SQL*Plus: Release 12.1.0.1.0 Production on Thu Sep 19 19:11:17 2013 Copyright (c) 1982, 2013, Oracle. All rights reserved. Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
oracle$ export ORACLE_SID=packarddb oracle$ sqlplus / as sysdba SQL*Plus: Release 12.1.0.1.0 Production on Thu Sep 19 19:11:17 2013 Copyright (c) 1982, 2013, Oracle. All rights reserved. Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options SQL> select instance_name from gv$instance; INSTANCE_NAME ---------------- packarddb SQL>exit Disconnected from Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production With 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 2013 Copyright (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 catalog RMAN configuration parameters for database with db_unique_name PACKARDDB are: CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default CONFIGURE BACKUP OPTIMIZATION OFF; # default CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default CONFIGURE CONTROLFILE AUTOBACKUP ON; # default CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default CONFIGURE MAXSETSIZE TO UNLIMITED; # default CONFIGURE ENCRYPTION FOR DATABASE OFF; # default CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default CONFIGURE RMAN OUTPUT TO KEEP FOR 7 DAYS; # default CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/oracle/base/dbhome_1/dbs/snapcf_packarddb.f'; # default RMAN>
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