0
点赞
收藏
分享

微信扫一扫

docker容器中oracle数据库导出dmp文件

阎小妍 2023-12-29 阅读 43

备份数据

1首先查看容器

docker ps

2.进入oracle容器
1482be155a4c:为容器id

docker exec -it 1482be155a4c /bin/bash

3.导出数据库
expdp ahc_theme/ahc_theme dumpfile=20220119.dmp full=y directory=DATA_PUMP_DIR

如果报错,错误如下

bash: expdp: command not found

执行

source /etc/profile

如果报错,错误如下

Connected to: Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing 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 536
ORA-29283: invalid file operation

缺省Directory为DATA_PUMP_DIR.需要查看DATA_PUMP_DIR的值,

1)进入到sqlplus中查看它的值

sqlplus /nolog

2)切换系统用户

conn sys/ as sysdba;

3)查看默认值

select * from dba_directories where directory_name= 'DATA_PUMP_DIR';


比如得出的值为:/home/oracle/app/oracle/admin/orcl/dpdump/

需要在容器内创建/home/oracle/app/oracle/admin/orcl/dpdump/目录

mkdir -p /home/oracle/app/oracle/admin/orcl/dpdump/

4.继续导出数据库

expdp ahc_theme/ahc_theme dumpfile=20220119.dmp  full=y  directory=DATA_PUMP_DIR

5导出成功

/home/oracle/app/oracle/admin/orcl/dpdump/20220119.dmp

6拷贝到系统路径下

退出容器,拷贝文件

1482be155a4c:为容器id

docker cp 1482be155a4c:/home/oracle/app/oracle/admin/orcl/dpdump/20220119.dmp /home/dev/

还原数据

1.复制文件到docker容器中

docker cp /home/dev/20220119.dmp 1482be155a4c:/home/oracle/app/oracle/admin/orcl/dpdump/

2.进入oracle容器
1482be155a4c:为容器id

docker exec -it 1482be155a4c /bin/bash

3.执行,还原命令

impdp icms/icms@helowin DIRECTORY=DATA_PUMP_DIR DUMPFILE=ICMS20211101.dmp SCHEMAS=icms

举报

相关推荐

0 条评论