对于一个DBA来说,启动和关闭oracle数据库是常规的、基础的操作,有时候Linux管理员或者程序员也需要在开发数据库中进行一些基本的DBA操作,所以对于非DBA人员来说了解一些基础的数据库管理活动是很重要的。
本文将讨论oracle数据库的启动和关闭过程。
怎样启动oracle数据库
1.用oracle用户登陆系统
典型的oracle安装使用oracle作为用户名,dba作为组。在Linux中,输入su命令转换到oracle用户。如下:
$ su - oracle
2.用sysdba角色连接到oracle
确保已经正确的设置了ORACLE_SID和ORACLE_HOME变量,如下所示:
$ env | grep ORA
ORACLE_SID=DEVDB
ORACLE_HOME=/u01/app/oracle/product/10.2.0
使用'/ as sysdba'或者任意具有DBA权限的用户连接到oracle
$ sqlplus '/ as sysdba'
SQL*Plus: Release 10.2.0.3.0 - Production on Sun Jan 18 11:11:28 2009
Copyright (c) 1982, 2006, Oracle. All Rights Reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production
With the Partitioning and Data Mining options
SQL>
3.启动oracle数据库
默认的SPFILE文件位于$ORACLE_HOME/dbs目录下,如果你没用指定PFILE参数,oracle在启动过程中会使用SPFILE。
oracle在$ORACLE_HOME/dbs目录下以如下指定的顺序寻找参数文件,如果存在,将会使用最先找到的一个。
- spfile$ORACLE_SID.ora
- spfile.ora
- init$ORACLE_SID.ora
在SQL命令提示符下输入"STARTUP"命令启动oracle数据库,如下所示:
SQL> startup
ORACLE instance started.
Total System Global Area 812529152 bytes
Fixed Size 2264280 bytes
Variable Size 960781800 bytes
Database Buffers 54654432 bytes
Redo Buffers 3498640 bytes
Database mounted.
Database opened.
SQL>
如果你想在oracle启动时指定PFILE,把它作为参数传递给startup命令:
SQL> STARTUP PFILE=/u01/app/oracle/product/10.2.0/dbs/init.ora
怎样关闭oracle数据库
可以使用如下三种方法关闭oracle数据库:
- Normal Shutdown
- Shutdown Immediate
- Shutdown Abort
1.正常关闭
正常关闭时,在oracle数据库关闭之前,oracle将等待所有的活动用户从当前会话中断开连接,使用该方法在正常条件下关闭数据库。
SQL> shutdown
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL>
2.Shutdown Immediate
当使用Shutdown Immediate时,在oracle数据库关闭之前,oracle将回滚所有的活动事务并且断开所有的活动用户。当你没有充足的时间通知用户log-off时使用这种方法关闭数据库。
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL>
3.Shutdown Abort
当使用Shutdown abort时,在oracle数据库关闭之前,所有的用户会话被立即中断,所有未提交的事务被回滚。只在用"shutdown"和"shutdown immediate"无效时,并且情况紧急的条件下使用该方法。
$ sqlplus '/ as sysdba'
SQL*Plus: Release 10.2.0.3.0 - Production on Sun Jan 18 11:11:33 2009
Copyright (c) 1982, 2006, Oracle. All Rights Reserved.
Connected to an idle instance.
SQL> shutdown abort
ORACLE instance shut down.
SQL>