windows平台下,oracle 中组成实例的后台进程是由oracle 服务派生出来的线程实现的,所以任务管理器看不见DBWn 之类的后台进程 (linux 平台下 用ps aux 命令是可以看见的)。
shutdown 停掉实例过程,是关闭后台进程(这里对应线程)和释放SGA 内存。因为关闭的是线程,所以在任务管理器中看不出变化。
oracle 进程是用来派生后台线程的服务进程,尽管他还在,实际上oracle 实例已经停止了。
停掉oracle 服务,才能停掉oracle 进程。
数据库的关闭(SHUTDOWN)
对于数据库的关闭,有四种不同的关闭选项,下面对其进行一一介绍。
1、SHUTDOWN NORMAL
这是数据库关闭SHUTDOWN命令的确省选项。也就是说如果你发出SHUTDOWN这样的命令,也即是SHUTDOWN NORNAL的意思。
发出该命令后,任何新的连接都将再不允许连接到数据库。在数据库关闭之前,Oracle将等待目前连接的所有用户都从数据库中退出后才开始关闭数据库。采用这种方式关闭数据库,在下一次启动时不需要进行任何的实例恢复。但需要注意一点的是,采用这种方式,也许关闭一个数据库需要几天时间,也许更长。
2、SHUTDOWN IMMEDIATE
这是我们常用的一种关闭数据库的方式,想很快地关闭数据库,但又想让数据库干净的关闭,常采用这种方式。
当前正在被Oracle处理的SQL语句立即中断,系统中任何没有提交的事务全部回滚。如果系统中存在一个很长的未提交的事务,采用这种方式关闭数据库也需要一段时间(该事务回滚时间)。系统不等待连接到数据库的所有用户退出系统,强行回滚当前所有的活动事务,然后断开所有的连接用户。
3、SHUTDOWN TRANSACTIONAL
该选项仅在Oracle 8i后才可以使用。该命令常用来计划关闭数据库,它使当前连接到系统且oracle账号正在活动的事务执行完毕,运行该命令后,任何新的连接和事务都是不允许的。在所有活动的事务完成后,数据库将和SHUTDOWN IMMEDIATE同样的方式关闭数据库。
4、SHUTDOWN ABORT
这是关闭数据库的最后一招,也是在没有任何办法关闭数据库的情况下才不得不采用的方式,一般不要采用。如果下列情况出现时可以考虑采用这种方式关闭数据库。
1、 数据库处于一种非正常工作状态,不能用shutdown normal或者shutdown immediate这样的命令关闭数据库;
2、 需要立即关闭数据库;
3、 在启动数据库实例时遇到问题;
所有正在运行的SQL语句都将立即中止。所有未提交的事务将不回滚。Oracle也不等待目前连接到数据库的用户退出系统。下一次启动数据库时需要实例恢复,因此,下一次启动可能比平时需要更多的时间
文章归档
- 2021年11月 (79)
- 2021年10月 (102)
- 2021年9月 (77)
- 2021年8月 (97)
- 2021年7月 (94)
- 2021年6月 (92)
- 2021年5月 (72)
- 2021年4月 (114)
- 2021年3月 (91)
- 2021年2月 (84)
- 2021年1月 (94)
- 2020年12月 (94)
- 2020年11月 (83)
- 2020年10月 (90)
- 2020年9月 (84)
- 2020年8月 (101)
- 2020年7月 (100)
- 2020年6月 (85)
- 2020年5月 (97)
- 2020年4月 (93)
- 2020年3月 (99)
- 2020年2月 (79)
- 2020年1月 (102)
- 2019年12月 (87)
- 2019年11月 (106)
- 2019年10月 (100)
- 2019年9月 (102)
- 2019年8月 (88)
- 2019年7月 (90)
- 2019年6月 (94)
- 2019年5月 (99)
- 2019年4月 (97)
- 2019年3月 (86)
- 2019年2月 (90)
- 2019年1月 (94)
- 2018年12月 (116)
- 2018年11月 (9)