oracle数据库DB_NAME、DBID、DB_UNIQUE_NAME等的区别

目录

  • DB_NAME
  • DBID
  • DB_UNIQUE_NAME:
  • INSTANCE_NAME:
  • SID:
  • SERVICE_NAME
  • GLOBAL_DATABASE_NAME:

DB_NAME

①是数据库名,长度不能超过8个字符,记录在datafile、redolog和control file中

②在DataGuard环境中DB_NAME相同而DB_UNIQUE_NAME不同

③在RAC环境中,各个节点的DB_NAME 都相同,但是INSTANCE_NAME不同

④DB_NAME还在动态注册监听的时候起作用,无论是否定义了SERVICE_NAME,PMON进程都会使用DB_NAME动态注册监听

DBID

①DBID可以看做是DB_NAME在数据库内部的表示,它是在数据库创建的时候用DB_NAME结合算法计算出来的

②它存在于datafile和control file中,用来表示数据文件的归属,所以DBID是唯一的,对于不同的数据库,DB_NAME可以是相同的,但是DBID一定是唯一的,例如在DataGuard中,主备库的DB_NAME相同,但是DBID一定不同(看过一个很形象的例子,就是可以有同名的人,但是身份证号码一定不同)

DB_UNIQUE_NAME:

①在DataGuard中,主备库拥有相同的DB_NAME,为了区别,就必须有不同的DB_UNIQUE_NAME

②DB_UNIQUE_NAME在DG中会影响动态注册的SERVICE_NAME,即如果采用的是动态注册,则注册的SERVICE_NAME为DB_UNIQUE_NAME,但是实例还是INSTANCE_NAME,即SID

INSTANCE_NAME:

①数据库实例的名称,INSTANCE_NAME默认值是SID,一般情况下和数据库名称(DB_NAME)相同,也可不同

②initSID.ora 和orapwSID 文件要与INSTANCE_NAME保持一致

③INSTANCE_NAME会影响进程的名称

SID:

①是操作系统中的环境变量,和ORACLE_HOME,ORACLE_BASE用法相同

②在操作系统中要想得到实例名,就必须使用ORACLE_SID。且ORACLE_SID必须与INSTANCE_NAME的值一致

SERVICE_NAME

①数据库和客户端相连是使用的服务名

②在DataGuard中,如果采用动态注册,建议在主备库使用相同的service_names

③在DataGuard中,如果采用静态注册,建议在主备库上的listener中输入相同的服务名(service_name)

④如果采监听采用了静态注册,那么SERVICE_NAME就等于Listener.ora文件中的GLOBAL_DATABASE_NAME的值

GLOBAL_DATABASE_NAME:

①GLOBAL_DATABASE_NAME 是listener配置的对外网络连接名称,可以是任意值

②在客户端配置监听的tnsnames.ora 文件中的service_name与这个GLOBAL_DBNAME 保持一致就可以了

③配置静态监听注册时,需要输入SID和GLOBAL_NAME

本文摘自于地址:http://www.itpux.com/thread-236-1-1.html

原文地址:https://www.cnblogs.com/kyeup/p/9286690.html

时间: 2024-10-10 14:23:58

oracle数据库DB_NAME、DBID、DB_UNIQUE_NAME等的区别的相关文章

oracle数据库中 rownum 和row_number()的区别和练习

明确对于rownum 来说 它是oracle 系统顺序分配为从查询返回的行的编号,返回的第一行分配的是1,第二行是二,以此类推,这个为字段可以用于限制查询的返回的总行数,因为rownum总是从1开始,但是1以上的自然数在rownum 做等于判断时都认为是false 条件,所以无法查到 rownum=n (n>1的自然数),所以查找第二行以后的记录可以用子查询方法来解决,给子查询中的rownum取别名;对于小于某个值的情况两种方法都差不多,但是对于某个不等于一的值或者求某个值到某个值之间的情况,用

查看oracle 数据库的DBID

(1)使用rman查看$ rman target /Recovery Manager: Release 11.2.0.4.0 - Production on Fri Jun 12 03:20:19 2015Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.connected to target database: DBTEST (DBID=1275017193)RMAN> (2)使用sqlpl

oracle数据库中游标和序列的区别

两者是完全不同的东西游标是基于查询结果集的比方说你的一个select语句查询出了若干条记录这样一个结果集,如果你想对结果集中的每一行都进行一个判断或则其他操作,那么用sql语句的update或者就不能满足针对每一行的特定操作,这个时候游标就发挥作用了:你可以把这个结果集定义成一个游标,通过游标的操作形式,你可以遍历结果集中的每一行记录并可以对它进行操作,也就是你可以通过游标对一个select查询出的结果执行for循环来遍历操作数据.而序列则是oracle中的一种对象,就像表.视图一样,你可以像建

Oracle数据库各种名字的区别

数据库名(DB_NAME).数据库实例名(INSTANCE_NAME).操作系统环境变量(ORACLE_SID).数据库服务名(SERVICE_NAME).数据库域名(DB_DOMAIN)以及全局数据库名(GLOBAL_DB_NAME)是几个使用Oracle数据库容易混淆的概念. INSTANCE_NAME一般和DB_NAME相同INSTANCE_NAME=ORACLE_SIDSERVICE_NAMES=全局数据库名=db_name+db_domain 数据库名与实例名 1. 数据库名(DB_N

Oracle中Union与Union All的区别(适用多个数据库)

Oracle中Union与Union All的区别(适用多个数据库) 如果我们需要将两个select语句的结果作为一个整体显示出来,我们就需要用到union或者union all关键字.union(或称为联合)的作用是将多个结果合并在一起显示出来 Union 与 Union ALL 的作用都是合并 SELECT 的查询结果集,那么它们有什么不同呢? Union 将查询到的结果集合并后进行重查,将其中相同的行去除.缺点:效率低: 而Union ALL 则只是合并查询的结果集,并不重新查询,效率高,

数据库oracle与mysql在语法上的区别

转自http://blog.csdn.net/huanghm88/article/details/8009048 数据库oracle与mysql在语法上的区别不是很多,但是也有一些.下面是部分参考: 1,oracle没有offet,limit,在mysql中我们用它们来控制显示的行数,最多的是分页了.oracle要分页的话,要换成rownum. 2,oracle建表时,没有auto_increment,所有要想让表的一个字段自增,要自己添加序列,插入时,把序列的值,插入进去. 3,oracle有

Oracle数据库和DB2数据库分页SQL的区别举例

--------------------------ORACLE数据库分页SQL举例------------------------------------------------ SELECT * FROM ( SELECT TEMP.*, ROWNUM AS NUM FROM ( SELECT EB.EHR_ID,EB.PERSON_NAME,CL.SVC_ID a,BILL.SVC_ID b,BILL.ITEM_NAME FROM PHIS.EHR_BASE EB, PHIS.SVC_CL

Oracle数据库和实例的区别

一般Oracle数据库(Oracle Database)可以分为两部分,即实例(Instance)和数据库(Database). 实例:是一个非固定的.基于内存的基本进程与内存结构.当服务器关闭后,实例也就不存在了. 数据库(Database)指的是固定的.基于磁盘的数据文件.控制文件.日志文件.参数文件和归档日志文件等. 一般情况下,Oracle数据库都是一个数据库对应一个实例. 创建数据库步骤: 打开Database Configuration Assistant -->> 下一步创建数据

oracle数据库迁移主从复制ADG(分享十四)

前面章节说到mysql主从复制问题,本章节说说oracle的主从复制技术adg,这个也是业内大家用的最多的解决方案. Data Gurad通过冗余数据来提供数据保护,Data Gurad 通过日志同步机制保证冗余数据和主数据之前的同步,这种同步可以是实时,延时,同步,异步多种形式.Data Gurad常用于异地容灾和小企业的高可用性方案,虽然可以在Standby机器上执行只读查询,从而分散Primary数据库的性能压力,但是Data Gurad决不是性能解决方案. 分类: 逻辑Standby接收