对于Oracle,我们是将实例挂载到数据库还是将数据库挂载到实例?

Jus*_*ner 7 oracle instance

以下文字摘自 oracle 文档。

启动实例,并挂载和打开数据库。这可以在无限制模式下完成,允许所有用户访问,或在限制模式下,仅允许数据库管理员访问。

....

要将数据库挂载到先前启动但未打开的实例,请使用 SQL 语句 ALTER DATABASE 和 MOUNT 子句,如下所示:

更改数据库挂载;

您可以直接从http://download.oracle.com/docs/cd/B19306_01/server.102/b14231/start.htm阅读

第一部分给我的印象是我们正在将实例安装到数据库。但是这To mount a database to a previously started, but not opened instance部分给我的印象是我们正在将数据库安装到实例。

哪一种理解是对的?任何人都可以帮忙解释一下吗?

谢谢

Ale*_*ole 12

我们正在将数据库安装到实例。请参阅概念指南

该实例装载一个数据库以将该数据库与该实例相关联。

我看到它解释的一种方式(可能在这里或在 SO 上)是实例是内存结构和进程,而数据库是磁盘上的数据。该实例必须有一个与之关联的数据库才能执行任何有用的操作。

  • +1。无论哪种方式,数据库和实例都会被附加。但是有可能(在 RAC 中)多个实例打开同一个数据库。 (2认同)

Lei*_*fel 5

考虑到我们应用于 mount 一词的心理模型,我可以理解为什么这可能会令人困惑。将 mount 视为一个抽象的 Oracle 术语并仅适用于软件实际执行的操作可能会有所帮助。以下是实例和数据库启动的阶段:

关掉

无挂载

  • 读取初始化文件中的参数。
  • 分配内存。
  • 启动后台进程。
  • 打开警报日志。

  • 打开并读取控制文件。

打开

  • 打开数据文件和日志文件。
  • 验证数据文件的一致性。

说一个实例挂载了一个数据库,只不过是控制文件被打开和读取了。此时在内存中,它了解数据库,但数据文件、重做日志以及数据库尚未打开。

已经引用了 Oracle 概念指南,但这里是相同的 11.2 版本。 http://download.oracle.com/docs/cd/E11882_01/server.112/e16508/startup.htm#CNCPT602