Oracle數據庫安裝在docker容器中
1首先查看容器
docker ps
2進入oracle容器
docker exec -it 7f0f3f2d4f88 /bin/bash
3導出整個庫:這個有問題,會吧helowin實例下的所有數據都導出:
DATA_PUMP_DIR為oracle中默認備份文件件
expdp SDWEB/SDWEB@helowin dumpfile=aircms.dmp logfile=airscm.log full=y directory=DATA_PUMP_DIR
如果報錯,錯誤如下
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的值,
A)進入到sqlplus中查看它的值
sqlplus /nolog
b)切換系統用戶
conn sys/ as sysdba;
c)查看默認值
select * from dba_directories where directory_name='DATA_PUMP_DIR';
得出的值:/home/oracle/app/oracle/admin/orcl/dpdump/
但實際上路徑中只有:/home/oracle/app/oracle/admin/helowin/dpdump/
需要創建/home/oracle/app/oracle/admin/orcl/dpdump/目錄
4繼續導出數據庫
expdp SDWEB/SDWEB@helowin dumpfile=aircms.dmp logfile=airscm.log full=y directory=DATA_PUMP_DIR
5導出成功
/home/oracle/app/oracle/admin/orcl/dpdump/aircms.dmp
6拷貝到系統路徑下
7f0f3f2d4f88:為容器id
docker cp 7f0f3f2d4f88:/home/oracle/app/oracle/admin/orcl/dpdump/aircms.dmp /home/dev/