2016-11-30 1 views
1

Я запускаю oracle-xe-11g на rancher os. Я хочу взять резервную копию данных моей БД. Когда я попытался с помощью командыКак взять резервную копию Oracle-xe-11g из запущенного контейнера Docker

docker exec -it $Container_Name /bin/bash 

я вошел:

exp userid=username/password file=test.dmp 

Он работает нормально, и он создал файл test.dump.

Но я хочу запустить команду с помощью команды docker exec. Когда я попробовал эту команду:

docker exec $Container_Name sh -C exp userid=username/password file=test.dmp 

Я получаю сообщение об ошибке: sh: 0: Can't open exp.

+0

если заменить ш на Баш в ваша команда? – user2915097

+0

Мне нужно ваше изображение, чтобы я мог запускать тесты. –

+0

docker run -d --name Oracle-DB -p 49160: 22 -p 1521: 1521 -e ORACLE_ALLOW_REMOTE = true wnameless/oracle-xe-11g Эта команда, которую я запускаю для Oracle db – Ritcha12

ответ

2

Проблема заключается в том: При работе bash с -c переключателем он не работает как интерактивный или Войти оболочки так bash вона» t читать одни и те же сценарии запуска. Все, что установлено в /etc/profile, ~/.bash_profile, ~/.bash_login, или ~/.profile будет пропущено.

Обход:

запустить ваш контейнер с помощью следующей команды:

sudo docker run -d --name Oracle-DB -p 49160:22 -p 1521:1521 -e ORACLE_ALLOW_REMOTE=true -e ORACLE_HOME=/u01/app/oracle/product/11.2.0/xe -e PATH=/u01/app/oracle/product/11.2.0/xe/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin -e ORACLE_SID=XE -e SHLVL=1 wnameless/oracle-xe-11g 

Что я делаю задание переменной среды, установленные в контейнере с использованием docker.

Теперь для создания файла резервной копии:

sudo docker exec -it e0e6a0d3e6a9 /bin/bash -c "exp userid=system/oracle file=/test.dmp" 

Пожалуйста, обратите внимание на файл будет создан в контейнере, так что вам нужно, чтобы скопировать его в докер хозяина через docker cp command

+1

Точная ошибка? –

+0

попытался с дорогой к exp получить ошибку Сообщение 206 не найдено; Нет файла сообщений для продукта = RDBMS, fВертифицировать, что ORACLE_HOME правильно установлен Экспорт завершен неудачно EXP-00000: Сообщение 0 не найдено; Нет файла сообщения для продукта = RDBMS, объект = EXP [rancher @ ip-172-31-27-83 ~] $ затем попытался установить ORACLE_HOME. но опять ошибка. , тогда я написал скрипт внутри контейнера и успешно его выполнил. и если я попробую то же самое вместе с командой, то его не работает команда: docker exec -it $ Container_Name bash -C "patth/to/script" То же самое выше ошибки, я получаю – Ritcha12

+0

Нет, ошибка Сообщение 206 не найденный; Нет файла сообщений для продукта = RDBMS, объект = EXP: Release 11.2.0.2.0 - производство Ср Дек 1 10:40:55 +2016 Copyright (с) 1982, 2009, Oracl Неверный формат имени утилиты экспорта Убедитесь, что ORACLE_HOME правильно установлена ​​ Экспорт завершается неудачно EXP-00000 : Сообщение 0 не найдено; Нет файла сообщения для продукта = RDBMS, объект = EXP [rancher @ ip-172-31-27-83 ~ – Ritcha12