在切換到oracle用戶後,執行sqlplus / as sysdba語句時遇到下面的錯誤。 sql
[oracle@kjora-1 ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.3.0 Production on Tue Nov 24 17:28:03 2015
Copyright (c) 1982, 2011, Oracle. All rights reserved.
ERROR:
ORA-12162: TNS:net service name is incorrectly specified
Enter user-name:
解決方法:上面才錯誤表示沒有正確的設置SID值。 數據庫
修改# vi /home/oracle/.bash_profile bash
export ORACLE_SID=kjzlrtdb oracle
這裏沒有設置或者沒有設置正確 spa
保存。 進程
執行啓動Oracle命令時出現下面的錯誤 ip
SQL> startup
ORA-27102: out of memory
Linux-x86_64 Error: 28: No space left on device 內存
解決方法:出現這個問題的緣由是系統內核參數設置的共享內存大小比SGA最大值小了,解決方法能夠是調大內存參數或者調小memory_max_target和memory_target。 ci
# vi /etc/sysctl.conf get
# add by sxr
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 4194304
kernel.shmmax = 34359738368
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
保存,執行 sysctl -p 生效
調整sga的相關數值常常致使oracle沒法啓動,提示「ORA-27102: out of memory」的錯誤
現象以下: SQL> startup ORA-27102: out of memory Linux-x86_64 Error: 12: Cannot allocate memory 解決辦法: 第一步,須要修改spfilexxx.ora文件中二進制中「*.lock_sga=FALSE」和「*.pre_page_sga=FALSE」從TRUE改爲FALSE才行,使鎖定處於關閉狀態。這樣就能夠調整sga_max_size和sga_target的值,把sga相關參數調小或調回原來數值,不然調整的數值不生效。 (1)$ sqlplus / as sysdba SQL> create pfile='/home/oracle/pfile20151209.ora' from spfile; (2)$ vi /home/oracle/pfile20151209.ora *.lock_sga=FALSE *.pre_page_sga=FALSE *.pga_aggregate_target=3221225472 #調小點,或還原之前的數值 *.sga_max_size=8589934592 #調小點,或還原之前的數值 *.sga_target=8589934592 #同上 (3)讓spfile從pfile20151209.ora文件中讀取數值到spfilexxx.ora二進制文件,從而修改spfilexxx.ora的值,啓動試試。 # su – oracle $ sqlplus / as sysdba SQL> create spfile from pfile='/home/oracle/pfile20151209.ora'; SQL> startup 第二步,若啓動不了,再修改 /etc/sysctl.conf文件中「kernel.shmmax」和「kernel.shmall」的值,把值調大。 第三步,再次啓動oracle $ sqlplus / as sysdba SQL> startup 直到可以啓動爲止。 提示:這種方法是永久可行的,每次啓動oracle都沒問題。 還有個臨時的方法: 是先使用root執行命令ulimit -l unlimited(至關於把「*.lock_sga=FALSE」和「*.pre_page_sga=FALSE」從TRUE改爲FALSE),而後進入sqlplus去startup數據庫。但這種方法僅限於當前的進程,退出該進程在啓動數據庫就不行了。