Oracle Datapump impdp Inappropriate ioctl for device - linux

i had an error while exporting my schema and then import it into a new database.
My Exporting System is an Oracle Linux 7 with 19c Database and the importing system is Oracle Linux 8 with 21c XE. When i import the schema with impdp i receive the error:
impdp system/password#localhost/xepdb1 full=y directory=data_pump_dir dumpfile=test.dmp
ORA-39001: ivalid argument
ORA-39000: incorrect specification of dump file
ORA-31619: invalid dump file "opt/oracle/admin/XE/dpdump/CC96F85...01/test.dmp"
ORA-27072: File-I/O-Error
Linux-x86_64 Error: 25: Inappropriate ioctl for device
Additional information: 4
Additional information: 1

As stated in the comments
When you got the error Inappropriate ioctl for device , Oracle is not responsible, as the error is coming from Linux.
Most of the times due to:
The datapump file is corrupted.
The file is not not a valid datapump file
The datapump file is empty.

Related

error on running mongodb on linux server

I am trying to run the command:
mongod --storageEngine wiredTiger --dbpath data --logpath logs/mongo.log
in a linux server but it gives me the error
cannot execute binary file: Exec format error
when I try to see the dependences of the file mongod with readelf -d it gives too many errors:
readelf: Warning: The e_shentsize field in the ELF header is larger than the size of an ELF section header
readelf: Error: Reading 0x9c00000 bytes extends past end of file for section headers
I didn't find any information about this error
The problem was on linux versions I was working with mongodb 32bit in my linux server 64bit

Oracle11GR2 Automating Database Startup and Shutdown on Linux

I have some problems with the automatic Database Startup and Shutdown in CentOS 6.8.
I've followed this guide, I've created "/etc/init.d/dbora" the script changing the
ORA_HOME=/u01/app/oracle/product/9.2.0 in ORA_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
and also I'have changed:
OBMS(the name of the database):/u01/app/oracle/product/11.2.0/dbhome_1:N in Y.
However, when I reboot the OS, I take this message
Message 1070 not found; No message file for product=network, facility=TNSTNS-12545: Message 12545 not found; No message file for product=network, facility=TNS
TNS-12560: Message 12560 not found; No message file for product=network, facility=TNS
TNS-00515: Message 515 not found; No message file for product=network, facility=TNS
Linux Error: 2: No such file or directory
Processing Database instance "OBMS": log file /u01/app/oracle/product/11.2.0/dbhome_1/startup.log
What is the problem?
Solved, follow this guide
I've set the ORACLE_HOME_LISTNER = $ORACLE_HOME in the script dbstart

"Invalid module format" error while loading a module in CentOS 6.6

I have 2 twin servers, with same hardware (Infiniband and Nvidia Tesla) and same OS (CentOS6.6, kernel and drivers).
On host1 everything is working fine as usual, while
on host2 I cannot run anymore this service, because I get this error:
[root#vega2 nvidia_peer_memory-1.0-0]# service nv_peer_mem start
starting... FATAL: Error inserting nv_peer_mem (/lib/modules/2.6.32-504.el6.x86_64/extra/nv_peer_mem.ko): Invalid module format
Failed to load nv_peer_mem
and dmesg says:
nv_p2p_dummy: exports duplicate symbol nvidia_p2p_free_page_table (owned by nvidia)
Note that host2 has been working fine for 2 months, until a rebooted it after summer holydays. :-(
What can be the cause of this error ? The main software component didn't change (kernel, Nvidia drivers, Mellanox drivers) and hardware is ok. I tried also to repeat the installation procedure, but I get stuck at module loading point:
[root#vega2 nvidia_peer_memory-1.0-0]# rpm -ivh /root/rpmbuild/RPMS/x86_64/nvidia_peer_memory-1.0-0.x86_64.rpm
Preparing... ########################################### [100%]
1:nvidia_peer_memory ########################################### [100%]
FATAL: Error inserting nv_peer_mem (/lib/modules/2.6.32-504.el6.x86_64/extra/nv_peer_mem.ko): Invalid module format
I found this post about two kernel modules exporting the same symbols, but why on host2 this second module is disturbing nv_peer_mem, while on host1 it does not ?
Here is the output of nm commands, exactly the same for both hosts.
[root#vega2 nvidia_peer_memory-1.0-0]# nm /lib/modules/2.6.32-504.el6.x86_64/kernel/drivers/video/nvidia.ko |grep nvidia_p2p_free_ page_table
0000000088765bb5 A __crc_nvidia_p2p_free_page_table
0000000000000028 r __kcrctab_nvidia_p2p_free_page_table
000000000000007e r __kstrtab_nvidia_p2p_free_page_table
0000000000000050 r __ksymtab_nvidia_p2p_free_page_table
00000000004bcb10 T nvidia_p2p_free_page_table
[root#vega2 nvidia_peer_memory-1.0-0]# nm /lib/modules/2.6.32-504.el6.x86_64/extra/nv_peer_mem.ko |grep nvidia_p2p_free_page_table
U nvidia_p2p_free_page_table
Thanks in advance for any help.
Ste.

epoll_ctl() failed: No such file or directory [errno = 2]

Recently updated the Linux kernel from 2.6.18 to 2.6.32, and an existing application starts error out with following error message:
epoll_ctl() failed: No such file or directory [errno = 2].
I did read through the linux man page on epoll_ctl but couldn't make much sense of it. I am trying to understand what the possible cause of such?
Thanks
You should give us the code calling epoll_ctl, but likely the socket behind the file descriptor you are trying to modify has been closed somewhere else. See also Epoll: does it silently remove fds?

why does the i2cdetect always gives UU on my RTC in embedded Linux

I'd like to communicate read from my RTC in C code rather than the "hwclock" shell command.
However, when I use i2cdetect, it shows 0x68(which is my RTC slave address) is having the status "UU", which means "Probing was skipped, because this address is currently in use by a driver". And after I tried the i2cget, its givng "could bot set address to 0x68: Device or resource busy".
So I'm thinking if there are some problem in my Linux kernel that will force to read from my RTC all the time, or some other reason.
Thanks
I am assuming that you are using DS-1307 RTC, or one of its variants (because of 0x68 slave address). Check if its driver is loaded by:
$ lsmod | grep rtc
If you seen an entry of rtc_ds1307, (like this -> rtc_ds1307 17394 0 ) in the output of above command then this driver might be in hold of that address.
If the driver is loaded in system then unload it using
$ rmmod rtc-ds1307
EDIT:
(In light of OP's feedback,) Please do the following
1) cat /sys/bus/i2c/devices/3-0068/modalias. This will give you the name of the kernel driver that is keeping this device busy. Copy the driver-name after the colon(:)
OP's output of the command tells us that its ds1337
2) Check if ds1337 is an alias for a driver, using
grep ds1337 /lib/modules/`uname -r`/modules.alias
Hopefully you will get the following output
alias i2c:ds1337 rtc_ds1307
This confirms our presumption that rtc_ds1307 is infact the driver in hold of the I2C address 0x68.
3) use rmmod rtc_ds1307 to unload the driver.
Note: This will only work if the driver is a Loadable Kernel Module, otherwise you will see the following error:
ERROR: Module rtc_ds1307 does not exist in /proc/modules
In that case you will have to recompile the kernel again with that driver disabled/modularized.
0x68 is being used by some driver,
Disable that driver in kernel source code and recompile source code.

Resources