ORA-12547經典錯誤處理
ORA-12547經典錯誤處理
今天上午10:30左右,領導告知我,讓我幫一同事將ORACLE安裝下,他在安裝的過程中出現了問題,報錯,無法繼續安裝。
一、由於NLS_LANG設定錯誤,導致ora-12547錯誤
我過去看了看,發現在AIX5.3系統中使用DBCA建庫到最後一步點完成後立即就出現了ORA-12547 tns lost connect 這個錯誤,當時感覺挺蹊蹺的,隨後對系統的環境做了詳細檢查,非同步IO是開啟來的,HOST檔案也是正常的,引數檔案貌似也沒有太大的問題,ulimit限制也都改成了-1; 也沒有發現有明顯的問題,安裝日誌裡面是已經告訴說是作業系統環境不滿足。當時實在是查不出來到底是什麼原因導致就把之前安裝的DBSOFT給刪除了,重新進行DBSOFT的安裝和建庫,DBSOFT的安裝中沒有報任何錯,到最好還是一樣的問題,只好再次進行再次的檢查,發現了在oracle使用者環境配置檔案裡[db:oracle]$cat~/.profile裡發現了NLS_LANG=ZHS16GBK這個引數,後面想想看這個引數並不是必須的,而且有可能會導致安裝的時候報錯,隨即將其禁用掉,引數檔案如下:$ cat .profile
PATH=/usr/bin:/etc:/usr/sbin:/usr/ucb:$HOME/bin:/usr/bin/X11:/sbin:.
export PATH
if [ -s "$MAIL" ] # This is at Shell startup. In normal
then echo "$MAILMSG" # operation, the Shell checks
fi # periodically.
ORACLE_BASE=/oracle
ORACLE_SID=orcl
ORACLE_HOME=$ORACLE_BASE/app/10.2.0/db_1
#NLS_LANG=ZHS16GBK
PATH=$ORACLE_HOME/bin:$PATH:
export ORACLE_BASE ORACLE_SID ORACLE_HOME PATH
$
將其禁用後,再次DBCA建庫,故障沒有再重現,成功建庫。
二、dbca建庫出現這個問題,後面在網上搜尋了下,基本上是由如下四種原因導致:
1、非同步IO導致dbca報ORA-12547
解決辦法:
AIX:
a、smitty chaio (只有AIX 5系列支援)
b、把STATE to be configured at system restart 設定成available
c、再次執行DBCA建立成功
HP-UNIX 可以參考(Metalink Note:139272.1)
a. 建立aio字元裝置
# /sbin/mknod /dev/async c 101 0x0
# chown oracle:dba /dev/async
# chmod 660 /dev/async
b.用sam調整核心引數
-> Kernel Configuration
-> Drivers
-> 選擇'asyncdsk'
-> Actions>Add Driver to Kernel. (此時pending state由out變為in狀態)
-> Kernel Configuration
-> Configurable Parameters
-> max_async_ports
設定為初始化檔案中的'processes'值+oracle後臺程式數 (根據v$bgprocess,單例項後臺程式數最多為78個)
c. 用sam設定aio_max_ops
-> Kernel Configuration
-> Configurable Parameters
-> aio_max_ops
-> 可設定為預設值2048
以上配置,主機需重構核心,重啟.
d. 設定oracle使用者必須有MLOCK許可權。
a. 設定dba組的MLOCK的許可權
roolt#setprivgrp dba MLOCK
b. 避免重啟後失效,需要設定:
vi /etc/privgroup 新增如下行:
dba MLOCK
e.檢查一下aio是否生效了
#fuser /dev/async
有程式列出來說明aio已經生效了。
2、ulimit預設值沒有修改
解決辦法:
Linux
a、修改limits引數檔案,新增如下內容
vi /etc/security/limits.conf
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
AIX
a、修改limits引數檔案,在最後如下新增如下內容:(注:-1為無限制使用)
vi /etc/security/limits
default:
fsize = -1
core = 2097151
cpu = -1
data = 262144
rss = 65536
stack = 65536
nofiles = 2000
root:
daemon:
bin:
sys:
adm:
uucp:
guest:
nobody:
lpd:
oracle:
data = -1
stack = -1
3、Linux 下SELinux配置不正確,解決辦法
a、用root使用者登入系統執行 setenforce 0 (不需要重啟)
b、修改/etc/selinux/config檔案中的SELINUX="" 為 disabled ,需要重啟
4、libaio(x86_64) is not installed(同AIX一樣,是開啟非同步IO,在Linux下打這個包)
解決辦法:
a、插入作業系統安裝光碟
b、root使用者登入系統掛載作業系統安裝光碟:
#mount -t iso9660 /dev/cdrom /mnt
#cd /mnt/Server
c、檢查並安裝libaio包,執行如下命令
#rpm -qa| grep -i ^libaio
#rpm -ivh libaio-*.i386.rpm
#rpm -ivh libaio-*.x86_64.rpm
d、檢查剛才安裝的包是否成功
#rpm -qa | grep ^libaio
e、再次執行安裝,問題解決
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/20674423/viewspace-720851/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 錯誤處理
- 經典的編譯錯誤 (轉)編譯
- PHP 錯誤處理PHP
- php錯誤處理PHP
- Go 錯誤處理Go
- Swift錯誤處理Swift
- Zabbix錯誤處理
- mysqldump錯誤處理MySql
- 詞典及容錯處理
- 錯誤處理:如何通過 error、deferred、panic 等處理錯誤?Error
- PHP錯誤處理和異常處理PHP
- go的錯誤處理Go
- Python錯誤處理Python
- 異常錯誤資訊處理
- PHP 核心特性 - 錯誤處理PHP
- 常用模組 PHP 錯誤處理PHP
- laravel9 錯誤處理Laravel
- 淺談前端錯誤處理前端
- Oracle異常錯誤處理Oracle
- ORACLE 異常錯誤處理Oracle
- 15-錯誤處理(Error)Error
- 學習Rust 錯誤處理Rust
- axios 的錯誤處理iOS
- Go語言之錯誤處理Go
- GOLANG錯誤處理最佳方案Golang
- Objective-C:錯誤處理Object
- javascript之處理Ajax錯誤JavaScript
- 搭建dataguard時,錯誤處理
- Oracle錯誤處理思路(一)Oracle
- COM的錯誤處理 (轉)
- 使用PHP錯誤處理 (轉)PHP
- openGauss 處理錯誤表
- Python錯誤處理和異常處理(二)Python
- 【故障處理】CRS-1153錯誤處理
- 【故障處理】ORA-19809錯誤處理
- rust學習十、異常處理(錯誤處理)Rust
- Java經典例項:處理單個字串Java字串
- iOS筆記--StoryBoard認識與經典錯誤iOS筆記