crontab呼叫oracle的shell指令碼注意事項
直接在linux上執行shell指令碼時,oracle使用者是有這個環境變數的。但是crontab執行時,是沒有使用者的環境變數,所以需要在指令碼中設定。
所以必須指定如下ORACLE_SID和ORACLE_HOME和PATH變數,否則會報錯, 而有沒有#!/bin/sh倒是沒什麼關係
沒有#!/bin/sh則按預設的預設shell中執行,檢視預設的shell命令是 echo $SHELL
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_SID=TESTDB
缺少ORACLE_HOME,在crontab中去掉>>/dev/null 2>&1並讓crontab執行,會發現在/var/spool/mail/oracle下會有如下報錯
Message file RMAN<lang>.msb not found
Verify that ORACLE_HOME is set properly
而缺少ORACLE_SID則在crontab對應的指令碼的寫入日誌中會有如下資訊
RMAN-04005: error from target database:
ORA-12162: TNS:net service name is incorrectly specified
注:
並不是所有的oracle下的指令碼都需要ORACLE_HOME和ORACLE_SID,只有涉及ORACLE資料庫資訊的才需要這兩個變數如sqlplus和rman
lsnrctl命令不需要ORACLE_HOME和ORACLE_SID兩個變數
所以必須指定如下ORACLE_SID和ORACLE_HOME和PATH變數,否則會報錯, 而有沒有#!/bin/sh倒是沒什麼關係
沒有#!/bin/sh則按預設的預設shell中執行,檢視預設的shell命令是 echo $SHELL
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_SID=TESTDB
缺少ORACLE_HOME,在crontab中去掉>>/dev/null 2>&1並讓crontab執行,會發現在/var/spool/mail/oracle下會有如下報錯
Message file RMAN<lang>.msb not found
Verify that ORACLE_HOME is set properly
而缺少ORACLE_SID則在crontab對應的指令碼的寫入日誌中會有如下資訊
RMAN-04005: error from target database:
ORA-12162: TNS:net service name is incorrectly specified
注:
並不是所有的oracle下的指令碼都需要ORACLE_HOME和ORACLE_SID,只有涉及ORACLE資料庫資訊的才需要這兩個變數如sqlplus和rman
lsnrctl命令不需要ORACLE_HOME和ORACLE_SID兩個變數
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30126024/viewspace-2140157/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [20210330]bash使用source or ..呼叫shell指令碼注意txt指令碼
- Oracle使用*的注意事項Oracle
- java呼叫kotlin注意事項JavaKotlin
- 如何呼叫python中的shell指令碼?Python指令碼
- Windows Server Oracle 19c 19.3 RMAN使用RUN指令碼時TAG關鍵字的注意事項WindowsServerOracle指令碼
- Oracle 資料匯出注意事項Oracle
- Oracle臨時表使用注意事項Oracle
- 注意shell指令碼中ps -ef|grep的坑指令碼
- iOS 程式碼注意事項iOS
- Oracle:記憶體設定注意事項Oracle記憶體
- Linux Crontab Shell指令碼實現秒級定時任務Linux指令碼
- shell指令碼放到crontab裡就執行不成功的問題指令碼
- 【ASM】Oracle asm刪除磁碟組注意事項ASMOracle
- Oracle資料庫表設計時的注意事項Oracle資料庫
- 低程式碼和無程式碼的注意事項
- go 呼叫 shell 指令碼 如何傳遞引數Go指令碼
- Oracle vs PostgreSQL,研發注意事項(6)- 事務處理OracleSQL
- Bash Shell指令碼中的陣列使用例項指令碼陣列
- RandomAccessFile注意事項randomMac
- @Lombok注意事項Lombok
- 使用Python和Java呼叫Shell指令碼時的死鎖陷阱PythonJava指令碼
- 換工作的注意事項
- PureComponent 使用注意事項以及原始碼解析原始碼
- Oracle vs PostgreSQL,研發注意事項(2)-DDL語句與事務OracleSQL
- Oracle vs PostgreSQL,研發注意事項(5)- 字元型別OracleSQL字元型別
- Oracle vs PostgreSQL,研發注意事項(12) - NULL與索引OracleSQLNull索引
- Oracle vs PostgreSQL,研發注意事項(13) - UPDATE語句OracleSQL
- 編寫ORACLE效能報告的九大注意事項(轉載)Oracle
- 【exp/imp不同版本】Oracle不同版本的exp/imp使用注意事項Oracle
- shell指令碼指令碼
- SQL 語句的注意事項SQL
- C++ queue的注意事項C++
- 函式注意事項函式
- 生產注意事項
- 電量注意事項
- CSP 考前注意事項
- 快取注意事項快取
- JavaScript的程式碼編寫注意事項,建議收藏!JavaScript
- Oracle vs PostgreSQL,研發注意事項(8)- Oracle資料比較規則OracleSQL