[英]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.