`
beckshanling
  • 浏览: 260916 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
社区版块
存档分类
最新评论

数据库名、实例

阅读更多


在实际的开发应用中,关于 Oracle 数据库,经常听见有人说建立一个数据库,建立一个 Instance ,启动一个 Instance 之类的话。 其实问他们什么是数据库,什么是 Instance ,很可能他们给的答案就是数据库就是 Instance Instance 就是数据库啊,没有什么区别。在这里,只能说虽然他们 Oracle 用了可能有了一定的经验,不过基础的概念还是不太清楚。

 

什么是数据库,其实很简单,数据库就是存储数据的一种媒介。比如常用的文件就是一种,在 Oracle10G 中,数据的存储有好几种。第一种是文件形式,也就是在你的磁盘中创建一批文件,然后在这些文件中存储信息。第二种就是磁盘阵列形式,这个是什么意思呢,这个就是说明数据库不是存放为某个文件,而是把一个或者多个磁盘格式化成 Oracle 的一种格式了,等于整个磁盘就是存放 Oracle 数据库的,不能作为别的用途。这样的优点是存储性能高,因为不再借助别的文件格式了,而是把整个磁盘都成为 Oracle 最适应的文件系统格式。当然还可能有别的形式,比如网络什么的。不过我们最常用的还是文件格式的,在文件格式中,数据库指的就是那些数据文件,控制文件以及 REDO 文件等等一系列文件。

 

而什么是 Instance 呢, Instance 其实就是指的操作系统中一系列的进程以及为这些进程所分配的内存块。在 Oracle 中,我们可以新建一个 Oracle Instance ,这个时候虽然有了进程还有 SGA 等一系列的内存快,但是这个时候并没有把数据库文件读取进来。所以只是一个实例,在后来,你可以通过命令手动或者自动地把数据库文件加载进我们的数据库 Instance 中,这个时候的数据库才可以让我们真正的开始访问操作。

 

所以说,数据库的应用如果想实现,数据库和数据库 Instance 是缺一不可的,如果只有数据库的那些文件,那么,只能代表数据在这个文件中,但是我们无法直接进行操作。而如果只有数据库 Instance ,那么我们虽然可以急性操作,但是也不知道操作哪些数据,操作生成的数据也无法保存等等。所以,当一个 Oracle Instance 真正 Load 了一个 Oracle Database 了以后,数据库才可以被我们使用。

 

总体来说就是:

 

ORACLE 实例 = 进程 + 进程所使用的内存 (SGA)

 

实例是一个临时性的东西,你也可以认为它代表了数据库某一时刻的状态!

 

数据库 = 重做文件 + 控制文件 + 数据文件 + 临时文件

 

数据库是永久的,是一个文件的集合。

 

ORACLE 实例和数据库之间的关系

 

1 :实例是临时性的,数据库是永久性的

 

2. 实例可以在没有数据文件的情况下单独启动 startup nomount , 通常没什么意义,而数据库必须要实例加载才能够访问。

 

3. 一个实例在其生存期内只能装载 (alter database mount) 和打开 (alter database open) 一个数据库

 

4. 一个数据库可被许多实例同时装载和打开 ( RAC) RAC 环境中实例的作用能够得到充分的体现 !

 

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

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

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

分享到:
评论

相关推荐

    数据库名实例名sid的区别

    在Oracle数据库系统中,数据库名(DB_NAME)、实例名(INSTANCE_NAME)以及操作系统环境变量(ORACLE_SID)是区分和管理数据库的关键概念。这些参数在不同的Oracle版本中有不同的作用和重要性。 首先,数据库名(DB...

    数据库名 实例名 数据库域名 全局数据库名 服务名

    **定义**:实例名(Instance Name)是数据库与操作系统之间进行交互的标识,用于操作系统识别和管理数据库实例。实例名被写入参数文件中,对应的参数为 `instance_name`。 **区别于数据库名**: - 一般情况下,实例...

    学案之数据库名实例名数据库域名全局数据库名服务名.pdf

    - 查询当前数据库实例名可使用SQL命令`SELECT instance_name FROM v$instance`或`SHOW PARAMETER instance`。 - ORACLE_SID是操作系统的环境变量,用于操作系统与Oracle实例的交互,必须与instance_name保持一致。...

    oracle实例名,数据库名,服务名等概念区别与联系.doc

    数据库实例名是用于和操作系统进行联系的标识。数据库实例名是数据库和操作系统之间的交互标识。通常情况下,数据库名和实例名是一对一的关系,但是在 Oracle 并行服务器架构中,数据库名和实例名是一对多的关系。 ...

    详解_数据库名、实例名、ORACLE_SID、数据库域名、全局数据库名、服务名

    详解_数据库名、实例名、ORACLE_SID、数据库域名、全局数据库名、服务名

    oracle 数据库名、实例名、数据库域名、全局数据库名、服务名 解析

    ### Oracle 数据库名、实例名、数据库域名、全局数据库名、服务名 解析 #### 一、Oracle数据库名称(DB_NAME) 在Oracle数据库系统中,**数据库名称**(DB_NAME)是一个非常重要的概念,用于唯一标识一个特定的...

    ORACLE_SID_实例名_数据库名_讲解

    例如,在一个数据库中,可以有多个服务名,每个服务名都可以对应一个数据库实例。 在实际应用中,数据库名、实例名、数据库域名、全局数据库名、服务名等概念经常会被混淆,但它们之间都有着明显的区别。了解这些...

    SQL数据库默认实例与命名实例的区别

    例如,如果计算机名为`pcname`,实例名为`benet`,那么连接字符串应为`pcname\benet`。 #### 三、端口的区别 1. **默认实例**:默认情况下,默认实例监听的端口号为`1433`。 - **优点**:1433是SQL Server的...

    C#数据库编程实例大全,包括22个经典例子

    本资源"《C#数据库编程实例大全》"提供了22个经典实例,旨在帮助初学者和有经验的开发者更好地理解和应用C#进行数据库操作。 1. **基本概念**:首先,理解ADO.NET框架是至关重要的,它是.NET Framework中用于访问...

    oracle数据库_实例_用户_表空间之间的关系

    Oracle 数据库实例用户表空间之间的关系 Oracle 数据库实例用户表空间之间的关系是 Oracle 数据库管理系统的核心概念。了解它们之间的关系对于数据库的设计、管理和优化至关重要。 数据库 Oracle 数据库是一个...

    vb.net数据库连接实例

    本实例将详细讲解如何在VB.NET中建立与数据库的连接,进行数据操作,并确保程序的稳定性和安全性。 首先,我们需要引入ADO.NET组件,这是.NET Framework提供的用于访问数据库的一组类库。在VB.NET项目中,我们可以...

    MySQL数据库基础实例教程(第2版)教学大纲.pdf

    《MySQL数据库基础实例教程(第2版)》是一门针对软件技术、移动互联等相关专业设计的专业必修课程,旨在培养学生对数据库应用系统的开发、管理和维护能力。课程通过项目模拟和职业体验式学习,使学生在理论与实践中...

    Visual+Basic数据库高级实例导航

    Visual+Basic数据库高级实例导航 Visual+Basic数据库高级实例导航 Visual+Basic数据库高级实例导航 Visual+Basic数据库高级实例导航 Visual+Basic数据库高级实例导航 Visual+Basic数据库高级实例导航 Visual+Basic...

    VC数据库编程实例-ORACLE数据库VC数据库编程实例

    本实例主要关注如何使用VC++与Oracle数据库进行交互,实现数据的存取、查询、更新和删除等操作。Oracle数据库是一个关系型数据库管理系统,提供了丰富的API和工具,如OCI(Oracle Call Interface)和ODBC(Open ...

    易语言数据库操作实例

    在"易语言数据库操作实例"这个主题中,我们将深入探讨如何使用易语言进行数据库的交互与管理。 首先,数据库操作是任何应用程序中的核心部分,无论是在产品管理、数据分析还是日常事务处理中,都需要频繁地存取、...

    MySQL数据库基础实例教程(第2版)(微课版)-教学课件.zip

    MySQL数据库基础实例教程是针对初学者的一套系统性学习资源,尤其适合想要了解数据库管理和开发的人群。本教程分为多个章节,涵盖了从基础到进阶的各个关键领域,旨在通过实例教学来帮助学习者深入理解MySQL的核心...

    vb数据库设计实例演示

    本实例演示将带你逐步学习如何在VB中创建和管理数据库,让你的手动操作能力得到提升。以下是这个"vb数据库设计实例演示"中的主要知识点: 1. **数据库基础**:首先,你需要了解数据库的基本概念,如表、字段、记录...

    ASP.NET网络数据库开发实例精解

    构架数据库系统入门 网站的架设和服务器配置 建立和配置数据源 连接和操作数据源 使用ADO.NET操作数据库 显示数据库中的内容 (listbox dropdownlist datalist datagrid 及显示数据库中的图片) ...附带实例

    数据库实例开发源代码

    在IT行业中,数据库实例开发是核心的技术之一,尤其是在软件开发中。VC++,全称Visual C++,是Microsoft公司推出的一款强大的C++编程工具,它提供了丰富的库支持和高效的开发环境,广泛应用于桌面应用程序和系统级...

    数据库SQL实例

    在提供的压缩包中,"myssles.sql"文件很可能是用来创建一个名为"mysales"的数据库。这通常包括一系列的DDL(Data Definition Language)语句,如`CREATE DATABASE`,`CREATE TABLE`等,用于定义数据库结构。执行这个...

Global site tag (gtag.js) - Google Analytics