在切换到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数据库。但这种方法仅限于当前的进程,退出该进程在启动数据库就不行了。