数据库名、实例名、数据库域名、全局数据库名、服务名 ,这是几个
令很多初学者容易混淆的概念。相信很多初学者都与我一样被标题上这
些个概念搞得一头雾水。我们现在就来把它们弄个明白。
一、数据库名
什么是数据库名?
数据库名就是一个数据库的标识,就像人的身份证号一样。他用参数
DB_NAME表示,如果一台机器上装了多全数据库,那么每一个数据库都
有一个数据库名。在数据库安装或创建完成之后,参数DB_NAME被写入
参数文件之中。格式如下:
DB_NAME=myorcl
...
在创建数据库时就应考虑好数据库名,并且在创建完数据库之后,数据
库名不宜修改,即使要修改也会很麻烦。因为,数据库名还被写入控制
文件中,控制文件是以二进制型式存储的,用户无法修改控制文件的内
容。假设用户修改了参数文件中的数据库名,即修改DB_NAME的值。但
是在Oracle启动时,由于参数文件中的DB_NAME与控制文件中的数据库
名不一致,导致数据库启动失败,将返回ORA-01103错误。
数据库名的作用
数据库名是在安装数据库、创建新的数据库、创建数据库控制文件、修
改数据结构、备份与恢复数据库时都需要使用到的。
有很多Oracle安装文件目录是与数据库名相关的,如:
winnt: d:oracleproduct10.1.0oradataDB_NAME...
Unix: /home/app/oracle/product/10.1.0/oradata/DB_NAME/...
pfile:
winnt: d:oracleproduct10.1.0adminDB_NAMEpfileini.ora
Unix:
/home/app/oracle/product/10.1.0/admin/DB_NAME/pfile/init$ORA
CLE_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 DB_NAME, INSTANCE_NAME, ORACLE_SID 区别 Oracle 中有三个重要的概念:DB_NAME、INSTANCE_NAME 和 ORACLE_SID,它们都是 Oracle 数据库的重要组成部分,了解它们的区别和作用非常重要。 DB_NAME DB_NAME ...
在Oracle数据库系统中,数据库名(DB_NAME)、实例名(INSTANCE_NAME)以及操作系统环境变量(ORACLE_SID)是区分和管理数据库的关键概念。这些参数在不同的Oracle版本中有不同的作用和重要性。 首先,数据库名(DB...
本文将深入探讨Oracle数据库中的几个关键概念,包括`DB_NAME`、`INSTANCE_NAME`、`ORACLE_SID`、`GLOBAL_NAME`、`DB_DOMAIN`、`SERVICE_NAME`以及`NET_SERVICE_NAME`,帮助读者全面理解这些概念及其在Oracle数据库...
ORACLE_SID是操作系统的环境变量,其值应与INSTANCE_NAME一致。在Windows系统中,这个环境变量通常在注册表中配置。在客户端配置中,如Net8,SID选项即指ORACLE_SID。 3. 数据库域名(DB_DOMAIN) 数据库域名类似于...
- **Oracle_sid**: 必须与 Instance_name 的值相匹配,通常用于操作系统级别的环境变量。 - **Sid_name**: 实例名,与 Instance_name 相同。 - **GLOBAL_DBNAME**: 全局数据库名,它向外部提供服务并用于标识数据库...
- `INSTANCE_NAME`通常与操作系统的环境变量`ORACLE_SID`相关联。在某些情况下,`INSTANCE_NAME`与`ORACLE_SID`可能不同。 #### 三、Oracle数据库域名(DB_DOMAIN) **数据库域名**(DB_DOMAIN)是Oracle数据库中...
### 详解数据库名、实例名、ORACLE_SID、数据库域名、全局数据库名、服务名 在深入了解Oracle数据库的管理及维护过程中,理解数据库名、实例名、ORACLE_SID、数据库域名、全局数据库名和服务名等核心概念至关重要。...
- 在Oracle 7和Oracle 8i及更高版本中,数据库名称(db_name)和实例名称(instance_name)可以不同。例如,在创建数据库时,可以通过编辑`init.ora`或`spfile`文件来指定这些参数。 - 示例代码: ```plaintext db_...
ORACLE_SID 的值必须与 instance_name 的值一致。 数据库名的作用 数据库名是在安装数据库、创建新的数据库、创建数据库控制文件、修改数据结构、备份与恢复数据库时都需要使用到的。数据库名还被写入控制文件中,...
有几个重要的概念常常被提及,但有时也容易被混淆,这些概念包括:数据库名(DB_NAME)、数据库实例名(INSTANCE_NAME)、操作系统环境变量ORACLE_SID、数据库服务名(SERVICE_NAME)、数据库域名(DB_DOMAIN)以及...
确保`ORACLE_SID`与`INSTANCE_NAME`一致是必要的,否则会遇到连接问题。 3. **数据库域名** (DB_DOMAIN): 为了解决分布式数据库中可能出现的同名问题,Oracle引入了域名参数。数据库的全局唯一标识是数据库名和域名...
它在数据库内部用于区分不同的数据库,并在Windows服务中以`oracle_service.数据库名`的形式出现。数据库名在各种操作中都有所应用,如创建数据库、修改数据结构、备份和恢复。查询当前数据库名,可以通过SQL命令`...
SERVICE_NAME则是监听器对外提供的服务名称,可以通过`lsnrctl status`查看,通常是DB_NAME加上DB_DOMAIN。 关于Oracle环境变量,ORACLE_BASE是Oracle软件的根目录,而ORACLE_HOME则是具体安装产品的目录。PATH环境...
其中,`db_domain="" db_name=orcl` 表示数据库名为`orcl`,这是在创建数据库时设定的。 **1.2 数据库名的作用** 数据库名在多种场景下都非常关键: - **安装数据库**:在安装新的数据库时需要指定数据库名。 - *...
- **参数文件的存放位置**:参数文件一般存放在特定目录下,如示例中的 `/home/app/oracle/product/10.1.0/admin/DB_NAME/pfile/initORACLE_SID.ora`,其中 `DB_NAME` 是指数据库名称,`ORACLE_SID` 是数据库实例名...
CREATE DATABASE LINK db_link_name CONNECT TO remote_user IDENTIFIED BY remote_password USING '(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=remote_host)(PORT=port_number))(CONNECT_DATA=(SERVER=DEDICATED)...
6. **oracle_sid**:数据库实例的SID,即系统标识符。 7. **instance_name**:实例名称,通常与数据库名称相同。 8. **service_name**:用于标识数据库服务的名称,可以与实例名不同。 #### 四、修改关键属性 针对...
SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc1)(ORACLE_HOME = /u01/app/oracle/product/8.1.7)(PROGRAM = extproc)) (SID_DESC = (GLOBAL_DBNAME = cams)(ORACLE_HOME = /u01/app/oracle/...