linux下oracle的启停

整理下供备用!

安装完毕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 (启动监听器)
注:启动有几种方式
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
   独占启动,表示只允许一个例程使用该数据库

关闭oracle
$ lsnrctl stop(关闭监听器,在这之前,应该先关闭应用程序)
$ sqlplus  /nolog
sql>shutdown 其参数 :shutdown有四个参数,四个参数的含义如下:
1、Normal 需要等待所有的用户断开连接,需要在所有连接用户断开后才执行关闭数据库任务,所以有的时候看起来好象命令没有运行一样!在执行这个命令后不允许新的连接
2、Immediate 等待用户完成当前的语句,在用户执行完正在执行的语句后就断开用户连接,并不允许新用户连接。
3、Transactional 等待用户完成当前的事务,在用户执行完当前事物后断开连接,并不允许新的用户连接数据库。
4、Abort 不做任何等待,直接关闭数据库,执行强行断开连接并直接关闭数据库。
前三种方式不会丢失用户数据。第四种在不的已的情况下,不建议采用!

经常遇到的问题:
1、权限问题,解决方法,切换到oracle用户;
2、没有关闭监听器 ,解决方法:关闭监听器
3、有oracle实例没有关闭,解决办法:关闭oracle实例
4、环境变量设置不全,解决办法:修改环境变量

你可能感兴趣的:(oracle,sql,linux,bash)