dbca、netca 配置正常listener.ora、tnsnames.ora 文件正確$ORACLE_HOME/bin/lsnrctl 文件大小為 0 字節(空文件)ORA-12547: TNS:lost contactOracle 11g 在 Linux 下依賴的系統庫(rpm 包)缺失,導致 lsnrctl 等關鍵二進制文件安裝時未正確鏈接/生成,產生空文件。
# 必裝包清單
yum install -y \
binutils compat-libcap1 compat-libstdc++-33 \
gcc gcc-c++ glibc glibc-devel ksh \
libaio libaio-devel libgcc libstdc++ libstdc++-devel \
libXi libXtst make sysstat \
unixODBC unixODBC-devel
yum 命令。cd $ORACLE_HOME/bin
relink all
# 或單獨重鏈接監聽
relink tns
ls -lh $ORACLE_HOME/bin/lsnrctl
# 應顯示正常大小(約 20-30MB)
file $ORACLE_HOME/bin/lsnrctl
# 輸出:ELF 64-bit LSB executable...
lsnrctl start
lsnrctl status
./runInstaller -executeSysPrereqsoracle-database-preinstall-11g RPM 一鍵配置內核參數與依賴包。$ORACLE_HOME/install/make.log 記錄鏈接過程,異常時首查此日誌。| 場景 | 典型原因 |
|---|---|
| lsnrctl 為空/損壞 | 依賴包缺失導致二進制生成失敗(本文案例) |
| 監聽進程啟動即死 | 端口衝突、listener.ora 語法錯誤、SELinux 阻擋 |
| 客戶端連接超時 | 防火牆攔截、tnsnames.ora IP 錯誤、網絡不通 |
遇到 lsnrctl 空文件,**補依賴 + relink** 是標準修復動作,切勿嘗試手動複製他機二進制(庫版本不匹配會引發更多崩潰)。