数据库和实例概念区别

        ·数据库(database):物理操作系统文件或磁盘的集合。使用Oracle的自动存储管理或RAW分区时,数据库可能不作为操作系统中单独的文件,单定义仍然不变。

        即数据库就是各种文件

        ·实例(instance):一组Oracle后台进程/线程以及一个共享内存区这些内存由同一个计算机上运行的线程/进程所共享。这里可以维护易失的、非持久性内容(有些可以刷新输出到磁盘)。就算没有磁盘存储,数据库实例也能存在。也许实例不能算是世界上最有用的事物,不过你完全可以把它想成是最有用的事物,这有助于对实例和数据库划清界线。

        即实例就是各种后台进程+内存

        这两个词有时可互换使用,不过二者的概念完全不同。

        实例和数据库之间的关系是:数据库可以由多个实例装载和打开,而实例可以在任何时间点装载和打开一个数据库。实际上,准确地讲,实例在其整个生存期中最多能装载和打开一个数据库。

        实例就是一组操作系统进程(或者是一个多线程的进程)以及一些内存。这些进程可以操作数据库;而数据库只是一个文件集合(包括数据文件、临时文件、重做日志文件和控制文件)。

        在任何时刻,一个实例只能有一组相关的文件(与一个数据库关联)。大多数情况下,反过来也成立:一个数据库上只有一个实例对其进行操作。不过,Oracle 的真正应用集群(Real Application Clusters, RAC)是一个例外,这是Oracle提供的一个选项,允许在集群环境中的多台计算机上操作,这样就可以有多台实例同时装载并打开一个数据库(位于一组共享物理磁盘上)。由此,我们可以同时从多台不同的计算机访问这个数据库。 Oracle RAC能支持高度可用的系统,可用于构建可扩展性极好的解决方案。

        步骤:创建实例 -> 创建数据库

        一个实例在其生存期中最多只能装载和打开一个数据库。记住,实例仅由进程和共享内存组成。这是正常的。我们所做的就是关闭数据库,即物理文件。要想再打开这个(或其他)数据库,必须先丢弃这个实例,并创建一个新的实例。

  • 实例是一组后台进程和共享内存。
  • 数据库是磁盘上存储的数据集合。
  • 实例“一生”只能装载并打开一个数据库。
  • 数据库可以由一个或多个实例(使用RAC)装载和打开。装载一个数据库的实例数量会随时间变化。

        大多数情况下,实例和数据库之间存在一种一对一的关系。可能正因如此,才导致人们很容易将二者混淆。从大多数人的经验看来,数据库就是实例,实例就是数据库。

        不过,在许多测试环境中,情况并非如此。测试主机上任意时间点只会运行一个 Oracle实例,但是它访问的数据库每天都可能不同(甚至每小时都不同),这取决于需求。只需有不同的配置文件,我就能装载并打开其中任意一个数据库。在这种情况下,任何时刻我都只有一个“实例”,但有多个数据库,在任意时间点上只能访问其中的一个数据库。

        所以,如果有人谈到实例,指的就是Oracle的进程和内存。提到数据库时,则是说保存数据的物理文件。可以从多个实例访问一个数据库,但是一个实例一次只能访问一个数据库。

 

参考:Oracle 9i 10g 11g编程艺术

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数据库连接(Database Connection)和数据库实例Database Instance)是数据库系统中两个不同的概念,它们之间有以下关系: 1. 数据库连接: - 数据库连接是应用程序与数据库之间建立的通信渠道,用于在应用程序和数据库之间传递数据和执行操作。 - 一个数据库连接表示应用程序与数据库之间的一次会话,它包含了连接所需的连接信息(如数据库地址、用户名、密码等)。 - 应用程序可以通过数据库连接向数据库发送SQL语句、获取查询结果,或执行数据库操作(如插入、更新、删除等)。 2. 数据库实例: - 数据库实例是在物理上运行的数据库软件。它是数据库系统的一个具体实例,由内存结构和后台进程组成。 - 当数据库软件启动时,会创建一个数据库实例。每个数据库实例都有自己的内存结构和后台进程,用于管理和处理数据库的运行。 - 数据库实例负责处理用户的请求,执行SQL语句,管理缓存、日志和数据文件等。 3. 关系: - 一个数据库实例可以同时支持多个数据库连接。多个应用程序可以通过不同的连接同时访问同一个数据库实例。 - 每个数据库连接都是独立的会话,它们在逻辑上是相互隔离的,每个连接可以有自己的事务和会话状态。 - 数据库连接通过与数据库实例建立通信,将应用程序的请求传递给数据库实例进行处理,并将处理结果返回给应用程序。 需要注意的是,数据库连接和数据库实例是两个不同的概念,它们是数据库系统中不同层次的抽象。数据库实例是物理上运行的数据库软件,而数据库连接是应用程序与数据库之间的通信通道。一个数据库实例可以支持多个数据库连接,每个连接表示一个独立的会话。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值