Linux上Oracle数据库启动

Linux上Oracle数据库启动

1、打开oracle监听
切换到oracle用户,
su oracle
lsnrctl status
进入目录/u01/app/oracle/product/11.2.0/dbhome_1/network/admin/,
修改listener.ora文件。注意这个目录因具体服务器而异。
Linux上Oracle数据库启动
Linux上Oracle数据库启动
lsnrctl start
成功提示如下:
Linux上Oracle数据库启动

过程中我遇到另一个问题Linux中Oracle启动监听报错TNS:permission denied的解决方法:
root用户可以监听,oracle用户报如下错(我的解决了截不了图,以下来自网上)
[[email protected] ~]$ lsnrctl start
LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 27-MAR-2015 15:37:59
Copyright © 1991, 2009, Oracle. All rights reserved.
Starting /u01/app/oracle/product/11.2.0/dbhome_1/bin/tnslsnr: please wait…
TNSLSNR for Linux: Version 11.2.0.1.0 - Production
System parameter file is /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
Log messages written to /u01/app/oracle/diag/tnslsnr/oracle/listener/alert/log.xml
Error listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
TNS-12555: TNS:permission denied
TNS-12560: TNS:protocol adapter error
TNS-00525: Insufficient privilege for operation
Linux Error: 1: Operation not permitted
Listener failed to start. See the error message(s) above…

解决方案

出现这个错误是由于没有 /var/tmp/.oracle 的读写权限引起的。由于开发环境没有严格管理,不知道哪位同学把此目录的所有者改成了root,导致 oracle 用户没有权限操作此目录。使用下面方式修正过来即可。

cd /var/tmp
    chown oracle .oracle
    chgrp oinstall .oracle
    chmod 777 .oracle

2、进入sqlplus
输入命令:sqlplus /nolog

3、使用角色登录
SQL>conn as sqldba
Enter user-name:
这里可以用以下角色登录(密码为默认):
system默认:manager
sys默认:change_on_install
使用PL/SQL Plus登录数据库时,system用户使用密码manager可直接登录。
但如果是sys用户,密码必须加上as sysdba,即sys用户使用密码change_on_install as sysdba才可登录。

4、启动oracle数据库服务
SQL>startup

成功实例:
Linux上Oracle数据库启动

5、关闭监听
退出sqlplus模式,输入命令:SQL>exit
然后输入命令 lsnrctl stop 即可关闭监听

数据库关闭的时候是先关闭监听,在关闭数据库。

6、关闭数据库实例
SQL>shutdown
orcl数据库的关闭:
a.shutdown的参数
Normal 需要等待所有的用户断开连接
Immediate 等待用户完成当前的语句
Transactional 等待用户完成当前的事务
Abort 不做任何等待,直接关闭数据库
normal需要在所有连接用户断开后才执行关闭数据库任务,所以有的时候看起来好象命令没有运行一样!在执行这个命令后不允许新的连接
immediate在用户执行完正在执行的语句后就断开用户连接,并不允许新用户连接。
transactional 在拥护执行完当前事物后断开连接,并不允许新的用户连接数据库。
abort 执行强行断开连接并直接关闭数据库。

  • 一般情况下使用shutdown immediate命令关闭数据库。