Vous êtes sur la page 1sur 8

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-0015PM.log' for details.
Exception Severity: 1

Fix

Fix before 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
When the windows prompt this error message:

done

in

GUI

mode

installer.

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-0417_10-00-15PM.log' for details.
Execute the following script then click retry

# 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/prod
uct/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/l
ib/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-2330PM.log' for details.
Exception Severity: 1

Fix
Fix before 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_e
magent.mk'. See
'/u01/app/oraInventory/logs/installActions2015-0423_01-23-30PM.log' for details.
Execute the following script then click retry

# 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
Enjoyed this article? Please like it or share it.

[1] Install some packages

[root@db01 ~]#
yum -y install binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel glibc glibc-common g
libaio-devel libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel pdksh

[2] Edit Kernel parameter.


[root@db01 ~]#
vi /etc/sysctl.conf
# add at the last
net.ipv4.ip_local_port_range = 9000 65500
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
net.core.rmem_default=262144
net.core.wmem_default=262144
net.core.rmem_max=4194304
net.core.wmem_max=1048576
fs.aio-max-nr = 1048576
[root@db01 ~]#
sysctl -p
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
net.ipv4.ip_local_port_range = 9000 65500
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
net.core.rmem_default = 262144
net.core.wmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_max = 1048576
fs.aio-max-nr = 1048576

[3] Create a user for Oracle.


[root@db01 ~]#
groupadd -g 200 oinstall
[root@db01 ~]#
groupadd -g 201 dba
[root@db01 ~]#
useradd -u 440 -g oinstall -G dba -d /usr/oracle oracle
[root@db01 ~]#

vi /etc/pam.d/login
# near line 9: add
session
session
session

required
required
optional

pam_selinux.so close
pam_limits.so
pam_keyinit.so force revoke

[root@db01 ~]#
vi /etc/security/limits.conf
# add at the last
oracle
oracle
oracle
oracle

soft
hard
soft
hard

nproc
nproc
nofile
nofile

2047
16384
1024
65536

[root@db01 ~]#
vi /etc/profile
# add at the last
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi

[4] Switch to a user "Oracle" and confi gure some settings.


[oracle@db01 ~]$
chmod 755 /usr/oracle
[oracle@db01 ~]$
mkdir /usr/oracle/app
[oracle@db01 ~]$
chmod 775 /usr/oracle/app
[oracle@db01 ~]$
mkdir /usr/oracle/oradata
[oracle@db01 ~]$
chmod 775 /usr/oracle/oradata
[oracle@db01 ~]$
vi ~/.bash_profile
# add at the last
umask 022
export ORACLE_BASE=/usr/oracle/app

[oracle@db01 ~]$
mkdir tmp
# create a temporary dir for installation