`

[转载]ORACLE详解:数据库名、实例名、ORACLE_SID、数据库域名、全局数据库名、服务名

    博客分类:
  • db
 
阅读更多

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

数据库名、实例名、数据库域名、全局数据库名、服务名 ,
这是几个令很多初学者容易混淆的概念。相信很多初学者都与我一样被标题上这些个概念搞得一头雾水。我们现在就来把它们弄个明白。

一、数据库名
什么是数据库名?

数据库名就是一个数据库的标识,就像人的身份证号一样。他用参数DB_NAME表示,如果一台机器上装了多全数据库,那么每一个数据库都有一个数据库名。在数据库安装或创建完成之后,参数DB_NAME被写入参数文件之中。格式如下:
DB_NAME=myorcl
...
在创建数据库时就应考虑好数据库名,并且在创建完数据库之后,数据库名不宜修改,即使要修改也会很麻烦。因为,数据库名还被写入控制文件中,控制文件是以二进制型式存储的,用户无法修改控制文件的内容。假设用户修改了参数文件中的数据库名,即修改DB_NAME的值。但是在Oracle启动时,由于参数文件中的DB_NAME与控制文件中的数据库名不一致,导致数据库启动失败,将返回ORA-01103错误。

数据库名的作用
数据库名是在安装数据库、创建新的数据库、创建数据库控制文件、修改数据结构、备份与恢复数据库时都需要使用到的。
有很多Oracle安装文件目录是与数据库名相关的,如:
winnt: d:\oracle\product\10.1.0\oradata\DB_NAME\...
Unix: /home/app/oracle/product/10.1.0/oradata/DB_NAME/...
pfile:
winnt: d:\oracle\product\10.1.0\admin\DB_NAME\pfile\ini.ora
Unix: /home/app/oracle/product/10.1.0/admin/DB_NAME/pfile/init$ORACLE_SID.ora
跟踪文件目录:
winnt: /home/app/oracle/product/10.1.0/admin/DB_NAME/bdump/...
另外,在创建数据时,careate database命令中的数据库名也要与参数文件中DB_NAME参数的值一致,否则将产生错误。
同样,修改数据库结构的语句alter database, 当然也要指出要修改的数据库的名称。
如果控制文件损坏或丢失,数据库将不能加载,这时要重新创建控制文件,方法是以nomount方式启动实例,然后以create controlfile命令创建控制文件,当然这个命令中也是指指DB_NAME。
还有在备份或恢复数据库时,都需要用到数据库名。
总之,数据库名很重要,要准确理解它的作用。

查询当前数据名
方法一:select name from v$database;
方法二:show parameter db
方法三:查看参数文件。

修改数据库名
前面建议:应在创建数据库时就确定好数据库名,数据库名不应作修改,因为修改数据库名是一件比较复杂的事情。那么现在就来说明一下,如何在已创建数据之后,修改数据库名。步骤如下:
1.关闭数据库。
2.修改数据库参数文件中的DB_NAME参数的值为新的数据库名。
3.以NOMOUNT方式启动实例,修建控制文件(有关创建控制文件的命令语法,请参考oracle文档)

二、数据库实例名
什么是数据库实例名
数据库实例名是用于和操作系统进行联系的标识,就是说数据库和操作系统之间的交互用的是数据库实例名。实例名也被写入参数文件中,该参数为instance_name,在winnt平台中,实例名同时也被写入注册表。
数据库名和实例名可以相同也可以不同。
在一般情况下,数据库名和实例名是一对一的关系,但如果在oracle并行服务器架构(即oracle实时应用集群)中,数据库名和实例名是一对多的关系。这一点在第一篇中已有图例说明。

查询当前数据库实例名
方法一:select instance_name from v$instance;
方法二:show parameter instance
方法三:在参数文件中查询。

数据库实例名ORACLE_SID
虽然两者都表是oracle实例,但两者是有区别的。instance_name是oracle数据库参数。而ORACLE_SID是操作系统的环境变量。ORACLD_SID用于与操作系统交互,也就是说,从操作系统的角度访问实例名,必须通过ORACLE_SID。在winnt不台,ORACLE_SID还需存在于注册表中。
ORACLE_SID必须与instance_name的值一致,否则,你将会收到一个错误,在unix平台,是“ORACLE not available”,在winnt平台,是“TNS:协议适配器错误”。

数据库实例名与网络连接
数据库实例名除了与操作系统交互外,还用于网络连接的oracle服务器标识。当你配置oracle主机连接串的时候,就需要指定实例名。当然8i以后版本的网络组件要求使用的是服务名SERVICE_NAME。这个概念接下来说明 。

三、数据库域名
什么是数据库域名?

在分布工数据库系统中,不同版本的数据库服务器之间,不论运行的操作系统是unix或是windows,各服务器之间都可以通过数据库链路进行远程复制,数据库域名主要用于oracle分布式环境中的复制。举例说明如:
全国交通运政系统的分布式数据库,其中:
福建节点: fj.jtyz
福建厦门节点: xm.fj.jtyz
江西: jx.jtyz
江西上饶:sr.jx.jtyz
这就是数据库域名。
数据库域名在存在于参数文件中,他的参数是db_domain.

查询数据库域名
方法一:select value from v$parameter where name = 'db_domain';
方法二:show parameter domain
方法三:在参数文件中查询。

全局数据库名
全局数据库名=数据库名+数据库域名,如前述福建节点的全局数据库名是:oradb.fj.jtyz

四、数据库服务名
什么是数据库服务名?
oracle9i版本开始,引入了一个新的参数,即数据库服务名。参数名是SERVICE_NAME。
如果数据库有域名,则数据库服务名就是全局数据库名;否则,数据库服务名与数据库名相同。

查询数据库服务名
方法一:select value from v$parameter where name = 'service_name';
方法二:show parameter service_name
方法三:在参数文件中查询。

数据库服务名与网络连接
oracle8i开如的oracle网络组件,数据库与客户端的连接主机串使用数据库服务名。之前用的是ORACLE_SID,即数据库实例名

 

 

另:

ORACLE实例 = 进程 + 进程所使用的内存(SGA)
实例是一个临时性的东西,你也可以认为它代表了数据库某一时刻的状态!
数据库 = 重做文件 + 控制文件 + 数据文件 + 临时文件
数据库是永久的,是一个文件的集合。
ORACLE实例和数据库之间的关系
1.          临时性和永久性
2.          实例可以在没有数据文件的情况下单独启动 startup nomount , 通常没什么意义
3.          一个实例在其生存期内只能装载(alter database mount)和打开(alter database open)一个数据库
4.          一个数据库可被许多实例同时装载和打开(即RAC),RAC环境中实例的作用能够得到充分的体现!

分享到:
评论

相关推荐

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

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

    详解数据库名、实例名、ORACLE_SID、数据库域名、全局数据库名、服务名[参考].pdf

    ### 详解数据库名、实例名、ORACLE_SID、数据库域名、全局数据库名、服务名 在深入了解Oracle数据库的管理及维护过程中,理解数据库名、实例名、ORACLE_SID、数据库域名、全局数据库名和服务名等核心概念至关重要。...

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

    ### 数据库名、实例名、数据库域名、全局数据库名、服务名详解 #### 一、数据库名 **定义**:数据库名(Database Name)是指在安装数据库系统时为该数据库指定的一个唯一标识符,它类似于人的身份证号,是区分不同...

    数据库名、实例名、数据库域名、全局数据库名、服务名[归类].pdf

    ### 数据库名、实例名、数据库域名、全局数据库名、服务名详解 #### 一、数据库名 **定义**: 数据库名(Database Name)是指一个数据库的唯一标识符,类似于人的身份证号码。它用于区分同一台机器上的多个数据库...

    数据库名、实例名、数据库域名、全局数据库名、服务名.pdf

    ### 数据库名、实例名、数据库域名、全局数据库名、服务名详解 #### 一、数据库名 **定义**: 数据库名(Database Name)是指一个数据库的唯一标识符,类似于人的身份证号码。它用于区分同一台机器上的多个数据库...

    Oracle 9i安装中的全局数据库名及SID

    ### Oracle 9i安装中的全局数据库名及SID详解 #### 一、全局数据库名与SID的概念 在Oracle 9i数据库系统中,为了确保数据库在网络环境中的唯一性以及便于管理和识别,引入了“全局数据库名”(Global Database ...

    oracle概念详解

    服务名是指Oracle数据库实例提供的网络服务的名称,用于网络连接。 **特点:** - 服务名与实例名可以不同,但默认情况下两者相同。 - 服务名在`listener.ora`文件中配置,并用于客户端连接。 **作用:** - 通过...

    ORACLE_SID

    通常情况下,实例名就是`ORACLE_SID`的值(即`INSTANCE_NAME=$ORACLE_SID`)。但在某些情况下,实例名可以与`ORACLE_SID`不同,只需在初始化参数文件中显式指定`INSTANCE_NAME`参数的值即可。 ##### 2.1 功能与作用...

    两个oracle数据库的监听的配置

    - **GLOBAL_DBNAME**:全局数据库名,用于标识数据库实例。 - **ORACLE_HOME**:指定Oracle安装路径。 - **PROGRAM**:仅在PLSExtProc的情况下需要指定,通常用于外部程序调用。 ##### 2. LISTENER配置 ``` ...

    Oracle10g数据库优化详解

    ### Oracle10g数据库优化详解 #### 一、基本概念 **1. 实例与数据库** - **实例**: 当数据库启动后,多个进程被加载到内存中并进行协同工作,这些进程及其状态共同组成了一个数据库实例。实例是运行时的概念,...

    ORACLE数据库与实例的关系[参考].pdf

    ### ORACLE数据库与实例的关系详解 #### 一、数据库名(db_name) **1.1 数据库名的概念** 数据库名(db_name)是Oracle数据库系统中一个非常重要的标识符,类似于人的身份证号码,用来唯一识别一个数据库。在一个...

    Oracle创建本地数据库实例及配置.docx

    ### Oracle 创建本地数据库实例及配置详解 #### 一、引言 随着业务需求的变化和技术的发展,不同的场景可能需要使用不同的数据库管理系统。对于那些长期使用 MySQL 数据库的技术人员来说,转向 Oracle 数据库可能会...

    Oracle数据库巡检报告

    ### Oracle数据库巡检报告知识点详解 #### 一、操作系统参数检查 ##### 1.1 检查数据库CPU、I/O、内存性能 - **CPU性能检查**:通过监控工具或命令行工具(如`top`、`vmstat`、`iostat`等),检查服务器的CPU使用...

    oracle名词解释

    服务名是Oracle数据库中提供的服务的名称,它可以不同于数据库名或实例名。每个服务可以绑定到一个或多个监听器实例。 **作用:** - 用于客户端连接到数据库时指定的服务名称; - 可以有多个服务名称指向同一个...

    ORACLE 11G数据库安装详解

    - **数据库标识**: 全局数据库名和SID设为“ORCL”,这是Oracle的默认建议。 - **内存分配**: 默认设置为服务器内存的40%,确保至少有1GB内存。 - **字符集**: 选择“简体中文 ZHS16GBK”,以支持中文字符的存储。 -...

    Oracle数据库创建步骤

    **参数文件的存放位置**:参数文件一般存放在特定目录下,如示例中的 `/home/app/oracle/product/10.1.0/admin/DB_NAME/pfile/initORACLE_SID.ora`,其中 `DB_NAME` 是指数据库名称,`ORACLE_SID` 是数据库实例名。...

    Oracle数据库监听配置

    输入全局数据库名(通常包含域名以确保唯一性)和服务ID(SID)。 - **本地服务名配置**:在`Oracle Net Manager`中选择服务命名项,添加新的服务名。配置服务名的协议、主机名、端口号和服务名等信息。 #### 四、...

    Oracle的基础概念.doc

    `GLOBAL_NAME`,即全局数据库名,由`DB_NAME`和`DB_DOMAIN`(数据库所在网络的域名)组合而成,格式为“数据库名.网络域名”。在分布式数据库系统中,`GLOBAL_NAME`的作用尤为显著,它能够确保每个数据库节点在网络...

Global site tag (gtag.js) - Google Analytics