在init.ora中有db_name,instance_name,service_name
在操作系统中需要配置oracle_sid
在listener.ora中有SID_NAME,GLOBAL_DBNAME,
在tnsname.ora中有SERVICE_NAME,SID
这么多,是不是你也看糊涂了。先晕一个,下面慢慢道来。
在init.ora中有db_name,instance_name,service_name
db_name是数据库的名称,在db安装时就已经设置了,这里不可修改,它觉得了数据库安装文件的位置。
instance_name是实例名,是数据库运行中名称,其实在OO中db_name相当于类而instance_name向当于对象,它也是代表数据库运行中的内存及其进程,同时影响到了这些进程的名称,譬如:一个数据库db_name=cus,而其实例instance_name= aking,那么数据库起来后,其进程名可能为:Pmon_aking_1。这里的实例名称要和PWDsid.ora和initSid.ora等文件匹配上,否则,db起动报错。从这里可以看出db_name是类名,定义后是不可修改的,而对于instance_name实例名向当于对象,所以我们可以设定自己喜欢的对象名称。不过话虽这样讲,但改了instance_name后,牵扯到很多其他的设置,还是最好不要动他,默认和db_name是一样的,这样多好。
service_name我觉得应该是指数据库网络连接时的名称,在listener配置中会有所考虑的。这个值也是可以随意改动的,并且还可以有多个值。alter system set service_name=serv1,serv2 scope=both;
在listener.ora中有SID_NAME,GLOBAL_DBNAME
这里SID_NAME指数据库的运行的实例名,应该是和instance_name一致
而对于GLOBAL_DBNAME是listener配置的对外网络连接名称,我们在配置tnsname.ora时会考虑这个参数。这个参数可以任意的设置。
另外有一点需要注意,一般我们会在listener.ora手工配置数据库实例的监听配置。但oracle可以通过pmon进程支持自动注册,这时自动注册的对外网络连接名称就会用到init.ora文件中service_name,有多个值的话就会注册多个,对于上面的例子,在这里就会注册 serv1和serv2两个监听服务。如果你还手工配置了一个GLOBAL_DBNAME=serv3的监听服务的话,那么对于实例 instance_name=aking就会有三个监听服务。
在tnsname.ora中有SERVICE_NAME,SID
下面配置客户端的tnsname.ora
对于这里的配置主要要给出要连接的数据库的IP及其连接的实例或服务
在监听配置中我们提到了对外网络连接名称,在这里如果我们用SERVICE_NAME的话,就需要SERVICE_NAME=(GLOBAL_DBNAME或者service_name这里要求oracle已经自动注册到了监听器中),对于SID=(instance_name)即可,譬如:
SERVICE_NAME=serv1,serv2,serv3都可以,或者
SID=aking
最后一个是ORACLE_SID参数,这个参数是操作系统中用到的,它是描述我们要默认连接的数据库实例,对于一个机器上有多个实例的情况下,要修改后才能通过 conn / as sysdba连接,因为这里用到了默认的实例名。
分享到:
相关推荐
Oracle 中有三个重要的概念:DB_NAME、INSTANCE_NAME 和 ORACLE_SID,它们都是 Oracle 数据库的重要组成部分,了解它们的区别和作用非常重要。 DB_NAME DB_NAME 是数据库的名称,也就是数据库的名字标识。在 ...
### Oracle中的九个_Name参数详解 #### 一、db_name:数据库名称 ...特别是`db_name`、`instance_name`、`service_name`和`listener`等参数,在日常管理和维护中使用频率较高,是必须掌握的核心概念。
且 ORACLE_SID 必须与 instance_name 的值一致,否则,你将会收到一个错误,在 unix 平台,是“ORACLE not available”,在 winnt 平台,是“ORA-01092”错误。 数据库域名是指一个数据库的域名,可以用来标识一个...
在Oracle数据库系统中,数据库名(DB_NAME)、实例名(INSTANCE_NAME)以及操作系统环境变量(ORACLE_SID)是区分和管理数据库的关键概念。这些参数在不同的Oracle版本中有不同的作用和重要性。 首先,数据库名(DB...
Oracle 中的全局数据库名称和 SID 的区别 Oracle 中的全局数据库名称和SID是两个不同的概念,分别用于标识数据库和实例。数据库名(DB_NAME)是用于区分数据的内部标识,是以二进制方式存储于数据库控制文件中的...
- **一致性要求**:ORACLE_SID的值应该与`instance_name`一致,如果不一致,可能会导致Oracle服务不可用或错误。 **重要性**: - **环境变量**:ORACLE_SID作为一个环境变量,在操作系统层面标识Oracle实例。 - **...
但在某些情况下,实例名可以与`ORACLE_SID`不同,只需在初始化参数文件中显式指定`INSTANCE_NAME`参数的值即可。 ##### 2.1 功能与作用 在UNIX/Linux环境下,`ORACLE_SID`主要与`ORACLE_HOME`环境变量一起进行哈希...
本文将深入探讨Oracle数据库中的几个关键概念,包括`DB_NAME`、`INSTANCE_NAME`、`ORACLE_SID`、`GLOBAL_NAME`、`DB_DOMAIN`、`SERVICE_NAME`以及`NET_SERVICE_NAME`,帮助读者全面理解这些概念及其在Oracle数据库...
在深入了解Oracle数据库的管理及维护过程中,理解数据库名、实例名、ORACLE_SID、数据库域名、全局数据库名和服务名等核心概念至关重要。这些概念不仅对于数据库的日常管理十分重要,而且在遇到故障排除时更是不可或...
### Oracle9.2_SYS_CONTEXT函数详解 在Oracle数据库系统中,`SYS_CONTEXT`函数...在Oracle9.2及后续版本中,熟练掌握`SYS_CONTEXT`函数的使用方法对于任何希望充分利用Oracle数据库强大功能的用户来说都是至关重要的。
在Real Application Clusters (RAC) 环境中,具有相同 DB_name 的集群内各个节点拥有不同的 Instance_name 来区分它们。 - **Oracle_sid**: 必须与 Instance_name 的值相匹配,通常用于操作系统级别的环境变量。 - *...
ORACLE_SID 的值必须与 instance_name 的值一致。 数据库名的作用 数据库名是在安装数据库、创建新的数据库、创建数据库控制文件、修改数据结构、备份与恢复数据库时都需要使用到的。数据库名还被写入控制文件中,...
虽然ORACLE_SID与instance_name在概念上相似,但它们之间有区别:instance_name是Oracle数据库的内部参数,而ORACLE_SID是操作系统层面的标识。在Windows系统中,ORACLE_SID还需要在注册表中设置,并且必须与...
它在数据库内部用于区分不同的数据库,并在Windows服务中以`oracle_service.数据库名`的形式出现。数据库名在各种操作中都有所应用,如创建数据库、修改数据结构、备份和恢复。查询当前数据库名,可以通过SQL命令`...
- ORACLE_SID必须与INSTANCE_NAME保持一致,否则会出现连接错误。 **作用:** - 通过设置ORACLE_SID,可以在操作系统层面上指定要启动的Oracle实例。 **注意事项:** - ORACLE_SID与INSTANCE_NAME不一致会导致连接...
在Oracle数据库的管理和使用过程中,有几个重要的概念常常被提及,但有时也容易被混淆,这些概念包括:数据库名(DB_NAME)、数据库实例名(INSTANCE_NAME)、操作系统环境变量ORACLE_SID、数据库服务名(SERVICE_...
在9i及更高版本的Oracle中,推荐使用SERVICE_NAMES来配置网络连接,因为它提供了更大的灵活性,如域名的修改只需改变参数文件并重启实例即可生效。 综上所述,理解并掌握这些Oracle网络的重点概念对于管理和维护...
- 在Oracle 7和Oracle 8i及更高版本中,数据库名称(db_name)和实例名称(instance_name)可以不同。例如,在创建数据库时,可以通过编辑`init.ora`或`spfile`文件来指定这些参数。 - 示例代码: ```plaintext db_...