Цель:
По расписанию.
1. Остановить базу
2. Поместить в архив
3. Переписать на другой сервер
4. Запустить базу
Для этого хочу использовать crontab + скрипт, по аналогии с тем, как делалось на Windows машине.
Проблема в том, что все администрирование баз Oracle производится пользователем oracle, а crontab запускает задания как root (если я правильно понял описание работы crontab).
Написал скрипт (пока только пытаюсь остановить базу), пытался протестировать (просто запуская из командной строки).
#su oracle
export ORACLE_SID=itest9i
/opt/oracle/product/9iR2/bin/sqlplus /nolog < /home/oracle/orashut.sql > /home/oracle/orashutlog.txt
export ORACLE_SID=itest9i
/opt/oracle/product/9iR2/bin/sqlplus /nolog < /home/oracle/orastart.sql > /home/oracle/orastartlog.txt
1. Под пользователем root не работает.
2. Если раскомментировать строку с su тоже не работает.
Результат почти одинаков. Лог файл:
SQL> ERROR:
ORA-09925: Unable to create audit trail file
Linux Error: 13: Permission denied
Additional information: 9925
ORA-01017: invalid username/password; logon denied
SQL> ORA-01012: not logged on
3. Если сначала вручную переключится к пользователю oracle, то скрипт работает.
Помогите пожалуйста со скриптом. Я Linux очень плохо знаю, но надо сделать.
ЗЫ: Я знаю, что есть rman (утилита архивирования от oracle), но разбираться мне с ним дольше и "польза от него/затраты на настройку и использование" для нас минимальна. Поэтому просто хочется сделать, как было на Windows машине.