一、启动
1、数据库启动步骤
1)通过sysdba用户身份登录:sqlplus "as sysdba"
2)执行启动命令:startup
2、启动的几种状态:
1)nomount:只启动数据库实例
2)mount:启动实例并加载数据文件
3)open:启动数据库实例,加载数据文件并打开(默认是加载到open状态)
open也有两种情况:
open read only:只读模式打开数据库
open read write:读写模式打开数据库(默认是此状态)
4)force:也是启动到open状态,区别在于默认使用open选项,如果数据库已处于启动状态,会报ORA-01081错误,而force则是不会报错,默认会先shutdown abort数据库,然后再startup,可理解为重启。
5)restrict:启动数据库,与open的区别在于只有拥有restricted session权限的用户才能登陆到数据库
3、分步骤启动数据
nomount--mount---open
1)startup nomount
2)alter database mount;
3)alter database open;
注:数据库未处于open状态时,只有sysdba或sysoper 权限的账号或者以操作系统认证登陆外,其他用户无法登录,登录会报ORA-01033
ERROR:
ORA-01033: ORACLE initialization or shutdown in progress
Process ID: 0
Session ID: 0 Serial number: 0
4、启动状态查询
启动状态 | SQL语句 | 结果 |
nomount | select status from v$instance; | STARTED |
select open_mode from v$database; | ERROR at line 1: ORA-01507: database not mounted | |
mount | select status from v$instance; | MOUNTED |
select open_mode from v$database; | MOUNTED | |
open | select status from v$instance; | OPEN |
select open_mode from v$database; | READ WRITE 或者 READ ONLY |
二、停止
1、数据库启动步骤
1)通过sysdba用户身份登录:sqlplus "as sysdba"
2)执行启动命令:shutdown immediate
常用的就是immediate,其实际有以下操作:
1)所有未提交的事务全部回滚
2)不允许创建新的连接
3)已经创建连接的,如果正在执行SQL语句,则等待其执行完成,如果没有执行则立刻断开连接
4)关闭数据库、卸载数据库、关闭实例
三、FAQ
1、startup nomount 出现ORA-00443: background process "DIAG" did not start,startup mount则正常
待解决