日期:2014-05-16  浏览次数:20706 次

linux 下启动停止Oracle

oracle数据库是重量级的,其管理非常复杂,将其在linux平台上的启动和关闭步骤整理一下。?

安装完毕oracle以后,需要创建oracle系统用户,并在/home/oracle下面的.bash_profile添加几个环境变量:ORACLE_SID,ORACLE_BASE,ORACLE_HOME。比如:?

export ORACLE_SID=test export ORACLE_BASE=oracle_install_dir export ORACLE_HOME=xxx?

启动步骤:注意$代表shell命令提示符,这里的oracle是9.0以上版本。?

$ su - oracle?
$ sqlplus /nolog?
sql> conn / as sysdba?
sql> startup (一般不需要加参数,只要设置好环境变量)?
sql> quit (退出sql模式)?
$ lsnrctl start (启动监听器)关闭oracle?
$ lsnrctl stop(关闭监听器,在这之前,应该先关闭应用程序)?
$ sqlplus /nolog?
sql>shutdown 其参数 :shutdown有四个参数,四个参数的含义如下:?
Normal 需要等待所有的用户断开连接?
Immediate 等待用户完成当前的语句?
Transactional 等待用户完成当前的事务?
Abort 不做任何等待,直接关闭数据库?
normal需要在所有连接用户断开后才执行关闭数据库任务,所以有的时候看起来好象命令没有运行一样!在执行这个命令后不允许新的连接?
immediate在用户执行完正在执行的语句后就断开用户连接,并不允许新用户连接。?
transactional 在拥护执行完当前事物后断开连接,并不允许新的用户连接数据库。?
abort 执行强行断开连接并直接关闭数据库。?
前三种方式不回丢失用户数据。第四种在不的已的情况下,不建议采用!?
经常遇到的问题:?

1)权限问题,解决方法,切换到oracle用户;?

2)没有关闭监听器 ,解决方法:关闭监听器?

3)有oracle实例没有关闭,解决办法:关闭oracle实例?

4)环境变量设置不全,解决办法:修改环境变量?


Oracle数据库的启动和关闭方式小结?

Oracle数据库的启动和关闭方式?

一、几种启动方式:?

1、startup nomount?
非安装启动,这种方式启动下可执行:重建控制文件、重建数据库?
启动instance,即启动SGA和后台进程,这种启动只需要init.ora文件。?
2、startup mount dbname?
安装启动,这种方式启动下可执行:数据库日志归档、数据库恢复、重新命名一些数据库文件?
如:系统表空间或日志文件。?
执行“nomount”,然后打开控制文件?
3、startup open dbname?
先执行“nomount”,然后执行“mount”,再打开包括Redo log文件在内的所有数据库文件,?
这种方式下可访问数据库中的数据。?
4、startup,等于以下三个命令?
startup nomount?
alter database mount?
alter database open?
5、startup restrict?
约束方式启动?
这种方式能够启动数据库,但只允许具有一定特权的用户访问?
非特权用户访问时,会出现以下提示:?
ERROR:?
ORA-01035: ORACLE 只允许具有 RESTRICTED SESSION 权限的用户使用?
6、startup force?
强制启动方式?
当不能关闭数据库时,可以用startup force来完成数据库的关闭?
先关闭数据库,再执行正常启动数据库命令?
7、startup pfile=参数文件名?
带初始化参数文件的启动方式?
先读取参数文件,再按参数文件中的设置启动数据库?
例:startup pfile=E:\Oracle\admin\oradb\pfile\init.ora?
8、startup EXCLUSIVE?

二、几种关闭方式:?

1、shutdown normal?
正常方式关闭数据库。?
2、shutdown immediate?
立即方式关闭数据库。?
在SVRMGRL中执行shutdown immediate,数据库并不立即关闭,?
而是在Oracle执行某些清除工作后才关闭(终止会话、释放会话资源),?
当使用shutdown不能关闭数据库时,shutdown immediate可以完成数据库关闭的操作。?
3、shutdown abort?
直接关闭数据库,正在访问数据库的会话会被突然终止,?
如果数据库中有大量操作正在执行,这时执行shutdown abort后,重新启动数据库需要很长时间