簡體   English   中英

將導入的 oracle db dmp 保存在 docker 圖像中

[英]Save imported oracle db dmp in docker image

我正在使用 docker 映像通過 docker-compose 文件啟動和運行 Oracle 數據庫。 我還創建了我的應用程序的 dmp 文件,並能夠使用docker exec -it命令將其導入 docker 上的 oracle 服務器。

However every time I restart the docker container, the data is lost and I need to do the entire process of importing the dmp file again by doing a bash on the Oracle server in the docker container.

有什么方法可以將該數據保存到 docker 容器上運行的 Oracle 數據庫服務器? 我已經嘗試過 docker 提交,但是沒有用。

我需要使用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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM