详解:数据库名、实例名、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,即数据库实例名。
<script type="text/javascript"></script>
分享到:
相关推荐
详解_数据库名、实例名、ORACLE_SID、数据库域名、全局数据库名、服务名
### 详解数据库名、实例名、ORACLE_SID、数据库域名、全局数据库名、服务名 在深入了解Oracle数据库的管理及维护过程中,理解数据库名、实例名、ORACLE_SID、数据库域名、全局数据库名和服务名等核心概念至关重要。...
### 数据库名、实例名、数据库域名、全局数据库名、服务名详解 #### 一、数据库名 **定义**:数据库名(Database Name)是指在安装数据库系统时为该数据库指定的一个唯一标识符,它类似于人的身份证号,是区分不同...
### 数据库名、实例名、数据库域名、全局数据库名、服务名详解 #### 一、数据库名 **定义**: 数据库名(Database Name)是指一个数据库的唯一标识符,类似于人的身份证号码。它用于区分同一台机器上的多个数据库...
### 数据库名、实例名、数据库域名、全局数据库名、服务名详解 #### 一、数据库名 **定义**: 数据库名(Database Name)是指一个数据库的唯一标识符,类似于人的身份证号码。它用于区分同一台机器上的多个数据库...
### Oracle 9i安装中的全局数据库名及SID详解 #### 一、全局数据库名与SID的概念 在Oracle 9i数据库系统中,为了确保数据库在网络环境中的唯一性以及便于管理和识别,引入了“全局数据库名”(Global Database ...
服务名是指Oracle数据库实例提供的网络服务的名称,用于网络连接。 **特点:** - 服务名与实例名可以不同,但默认情况下两者相同。 - 服务名在`listener.ora`文件中配置,并用于客户端连接。 **作用:** - 通过...
- **GLOBAL_DBNAME**:全局数据库名,用于标识数据库实例。 - **ORACLE_HOME**:指定Oracle安装路径。 - **PROGRAM**:仅在PLSExtProc的情况下需要指定,通常用于外部程序调用。 ##### 2. LISTENER配置 ``` ...
通常情况下,实例名就是`ORACLE_SID`的值(即`INSTANCE_NAME=$ORACLE_SID`)。但在某些情况下,实例名可以与`ORACLE_SID`不同,只需在初始化参数文件中显式指定`INSTANCE_NAME`参数的值即可。 ##### 2.1 功能与作用...
### Oracle10g数据库优化详解 #### 一、基本概念 **1. 实例与数据库** - **实例**: 当数据库启动后,多个进程被加载到内存中并进行协同工作,这些进程及其状态共同组成了一个数据库实例。实例是运行时的概念,...
### Oracle 创建本地数据库实例及配置详解 #### 一、引言 随着业务需求的变化和技术的发展,不同的场景可能需要使用不同的数据库管理系统。对于那些长期使用 MySQL 数据库的技术人员来说,转向 Oracle 数据库可能会...
### ORACLE数据库与实例的关系详解 #### 一、数据库名(db_name) **1.1 数据库名的概念** 数据库名(db_name)是Oracle数据库系统中一个非常重要的标识符,类似于人的身份证号码,用来唯一识别一个数据库。在一个...
### Oracle数据库巡检报告知识点详解 #### 一、操作系统参数检查 ##### 1.1 检查数据库CPU、I/O、内存性能 - **CPU性能检查**:通过监控工具或命令行工具(如`top`、`vmstat`、`iostat`等),检查服务器的CPU使用...
服务名是Oracle数据库中提供的服务的名称,它可以不同于数据库名或实例名。每个服务可以绑定到一个或多个监听器实例。 **作用:** - 用于客户端连接到数据库时指定的服务名称; - 可以有多个服务名称指向同一个...
- **数据库标识**: 全局数据库名和SID设为“ORCL”,这是Oracle的默认建议。 - **内存分配**: 默认设置为服务器内存的40%,确保至少有1GB内存。 - **字符集**: 选择“简体中文 ZHS16GBK”,以支持中文字符的存储。 -...
**参数文件的存放位置**:参数文件一般存放在特定目录下,如示例中的 `/home/app/oracle/product/10.1.0/admin/DB_NAME/pfile/initORACLE_SID.ora`,其中 `DB_NAME` 是指数据库名称,`ORACLE_SID` 是数据库实例名。...
输入全局数据库名(通常包含域名以确保唯一性)和服务ID(SID)。 - **本地服务名配置**:在`Oracle Net Manager`中选择服务命名项,添加新的服务名。配置服务名的协议、主机名、端口号和服务名等信息。 #### 四、...
`GLOBAL_NAME`,即全局数据库名,由`DB_NAME`和`DB_DOMAIN`(数据库所在网络的域名)组合而成,格式为“数据库名.网络域名”。在分布式数据库系统中,`GLOBAL_NAME`的作用尤为显著,它能够确保每个数据库节点在网络...