oracle centos 重启后报错ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
一、查看监听状态lsnrctl start
二、经过sqlplus / as sysdba
,执行startup
来启动数据库,发现报错,initORCL.ora不存在。
三、进入对应目录,打开spfileorcl.ora
,发现db_name=orcl
,
四、查看环境变量 cat ~/.bash_profile
,发现ORACLE_SID=ORCL
五、conn / as sysdba
,而后startup nomount
startup nomount
选项启动实例,但不安装数据库。当数据库以这个模式启动时,参数文件被读取;后台进程和内存结构被启动;但它们不被附加或与数据库的磁盘结构进行通讯。当实例处于这个状态时,数据库是不可以使用的。
一般启动到这里能够作create database
,create or recreate control file
或者是mount standby database
等动做,修改parameter
也是能够的。
六、alter database mount
; alter database open;
oracle数据库启动分三个步骤:nomount
,mount
,open
; 而startup
是数据库从开始阶段的启动,须要通过上述三个步骤。alter database open
是数据库处于mount
状态,从mount
状态打开数据库的命令。所以,执行startup nomount
,alter database mount
; alter database open
;正是依次执行启动数据库
七、show parameter name
;
经过该命令能够查看数据库一些参数,从而判断是不是由于参数配置问题致使。
八、发现oracleName
等参数为orcl
九、vi ~/.bash_profile
将ORACLE_SID
的值改成小写,即orcl
,并执行source ~/.bash_profile
来使得配置生效。
十、修改ORACLE_HOME下network/admin
下的listener.ora
与客户端对应的tnsnames.ora
十一、重启监听lsnrctl start
十二、登陆数据库:sqlplus system/oracle@//localhost:1521/orcl;
sql