实例启动模式和关闭模式

Red*_*227 2 oracle instance shutdown

所以,我知道实例有 3 种启动模式可用,即 NOMOUNT、MOUNT 和 OPEN。我想知道的是在 NOMOUNT 模式下,它声明实例已启动但仍未与数据库关联,那么谁激活实例?是数据库本身还是其他东西?

如果我使用该命令,shutdown那么是只有实例关闭了还是数据库也关闭了?

提前致谢!

Mat*_*Mat 6

可以这样想:

  • 数据库是磁盘上的一组物理文件。这是一个完全被动的“东西”。它本身不会“做”任何事情——它只是数据。
  • 实例是管理数据库的软件/进程(及其内存)。这是活跃的部分。它是客户端连接的对象,它处理 SQL、读取数据、更新数据、维护事务日志等。

当您从 开始时nomount,您将启动实例(启动一些进程,创建内存区域),但实际上并不去查看数据库。您将在内存中准备好安装数据库,或者执行您在该状态下可以执行的少数维护操作(例如创建数据库),仅此而已。此时数据库完全无法访问。

当您mount读取控制文件(包含数据库文件的描述)时,但数据库仍未打开。即您无法访问数据本身。

只有您最终获得open了数据库,客户端才能开始与数据库进行交互。

使用 RAC 时,事情变得有点复杂,但原理是一样的:数据库只是一组文件。实例允许您与数据库进行交互。

关闭以相反的方向进行。对于正常的非 RAC 关闭,实例会刷新所有尚未保存在数据库中的内存数据,并关闭数据库文件。客户端无法再访问数据。
然后实例卸载数据库,关闭控制文件。在这一点上,您剩下的东西与实例中的几乎相同nomount- 一组不能真正做太多事情的进程和内存。
最后一步是实际关闭:内存区域被释放回操作系统,进程死亡,这是该实例的结束。

数据库不会永远做任何事情。的实例是系统中唯一的活性部分。

有关更深入的视图,请参阅Oracle 数据库实例。它概述了启动和关闭顺序以及其他基本信息。