数据库的启动
数据库的启动过程就像操作系统的一样,不是一蹴而就的,也分为了几个过程来完成。可以简单的概括为以下三步:启动实例、挂载数据库、打开数据库。因此启动数据库的时候就有了以下三种情况:
1) STARTUP NOMOUNT
NOMOUNT 选项仅仅启动一个Oracle实例,没有完成数据库的启动。因此采用这种方式的话,后续想要完整的启动数据库,就需要采用ALTER DATABASE命令来执行装载和打开数据库的操作,ALTER DATABASE MOUNT,ALTER DATABASE OPEN。
2) STARTUP MOUNT
STARTUP MOUNT 命令启动实例并装载数据库,已经进行到了第二步,所以如果采用这种方式的话,就要用ALTER DATABASE OPEN命令将已装载的数据库打开完成第三步。
3)STARTUP
STARTUP 命令完成启动实例、装载数据库和打开数据库
数据库的停止
关闭(SHUTDOWN)一个数据库有四种方式,分别是SHUTDOWN NORMAL、SHUTDOWN IMMEDIATE、SHUTDOWN TRANSACTIONAL、SHUTDOWN ABORT。但是实际使用中最常用的是前两种。
1)SHUTDOWN NORMAL
执行SHUTDOWN NORMAL相当于执行SHUTDOWN 。执行该命令后,不允许新的连接连到数据库,在数据库关闭之前,Oracle将等待已连接的所有用户从数据库退出后才开始关闭数据库。采用这种方式关闭数据库下次启动时不需要在进行任何实例恢复,这种方式很安全。
2)SHUTDOWN IMMEDIATE
该命令是常用的一种关闭数据库的方式,发出该命令后会立即中断正在被Oracle处理的SOL语句。系统不会等待连接到数据库的所有用户退出系统,而会强行回滚当前所有的活动事务,然后断开所有的连接用户,这个过程类似于直接断电。个人来说,不建议使用这种方式,太暴力了。
总结拓展:
linux中的重启命令和上面所讲的关闭数据库的命令有异曲同工之妙,比如1、reboot是强制关机重启,不管当前系统上有没有其他用户在使用,有可能会造成数据丢失,类似于直接拔电源;2、shutdown相比于reboot命令更为温和,它可以安全的关闭或重启系统,甚至还有提示。
3)SHUTDOWN TRANSACTIONAL
该命令常用来计划关闭数据库,他会等待当前连接到系统且正在活动的事务执行完毕,运行该命令后,任何选新的连接和事物都是不允许的。在所有活动的事物执行完成后,数据库将以和SHUTDOWN IMMEDIATE同样的方式关闭数据库。
·
4)SHUTDOWN ABORT
该命令是关闭数据库最后的选择,是在没有任何办法关闭数据库的情况下不得不采用的方法,一般不要采用。这是救命的命令。