将导入的Oracle DB DMP保存在Docker映像中

阿曼·穆罕默德(Aman Mohammed)

我正在使用docker映像通过docker-compose文件启动和运行Oracle数据库。我还创建了应用程序的dmp文件,并能够使用docker exec -it命令将其导入docker上的oracle服务器

但是,每次我重新启动Docker容器时,数据都会丢失,并且我需要通过在Docker容器中的Oracle服务器上执行bash来再次完成导入dmp文件的整个过程。

有什么方法可以将数据保存到在Docker容器上运行的Oracle数据库服务器中?我尝试了docker commit,但是没有用。

我需要使用这些volume位吗?

克里斯·赖斯

您是正确的,将需要卷。这是在我的设置中工作的完整示例。

我的体积映射为: -v /Users/klrice/workspace/dockerdb/data:/opt/oracle/oradata

然后是oracle目录: DIRECTORY docker_vol AS '/opt/oracle/oradata';

来自主机的expdp cmd: docker exec -it db_193 expdp klrice/klrice@xe tables=t1 directory=docker_vol dumpfile=klrice.dmp logfile=klrice_exp.log

结果文件位于主机映射的位置: /Users/klrice/workspace/dockerdb/data

docker run --name db_193 --cap-add=SYS_PTRACE --security-opt seccomp=unconfined \
-p 1521:1521  \
-p 8000:8000  \
-e ORACLE_SID=orcl \
-e ORACLE_PDB=xe \
-e ORACLE_PWD=oracle \
-e ORACLE_CHARACTERSET=UTF8 \
-v /Users/klrice/workspace/dockerdb/data:/opt/oracle/oradata \
oracle/database:19.3.0-ee

kriss-MacBook-Pro:dockerdb klrice$ sql system/oracle@//localhost:1521/xe

SQLcl: Release 19.4 Production on Mon Nov 11 11:44:47 2019

Copyright (c) 1982, 2019, Oracle.  All rights reserved.

Last Successful login time: Mon Nov 11 2019 11:44:48 -05:00

Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0


SQL> CREATE OR REPLACE DIRECTORY docker_vol AS '/opt/oracle/oradata';

Directory DOCKER_VOL created.

SQL> GRANT READ, WRITE ON DIRECTORY docker_vol TO klrice;

Grant succeeded.

SQL>
Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
kriss-MacBook-Pro:dockerdb klrice$  docker exec  -it   db_193 expdp klrice/klrice@xe tables=t1 directory=docker_vol dumpfile=klrice.dmp logfile=klrice_exp.log

Export: Release 19.0.0.0.0 - Production on Mon Nov 11 16:45:01 2019
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle and/or its affiliates.  All rights reserved.

Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Starting "KLRICE"."SYS_EXPORT_TABLE_01":  klrice/********@xe tables=t1 directory=docker_vol dumpfile=klrice.dmp logfile=klrice_exp.log
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
Processing object type TABLE_EXPORT/TABLE/STATISTICS/MARKER
Processing object type TABLE_EXPORT/TABLE/TABLE
. . exported "KLRICE"."T1"                               6.680 MB 1000000 rows
Master table "KLRICE"."SYS_EXPORT_TABLE_01" successfully loaded/unloaded
******************************************************************************
Dump file set for KLRICE.SYS_EXPORT_TABLE_01 is:
  /opt/oracle/oradata/klrice.dmp
Job "KLRICE"."SYS_EXPORT_TABLE_01" successfully completed at Mon Nov 11 16:45:15 2019 elapsed 0 00:00:13



kriss-MacBook-Pro:dockerdb klrice$ ls /Users/klrice/workspace/dockerdb/data/klrice*
/Users/klrice/workspace/dockerdb/data/klrice.dmp    /Users/klrice/workspace/dockerdb/data/klrice_exp.log

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章