У меня есть два Linux-сервера A(локальный) и B(удаленный), между которыми установлен SSH-ключ. Я пытаюсь сделать следующее в моем сценарии оболочки (файл .sh)
- Сделайте EXPDP на локальном сервере А, сгенерируйте файл .dmp.
- Передача этого файла с локального сервера A на удаленный сервер B через SSH
- Затем переместите этот файл в другую папку на самом удаленном сервере B.
- Выполните IMPDP с локального сервера A на удаленном сервере B, чтобы загрузить файл дампа (который уже был там через шаги 2 и 3) в базу данных удаленного сервера B.
Что работает: перемещение файла dmp из одной папки в другую на удаленном сервере B с локального сервера A.
ssh user@remoteServerB /bin/bash <<EOF
mv /path1/file /path2/file
EOF
Что не работает - вызов impdp для запуска на удаленном сервере B с локального сервера A
ssh user@remoteServerB /bin/bash <<EOF1
impdp userid=${DBUSERNAME}/${DBPASSWORD}@${ORACLE_SID} tables=${TBL_LIST} directory=dir_name dumpfile=dbdump_${PRCSSDT}.dmp logfile=data_pump_dir:dblog_${PRCSSDT}.log table_exists_action=replace
EOF1
Я также попытался поместить команду impdp в файл .sh на удаленном сервере B и запустить как следует с локального сервера A, но безуспешно.
ssh user@remoteServerB /path/load_dmp.sh
Я получаю impdp: command not found
Пожалуйста, дайте мне знать, если вы найдете какой-либо выход, я много пробовал, но не могу взломать это.