This article will list all errors/issues I encounter during Oracle installation with their fix.
It will be updated with all new errors I will encounter.
In this article ...
... "Fix prior install" needs jar binary. Install it with the following command:
$ yum -y install java-devel
memcpy error in ins_ctx.mk
Operating System: | Oracle Enterprise Linux 7 |
Oracle version: | 11.2.0.1 |
Error output
INFO: gcc -o ctxhx -m64 -L/u01/app/oracle/product/11.2.0/db_1/ctx/lib/ -L/u01/app/oracle/product/11.2.0/db_1/lib/ -L/u01/app/oracle/product/11.2.0/db_1/lib/stubs/ /u01/app/oracle/product/11.2.0/db_1/ctx/lib/ctxhx.o -L/u01/app/oracle/product/11.2.0/db_1/ctx/lib/ -lm -lsc_fa -lsc_ex -lsc_da -lsc_ca -lz -lctxhx -Wl,-rpath,/u01/app/oracle/product/11.2.0/db_1/ctx/lib -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lxml11 -lcore11 -lunls11 -lsnls11 -lnls11 -lcore11 -lnls11 `cat /u01/app/oracle
INFO: /product/11.2.0/db_1/lib/sysliblist`
INFO: /lib64/libstdc++.so.5: undefined reference to `memcpy@GLIBC_2.14'
collect2: error: ld returned 1 exit status
INFO: make: *** [ctxhx] Error 1
INFO: End output from spawned process.
INFO: ----------------------------------
INFO: Exception thrown from action: make
Exception Name: MakefileException
Exception String: Error in invoking target 'install' of makefile '/u01/app/oracle/product/11.2.0/db_1/ctx/lib/ins_ctx.mk'. See '/u01/app/oraInventory/logs/installActions2015-04-17_10-00-15PM.log' for details.
Exception Severity: 1
Solution
Fix prior install
Execute the following script:
# Fix ctx/lib/ins_ctx.mk
ORACLE_SRC_INSTALL_DIR=/media/sf_uxora_share/database
cd ${ORACLE_SRC_INSTALL_DIR}/stage/Components
jar_file=
for i_file in $( ls ./oracle.ctx/11.2.0.1.0/1/DataFiles/filegroup*.jar ); do
unzip -l ${i_file} ctx/lib/ins_ctx.mk 2>&1 1>/dev/null
[[ $? -eq 0 ]] && jar_file=${i_file} && break
done
cat << __EOF__ > /tmp/memcpy_wrap.c
#include <stddef.h>
#include <string.h>
asm (".symver wrap_memcpy, memcpy@GLIBC_2.14");
void *wrap_memcpy(void *dest, const void *src, size_t n) {
return memcpy(dest, src, n);
}
__EOF__
unzip ${jar_file} ctx/lib/ins_ctx.mk 2>&1 1>/dev/null
if [[ $? -eq 0 ]]; then
sed -i -e 's/\$(INSO_LINK)/\$(INSO_LINK) -Wl,--wrap=memcpy_wrap \$(ORACLE_HOME)\/ctx\/lib\/memcpy_wrap.o/g' ctx/lib/ins_ctx.mk
gcc -c /tmp/memcpy_wrap.c -o ctx/lib/memcpy_wrap.o && rm /tmp/memcpy_wrap.c
jar -uvf ${jar_file} ctx/lib/ins_ctx.mk ctx/lib/memcpy_wrap.o
fi
Fix during install
This fix can only be done in GUI mode installer.
When the windows prompt this error message:
Error in invoking target 'install' of makefile '/u01/app/oracle/product/11.2.0/db_1/ctx/lib/ins_ctx.mk'. See '/u01/app/oraInventory/logs/installActions2015-04-17_10-00-15PM.log' for details.
Execute the following script then click retry
to resume install
# Fix ctx/lib/ins_ctx.mk
ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
cat << __EOF__ > /tmp/memcpy_wrap.c
#include <stddef.h>
#include <string.h>
asm (".symver wrap_memcpy, memcpy@GLIBC_2.14");
void *wrap_memcpy(void *dest, const void *src, size_t n) {
return memcpy(dest, src, n);
}
__EOF__
if [[ -e "${ORACLE_HOME}/ctx/lib/ins_ctx.mk" ]]; then
sed -i -e 's/\$(INSO_LINK)/\$(INSO_LINK) -Wl,--wrap=memcpy_wrap \$(ORACLE_HOME)\/ctx\/lib\/memcpy_wrap.o/g' ${ORACLE_HOME}/ctx/lib/ins_ctx.mk
gcc -c /tmp/memcpy_wrap.c -o ${ORACLE_HOME}/ctx/lib/memcpy_wrap.o && rm /tmp/memcpy_wrap.c
fi
ins_emagent.mk error
Operating System: | Oracle Enterprise Linux 7 |
Oracle version: | 11.2.0.1 |
Error output
INFO: ib/amd64 -z lazyload -ljava -ljvm -lverify -z nolazyload -Wl,-rpath,/u01/app/oracle/product/11.2.0/db_1/lib/:/u01/app/oracle/product/11.2.0/db_1/sysman/lib/:/u01/app/oracle/product/11.2.0/db_1/jdk/jre/lib/amd64/server:/u01/app/oracle/product/11.2.0/db_1/jdk/jre/lib/amd64 -Wl,--allow-shlib-undefined `cat /u01/app/oracle/product/11.2.0/db_1/lib/sysliblist` -ldl -lm
INFO: /u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk:127: warning: overriding recipe for target `nmosudo'
/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk:56: warning: ignoring old recipe for target `nmosudo'
INFO: /usr/bin/ld: warning: -z lazyload ignored.
/usr/bin/ld: warning: -z nolazyload ignored.
/usr/bin/ld: /u01/app/oracle/product/11.2.0/db_1/sysman/lib//libnmectl.a(nmectlt.o): undefined reference to symbol 'B_DestroyKeyObject'
/usr/bin/ld: note: 'B_DestroyKeyObject' is defined in DSO /u01/app/oracle/product/11.2.0/db_1/lib/libnnz11.so so try adding it to the linker command line
/u01/app/oracle/product/11.2.0/db_1/lib/libnnz11.so: could not read symbols: Invalid operation
collect2: error: ld returned 1 exit sta
INFO: tus
INFO: make[1]: Leaving directory `/u01/app/oracle/product/11.2.0/db_1/sysman/lib'
INFO: make[1]: *** [/u01/app/oracle/product/11.2.0/db_1/sysman/lib/emdctl] Error 1
make: *** [emdctl] Error 2
INFO: End output from spawned process.
INFO: ----------------------------------
INFO: Exception thrown from action: make
Exception Name: MakefileException
Exception String: Error in invoking target 'agent nmhs' of makefile '/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk'. See '/u01/app/oraInventory/logs/installActions2015-04-23_01-23-30PM.log' for details.
Exception Severity: 1
Solution
Fix prior install
Execute the following script:
# Fix sysman/lib/ins_emagent.mk
ORACLE_SRC_INSTALL_DIR=/media/sf_uxora_share/database
cd ${ORACLE_SRC_INSTALL_DIR}/stage/Components
jar_file=
for i_file in $( ls ./oracle.sysman.agent/*/1/DataFiles/filegroup*.jar ); do
unzip -l ${i_file} sysman/lib/ins_emagent.mk 2>&1 1>/dev/null
[[ $? -eq 0 ]] && jar_file=${i_file} && break
done
unzip ${jar_file} sysman/lib/ins_emagent.mk 2>&1 1>/dev/null
if [[ $? -eq 0 ]]; then
sed -i -e 's/\$(MK_EMAGENT_NMECTL)/\$(MK_EMAGENT_NMECTL) -lnnz11/g' sysman/lib/ins_emagent.mk
jar -uvf ${jar_file} sysman/lib/ins_emagent.mk
fi
Fix during install
This fix can only be done in GUI mode installer. When the windows prompt this error message:
Error in invoking target 'agent nmhs' of makefile '/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk'. See '/u01/app/oraInventory/logs/installActions2015-04-23_01-23-30PM.log' for details.
Execute the following script then click retry
to resume install
# Fix ctx/lib/ins_ctx.mk
ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
if [[ -e "${ORACLE_HOME}/sysman/lib/ins_emagent.mk" ]]; then
sed -i -e 's/\$(MK_EMAGENT_NMECTL)/\$(MK_EMAGENT_NMECTL) -lnnz11/g' ${ORACLE_HOME}/sysman/lib/ins_emagent.mk
fi
ORA-00845
Operating System: | Oracle Enterprise Linux 7 |
Oracle version: | Any |
Error output
ORA-00845: MEMORY_TARGET not supported on this system
Solution
Reduce memory target parameter
...
Increase the size of /dev/shm
# check filesystems
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/ol-root 14G 5.0G 9.0G 36% /
devtmpfs 3.8G 0 3.8G 0% /dev
tmpfs 3.8G 1.9G 2.0G 48% /dev/shm
tmpfs 3.8G 8.9M 3.8G 1% /run
tmpfs 3.8G 0 3.8G 0% /sys/fs/cgroup
/dev/vdb1 32G 11G 22G 33% /u01
/dev/vda1 497M 150M 348M 31% /boot
# increase /dev/shm accordingly to your max ram memory
$ mount -o remount,size=6G /dev/shm
# make this change permanent, add/change /etc/fstab
$ vi /etc/fstab
...
tmpfs /dev/shm tmpfs defaults,size=6G 0 0
...
# update mount
$ mount -a
ORA-19502/ORA-27072
Operating System: | Oracle Enterprise Linux 7 |
Oracle version: | Any |
Error output
...
ORA-19502: write error on file "...",
block number 251905 (block size=512)
ORA-27072: File I/O error
Linux-x86_64 Error: 25: Inappropriate ioctl for device
...
Solution
Free disk space/Add disk space
There is not enough disk space. Check disk space with df -h <path>
ORA-28040: No matching authentication protocol
Operating System: | Any |
Oracle version: | from 12.1.0.1 |
Error output
ORA-28040: No matching authentication protocol
ORA-01017: invalid username/password; logon denied
You may encounter this error with a new 12c database because Oracle Enterprise Cloud Manager 12c is still using the old 10g JDBC driver (ojdbc14.jar) to connect.
Prior to version 12c, the default setting for SQLNET.ALLOWED_LOGON_VERSION
(deprecated parameter in 12c) was 8. Now in 12c the default value of the 12c equivalent parameters SQLNET.ALLOWED_LOGON_VERSION_CLIENT
and SQLNET.ALLOWED_LOGON_VERSION_SERVER
are now 11.
Solution/Workaround
# Set minimum logon authentification version in sqlnet.ora
# To avoid ORA-28040: No matching authentication protocol
[oracle]$ cat >> $ORACLE_HOME/network/admin/sqlnet.ora <<_EOF_
SQLNET.ALLOWED_LOGON_VERSION_SERVER=8
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8
_EOF_
# Recreate oracle user password to be compatible 10G
# To avoid ORA-01017: invalid username/password; logon denied
[oracle]$ sqlplus / as sysdba
-- Check password compatibility
SQL> select USERNAME,PASSWORD_VERSIONS from dba_users where USERNAME = 'SYS';
USERNAME PASSWORD_VERSIONS
-------------------------------- -----------------
SYS 11G 12C
-- Reinitialize password
SQL> alter user SYS identified by OraSys_pw0 ;
User SYS altered.
-- Check again password compatibility
SQL> select USERNAME,PASSWORD_VERSIONS from dba_users where USERNAME = 'SYS';
USERNAME PASSWORD_VERSIONS
-------------------------------- -----------------
SYS 10G 11G 12C
Now database instance will accept 10g authentification only with users who have 10G PASSWORD_VERSIONS compatibility.
Hope that helps,
Michel.
Enjoyed this article? Please like it or share it.
Comments
One question :-
What is the root cause of this issue ??
many tnx
Thank you for your sharing.
here-document at line 4 delimited by end-of-file (wanted `__EOF__')
Copy and paste the all block in a terminal.
during install oracle i see error in .ins_ctx.mk. I don't know save file contain script format .sh or ..., and run scrip this every where. Please resolve help me.
Many thanks Michel.
When you have the error message during the GUI install,
- open a new terminal
- save the script as a shell script anywhere you want, and make it executable
- change ORACLE_HOME script variable
- execute the script
- Then return to GUI install and click on Retry
Hope that helps,
Michel.
I have a ticket open with Oracle and they are stumped - It's very early in the process so there is a lot of try this...try that... yada yada yada.
You've saved us valuable time waiting endlessly for Oracle - now we can get some work done.
Again, thank you for the solution. Priceless.
RSS feed for comments to this post