Docker 中Oracle 容器 impdp 导入报错处理

docker 中Oracle 容器 impdp  导入 dmp 文件时 报错 : 日志没有权限 等  

impdp mogo/mogo directory=DATA_TEMP dumpfile=data-mogo.dmp full=y table_exists_action=replace

oracle 容器 impdp导入时 提示“ORA-39002: 操作无效 ORA-39070: 无法打开日志文件 ” :
Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
ORA-39002: invalid operation
ORA-39070: Unable to open the log file.
ORA-29283: invalid file operation
ORA-06512: at "SYS.UTL_FILE", line 475
ORA-29283: invalid file operation

这种是 权限 问题:   /home/oracle/data_temp  挂载目录 权限 为 Oracle 应 归属 root  
临时关闭selinux:
  setenforce 0    即可搞定


Docker容器挂载主机目录访问出现Permission denied的解决办法

查看Oracle 容器内  /home/oracle/data_temp  所有者 及 归属 是否为root
Oracle 容器 切换到 root  : su root  / password : helowin

如果 root 账户也无法切换 所有者权限

解决办法:
问题原因及解决办法
原因是CentOS7中的安全模块selinux把权限禁掉了,至少有以下三种方式解决挂载的目录没有权限的问题:
1.在运行容器的时候,给容器加特权,及加上 --privileged=true 参数:
docker run -i -t -v /soft:/soft --privileged=true 686672a1d0cc /bin/bash
2.临时关闭selinux:
setenforce 0
3.添加selinux规则,改变要挂载的目录的安全性文本

 我采用第二种办法 : 新开 窗口  临时关闭 selinux

开机关闭SELinux
编辑/etc/selinux/config文件,如下图,将SELINUX的值设置为disabled。下次开机SELinux就不会启动了。


SELinux 有三种工作模式,分别是:

1. enforcing:强制模式。违反 SELinux 规则的行为将被阻止并记录到日志中。         强制不可以访问

2. permissive:宽容模式。违反 SELinux 规则的行为只会记录到日志中。一般为调试用。   警告但可以访问

3. disabled:关闭 SELinux。 不警告不拒绝

SELinux 工作模式可以在 /etc/selinux/config 中设定。  selinux=disable  或者 enforcing

如果想从 disabled 切换到 enforcing 或者 permissive 的话,需要重启系统。反过来也一样。

enforcing 和 permissive 模式可以通过 setenforce 1|0 命令快速切换。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 很抱歉,我无法回答这个问题,但是我可以提供一些建议:1.检查docker容器的配置是否正确;2.检查python的版本是否与docker容器的版本兼容;3.尝试重新安装python和docker容器。 ### 回答2: 当将Python应用程序部署在Docker容器时,可能会遇到不断报错和重启的问题。造成这种情况的原因可能有以下几点: 1. 依赖问题:Python应用程序可能依赖于其他库或软件包,而在Docker容器可能缺少这些依赖。这可能导致Python应用程序无法正常运行并不断报错重启。解决方法是在Dockerfile明确列出所有依赖,并确保它们在容器正确安装。 2. 资源限制:Docker容器默认情况下对CPU和内存资源进行限制,如果Python应用程序需要更多的资源来运行,则可能会导致容器不断重启。可以通过调整Docker容器的资源限制来解决此问题,确保容器具有足够的资源来运行Python应用程序。 3. 网络问题:如果Python应用程序需要与外部服务或数据库进行通信,而在Docker容器无法访问这些服务或数据库,则会导致应用程序不断报错重启。确保Docker容器可以访问所需的网络资源,可以通过验证网络连接和使用正确的网络配置解决此问题。 4. 日志记录:Python应用程序可能在运行时产生大量输出,如果没有适当的配置日志记录,则可能导致Docker容器日志文件过大,从而使容器不断重启。可以通过配置适当的日志记录机制来解决此问题,例如将日志输出到容器外部的日志收集工具。 综上所述,Python在Docker容器不断报错重启的问题可能源自依赖问题、资源限制、网络问题和日志记录等方面。解决这些问题需要仔细排查并逐个解决,确保Docker容器的Python应用程序能够正常稳定地运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值